Ungültige Sprachen nicht mehr im Angebot/Auftrag/Beistell-LS
[kivitendo-erp.git] / js / kivi.ImageUpload.js
index 5d22a0a..24bd262 100644 (file)
@@ -5,6 +5,7 @@ namespace("kivi.ImageUpload", function(ns) {
   const M = kivi.Materialize;
 
   let num_images = 0;
+  ns.upload_in_progress = undefined;
 
   ns.add_files = function(target) {
     let files = [];
@@ -67,57 +68,61 @@ namespace("kivi.ImageUpload", function(ns) {
   };
 
   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);