| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- "use strict";
- (function(){
- var queryString = location.search;
- var query = {};
- var pairs = (queryString[0] === '?' ? queryString.substr(1) : queryString).split('&');
- for (var i = 0; i < pairs.length; i++) {
- var pair = pairs[i].split('=');
- query[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || '');
- }
-
- var fredToken = query.fredToken || '';
- delete query.fredToken;
-
- var serialize = function(obj, prefix) {
- var str = [],
- p;
- for (p in obj) {
- if (obj.hasOwnProperty(p)) {
- var k = prefix ? prefix + "[" + p + "]" : p,
- v = obj[p];
- str.push((v !== null && typeof v === "object") ?
- serialize(v, k) :
- encodeURIComponent(k) + "=" + encodeURIComponent(v));
- }
- }
- return str.join("&");
- };
- queryString = serialize(query);
-
- if (queryString.length > 0) {
- queryString = '?' + queryString;
- }
-
- var jqver = '3.2.1',
- uiver = '1.12.1',
- lang = (function() {
- var locq = window.location.search,
- fullLang, locm, lang;
- if (locq && (locm = locq.match(/lang=([a-zA-Z_-]+)/))) {
- fullLang = locm[1];
- } else {
- fullLang = (navigator.browserLanguage || navigator.language || navigator.userLanguage);
- }
- lang = fullLang.substr(0,2);
- 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) === 'zh-TW')? 'zh_TW' : 'zh_CN';
- return lang;
- })(),
- opts = {
- cssAutoLoad : ['../vendor/elfinder-themes/material/css/theme-gray.css'],
- getFileCallback : function(file, fm) {
- if (parent.fredFinderOnChange && (typeof parent.fredFinderOnChange === 'function')) {
- parent.fredFinderOnChange(file, fm);
- }
- },
- resizable : false,
- width : '100%',
- height : '100%',
- url : '../endpoints/elfinder.php' + queryString,
- customHeaders: {
- 'X-Fred-Token': fredToken
- },
- lang: lang,
- uiOptions: {
- toolbar: [
- ['home', 'back', 'forward', 'up', 'reload'],
- ['mkdir', 'upload', 'download'],
- ['undo', 'redo'],
- ['copy', 'cut', 'paste', 'rm'],
- ['duplicate', 'rename', 'edit', 'resize', 'chmod'],
- ['selectall', 'selectnone', 'selectinvert'],
- ['quicklook', 'info'],
- ['search'],
- ['view', 'sort']
- ]
- },
- contextmenu : {
- navbar : ['open', 'opennew', 'download', '|', 'upload', 'mkdir', '|', 'copy', 'cut', 'paste', 'duplicate', '|', 'rm', '|', 'rename', '|', 'places', 'info', 'chmod', 'netunmount'],
- cwd : ['undo', 'redo', '|', 'back', 'up', 'reload', '|', 'upload', 'mkdir', 'paste', '|', 'view', 'sort', 'selectall', 'colwidth', '|', 'places', 'info', 'chmod', 'netunmount', '|', 'fullscreen', '|', 'preference'],
- files : ['getfile', '|' ,'open', 'opennew', 'download', 'opendir', 'quicklook', '|', 'upload', 'mkdir', '|', 'copy', 'cut', 'paste', 'duplicate', '|', 'rm', '|', 'rename', 'edit', 'resize', '|', 'selectall', 'selectinvert', '|', 'places', 'info', 'chmod', 'netunmount']
- },
- },
- start = function(elFinder) {
- elFinder.prototype.loadCss('//cdnjs.cloudflare.com/ajax/libs/jqueryui/'+uiver+'/themes/smoothness/jquery-ui.css');
- $(function() {
- if (window.Encoding && Encoding.convert) {
- elFinder.prototype._options.rawStringDecoder = function(s) {
- return Encoding.convert(s,{to:'UNICODE',type:'string'});
- };
- }
-
- $('#elfinder').elfinder(opts).elfinder('instance').exec('fullscreen');
- });
- },
-
- load = function() {
- require(
- [
- 'elfinder',
- (lang !== 'en')? 'elfinder.lang' : null
- ],
- start,
- function(error) {
- alert(error.message);
- }
- );
- },
- ie8 = (typeof window.addEventListener === 'undefined' && typeof document.getElementsByClassName === 'undefined');
- require.config({
- baseUrl : '../vendor/elfinder/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
- });
- load();
- })();
|