summaryrefslogtreecommitdiffstats
path: root/provisioning-model.lua
diff options
context:
space:
mode:
authorTed Trask <ttrask01@yahoo.com>2011-03-04 09:41:00 +0000
committerTed Trask <ttrask01@yahoo.com>2011-03-04 09:41:00 +0000
commit54bf225f7ad1784abf31afb09a9462176e16d5d1 (patch)
treef24eef49fe667e0668f639d18d82fb45c7d4f83e /provisioning-model.lua
parent55042dc4045d11d115c848b9db98ce981e546f5e (diff)
downloadacf-provisioning-54bf225f7ad1784abf31afb09a9462176e16d5d1.tar.bz2
acf-provisioning-54bf225f7ad1784abf31afb09a9462176e16d5d1.tar.xz
Modified getgroup/updategroup to add default - allowing creating groups with null defaults
Diffstat (limited to 'provisioning-model.lua')
-rw-r--r--provisioning-model.lua29
1 files changed, 24 insertions, 5 deletions
diff --git a/provisioning-model.lua b/provisioning-model.lua
index 1a20dfd..b6af985 100644
--- a/provisioning-model.lua
+++ b/provisioning-model.lua
@@ -784,7 +784,8 @@ get_group = function(group_id)
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.defaults = cfe({type="group", value={}, label="Parameter Defaults", seq=7})
+ retval.default = cfe({type="multi", value={}, label="Parameters with defaults", option={}, descr="Each selected parameter will be have a default value for this group", seq=7})
+ retval.defaults = cfe({type="group", value={}, label="Parameter Defaults", seq=8})
local errtxt
local res, err = pcall(function()
local connected = databaseconnect()
@@ -794,6 +795,7 @@ get_group = function(group_id)
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.default.option[#retval.default.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='"..escape(p.param_id).."' ORDER BY seq ASC"
@@ -822,6 +824,9 @@ get_group = function(group_id)
if (p.editable == "t") then
retval.editable.value[#retval.editable.value + 1] = p.param_id
end
+ if p.value then
+ retval.default.value[#retval.default.value + 1] = p.param_id
+ end
if retval.defaults.value[p.param_id].type == "boolean" then
retval.defaults.value[p.param_id].value = (p.value == "true")
else
@@ -846,7 +851,9 @@ update_group = function(group, create)
local success = true
local errtxt
-- Validate the settings
- success = modelfunctions.validatemulti(group.value.params)
+ success = modelfunctions.validatemulti(group.value.params) and success
+ success = modelfunctions.validatemulti(group.value.editable) and success
+ success = modelfunctions.validatemulti(group.value.default) and success
if group.value.name.value == "" then
success = false
group.value.name.errtxt = "Cannot be blank"
@@ -867,7 +874,9 @@ update_group = function(group, create)
group.value.seq.errtxt = "Must be an integer"
end
-- Validate the param defaults
- success = validateparam(group.value.defaults) and success
+ for i,p in ipairs(group.value.default.value) do
+ success = validateparam(group.value.defaults.value[p]) and success
+ end
if success then
local res, err = pcall(function()
local connected = databaseconnect()
@@ -896,14 +905,24 @@ update_group = function(group, create)
sql = "DELETE FROM param_groups_to_params WHERE group_id='"..escape(group.value.group_id.value).."'"
runsqlcommand(sql, true)
end
- -- Reverse the editable table for ease of use below
+ -- Reverse the editable and default table for ease of use below
local reverseeditable = {}
for i,p in ipairs(group.value.editable.value) do
reverseeditable[p] = i
end
+ local reversedefault = {}
+ for i,p in ipairs(group.value.default.value) do
+ reversedefault[p] = i
+ 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('"..escape(group.value.group_id.value).."', '"..escape(p).."', '"..escape(tostring(group.value.defaults.value[p].value)).."', '"..tostring(reverseeditable[p] ~= nil).."')"
+ sql = "INSERT INTO param_groups_to_params VALUES('"..escape(group.value.group_id.value).."', '"..escape(p).."', "
+ if reversedefault[p] then
+ sql = sql.."'"..escape(tostring(group.value.defaults.value[p].value)).."'"
+ else
+ sql = sql.."null"
+ end
+ sql = sql..", '"..tostring(reverseeditable[p] ~= nil).."')"
runsqlcommand(sql, true)
end