From dc7576a9ef693298ad49c0b9062a8ea7631632bc Mon Sep 17 00:00:00 2001 From: Teja Date: Fri, 9 Jan 2015 13:11:20 +0100 Subject: [PATCH] save button replaced with auto saving. --- .../svgtogcode_settings_dialog.jinja2 | 6 +- src/octoprint/static/css/mrbeam.css | 18 ++++- .../static/js/app/viewmodels/settings.js | 47 ++++++++++++- .../templates/settings_mrbeam.jinja2 | 66 +++++++++---------- 4 files changed, 97 insertions(+), 40 deletions(-) diff --git a/src/octoprint/plugins/svgtogcode/templates/svgtogcode_settings_dialog.jinja2 b/src/octoprint/plugins/svgtogcode/templates/svgtogcode_settings_dialog.jinja2 index 669690eb..07044e44 100644 --- a/src/octoprint/plugins/svgtogcode/templates/svgtogcode_settings_dialog.jinja2 +++ b/src/octoprint/plugins/svgtogcode/templates/svgtogcode_settings_dialog.jinja2 @@ -5,19 +5,19 @@
- +
- +
diff --git a/src/octoprint/static/css/mrbeam.css b/src/octoprint/static/css/mrbeam.css index 1b40efaa..8e66ae8e 100644 --- a/src/octoprint/static/css/mrbeam.css +++ b/src/octoprint/static/css/mrbeam.css @@ -1619,4 +1619,20 @@ input.search-query, #control_btns .distance { min-height:24px; -} \ No newline at end of file +} + +#settingsTabs li.saveInProgress a:after { + content:"\f021"; + font-family: FontAwesome; + font-weight: normal; + font-style: normal; + margin-left: 0.7em; + text-decoration: inherit; + -webkit-font-smoothing: antialiased; + display: inline-block; + -moz-animation: spin 2s infinite linear; + -o-animation: spin 2s infinite linear; + -webkit-animation: spin 2s infinite linear; + animation: spin 2s infinite linear; +} + diff --git a/src/octoprint/static/js/app/viewmodels/settings.js b/src/octoprint/static/js/app/viewmodels/settings.js index f146a2a5..23a8360e 100644 --- a/src/octoprint/static/js/app/viewmodels/settings.js +++ b/src/octoprint/static/js/app/viewmodels/settings.js @@ -1,6 +1,7 @@ function SettingsViewModel(loginStateViewModel, usersViewModel) { var self = this; + self.savetimer = undefined; self.loginState = loginStateViewModel; self.users = usersViewModel; @@ -214,6 +215,16 @@ function SettingsViewModel(loginStateViewModel, usersViewModel) { self.printer_invertY = self.koInvertAxis('y'); self.printer_invertZ = self.koInvertAxis('z'); + self.saveall = function(e, v){ +// $("#settings_save_btn").css("visibility", "visible"); + + $("#settingsTabs li.active").addClass('saveInProgress'); + if(self.savetimer !== undefined){ + clearTimeout(self.savetimer); + } + self.savetimer = setTimeout(self.instantSaveData, 2000); + }; + self.requestData = function(callback) { $.ajax({ url: API_BASEURL + "settings", @@ -297,8 +308,8 @@ function SettingsViewModel(loginStateViewModel, usersViewModel) { self.terminalFilters(response.terminalFilters); }; - self.saveData = function() { - var data = ko.mapping.toJS(self.settings); + self.collectData = function (){ + var data = ko.mapping.toJS(self.settings); data = _.extend(data, { "api" : { "enabled": self.api_enabled(), @@ -371,7 +382,13 @@ function SettingsViewModel(loginStateViewModel, usersViewModel) { }, "terminalFilters": self.terminalFilters() }); + return data; + }; + self.saveData = function() { + + var data = self.collectData(); + $.ajax({ url: API_BASEURL + "settings", type: "POST", @@ -381,7 +398,31 @@ function SettingsViewModel(loginStateViewModel, usersViewModel) { success: function(response) { self.fromResponse(response); // $("#settings_dialog").modal("hide"); - $("#settings_save_btn").attr("disabled", "disabled"); +// $("#settings_save_btn").attr("disabled", "disabled"); + $("#settings_save_btn").css("visibility", "hidden"); + console.log("save callback"); + + } + }); + }; + + self.instantSaveData = function() { + + var data = self.collectData(); + + $.ajax({ + url: API_BASEURL + "settings", + type: "POST", + dataType: "json", + contentType: "application/json; charset=UTF-8", + data: JSON.stringify(data), + success: function(response) { +// self.fromResponse(response); +// $("#settings_dialog").modal("hide"); +// $("#settings_save_btn").attr("disabled", "disabled"); +// $("#settings_save_btn").css("visibility", "hidden"); + $("#settingsTabs li.active").removeClass('saveInProgress'); + self.savetimer = undefined; } }); }; diff --git a/src/octoprint/templates/settings_mrbeam.jinja2 b/src/octoprint/templates/settings_mrbeam.jinja2 index d3204f59..6a8125c3 100644 --- a/src/octoprint/templates/settings_mrbeam.jinja2 +++ b/src/octoprint/templates/settings_mrbeam.jinja2 @@ -1,4 +1,4 @@ -