diff options
-rw-r--r-- | provisioning-searchbymac-html.lsp | 2 | ||||
-rw-r--r-- | provisioning-searchdevices-html.lsp | 75 |
2 files changed, 72 insertions, 5 deletions
diff --git a/provisioning-searchbymac-html.lsp b/provisioning-searchbymac-html.lsp index eba96f8..45a771d 100644 --- a/provisioning-searchbymac-html.lsp +++ b/provisioning-searchbymac-html.lsp @@ -25,7 +25,7 @@ html = require("acf.html") <% local id = cfe({type="hidden", value="device.mac"}) -local comparison = cfe({type="hidden", value="~"}) +local comparison = cfe({type="hidden", value="~*"}) local value = cfe({label="MAC Address"}) local form = cfe({type="form", label="Search by MAC Address", value={id=id, comparison=comparison, value=value}, action="searchdevices", option="Search"}) diff --git a/provisioning-searchdevices-html.lsp b/provisioning-searchdevices-html.lsp index d2f086d..332a817 100644 --- a/provisioning-searchdevices-html.lsp +++ b/provisioning-searchdevices-html.lsp @@ -10,6 +10,12 @@ html = require("acf.html") </script> <script type="text/javascript"> + if (typeof $.tablesorter == 'undefined') { + document.write('<script type="text/javascript" src="<%= html.html_escape(page_info.wwwprefix) %>/js/jquery.tablesorter.js"><\/script>'); + } +</script> + +<script type="text/javascript"> $(function(){ $('input, select').first().focus(); $('input, select').keydown(function(e){ @@ -18,6 +24,8 @@ html = require("acf.html") return false; } }); + $("#list").tablesorter({headers: {0:{sorter: false}}, widgets: ['zebra']}); + $(".deletedevice").click(function(){ return confirm("Are you sure you want to delete this device?")}); }); </script> @@ -38,12 +46,71 @@ if form.value.values then form.value.values = nil -- And here we display the list of devices in the result elseif form.value.result then + -- Determine all of the columns + local tmp = {} + for k,v in ipairs( form.value.result.value ) do + for g,c in pairs(v) do + if not tmp[g] then tmp[g] = true end + end + end + local display = {} + for n in pairs(tmp) do + if n ~= "device_id" then + display[#display+1] = n + end + end + table.sort(display) - print("There are "..#form.value.result.value.." devices in the result") --- local func = haserl.loadfile(page_info.viewfile:gsub(page_info.action, "listdevices")) --- func(form, viewlibrary, page_info, session) -end + local header_level = htmlviewfunctions.displaysectionstart(form.value.result, page_info) %> + <table id="list" class="tablesorter"><thead> + <tr> + <th>Action</th> + <th>Device ID</th> + <% for i,n in ipairs(display) do %> + <th><%= html.html_escape(string.gsub(n, "^.", string.upper)) %> + <% end %> + </tr> + </thead><tbody> + <% local device_id = cfe({ type="hidden", value="" }) %> + <% local redir = cfe({ type="hidden", value=page_info.orig_action }) %> + <% for k,v in ipairs( form.value.result.value ) do %> + <tr> + <td> + <% device_id.value = v.device_id %> + <% if viewlibrary.check_permission("editdevice") then %> + <% htmlviewfunctions.displayitem(cfe({type="link", value={device_id=device_id, redir=redir}, label="", option="Edit", action="editdevice"}), page_info, -1) %> + <% end %> + <% if viewlibrary.check_permission("overridedeviceparams") then %> + <% htmlviewfunctions.displayitem(cfe({type="link", value={device_id=device_id, redir=redir}, label="", option="Params", action="overridedeviceparams"}), page_info, -1) %> + <% elseif viewlibrary.check_permission("editdeviceparams") then %> + <% htmlviewfunctions.displayitem(cfe({type="link", value={device_id=device_id, redir=redir}, label="", option="Params", action="editdeviceparams"}), page_info, -1) %> + <% end %> + <% if viewlibrary.check_permission("getdevicevalues") then %> + <% htmlviewfunctions.displayitem(cfe({type="form", value={value=device_id, id=cfe({type="hidden", value="device_id"}), viewtype=cfe({type="hidden", value="templated"})}, label="", option="View", action="getdevicevalues"}), page_info, -1) %> + <% end %> + <% if viewlibrary.check_permission("deletedevice") then %> + <% htmlviewfunctions.displayitem(cfe({type="form", value={device_id=device_id}, label="", option="Delete", action="deletedevice", class="deletedevice"}), page_info, -1) %> + <% end %> + </td> + <td><%= html.html_escape(v.device_id) %></td> + <% for i,n in ipairs(display) do %> + <td><%= html.html_escape(v[n]) %></td> + <% end %> + </tr> + <% end %> + </tbody> + </table> + + <% if form.value.result.errtxt then %> + <p class="error"><%= html.html_escape(form.value.result.errtxt) %></p> + <% end %> + <% if #form.value.result.value == 0 then %> + <p>No devices found</p> + <% end %> + <% htmlviewfunctions.displaysectionend(header_level) %> + +<% end %> <% form.value.result = nil |