added elfinder module
This commit is contained in:
160
sites/all/libraries/elfinder/main.default.js
Normal file
160
sites/all/libraries/elfinder/main.default.js
Normal file
@@ -0,0 +1,160 @@
|
||||
/**
|
||||
* elFinder client options and main script for RequireJS
|
||||
*
|
||||
* Rename "main.default.js" to "main.js" and edit it if you need configure elFInder options or any things. And use that in elfinder.html.
|
||||
* e.g. `<script data-main="./main.js" src="./require.js"></script>`
|
||||
**/
|
||||
(function(){
|
||||
"use strict";
|
||||
var // jQuery and jQueryUI version
|
||||
jqver = '3.3.1',
|
||||
uiver = '1.12.1',
|
||||
|
||||
// Detect language (optional)
|
||||
lang = (function() {
|
||||
var locq = window.location.search,
|
||||
fullLang, locm, lang;
|
||||
if (locq && (locm = locq.match(/lang=([a-zA-Z_-]+)/))) {
|
||||
// detection by url query (?lang=xx)
|
||||
fullLang = locm[1];
|
||||
} else {
|
||||
// detection by browser language
|
||||
fullLang = (navigator.browserLanguage || navigator.language || navigator.userLanguage);
|
||||
}
|
||||
lang = fullLang.substr(0,2);
|
||||
if (lang === 'pt') lang = 'pt_BR';
|
||||
else if (lang === 'ug') lang = 'ug_CN';
|
||||
else if (lang === 'zh') lang = (fullLang.substr(0,5).toLowerCase() === 'zh-tw')? 'zh_TW' : 'zh_CN';
|
||||
return lang;
|
||||
})(),
|
||||
|
||||
// Start elFinder (REQUIRED)
|
||||
start = function(elFinder, editors, config) {
|
||||
// load jQueryUI CSS
|
||||
elFinder.prototype.loadCss('//cdnjs.cloudflare.com/ajax/libs/jqueryui/'+uiver+'/themes/smoothness/jquery-ui.css');
|
||||
|
||||
$(function() {
|
||||
var optEditors = {
|
||||
commandsOptions: {
|
||||
edit: {
|
||||
editors: Array.isArray(editors)? editors : []
|
||||
}
|
||||
}
|
||||
},
|
||||
opts = {};
|
||||
|
||||
// Interpretation of "elFinderConfig"
|
||||
if (config && config.managers) {
|
||||
$.each(config.managers, function(id, mOpts) {
|
||||
opts = Object.assign(opts, config.defaultOpts || {});
|
||||
// editors marges to opts.commandOptions.edit
|
||||
try {
|
||||
mOpts.commandsOptions.edit.editors = mOpts.commandsOptions.edit.editors.concat(editors || []);
|
||||
} catch(e) {
|
||||
Object.assign(mOpts, optEditors);
|
||||
}
|
||||
// Make elFinder
|
||||
$('#' + id).elfinder(
|
||||
// 1st Arg - options
|
||||
$.extend(true, { lang: lang }, opts, mOpts || {}),
|
||||
// 2nd Arg - before boot up function
|
||||
function(fm, extraObj) {
|
||||
// `init` event callback function
|
||||
fm.bind('init', function() {
|
||||
// Optional for Japanese decoder "encoding-japanese"
|
||||
if (fm.lang === 'ja') {
|
||||
require(
|
||||
[ 'encoding-japanese' ],
|
||||
function(Encoding) {
|
||||
if (Encoding && Encoding.convert) {
|
||||
fm.registRawStringDecoder(function(s) {
|
||||
return Encoding.convert(s, {to:'UNICODE',type:'string'});
|
||||
});
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
);
|
||||
});
|
||||
} else {
|
||||
alert('"elFinderConfig" object is wrong.');
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
// JavaScript loader (REQUIRED)
|
||||
load = function() {
|
||||
require(
|
||||
[
|
||||
'elfinder'
|
||||
, 'extras/editors.default.min' // load text, image editors
|
||||
, 'elFinderConfig'
|
||||
// , 'extras/quicklook.googledocs.min' // optional preview for GoogleApps contents on the GoogleDrive volume
|
||||
],
|
||||
start,
|
||||
function(error) {
|
||||
alert(error.message);
|
||||
}
|
||||
);
|
||||
},
|
||||
|
||||
// is IE8 or :? for determine the jQuery version to use (optional)
|
||||
old = (typeof window.addEventListener === 'undefined' && typeof document.getElementsByClassName === 'undefined')
|
||||
||
|
||||
(!window.chrome && !document.unqueID && !window.opera && !window.sidebar && 'WebkitAppearance' in document.documentElement.style && document.body.style && typeof document.body.style.webkitFilter === 'undefined');
|
||||
|
||||
// config of RequireJS (REQUIRED)
|
||||
require.config({
|
||||
baseUrl : 'js',
|
||||
paths : {
|
||||
'jquery' : '//cdnjs.cloudflare.com/ajax/libs/jquery/'+(old? '1.12.4' : jqver)+'/jquery.min',
|
||||
'jquery-ui': '//cdnjs.cloudflare.com/ajax/libs/jqueryui/'+uiver+'/jquery-ui.min',
|
||||
'elfinder' : 'elfinder.min',
|
||||
'encoding-japanese': '//cdn.rawgit.com/polygonplanet/encoding.js/1.0.26/encoding.min'
|
||||
},
|
||||
waitSeconds : 10 // optional
|
||||
});
|
||||
|
||||
// check elFinderConfig and fallback
|
||||
// This part don't used if you are using elfinder.html, see elfinder.html
|
||||
if (! require.defined('elFinderConfig')) {
|
||||
define('elFinderConfig', {
|
||||
// elFinder options (REQUIRED)
|
||||
// Documentation for client options:
|
||||
// https://github.com/Studio-42/elFinder/wiki/Client-configuration-options
|
||||
defaultOpts : {
|
||||
url : 'php/connector.minimal.php' // connector URL (REQUIRED)
|
||||
,commandsOptions : {
|
||||
edit : {
|
||||
extraOptions : {
|
||||
// set API key to enable Creative Cloud image editor
|
||||
// see https://console.adobe.io/
|
||||
creativeCloudApiKey : '',
|
||||
// browsing manager URL for CKEditor, TinyMCE
|
||||
// uses self location with the empty value
|
||||
managerUrl : ''
|
||||
}
|
||||
}
|
||||
,quicklook : {
|
||||
// to enable CAD-Files and 3D-Models preview with sharecad.org
|
||||
sharecadMimes : ['image/vnd.dwg', 'image/vnd.dxf', 'model/vnd.dwf', 'application/vnd.hp-hpgl', 'application/plt', 'application/step', 'model/iges', 'application/vnd.ms-pki.stl', 'application/sat', 'image/cgm', 'application/x-msmetafile'],
|
||||
// to enable preview with Google Docs Viewer
|
||||
googleDocsMimes : ['application/pdf', 'image/tiff', 'application/vnd.ms-office', 'application/msword', 'application/vnd.ms-word', 'application/vnd.ms-excel', 'application/vnd.ms-powerpoint', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/vnd.openxmlformats-officedocument.presentationml.presentation', 'application/postscript', 'application/rtf'],
|
||||
// to enable preview with Microsoft Office Online Viewer
|
||||
// these MIME types override "googleDocsMimes"
|
||||
officeOnlineMimes : ['application/vnd.ms-office', 'application/msword', 'application/vnd.ms-word', 'application/vnd.ms-excel', 'application/vnd.ms-powerpoint', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/vnd.openxmlformats-officedocument.presentationml.presentation', 'application/vnd.oasis.opendocument.text', 'application/vnd.oasis.opendocument.spreadsheet', 'application/vnd.oasis.opendocument.presentation']
|
||||
}
|
||||
}
|
||||
},
|
||||
managers : {
|
||||
'elfinder': {},
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// load JavaScripts (REQUIRED)
|
||||
load();
|
||||
|
||||
})();
|
||||
Reference in New Issue
Block a user