/** * 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. `` **/ (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(); })();