forked from Studio-42/elFinder
-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.default.js
94 lines (85 loc) · 2.98 KB
/
main.default.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
"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. `<script data-main="./main.js" src="./require.js"></script>`
**/
(function(){
var // jQuery and jQueryUI version
jqver = '3.1.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);
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;
})(),
// elFinder options (REQUIRED)
// Documentation for client options:
// https://github.com/Studio-42/elFinder/wiki/Client-configuration-options
opts = {
url : 'php/connector.minimal.php', // connector URL (REQUIRED)
lang: lang // auto detected language (optional)
},
// 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();
})();