const M = kivi.Materialize;
let num_images = 0;
+ ns.upload_in_progress = undefined;
ns.add_files = function(target) {
let files = [];
};
ns.upload_selected_files = function(id, type, maxsize) {
+ $("#upload_modal").modal({ dismissible: false });
$("#upload_modal").modal("open");
kivi.FileDB.retrieve_all((myfiles) => {
let filesize = 0;
- myfiles.forEach(file => {
- filesize += file.size;
- if (filesize > maxsize) {
- M.flash(kivi.t8("filesize too big: ") + ns.format_si(filesize) + kivi.t8(" > ") + ns.format_si(maxsize));
- $("#upload_modal").modal("close");
- return;
- }
+ myfiles.forEach(file => filesize += file.size);
+
+ if (filesize > maxsize) {
+ M.flash(kivi.t8("filesize too big: ") + ns.format_si(filesize) + " > " + ns.format_si(maxsize));
+ $("#upload_modal").modal("close");
+ return;
+ }
- let data = new FormData();
- data.append("uploadfiles[]", file);
- data.append("action", "File/ajax_files_uploaded");
- data.append("json", "1");
- data.append("object_type", type);
- data.append("object_id", id);
- data.append("file_type", "attachment");
-
- $("#upload_result").html(kivi.t8("start upload"));
-
- let xhr = new XMLHttpRequest;
- xhr.open('POST', 'controller.pl', true);
- xhr.onload = ns.attSuccess;
- xhr.upload.onprogress = ns.attProgress;
- xhr.upload.onerror = ns.attFailed;
- xhr.upload.onabort = ns.attCanceled;
- xhr.send(data);
- });
+ let data = new FormData();
+ myfiles.forEach(file => data.append("uploadfiles[]", file));
+ data.append("action", "File/ajax_files_uploaded");
+ data.append("json", "1");
+ data.append("object_type", type);
+ data.append("object_id", id);
+ data.append("file_type", "attachment");
+
+ $("#upload_result").html(kivi.t8("start upload"));
+
+ let xhr = new XMLHttpRequest;
+ xhr.open('POST', 'controller.pl', true);
+ xhr.onload = ns.upload_complete;
+ xhr.upload.onprogress = ns.progress;
+ xhr.upload.onerror = ns.failed;
+ xhr.upload.onabort = ns.abort;
+ xhr.send(data);
+
+ ns.upload_in_progress = xhr;
});
};
- ns.attProgress = function(event) {
+ ns.progress = function(event) {
if (event.lengthComputable) {
var percent_complete = (event.loaded / event.total) * 100;
$("#upload_progress div").removeClass("indeterminate").addClass("determinate").attr("style", "width: " + percent_complete + "%");
}
};
- ns.attFailed = function() {
+ ns.failed = function() {
$('#upload_modal').modal('close');
M.flash(kivi.t8("An error occurred while transferring the file."));
};
- ns.attCanceled = function() {
+ ns.abort = function() {
$('#upload_modal').modal('close');
M.flash(kivi.t8("The transfer has been canceled by the user."));
+
+ ns.upload_in_progress = undefined;
};
- ns.attSuccess = function() {
+ ns.upload_complete = function() {
$('#upload_modal').modal('close');
M.flash(kivi.t8("Files have been uploaded successfully."));
kivi.FileDB.delete_all(ns.reload_images);