From 54bf225f7ad1784abf31afb09a9462176e16d5d1 Mon Sep 17 00:00:00 2001 From: Ted Trask Date: Fri, 4 Mar 2011 09:41:00 +0000 Subject: Modified getgroup/updategroup to add default - allowing creating groups with null defaults --- provisioning-model.lua | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) (limited to 'provisioning-model.lua') 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 -- cgit v1.2.3