diff options
author | Ted Trask <ttrask01@yahoo.com> | 2015-12-28 04:30:01 +0000 |
---|---|---|
committer | Ted Trask <ttrask01@yahoo.com> | 2015-12-28 04:30:01 +0000 |
commit | 3ef565ea82a711a5e42d90a23f7b8bec8a1d3d94 (patch) | |
tree | 6d98d4916caed2c686ba98dbe5c12a2749498a3e /provisioning-model.lua | |
parent | da77aa6295d0e36a3af4142c96f496641b459df6 (diff) | |
download | acf-provisioning-3ef565ea82a711a5e42d90a23f7b8bec8a1d3d94.tar.bz2 acf-provisioning-3ef565ea82a711a5e42d90a23f7b8bec8a1d3d94.tar.xz |
Clean up group defaults so you can specify whether or not to override the parameter default
In general, device and reg groups do not override anything and service groups override all parameters
Diffstat (limited to 'provisioning-model.lua')
-rw-r--r-- | provisioning-model.lua | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/provisioning-model.lua b/provisioning-model.lua index 5c8312e..8f57e9a 100644 --- a/provisioning-model.lua +++ b/provisioning-model.lua @@ -1104,6 +1104,7 @@ mymodule.get_group = function(self, clientdata) retval.seq = cfe({label="Sequence", seq=4}) retval.params = cfe({type="multi", value={}, label="Parameters", option={}, descr="Each selected parameter will be included in the group", seq=5}) retval.editable = cfe({type="multi", value={}, label="Editable Parameters", option={}, descr="Each selected parameter will be user editable", seq=6}) + retval.override = cfe({type="multi", value={}, label="Overridden Parameters", option={}, descr="Each selected parameter will override the parameter default from the group defaults", seq=7}) retval.defaults = cfe({type="group", value={}, label="Parameter Defaults", seq=8}) local errtxt local res, err = pcall(function() @@ -1114,6 +1115,7 @@ mymodule.get_group = function(self, clientdata) for i,p in ipairs(tmp) do retval.params.option[#retval.params.option + 1] = {value=p.param_id, label=p.label} retval.editable.option[#retval.editable.option + 1] = {value=p.param_id, label=p.label} + retval.override.option[#retval.override.option + 1] = {value=p.param_id, label=p.label} p.seq = i if p.type == "select" then sql = "SELECT * FROM provisioning_options WHERE param_id='"..provdb.escape(p.param_id).."' ORDER BY seq ASC" @@ -1144,6 +1146,7 @@ mymodule.get_group = function(self, clientdata) retval.editable.value[#retval.editable.value + 1] = p.param_id end if p.value then + retval.override.value[#retval.override.value + 1] = p.param_id if retval.defaults.value[p.param_id].type == "boolean" then retval.defaults.value[p.param_id].value = (p.value == "true") else @@ -1175,6 +1178,7 @@ mymodule.update_group = function(self, group, action, create) -- Validate the settings success = modelfunctions.validatemulti(group.value.params) and success success = modelfunctions.validatemulti(group.value.editable) and success + success = modelfunctions.validatemulti(group.value.override) and success if group.value.name.value == "" then success = false group.value.name.errtxt = "Cannot be blank" @@ -1242,15 +1246,14 @@ mymodule.update_group = function(self, group, action, create) for i,p in ipairs(group.value.editable.value) do reverseeditable[p] = i end + -- Reverse the override table for ease of use below + local reverseoverride = {} + for i,p in ipairs(group.value.override.value) do + reverseoverride[p] = "'"..provdb.escape(tostring(group.value.defaults.value[p].value)).."'" + end -- Insert the group to param entries for i,p in ipairs(group.value.params.value) do - sql = "INSERT INTO param_groups_to_params VALUES('"..provdb.escape(group.value.group_id.value).."', '"..provdb.escape(p).."', " - if group.value.defaults.value[p].value ~= group.value.defaults.value[p].default then - sql = sql.."'"..provdb.escape(tostring(group.value.defaults.value[p].value)).."'" - else - sql = sql.."null" - end - sql = sql..", '"..provdb.escape(tostring(reverseeditable[p] ~= nil)).."')" + sql = "INSERT INTO param_groups_to_params VALUES('"..provdb.escape(group.value.group_id.value).."', '"..provdb.escape(p).."', "..(reverseoverride[p] or "null")..", '"..provdb.escape(tostring(reverseeditable[p] ~= nil)).."')" runsqlcommand(sql) end |