diff options
author | Ted Trask <ttrask01@yahoo.com> | 2013-08-26 20:14:20 +0000 |
---|---|---|
committer | Ted Trask <ttrask01@yahoo.com> | 2013-08-26 22:08:23 +0000 |
commit | 154342dcb74db921bbf44e36f091c01f20ce96af (patch) | |
tree | 938efd4656ef36227a396a4104297e6236d0eb3b | |
parent | 9703112837f037a1b2b234bac20f923a889f1854 (diff) | |
download | acf-provisioning-154342dcb74db921bbf44e36f091c01f20ce96af.tar.bz2 acf-provisioning-154342dcb74db921bbf44e36f091c01f20ce96af.tar.xz |
Fix redirection when creating new devices
(cherry picked from commit 05e87b21529bbec383ab513e2899048aded15120)
Conflicts:
provisioning-controller.lua
provisioning-editdevice-html.lsp
provisioning-editdeviceparams-html.lsp
-rw-r--r-- | provisioning-controller.lua | 14 | ||||
-rw-r--r-- | provisioning-editdevice-html.lsp | 20 | ||||
-rw-r--r-- | provisioning-editdeviceparams-html.lsp | 11 | ||||
-rw-r--r-- | provisioning-listrequests-html.lsp | 10 |
4 files changed, 40 insertions, 15 deletions
diff --git a/provisioning-controller.lua b/provisioning-controller.lua index faa46ee..dab50d3 100644 --- a/provisioning-controller.lua +++ b/provisioning-controller.lua @@ -97,12 +97,7 @@ editdevice = function( self ) end createdevice = function( self ) - local retval = controllerfunctions.handle_form(self, self.model.get_device, self.model.create_device, self.clientdata, "Create", "Create Device", "Device Created") - if retval.value.device_id.value ~= "" and not retval.errtxt 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")) - end - return retval + return controllerfunctions.handle_form(self, self.model.get_device, self.model.create_device, self.clientdata, "Create", "Create Device", "Device Created") end duplicatedevice = function( self ) @@ -162,10 +157,5 @@ deleterequest = function( self ) end createdevicefromrequest = function( self ) - local retval = controllerfunctions.handle_form(self, self.model.get_request, self.model.create_from_request, self.clientdata, "Create", "Create Device", "Device Created") - if retval.value.device_id and retval.value.device_id.value ~= "" and not retval.errtxt 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")) - end - return retval + return controllerfunctions.handle_form(self, self.model.get_request, self.model.create_from_request, self.clientdata, "Create", "Create Device", "Device Created") end diff --git a/provisioning-editdevice-html.lsp b/provisioning-editdevice-html.lsp index dd39948..a9f4f95 100644 --- a/provisioning-editdevice-html.lsp +++ b/provisioning-editdevice-html.lsp @@ -1,9 +1,27 @@ -<% local form, viewlibrary, page_info = ... +<% local form, viewlibrary, page_info, session = ... require("viewfunctions") %> <script type="text/javascript" src="<%= html.html_escape(page_info.wwwprefix) %>/js/jquery-latest.js"></script> <script type="text/javascript"> + +<% -- Since we want to redirect to edit a new device's parameters, we create an automatic redirect + if page_info.action == "createdevice" and form.descr and not form.errtxt then + -- Use JavaScript to redirect to the edit page +%> + window.location.assign("<%= html.html_escape(page_info.script..page_info.prefix..page_info.controller) %>/<% if viewlibrary.check_permission("overridedeviceparams") then io.write("overridedeviceparams") elseif viewlibrary.check_permission("editdeviceparams") then io.write("editdeviceparams") else io.write("editdevice") end %>?device_id=<%= form.value.device_id.value %>&redir=<%= html.html_escape(page_info.orig_action) %>"); +<% + end +%> +<% -- Since we're including deletedevice as a component, we break the automatic redirect + if session.deletedeviceresult and not session.deletedeviceresult.errtxt and viewlibrary.check_permission("listdevices") then + -- Use JavaScript to redirect to the listdevices page +%> + window.location.assign("<%= html.html_escape(page_info.script..page_info.prefix..page_info.controller) %>/listdevices"); +<% + end +%> + $(document).ready(function() { $(".deletedevice").click(function(){ return confirm("Are you sure you want to delete this device?")}); }); diff --git a/provisioning-editdeviceparams-html.lsp b/provisioning-editdeviceparams-html.lsp index a773326..93845e7 100644 --- a/provisioning-editdeviceparams-html.lsp +++ b/provisioning-editdeviceparams-html.lsp @@ -1,9 +1,18 @@ -<% local form, viewlibrary, page_info = ... +<% local form, viewlibrary, page_info, session = ... require("viewfunctions") %> <script type="text/javascript" src="<%= html.html_escape(page_info.wwwprefix) %>/js/jquery-latest.js"></script> <script type="text/javascript"> +<% -- Since we're including deletedevice as a component, we break the automatic redirect + if session.deletedeviceresult and not session.deletedeviceresult.errtxt and viewlibrary.check_permission("listdevices") then + -- Use JavaScript to redirect to the listdevices page +%> + window.location.assign("<%= html.html_escape(page_info.script..page_info.prefix..page_info.controller) %>/listdevices"); +<% + end +%> + $(document).ready(function() { $(".deletedevice").click(function(){ return confirm("Are you sure you want to delete this device?")}); }); diff --git a/provisioning-listrequests-html.lsp b/provisioning-listrequests-html.lsp index 39b24f7..2858661 100644 --- a/provisioning-listrequests-html.lsp +++ b/provisioning-listrequests-html.lsp @@ -12,8 +12,16 @@ require("viewfunctions") window.location.assign("<%= html.html_escape(page_info.script..page_info.prefix..page_info.controller) %>/searchdevices"); <% end + -- Since we're including a submission of createdevicefromrequest, we need to overcome the automatic redirect - if session.createdevicefromrequestresult then + if session.createdevicefromrequestresult and not session.createdevicefromrequestresult.errtxt then + local tmp = session.createdevicefromrequestresult + session.createdevicefromrequestresult = nil + -- Use JavaScript to redirect to the edit page +%> + window.location.assign("<%= html.html_escape(page_info.script..page_info.prefix..page_info.controller) %>/<% if viewlibrary.check_permission("editdevice") then io.write("editdevice") elseif viewlibrary.check_permission("overridedeviceparams") then io.write("overridedeviceparams") else io.write("editdeviceparams") end %>?device_id=<%= tmp.value.device_id.value %>&redir=<%= html.html_escape(page_info.orig_action) %>"); +<% + elseif session.createdevicefromrequestresult then -- Use JavaScript to redirect to the createdevicefromrequest page %> window.location.assign("<%= html.html_escape(page_info.script..page_info.prefix..page_info.controller) %>/createdevicefromrequest"); |