summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTed Trask <ttrask01@yahoo.com>2013-08-26 20:14:20 +0000
committerTed Trask <ttrask01@yahoo.com>2013-08-26 20:14:20 +0000
commit05e87b21529bbec383ab513e2899048aded15120 (patch)
treef52e064a1cbd8bf0b492bed7c3e95fc412255e8e
parent837476e5a4c3d872ec0734537a56b3e95a31000e (diff)
downloadacf-provisioning-05e87b21529bbec383ab513e2899048aded15120.tar.bz2
acf-provisioning-05e87b21529bbec383ab513e2899048aded15120.tar.xz
Fix redirection when creating new devices
-rw-r--r--provisioning-controller.lua14
-rw-r--r--provisioning-editdevice-html.lsp20
-rw-r--r--provisioning-editdeviceparams-html.lsp11
-rw-r--r--provisioning-listrequests-html.lsp10
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");