From 8292f99d5a0da91490b7bb445b4db0405a22045f Mon Sep 17 00:00:00 2001 From: Ted Trask Date: Mon, 7 Sep 2015 22:30:42 +0000 Subject: Add server-side pagination and filtering to viewtable action using jquery-tablesorter Note that filtering fails for non-character columns and have seen some table entries cause failures --- lib/db-viewtable-html.lsp | 203 +++++++++++++++++++++++++++++++--------------- 1 file changed, 136 insertions(+), 67 deletions(-) (limited to 'lib/db-viewtable-html.lsp') diff --git a/lib/db-viewtable-html.lsp b/lib/db-viewtable-html.lsp index a8efaa7..3c89c41 100644 --- a/lib/db-viewtable-html.lsp +++ b/lib/db-viewtable-html.lsp @@ -11,17 +11,14 @@ - - <% +-- Calculate the redir to get back to this page (and set up keyvalues used to createtableentry with same connection and table) local redir = cfe({ type="hidden", value=page_info.orig_action.."?table="..html.url_encode(form.value.table.value) }) local keyvalues = {table=form.value.table.value} if form.value.connection then @@ -32,52 +29,28 @@ if form.value.connection then end end keyvalues.redir = redir.value -%> - -<% htmlviewfunctions.displaycommandresults({"deletetableentry", "updatetableentry"}, session) %> -<% htmlviewfunctions.displaycommandresults({"createtableentry"}, session, true) %> -<% if form.value.table.value ~= "" then form.label = form.label.." - "..form.value.table.value end %> -<% local header_level = htmlviewfunctions.displaysectionstart(form, page_info) %> -<% -local header_level2 = htmlviewfunctions.incrementheader(header_level) -htmlviewfunctions.displayformstart(form, page_info) -if form.value.connection and ( next(form.value.connection.value) ~= nil or form.value.connection.errtxt ) then - htmlviewfunctions.displayitem(form.value.connection, page_info, header_level2, "connection") -end -htmlviewfunctions.displayitem(form.value.table, page_info, header_level2, "table") -form.option = "Update" -htmlviewfunctions.displayformend(form, htmlviewfunctions.incrementheader(header_level)) -%> - - - <% if viewlibrary.check_permission("deletetableentry") or viewlibrary.check_permission("updatetableentry") then %> - - <% end %> - <% for i,f in ipairs(form.value.fields.value) do %> - - <% end %> - - -<% -- We will reuse the form connection structure to pass key values to updatetableentry and deletetableentry +-- Create formvalues table to pass connection and key values to updatetableentry and deletetableentry local formvalues = {} if form.value.connection then - formvalues.connection = form.value.connection - for n,v in pairs(form.value.connection.value) do v.type="hidden" end + formvalues.connection = cfe({type="group", value={}}) + for n,v in pairs(form.value.connection.value) do + formvalues.connection.value[n] = cfe({type="hidden", value=v.value}) + end end local reversekeyfields = {} if form.value.keyfields then formvalues.fields = cfe({ type="group", value={} }) formvalues.nulls = cfe({ type="group", value={} }) for i,f in ipairs(form.value.keyfields.value) do - formvalues.fields.value[f] = cfe({ type="hidden" }) - formvalues.nulls.value[f] = cfe({ type="hidden", value="false" }) + formvalues.fields.value[f] = cfe({ type="hidden", value=f.."_VALUE" }) + formvalues.nulls.value[f] = cfe({ type="hidden", value=f.."_NULL" }) reversekeyfields[f] = i end end -formvalues.table = form.value.table -form.value.table.type = "hidden" +formvalues.table = cfe({type="hidden", value=form.value.table.value}) formvalues.redir = redir + -- We will hide the update link if all fields are key fields local allowupdate = false for i,f in ipairs(form.value.fields.value) do @@ -88,41 +61,137 @@ for i,f in ipairs(form.value.fields.value) do end allowupdate = allowupdate and viewlibrary.check_permission("updatetableentry") %> -<% for i,tableentry in ipairs(form.value.entries.value) do %> - - <% if viewlibrary.check_permission("deletetableentry") or allowupdate then %> + + + +<% htmlviewfunctions.displaycommandresults({"deletetableentry", "updatetableentry"}, session) %> +<% htmlviewfunctions.displaycommandresults({"createtableentry"}, session, true) %> + +<% if form.value.table.value ~= "" then form.label = form.label.." - "..form.value.table.value end %> +<% local header_level = htmlviewfunctions.displaysectionstart(form, page_info) %> +<% +local header_level2 = htmlviewfunctions.incrementheader(header_level) +htmlviewfunctions.displayformstart(form, page_info) +if form.value.connection and ( next(form.value.connection.value) ~= nil or form.value.connection.errtxt ) then + htmlviewfunctions.displayitem(form.value.connection, page_info, header_level2, "connection") +end +htmlviewfunctions.displayitem(form.value.table, page_info, header_level2, "table") +form.option = "Update" +htmlviewfunctions.displayformend(form, htmlviewfunctions.incrementheader(header_level)) +%> + +
Action<%= html.html_escape(f) %>
+ + <% if viewlibrary.check_permission("deletetableentry") or allowupdate then %> + <% end %> <% for i,f in ipairs(form.value.fields.value) do %> - + <% end %> -<% end %> +
Action - <% if not tableentry[f] then %> - NULL - <% else %> - <%= html.html_escape(tableentry[f]) %> - <% end %> - <%= html.html_escape(f) %>
+ +
+
+ Page: + + + + + + +
+
+ <% htmlviewfunctions.displayinfo(form) %> <% if #form.value.entries.value == 0 then %>

No entries found

-- cgit v1.2.3