ZwiiCMS/core/vendor/filemanager/plugin.min.js

112 lines
3.6 KiB
JavaScript
Executable File

/**
* plugin.js
*
* Copyright, Alberto Peripolli
* Released under Creative Commons Attribution-NonCommercial 3.0 Unported License.
*
* Contributing: https://github.com/trippo/ResponsiveFilemanager
*/
tinymce.PluginManager.add('filemanager', function(editor) {
editor.settings.file_picker_types = 'file image media';
editor.settings.file_picker_callback = filemanager;
function filemanager_onMessage(event){
if(editor.settings.external_filemanager_path.toLowerCase().indexOf(event.origin.toLowerCase()) === 0){
if(event.data.sender === 'responsivefilemanager'){
tinymce.activeEditor.windowManager.getParams().setUrl(event.data.url);
tinymce.activeEditor.windowManager.close();
// Remove event listener for a message from ResponsiveFilemanager
if(window.removeEventListener){
window.removeEventListener('message', filemanager_onMessage, false);
} else {
window.detachEvent('onmessage', filemanager_onMessage);
}
}
}
}
function filemanager(callback, value, meta) {
var width = window.innerWidth-30;
var height = window.innerHeight-60;
if(width > 1800) width=1800;
if(height > 1200) height=1200;
if(width>600){
var width_reduce = (width - 20) % 138;
width = width - width_reduce + 10;
}
// DEFAULT AS FILE
urltype=2;
if (meta.filetype === 'image' || meta.mediaType === 'image') { urltype=1; }
if (meta.filetype === 'media' || meta.mediaType === 'media') { urltype=3; }
var title="RESPONSIVE FileManager";
if (typeof editor.settings.filemanager_title !== "undefined" && editor.settings.filemanager_title) {
title=editor.settings.filemanager_title;
}
var akey="key";
if (typeof editor.settings.filemanager_access_key !== "undefined" && editor.settings.filemanager_access_key) {
akey=editor.settings.filemanager_access_key;
}
var sort_by="";
if (typeof editor.settings.filemanager_sort_by !== "undefined" && editor.settings.filemanager_sort_by) {
sort_by="&sort_by="+editor.settings.filemanager_sort_by;
}
var descending=0;
if (typeof editor.settings.filemanager_descending !== "undefined" && editor.settings.filemanager_descending) {
descending=editor.settings.filemanager_descending;
}
var fldr="";
if (typeof editor.settings.filemanager_subfolder !== "undefined" && editor.settings.filemanager_subfolder) {
fldr="&fldr="+editor.settings.filemanager_subfolder;
}
var crossdomain="";
if (typeof editor.settings.filemanager_crossdomain !== "undefined" && editor.settings.filemanager_crossdomain) {
crossdomain="&crossdomain=1";
// Add handler for a message from ResponsiveFilemanager
if(window.addEventListener){
window.addEventListener('message', filemanager_onMessage, false);
} else {
window.attachEvent('onmessage', filemanager_onMessage);
}
}
window.addEventListener('message', function receiveMessage(event) {
window.removeEventListener('message', receiveMessage, false);
if (event.data.sender === 'responsivefilemanager') {
callback(event.data.url);
}
}, false);
var dialogUrl = editor.settings.external_filemanager_path+'dialog.php?type='+urltype+'&descending='+descending+sort_by+fldr+crossdomain+'&lang='+editor.settings.language+'&akey='+akey;
if (tinymce.majorVersion > 4) {
tinymce.activeEditor.windowManager.openUrl({
title: title,
url: dialogUrl,
width: width,
height: height,
resizable: true,
maximizable: true,
inline: 1,
});
} else {
tinymce.activeEditor.windowManager.open({
title: title,
file: dialogUrl,
width: width,
height: height,
resizable: true,
maximizable: true,
inline: 1,
});
}
}
return false;
});