mapcomplete/Helpers.js
2020-07-20 15:59:48 +02:00

58 lines
2.1 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Helpers = void 0;
var Helpers = /** @class */ (function () {
function Helpers() {
}
Helpers.DoEvery = function (millis, f) {
window.setTimeout(function () {
f();
Helpers.DoEvery(millis, f);
}, millis);
};
Helpers.SetupAutoSave = function (changes, millisTillChangesAreSaved, saveAfterXMillis) {
changes.pendingChangesES.addCallback(function () {
var c = changes.pendingChangesES.data;
if (c > 10) {
millisTillChangesAreSaved.setData(0);
changes.uploadAll(undefined);
return;
}
if (c > 0) {
millisTillChangesAreSaved.setData(saveAfterXMillis);
}
});
millisTillChangesAreSaved.addCallback(function (time) {
if (time <= 0 && changes.pendingChangesES.data > 0) {
changes.uploadAll(undefined);
}
});
Helpers.DoEvery(1000, function () {
millisTillChangesAreSaved
.setData(millisTillChangesAreSaved.data - 1000);
});
};
/*
* Registers an action that:
* -> Upload everything to OSM
* -> Asks the user not to close. The 'not to close' dialog should profide enough time to upload
* -> WHen uploading is done, the window is closed anyway
*/
Helpers.LastEffortSave = function (changes) {
window.addEventListener("beforeunload", function (e) {
// Quickly save everyting!
if (changes.pendingChangesES.data == 0) {
return "";
}
changes.uploadAll(function () {
window.close();
});
var confirmationMessage = "Nog even geduld - je laatset wijzigingen worden opgeslaan!";
(e || window.event).returnValue = confirmationMessage; //Gecko + IE
return confirmationMessage; //Webkit, Safari, Chrome
});
};
return Helpers;
}());
exports.Helpers = Helpers;