-
Notifications
You must be signed in to change notification settings - Fork 0
/
add_file.js
126 lines (115 loc) · 3.33 KB
/
add_file.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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
// plupload
var url = fm_settings.url + '/plupload-3.1.5/js'
FileMan.head.push(['script', {
type:'text/javascript',
charset:'UTF-8',
src: url + '/plupload.full.min.js'
}]);
FileMan.head.push(['script', {
type:'text/javascript',
charset:'UTF-8',
src: url + '/jquery.plupload.queue/jquery.plupload.queue.min.js'
}]);
FileMan.head.push(['link', {
type:'text/css',
rel:'stylesheet',
href: url + '/jquery.plupload.queue/css/jquery.plupload.queue.css'
}]);
const dlg_add_file = {
selector: false,
open: function(destpath) {
if(dlg_add_file.selector) dlg_add_file.selector.dialog('open');
else {
// create upload dialogue
dlg_add_file.selector = $('<div id="fm-add_file"></div>')
.html('<div>Your browser does not support uploads.</div><pre></pre>')
.dialog({
height: 500,
width: 575,
modal: true,
close: function() {
dlg_add_file.close();
}
});
}
if(!destpath.endsWith('/')) destpath += '/';
dlg_add_file.selector.find('pre').html('Destination: ' + destpath);
var mime_types = [];
for(type in fm_settings.upload_types) {
if(!FileMan.filter || type==FileMan.filter) {
mime_types.push({title:type, extensions: fm_settings.upload_types[type]});
}
}
dlg_add_file.selector.find('div').pluploadQueue({
// General settings
//runtimes : 'html5,flash,html4',
url: fm_settings.url + '/add_file.php',
max_file_count: 20,
chunk_size: '1mb',
multipart_params: {
destpath: destpath
},
filters: {
max_file_size : fm_settings.max_file_size,
prevent_duplicates: true,
mime_types: mime_types
},
// Rename files by clicking on their titles
rename: true,
// Sort files
sortable: true,
dragdrop: true,
// Views to activate
views: {
list: true,
thumbs: true,
active: 'thumbs'
},
init: {
FileUploaded: function(uploader, file, result) {
var error = {code: 0, message: 'Error'};
try {
var filename = file.name;
obj = JSON.parse(result.response);
if(typeof(obj.error) !== 'undefined') {
error.code = typeof(obj.error.code)=='undefined' ? 9999 : obj.error.code ;
error.message = typeof(obj.error.message)=='undefined' ? 'Undefined error' : obj.error.message ;
}
} catch(e) {
error.code = 9999;
error.message = e;
}
if(error.code) {
uploader.trigger("Error", error);
return false;
}
dlg_add_file.selector.find('pre').append("\n- " + filename);
},
Error: function(uploader, error) {
var message = 'error';
try {
message = error.message;
if(typeof(error.response) == 'string') {
response = JSON.parse(error.response);
if(typeof(response.error.message) != 'undefined') message += ' ' + response.error.message;
}
} catch(e) {
message += '(' + e + ')';
}
dlg_add_file.selector.find('pre').append("\n* " + message);
}
}
});
},
close: function() {
}
}
FileMan.buttonbar += '<button data-process="add_file" title="upload files" onclick="FileMan.dlg.add_file();"></button>';
$(function() {
FileMan.dlg.add_file = function() {
dlg_add_file.close = function() {
FileMan.process({get_dir: FileMan.dir});
}
dlg_add_file.open(FileMan.dir);
};
});