diff options
author | Ted Trask <ttrask01@yahoo.com> | 2013-08-26 20:14:20 +0000 |
---|---|---|
committer | Ted Trask <ttrask01@yahoo.com> | 2013-08-26 20:14:20 +0000 |
commit | 05e87b21529bbec383ab513e2899048aded15120 (patch) | |
tree | f52e064a1cbd8bf0b492bed7c3e95fc412255e8e | |
parent | 837476e5a4c3d872ec0734537a56b3e95a31000e (diff) | |
download | acf-provisioning-05e87b21529bbec383ab513e2899048aded15120.tar.bz2 acf-provisioning-05e87b21529bbec383ab513e2899048aded15120.tar.xz |
Fix redirection when creating new devices
-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 7dce123..3171904 100644 --- a/provisioning-controller.lua +++ b/provisioning-controller.lua @@ -95,12 +95,7 @@ editdevice = function( self ) end createdevice = function( self ) - 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")) - end - return retval + return self.handle_form(self, self.model.get_new_device, self.model.create_device, self.clientdata, "Create", "Create Device", "Device Created") end duplicatedevice = function( self ) @@ -160,10 +155,5 @@ deleterequest = function( self ) end createdevicefromrequest = function( self ) - local retval = self.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 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")) - end - return retval + return self.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 a922ec4..827ea9b 100644 --- a/provisioning-editdevice-html.lsp +++ b/provisioning-editdevice-html.lsp @@ -1,10 +1,28 @@ -<% local form, viewlibrary, page_info = ... +<% local form, viewlibrary, page_info, session = ... require("htmlviewfunctions") html = require("acf.html") %> <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 ed44ea0..565d30b 100644 --- a/provisioning-editdeviceparams-html.lsp +++ b/provisioning-editdeviceparams-html.lsp @@ -1,10 +1,19 @@ -<% local form, viewlibrary, page_info = ... +<% local form, viewlibrary, page_info, session = ... require("htmlviewfunctions") html = require("acf.html") %> <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 6b53195..52bb518 100644 --- a/provisioning-listrequests-html.lsp +++ b/provisioning-listrequests-html.lsp @@ -13,8 +13,16 @@ html = require("acf.html") 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"); |