diff options
-rw-r--r-- | provisioning-listdevices-html.lsp | 2 | ||||
-rw-r--r-- | provisioning-listrequests-html.lsp | 4 | ||||
-rw-r--r-- | provisioning-model.lua | 44 |
3 files changed, 29 insertions, 21 deletions
diff --git a/provisioning-listdevices-html.lsp b/provisioning-listdevices-html.lsp index 7df1fa4..669792d 100644 --- a/provisioning-listdevices-html.lsp +++ b/provisioning-listdevices-html.lsp @@ -68,7 +68,7 @@ table.sort(display) <%= html.link{value=page_info.script..page_info.prefix..page_info.controller.."/editdeviceparams?device_id="..v.device_id.."&redir="..page_info.orig_action, label="Params "} %> <% end %> <% if viewlibrary.check_permission("getdevicevalues") then %> - <%= html.link{value=page_info.script..page_info.prefix..page_info.controller.."/getdevicevalues?id=device_id&value="..v.device_id.."&Search=Search&viewtype=templated", label="View "} %> + <%= html.link{value=page_info.script..page_info.prefix..page_info.controller.."/getdevicevalues?submit=true&id=device_id&value="..v.device_id.."&viewtype=templated", label="View "} %> <% end %> </TD> <TD><%= html.html_escape(v.device_id) %></TD> diff --git a/provisioning-listrequests-html.lsp b/provisioning-listrequests-html.lsp index c225d3f..3da64b2 100644 --- a/provisioning-listrequests-html.lsp +++ b/provisioning-listrequests-html.lsp @@ -48,11 +48,11 @@ require("htmlviewfunctions") <% end %> <% if v.device_id then %> <% if viewlibrary.check_permission("searchdevices") then %> - <%= html.link{value=page_info.script..page_info.prefix..page_info.controller.."/searchdevices?id=device_id&value="..v.device_id.."&redir=searchdevices&Search=Search", label="Search "} %> + <%= html.link{value=page_info.script..page_info.prefix..page_info.controller.."/searchdevices?submit=true&id=device_id&value="..v.device_id.."&redir=searchdevices", label="Search "} %> <% end %> <% else %> <% if viewlibrary.check_permission("createdevicefromrequest") then %> - <%= html.link{value=page_info.script..page_info.prefix..page_info.controller.."/createdevicefromrequest?mac="..v.mac.."&Create=Create", label="Create "} %> + <%= html.link{value=page_info.script..page_info.prefix..page_info.controller.."/createdevicefromrequest?submit=true&mac="..v.mac, label="Create "} %> <% end %> <% end %> </TD> diff --git a/provisioning-model.lua b/provisioning-model.lua index 6d694cf..22c8716 100644 --- a/provisioning-model.lua +++ b/provisioning-model.lua @@ -2095,28 +2095,36 @@ create_from_request = function(self, request) local class, group = callscript(determineclassscriptfile, tmp[1].agent, c) -- Create the device - local device = get_device() + local device = get_device(nil, true) if class and group and device.value.classes.value[group] then device.value.classes.value[group].value = class - end - device = create_device(device) - if device.errtxt then - request.errtxt = device.errtxt - else - local params = get_device_params(device.value.device_id.value) - -- Set the MAC Address - if params.value.device and params.value.device.value.mac then - params.value.device.value.mac.value = string.upper(request.value.mac.value) - params = set_device_params(params) - end - if params.errtxt then - request.errtxt = params.errtxt - local req = get_delete_device(self, {device_id = device.value.device_id.value}) - delete_device(self, req) + device = create_device(self, device) + if device.errtxt then + request.errtxt = {device.errtxt} + for n,v in pairs(device.value) do + if v.errtxt then + request.errtxt[#request.errtxt + 1] = v.errtxt + end + end + request.errtxt = table.concat(request.errtxt, "\n") else - success = true - request.value.device_id = device.value.device_id + local params = get_device_params(device.value.device_id.value) + -- Set the MAC Address + if params.value.device and params.value.device.value.mac then + params.value.device.value.mac.value = string.upper(request.value.mac.value) + params = set_device_params(params) + end + if params.errtxt then + request.errtxt = params.errtxt + local req = get_delete_device(self, {device_id = device.value.device_id.value}) + delete_device(self, req) + else + success = true + request.value.device_id = device.value.device_id + end end + else + request.errtxt = "Failed to create device - could not determine class" end end if connected then databasedisconnect() end |