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 22:08:23 +0000
commit154342dcb74db921bbf44e36f091c01f20ce96af (patch)
tree938efd4656ef36227a396a4104297e6236d0eb3b
parent9703112837f037a1b2b234bac20f923a889f1854 (diff)
downloadacf-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.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 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");