123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175 |
- /**
- * 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.4.1',
- 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('//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();
- })();
|