Commit 9db5d0e4 authored by Roque's avatar Roque

erp5_web_renderjs_ui: refactor setSetting and setSettingList

parent 5bfdb8c4
......@@ -274,6 +274,26 @@
});
}
function handleSetSetting(gadget, argument_list, putSettingFunction) {
var jio_gadget, doc;
return gadget.getDeclaredGadget("setting_gadget")
.push(function (result) {
jio_gadget = result;
return jio_gadget.get(gadget.state.setting_id);
})
.push(function (result) {
doc = result;
}, function (error) {
if (error.status_code === 404) {
doc = {};
}
throw error;
})
.push(function () {
return putSettingFunction(gadget, jio_gadget, doc, argument_list);
});
}
rJS(window)
// Add mutex protected defered gadget loader.
......@@ -423,57 +443,34 @@
});
})
.allowPublicAcquisition("setSetting", function setSetting(argument_list) {
var jio_gadget,
gadget = this,
key = argument_list[0],
value = argument_list[1];
return gadget.getDeclaredGadget("setting_gadget")
.push(function (result) {
jio_gadget = result;
return jio_gadget.get(gadget.state.setting_id);
})
.push(undefined, function (error) {
if (error.status_code === 404) {
return {};
}
throw error;
})
.push(function (doc) {
doc[key] = value;
return jio_gadget.put(gadget.state.setting_id, doc);
});
var gadget = this;
function putSingleSetting(gadget, jio_gadget, doc, argument_list) {
var key = argument_list[0],
value = argument_list[1];
doc[key] = value;
return jio_gadget.put(gadget.state.setting_id, doc);
}
return handleSetSetting(gadget, argument_list, putSingleSetting);
})
.allowPublicAcquisition("setSettingList",
function setSettingList(argument_list) {
var jio_gadget,
gadget = this,
update_setting,
setting_dict = argument_list[0];
return gadget.getDeclaredGadget("setting_gadget")
.push(function (result) {
jio_gadget = result;
return jio_gadget.get(gadget.state.setting_id);
})
.push(undefined, function (error) {
if (error.status_code === 404) {
return {};
}
throw error;
})
.push(function (doc) {
for (var key in setting_dict) {
if (setting_dict.hasOwnProperty(key)) {
if (!doc.hasOwnProperty(key) ||
doc[key] !== setting_dict[key]) {
doc[key] = setting_dict[key];
update_setting = true;
}
var gadget = this;
function putMultipleSetting(gadget, jio_gadget, doc, argument_list) {
var setting_dict = argument_list[0], update_setting;
for (var key in setting_dict) {
if (setting_dict.hasOwnProperty(key)) {
if (!doc.hasOwnProperty(key) ||
doc[key] !== setting_dict[key]) {
doc[key] = setting_dict[key];
update_setting = true;
}
}
if (update_setting) {
jio_gadget.put(gadget.state.setting_id, doc);
}
});
}
if (update_setting) {
jio_gadget.put(gadget.state.setting_id, doc);
}
}
return handleSetSetting(gadget, argument_list, putMultipleSetting);
})
.allowPublicAcquisition("translateHtml", function translateHtml(
argument_list
......
......@@ -228,7 +228,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>980.6822.42387.2969</string> </value>
<value> <string>980.7973.50307.2286</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -246,7 +246,7 @@
</tuple>
<state>
<tuple>
<float>1574953398.71</float>
<float>1575023309.48</float>
<string>UTC</string>
</tuple>
</state>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment