From af4566375dc5cd5a427905bfe9d98b41e7212518 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gina=20H=C3=A4u=C3=9Fge?= Date: Thu, 16 Jul 2015 13:59:44 +0200 Subject: [PATCH] SettingsViewModel now allows enqueuing data for saving New method "enqueueForSaving" allows continously building up a settings dict to be persisted, new method "saveEnqueued" finally allows saving it. --- .../static/js/app/viewmodels/settings.js | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/octoprint/static/js/app/viewmodels/settings.js b/src/octoprint/static/js/app/viewmodels/settings.js index c860402f..6f7201b5 100644 --- a/src/octoprint/static/js/app/viewmodels/settings.js +++ b/src/octoprint/static/js/app/viewmodels/settings.js @@ -6,6 +6,8 @@ $(function() { self.users = parameters[1]; self.printerProfiles = parameters[2]; + self.enqueuedForSaving = undefined; + self.api_enabled = ko.observable(undefined); self.api_key = ko.observable(undefined); self.api_allowCrossOrigin = ko.observable(undefined); @@ -515,6 +517,25 @@ $(function() { } }); }; + + self.enqueueForSaving = function(data) { + if (self.enqueuedForSaving == undefined) { + self.enqueuedForSaving = data; + } else { + _.extend(self.enqueuedForSaving, data); + } + }; + + self.saveEnqueued = function(callback) { + var data = self.enqueuedForSaving; + self.enqueuedForSaving = undefined; + + if (data == undefined) { + return; + } + + self.saveData(data, callback); + } } OCTOPRINT_VIEWMODELS.push([