mirror of
https://github.com/Studio-42/elFinder
synced 2026-06-08 12:37:09 +00:00
48576af671
* Refactor touch event binding in elfinder.js (#3762) for jquery 4.0 * Refactor name trimming in elFinder.resources.js (#3763) for jquery 4.0 * Replace jQuery methods with native JavaScript equivalents (#3764) for jquery 4.0 * Refactor command binding to use bind method (#3765) for jquery 4.0 * Refactor search input value handling and buttonset (#3766) for jquery 4.0 * Refactor function calls to use bind instead of proxy (#3767) for jquery 4.0 * Refactor text trimming method in parseUploadData (#3768) for jquery 4.0 * Fix mime trimming and whitespace handling (#3769) for jquery 4.0 * Refactor value trimming to use native trim method (#3772) for jquery 4.0 * Fix binding of 'make' method in mkfile.js (#3773) for jquery 4.0 * Fix binding of make function in mkdir command (#3774) for jquery 4.0 * Fix string trimming for translator names (#3775) for jquery 4.0 * Fix binding of mixin make function in edit.js (#3776) For jquery 4 * Refactor permission value trimming method (#3777) For jquery 4.0 * fix: to support jQuery 4.0.0 * update: use jQuery 4.0.0/jQueyUI 1.14.2 --------- Co-authored-by: Brian Stone <brianstone@hotmail.com.au>
109 lines
3.1 KiB
JavaScript
109 lines
3.1 KiB
JavaScript
/**
|
|
* 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 = '4.0.0',
|
|
uiver = '1.14.2',
|
|
|
|
// 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);
|
|
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;
|
|
})(),
|
|
|
|
// Start elFinder (REQUIRED)
|
|
start = function(elFinder, config) {
|
|
// load jQueryUI CSS
|
|
elFinder.prototype.loadCss('//code.jquery.com/ui/'+uiver+'/themes/smoothness/jquery-ui.css');
|
|
|
|
$(function() {
|
|
var opts = {};
|
|
|
|
// Interpretation of "elFinderConfig"
|
|
if (config && config.managers) {
|
|
$.each(config.managers, function(id, mOpts) {
|
|
opts = Object.assign(opts, config.defaultOpts || {});
|
|
// Make elFinder
|
|
$('#' + id).elfinder(
|
|
// 1st Arg - options
|
|
$.extend(true, { lang: lang }, opts, mOpts || {}),
|
|
// 2nd Arg - before boot up function
|
|
function(fm, extraObj) {
|
|
|
|
}
|
|
);
|
|
});
|
|
} else {
|
|
alert('"elFinderConfig" object is wrong.');
|
|
}
|
|
});
|
|
},
|
|
|
|
// JavaScript loader (REQUIRED)
|
|
load = function() {
|
|
require(
|
|
[
|
|
'elfinder'
|
|
, 'elFinderConfig'
|
|
],
|
|
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' : '//code.jquery.com/jquery-'+jqver+'.min',
|
|
'jquery-ui': '//code.jquery.com/ui/'+uiver+'/jquery-ui.min.js',
|
|
'elfinder' : 'elfinder-minimal.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)
|
|
},
|
|
managers : {
|
|
'elfinder': {},
|
|
}
|
|
});
|
|
}
|
|
|
|
// load JavaScripts (REQUIRED)
|
|
load();
|
|
|
|
})();
|