summaryrefslogtreecommitdiffstats
path: root/module/web/static/js/models
diff options
context:
space:
mode:
Diffstat (limited to 'module/web/static/js/models')
-rw-r--r--module/web/static/js/models/ConfigHolder.js14
-rw-r--r--module/web/static/js/models/ConfigItem.js15
2 files changed, 27 insertions, 2 deletions
diff --git a/module/web/static/js/models/ConfigHolder.js b/module/web/static/js/models/ConfigHolder.js
index abd1b9f0a..37af9d70e 100644
--- a/module/web/static/js/models/ConfigHolder.js
+++ b/module/web/static/js/models/ConfigHolder.js
@@ -25,7 +25,19 @@ define(['jquery', 'backbone', 'underscore', 'app', './ConfigItem'],
},
save: function(options) {
- // TODO
+ var config = this.toJSON();
+ var items = [];
+ // Convert changed items to json
+ _.each(config.items, function(item) {
+ if (item.isChanged()) {
+ items.push(item.prepareSave());
+ }
+ });
+ config.items = items;
+
+ options = App.apiRequest('saveConfig', {config: config}, options);
+
+ return $.ajax(options);
},
parse: function(resp) {
diff --git a/module/web/static/js/models/ConfigItem.js b/module/web/static/js/models/ConfigItem.js
index 636c28851..01a85c6cc 100644
--- a/module/web/static/js/models/ConfigItem.js
+++ b/module/web/static/js/models/ConfigItem.js
@@ -8,7 +8,7 @@ define(['jquery', 'backbone', 'underscore', 'app', 'utils/apitypes'],
label: "",
description: "",
input: null,
- default_valie: null,
+ default_value: null,
value: null,
// additional attributes
inputView: null
@@ -21,6 +21,19 @@ define(['jquery', 'backbone', 'underscore', 'app', 'utils/apitypes'],
isChanged: function() {
return this.get('inputView') && this.get('inputView').getVal() !== this.get('value');
+ },
+
+ // set new value and return json
+ prepareSave: function() {
+ // set the new value
+ if (this.get('inputView'))
+ this.set('value', this.get('inputView').getVal());
+
+ var data = this.toJSON();
+ delete data.inputView;
+ delete data.description;
+
+ return data;
}
});
}); \ No newline at end of file