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 @@
-
+
@@ -28,7 +28,7 @@
-
+
@@ -36,7 +36,7 @@
@@ -46,7 +46,7 @@
@@ -55,7 +55,7 @@
@@ -63,13 +63,13 @@
-
+