"use strict"; /** * 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 () { var // jQuery and jQueryUI version jqver = '3.2.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); lang = elfinder_lang; if (lang === 'ja') lang = 'jp'; else 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; })(), // elFinder options (REQUIRED) // Documentation for client options: // https://github.com/Studio-42/elFinder/wiki/Client-configuration-options opts = { getFileCallback: function (file, fm) { // pass selected file data to TinyMCE parent.tinymce.activeEditor.windowManager.getParams().oninsert(file, fm); // close popup window parent.tinymce.activeEditor.windowManager.close(); }, url: 'php/connector.minimal.php', // connector URL (REQUIRED) lang: lang, // auto detected language (optional) uiOptions: { // toolbar configuration toolbar: [ ['upload'], ['download', 'getfile'], ['copy', 'cut', 'paste', 'rm'], ['duplicate', 'rename', 'resize', 'chmod'], ['info'], ['search'], ['view', 'sort'], ], //ori setting /*toolbar : [ ['home', 'back', 'forward', 'up', 'reload'], ['netmount'], ['mkdir', 'mkfile', 'upload'], ['open', 'download', 'getfile'], ['undo', 'redo'], ['copy', 'cut', 'paste', 'rm', 'empty'], ['duplicate', 'rename', 'edit', 'resize', 'chmod'], ['selectall', 'selectnone', 'selectinvert'], ['quicklook', 'info'], ['extract', 'archive'], ['search'], ['view', 'sort'], ['help'], ['fullscreen'] ],*/ }, contextmenu: { // navbarfolder menu navbar: ['open', 'download', '|', 'upload', 'mkdir', '|', 'copy', 'cut', 'paste', 'duplicate', '|', 'rm', '|', 'rename', '|', 'places', 'info', 'chmod', 'netunmount'], // current directory menu cwd: ['undo', 'redo', '|', 'back', 'up', 'reload', '|', 'upload', 'mkdir', 'mkfile', 'paste', '|', 'view', 'sort', 'selectall', 'colwidth', '|', 'info', '|', 'fullscreen', '|', 'preference'], // current directory file menu files: ['getfile', '|', 'open', 'download', 'opendir', 'quicklook', '|', 'upload', 'mkdir', '|', 'copy', 'cut', 'paste', 'duplicate', '|', 'rm', 'rename', 'edit', 'resize', '|', 'selectall', 'selectinvert', '|', 'places', 'info', 'chmod'] //ori setting /*// navbarfolder menu navbar : ['open', 'download', '|', 'upload', 'mkdir', '|', 'copy', 'cut', 'paste', 'duplicate', '|', 'rm', 'empty', '|', 'rename', '|', 'archive', '|', 'places', 'info', 'chmod', 'netunmount'], // current directory menu cwd : ['undo', 'redo', '|', 'back', 'up', 'reload', '|', 'upload', 'mkdir', 'mkfile', 'paste', '|', 'empty', '|', 'view', 'sort', 'selectall', 'colwidth', '|', 'info', '|', 'fullscreen', '|', 'preference'], // current directory file menu files : ['getfile', '|' ,'open', 'download', 'opendir', 'quicklook', '|', 'upload', 'mkdir', '|', 'copy', 'cut', 'paste', 'duplicate', '|', 'rm', 'empty', '|', 'rename', 'edit', 'resize', '|', 'archive', 'extract', '|', 'selectall', 'selectinvert', '|', 'places', 'info', 'chmod', 'netunmount']*/ }, }, // Start elFinder (REQUIRED) start = function (elFinder) { // load jQueryUI CSS elFinder.prototype.loadCss('//cdnjs.cloudflare.com/ajax/libs/jqueryui/' + uiver + '/themes/smoothness/jquery-ui.css'); $(function () { // Optional for Japanese decoder "extras/encoding-japanese.min" if (window.Encoding && Encoding.convert) { elFinder.prototype._options.rawStringDecoder = function (s) { return Encoding.convert(s, {to: 'UNICODE', type: 'string'}); }; } // Make elFinder (REQUIRED) $('#elfinder').elfinder(opts); }); }, // JavaScript loader (REQUIRED) load = function () { require( [ 'elfinder' , (lang !== 'en') ? 'elfinder.lang' : null // load detected language // , 'extras/quicklook.googledocs' // optional preview for GoogleApps contents on the GoogleDrive volume // , (lang === 'jp')? 'extras/encoding-japanese.min' : null // optional Japanese decoder for archive preview ], start, function (error) { alert(error.message); } ); }, // is IE8? for determine the jQuery version to use (optional) ie8 = (typeof window.addEventListener === 'undefined' && typeof document.getElementsByClassName === 'undefined'); // config of RequireJS (REQUIRED) require.config({ baseUrl: 'js', paths: { 'jquery': '//cdnjs.cloudflare.com/ajax/libs/jquery/' + (ie8 ? '1.12.4' : jqver) + '/jquery.min', 'jquery-ui': '//cdnjs.cloudflare.com/ajax/libs/jqueryui/' + uiver + '/jquery-ui.min', 'elfinder': 'elfinder.min', 'elfinder.lang': [ 'i18n/elfinder.' + lang, 'i18n/elfinder.fallback' ] }, waitSeconds: 10 // optional }); // load JavaScripts (REQUIRED) load(); })();