diff options
-rw-r--r-- | provisioning-controller.lua | 6 | ||||
-rw-r--r-- | provisioning-model.lua | 24 |
2 files changed, 21 insertions, 9 deletions
diff --git a/provisioning-controller.lua b/provisioning-controller.lua index 83210d6..7dce123 100644 --- a/provisioning-controller.lua +++ b/provisioning-controller.lua @@ -91,11 +91,11 @@ listdevices = function( self ) end editdevice = function( self ) - return self.handle_form(self, self.model.get_device, self.model.update_device, self.clientdata, "Save", "Edit Device", "Device Saved") + return self.handle_form(self, self.model.get_existing_device, self.model.update_device, self.clientdata, "Save", "Edit Device", "Device Saved") end createdevice = function( self ) - local retval = self.handle_form(self, self.model.get_device, self.model.create_device, self.clientdata, "Create", "Create Device", "Device Created") + local retval = self.handle_form(self, self.model.get_new_device, self.model.create_device, self.clientdata, "Create", "Create Device", "Device Created") if retval.value.device_id.value ~= "" and not retval.errtxt and self.redirect then -- Successfully created a device, redirect to edit it self:redirect("editdevice?device_id="..retval.value.device_id.value.."&redir=".. (self.clientdata.redir or "listdevices")) @@ -104,7 +104,7 @@ createdevice = function( self ) end duplicatedevice = function( self ) - return self.handle_form(self, self.model.get_device, self.model.create_device, self.clientdata, "Duplicate", "Duplicate Device", "Duplicate Device Created") + return self.handle_form(self, self.model.get_existing_device, self.model.create_device, self.clientdata, "Duplicate", "Duplicate Device", "Duplicate Device Created") end deletedevice = function( self ) diff --git a/provisioning-model.lua b/provisioning-model.lua index 2c41810..6d694cf 100644 --- a/provisioning-model.lua +++ b/provisioning-model.lua @@ -28,6 +28,11 @@ local con local saved_devices = {} local saved_device_params = {} +-- declare some private functions up front +local get_device +local get_device_params +local set_device_params + local table_creation_scripts = require("provisioning/provisioning-scripts") -- ################################################################################ @@ -1235,8 +1240,15 @@ list_devices = function() return cfe({ type="structure", value=retval, label="List of Devices", errtxt=errtxt }) end -get_device = function(self, clientdata) - local device_id = clientdata.device_id +get_existing_device = function(self, clientdata) + return get_device(clientdata.device_id, false) +end + +get_new_device = function(self, clientdata) + return get_device(clientdata.device_id, true) +end + +get_device = function(device_id, create) local retval = {} retval.device_id = cfe({value=device_id or "", label="Device ID", seq=1}) retval.classes = cfe({type="group", value={}, label="Classes", seq=2}) @@ -1244,7 +1256,7 @@ get_device = function(self, clientdata) local res, err = pcall(function() local classes={} local connected = databaseconnect() - if device_id and device_id ~= "" then + if not create and device_id and device_id ~= "" then -- 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) @@ -1273,7 +1285,7 @@ get_device = function(self, clientdata) -- Save the device for later use local output = cfe({ type="group", value=retval, label="Provisioning Device", errtxt=errtxt }) - if device_id and device_id ~= "" then saved_devices[device_id] = duplicatestructure(output) end + if not create and device_id and device_id ~= "" then saved_devices[device_id] = duplicatestructure(output) end return output end @@ -1403,7 +1415,7 @@ get_all_device_params = function(self, clientdata, action) return get_device_params(clientdata.device_id, false) end -local get_device_params = function(device_id, editable) +get_device_params = function(device_id, editable) local retval = {} retval.device_id = cfe({value=device_id or "", label="Device ID", seq=0}) local errtxt = "Cannot find device" @@ -1530,7 +1542,7 @@ set_all_device_params = function(self, params) return set_device_params(params, false) end -local set_device_params = function(params, editable) +set_device_params = function(params, editable) -- Validate the settings local success = validateparam(params) local errtxt |