});
};
- ns.delete_all= function() {
- ns.retrieve_all_keys((keys) => {
- keys.forEach((key) => ns.delete_key(key));
+ ns.delete_all = function(success) {
+ ns.open_rw_store((store) => {
+ let request = store.clear();
+ request.onsuccess = success;
+ request.onerror = ns.error;
});
};
- ns.delete_key= function(key, success) {
+ ns.delete_key = function(key, success) {
ns.open_rw_store((store) => {
let request = store.delete(key);
request.onsuccess = (event) => { if (success) success(event.target.result); };
"use strict";
const MAXSIZE = 15*1024*1024; // 5MB size limit
+ const M = kivi.Materialize;
let num_images = 0;
myfiles.forEach(file => {
filesize += file.size;
if (filesize > maxsize) {
- $("#upload_result").html(kivi.t8("filesize too big: ") + filesize+ kivi.t8(" bytes, max=") + maxsize );
+ M.flash(kivi.t8("filesize too big: ") + ns.format_si(filesize) + kivi.t8(" > ") + ns.format_si(maxsize));
+ $("#upload_modal").modal("close");
return;
}
let xhr = new XMLHttpRequest;
xhr.open('POST', 'controller.pl', true);
- xhr.success = ns.attSuccess;
- xhr.progress = ns.attProgress;
- xhr.error = ns.attFailed;
- xhr.abort = ns.attCanceled;
+ xhr.onload = ns.attSuccess;
+ xhr.upload.onprogress = ns.attProgress;
+ xhr.upload.onerror = ns.attFailed;
+ xhr.upload.onabort = ns.attCanceled;
xhr.send(data);
});
});
ns.attProgress = function(event) {
if (event.lengthComputable) {
- var percentComplete = (event.loaded / event.total) * 100;
- $("#upload_result").html(percentComplete+" % "+ kivi.t8("uploaded"));
+ var percent_complete = (event.loaded / event.total) * 100;
+ $("#upload_progress div").removeClass("indeterminate").addClass("determinate").attr("style", "width: " + percent_complete + "%");
}
};
ns.attFailed = function() {
$('#upload_modal').modal('close');
- $("#upload_result").html(kivi.t8("An error occurred while transferring the file."));
+ M.flash(kivi.t8("An error occurred while transferring the file."));
};
ns.attCanceled = function() {
$('#upload_modal').modal('close');
- $("#upload_result").html(kivi.t8("The transfer has been canceled by the user."));
+ M.flash(kivi.t8("The transfer has been canceled by the user."));
};
ns.attSuccess = function() {
$('#upload_modal').modal('close');
- $("#upload_result").html(kivi.t8("Files have been uploaded successfully."));
+ M.flash(kivi.t8("Files have been uploaded successfully."));
+ kivi.FileDB.delete_all(ns.reload_images);
};
ns.resolve_object = function(event) {
});
};
+ /* this tries to format the number human readable. 3 significant digits, si suffix, */
+ ns.format_si = function(n) {
+ const prefixes = ["", "K" , "M", "G", "T", "P"];
+ let i = 0;
+ while (n >= 1024) {
+ n /= 1024;
+ i++;
+ }
+
+ return kivi.format_amount(n, 3 - (n|0).toString().length) + prefixes[i] + "B";
+ };
+
ns.init = function() {
ns.reload_images();
};
<h4>[% source.title | html %]</h4>
- <div id="updoad_result"></div>
-
<p>Schritt 1: Bilder machen</p>
<div id="stored-images" class="container">
<div class="row">
[% P.M.input_tag("object_number", "", label=LxERP.t8("Number"), class="col s4", onkeyup="kivi.ImageUpload.resolve_object(event)") %]
<div id="object_description" class="col s8">-</div>
- [% P.M.button_tag("kivi.ImageUpload.upload_files()", LxERP.t8("Upload Images"), class="col s12") %]
+ [% P.M.button_tag("kivi.ImageUpload.upload_files()", LxERP.t8("Upload Images"), id="upload_images_submit", class="col s12") %]
</div>
<div class="modal-content">
<h4>Uploading</h4>
- <div class="progress">
+ <div id="upload_progress" class="progress">
<div class="indeterminate"></div>
</div>
</div>