diff options
author | Ted Trask <ttrask01@yahoo.com> | 2011-03-04 13:23:10 +0000 |
---|---|---|
committer | Ted Trask <ttrask01@yahoo.com> | 2011-03-04 13:23:10 +0000 |
commit | be35b69ebad1ad0820af54bb956aacbb067fe5ea (patch) | |
tree | a517714809f37dc201b6e0f28801697409fc153c /provisioning-model.lua | |
parent | 047b528e3786f171f5672b7d3d5631fff5609056 (diff) | |
download | acf-provisioning-be35b69ebad1ad0820af54bb956aacbb067fe5ea.tar.bz2 acf-provisioning-be35b69ebad1ad0820af54bb956aacbb067fe5ea.tar.xz |
Removed provisioning-devices and instead use provisioning-device-seq. So, device label is no more.
Also changed Standard Phone without Call Forwarding to Public Phone.
Diffstat (limited to 'provisioning-model.lua')
-rw-r--r-- | provisioning-model.lua | 62 |
1 files changed, 19 insertions, 43 deletions
diff --git a/provisioning-model.lua b/provisioning-model.lua index 77bd39a..628cc8a 100644 --- a/provisioning-model.lua +++ b/provisioning-model.lua @@ -1133,7 +1133,7 @@ list_devices = function() -- Get the devices from the DB local res, err = pcall(function() local connected = databaseconnect() - local sql = "SELECT * FROM provisioning_devices ORDER BY label ASC" + local sql = "SELECT device_id FROM devices_to_classes GROUP BY device_id ORDER BY device_id ASC" retval = getselectresponse(sql) if connected then databasedisconnect() end end) @@ -1147,25 +1147,15 @@ end get_device = function(device_id) local retval = {} retval.device_id = cfe({value=device_id or "", label="Device ID", seq=1}) - retval.label = cfe({label="Label", seq=2}) - retval.classes = cfe({type="group", value={}, label="Classes", seq=3}) + retval.classes = cfe({type="group", value={}, label="Classes", seq=2}) local errtxt local res, err = pcall(function() local classes={} local connected = databaseconnect() if device_id and device_id ~= "" then - local sql = "SELECT * FROM provisioning_devices WHERE device_id='"..escape(device_id).."'" + -- Get the device-to-class mappings + local sql = "SELECT class_id FROM devices_to_classes WHERE device_id="..escape(device_id) local tmp = getselectresponse(sql) - if tmp and #tmp > 0 then - for n,v in pairs(tmp[1]) do - if retval[n] then - retval[n].value = v - end - end - end - -- Now, get the device-to-class mappings - sql = "SELECT class_id FROM devices_to_classes WHERE device_id="..escape(device_id) - tmp = getselectresponse(sql) for i,g in ipairs(tmp) do classes[g.class_id] = true end @@ -1203,10 +1193,6 @@ update_device = function(device, create) local success = true local errtxt -- Validate the settings - if device.value.label.value == "" then - success = false - device.value.label.errtxt = "Cannot be blank" - end for n,c in pairs(device.value.classes.value) do success = modelfunctions.validateselect(c) and success end @@ -1214,11 +1200,11 @@ update_device = function(device, create) local res, err = pcall(function() local connected = databaseconnect() if not create then - local sql = "SELECT * FROM provisioning_devices WHERE device_id='"..escape(device.value.device_id.value).."'" + local sql = "SELECT * FROM devices_to_classes WHERE device_id='"..escape(device.value.device_id.value).."' LIMIT 1" local tmp = getselectresponse(sql) if not tmp or #tmp == 0 then success = false - errtxt = "Device does not exist" + device.value.device_id.errtxt = "Device does not exist" end end if success then @@ -1228,19 +1214,14 @@ update_device = function(device, create) local sql = "BEGIN TRANSACTION" runsqlcommand(sql) if create then - sql = "INSERT INTO provisioning_devices VALUES(DEFAULT, '"..escape(device.value.label.value).."')" - runsqlcommand(sql, true) - sql = "SELECT device_id FROM provisioning_devices WHERE label='"..escape(device.value.label.value).."'" + sql = "SELECT nextval('provisioning_device_seq')" local tmp = getselectresponse(sql, true) if tmp and #tmp>0 then - device.value.device_id.value = tmp[1].device_id + device.value.device_id.value = tmp[1].nextval end - else - sql = "UPDATE provisioning_devices SET (label) = ('"..escape(device.value.label.value).."') WHERE device_id='"..escape(device.value.device_id.value).."'" - runsqlcommand(sql, true) - sql = "DELETE FROM devices_to_classes WHERE device_id='"..escape(device.value.device_id.value).."'" - runsqlcommand(sql, true) end + sql = "DELETE FROM devices_to_classes WHERE device_id='"..escape(device.value.device_id.value).."'" + runsqlcommand(sql, true) -- Insert the device to class entries for n,c in pairs(device.value.classes.value) do if c.value ~= "" then @@ -1279,7 +1260,7 @@ delete_device = function(device_id) local errtxt local res, err = pcall(function() local connected = databaseconnect() - local sql = "SELECT * FROM provisioning_devices WHERE device_id='"..escape(device_id).."'" + local sql = "SELECT * FROM devices_to_classes WHERE device_id='"..escape(device_id).."' LIMIT 1" local tmp = getselectresponse(sql) if #tmp == 0 then errtxt = "Device does not exist" @@ -1293,8 +1274,6 @@ delete_device = function(device_id) runsqlcommand(sql, true) sql = "DELETE FROM devices_to_classes WHERE device_id='"..escape(device_id).."'" runsqlcommand(sql, true) - sql = "DELETE FROM provisioning_devices WHERE device_id='"..escape(device_id).."'" - runsqlcommand(sql, true) result = "Device Deleted" sql = "COMMIT" runsqlcommand(sql) @@ -1320,17 +1299,15 @@ end get_device_params = function(device_id, editable) local retval = {} retval.device_id = cfe({value=device_id or "", label="Device ID", seq=0}) - retval.label = cfe({label="Label", seq=0}) local errtxt = "Cannot find device" if device_id and device_id ~= "" then local res, err = pcall(function() local connected = databaseconnect() -- First, just check to see if device_id exists - local sql = "SELECT * FROM provisioning_devices WHERE device_id='"..escape(device_id).."'" + local sql = "SELECT * FROM devices_to_classes WHERE device_id='"..escape(device_id).."' LIMIT 1" local tmp = getselectresponse(sql) if tmp and #tmp > 0 then errtxt = nil - retval.label.value = tmp[1].label -- Next, get all of the param groups sql = "SELECT * FROM provisioning_groups" local tmp = getselectresponse(sql) @@ -1399,7 +1376,7 @@ set_device_params = function(params, editable) local res, err = pcall(function() local connected = databaseconnect() if not create then - local sql = "SELECT * FROM provisioning_devices WHERE device_id='"..escape(params.value.device_id.value).."'" + local sql = "SELECT * FROM devices_to_classes WHERE device_id='"..escape(params.value.device_id.value).."' LIMIT 1" local tmp = getselectresponse(sql) if not tmp or #tmp == 0 then success = false @@ -1518,7 +1495,7 @@ end get_search_options = function() local errtxt retval = {} - retval.id = cfe({type="select", value="label", label="Parameter", option={"device_id", "label"}, seq=1}) + retval.id = cfe({type="select", value="device_id", label="Parameter", option={"device_id"}, seq=1}) retval.comparison = cfe({type="select", value="=", label="Comparison", option={"=", "!=", "~", "!~", "~*", "!*~"}, seq=2}) retval.value = cfe({label="Parameter Value", descr="Parameter value or SQL regular expression", seq=3}) local res, err = pcall(function() @@ -1556,15 +1533,14 @@ search_device_values = function(search) local res, err = pcall(function() local connected = databaseconnect() -- Get the devices from the DB - sql = "SELECT d.device_id, d.label, " + sql = "SELECT d2t.device_id, " local group, param = string.match(search.value.id.value, "([^%.]*)%.(.*)") if not group then - sql = sql.."'"..search.value.id.value.."' AS param, " - sql = sql.."d."..search.value.id.value.." AS value FROM provisioning_devices d WHERE d."..search.value.id.value - sql = sql..search.value.comparison.value.."'"..escape(search.value.value.value).."'" + sql = sql.."'"..search.value.id.value.."' AS param, d2t."..search.value.id.value.." AS value FROM devices_to_classes d2t WHERE d2t."..search.value.id.value.. + search.value.comparison.value.."'"..escape(search.value.value.value).."' GROUP BY device_id" else sql = sql.."g.name as group, p.name as param, CASE WHEN v.value IS NOT NULL THEN v.value WHEN g2p.value IS NOT NULL THEN g2p.value ELSE p.value END as value FROM ".. - "provisioning_devices d JOIN devices_to_classes d2t USING(device_id) JOIN provisioning_classes t USING(class_id) JOIN classes_to_param_groups t2g USING(class_id) ".. + "devices_to_classes d2t JOIN provisioning_classes t USING(class_id) JOIN classes_to_param_groups t2g USING(class_id) ".. "JOIN provisioning_groups g USING(group_id) JOIN param_groups_to_params g2p USING(group_id) JOIN provisioning_params p USING(param_id) ".. "LEFT JOIN provisioning_values v ON(d2t.device_id=v.device_id AND p.param_id=v.param_id AND g.name=v.group_name ) " if group and group ~= "" then @@ -1574,7 +1550,7 @@ search_device_values = function(search) end sql = sql.." p.name='"..escape(param).."' AND CASE WHEN v.value IS NOT NULL THEN v.value WHEN g2p.value IS NOT NULL THEN g2p.value ELSE p.value END"..search.value.comparison.value.."'"..escape(search.value.value.value).."'" end - sql = sql.." ORDER BY d.label ASC" + sql = sql.." ORDER BY d2t.device_id ASC" search.value.result.value = getselectresponse(sql) if connected then databasedisconnect() end end) |