mirror of https://gitee.com/zorlan/skycaiji
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
175 lines
6.2 KiB
175 lines
6.2 KiB
/** |
|
* 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.6.0', |
|
uiver = '1.12.1', |
|
|
|
// Detect language (optional) |
|
lang = (function() { |
|
var locq = window.location.search, |
|
map = { |
|
'pt' : 'pt_BR', |
|
'ug' : 'ug_CN', |
|
'zh' : 'zh_CN' |
|
}, |
|
full = { |
|
'zh_tw' : 'zh_TW', |
|
'zh_cn' : 'zh_CN', |
|
'fr_ca' : 'fr_CA' |
|
}, |
|
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 || ''); |
|
} |
|
fullLang = fullLang.replace('-', '_').substr(0,5).toLowerCase(); |
|
if (full[fullLang]) { |
|
lang = full[fullLang]; |
|
} else { |
|
lang = (fullLang || 'en').substr(0,2); |
|
if (map[lang]) { |
|
lang = map[lang]; |
|
} |
|
} |
|
return lang; |
|
})(), |
|
|
|
// Start elFinder (REQUIRED) |
|
start = function(elFinder, editors, config) { |
|
// load jQueryUI CSS |
|
elFinder.prototype.loadCss(window.elfinderPath+'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' : window.elfinderPath+(old? 'jquery_old.min' : 'jquery_new.min'), |
|
'jquery-ui': window.elfinderPath+'jquery-ui.min', |
|
'elfinder' : 'elfinder.min', |
|
'encoding-japanese': window.elfinderPath+'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(); |
|
|
|
})();
|
|
|