summaryrefslogtreecommitdiffstats
path: root/provisioning-model.lua
diff options
context:
space:
mode:
authorTed Trask <ttrask01@yahoo.com>2011-03-04 13:23:10 +0000
committerTed Trask <ttrask01@yahoo.com>2011-03-04 13:23:10 +0000
commitbe35b69ebad1ad0820af54bb956aacbb067fe5ea (patch)
treea517714809f37dc201b6e0f28801697409fc153c /provisioning-model.lua
parent047b528e3786f171f5672b7d3d5631fff5609056 (diff)
downloadacf-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.lua62
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)