summaryrefslogtreecommitdiffstats
path: root/provisioning-model.lua
diff options
context:
space:
mode:
authorTed Trask <ttrask01@yahoo.com>2015-12-28 04:30:01 +0000
committerTed Trask <ttrask01@yahoo.com>2015-12-28 04:30:01 +0000
commit3ef565ea82a711a5e42d90a23f7b8bec8a1d3d94 (patch)
tree6d98d4916caed2c686ba98dbe5c12a2749498a3e /provisioning-model.lua
parentda77aa6295d0e36a3af4142c96f496641b459df6 (diff)
downloadacf-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.lua17
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