summaryrefslogtreecommitdiffstats
path: root/lib/db-viewtable-html.lsp
blob: d3bc76fa83bdb0ee8abba9b4170bf044e292e158 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
<% local form, viewlibrary, page_info, session = ... %>
<% htmlviewfunctions = require("htmlviewfunctions") %>
<% html = require("acf.html") %>

<script type="text/javascript">
	if (typeof jQuery == 'undefined') {
		document.write('<script type="text/javascript" src="<%= html.html_escape(page_info.wwwprefix) %>/js/jquery-latest.js"><\/script>');
	}
</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">
	$(document).ready(function() {
		$("#list").tablesorter({widgets: ['zebra']});
		$(".deletetableentry").click(function(){ return confirm("Are you sure you want to delete this entry?")});
	});
</script>

<%
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
	keyvalues.connection = {}
	for n,v in pairs(form.value.connection.value) do
		redir.value = redir.value.."&connection."..n.."="..html.url_encode(v.value)
		keyvalues.connection[n] = v.value
	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 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))
%>
<table id="list" class="tablesorter"><thead>
	<tr>
	<% if viewlibrary.check_permission("deletetableentry") or viewlibrary.check_permission("updatetableentry") then %>
		<th>Action</th>
	<% end %>
	<% for i,f in ipairs(form.value.fields.value) do %>
		<th><%= html.html_escape(f) %></th>
	<% end %>
	</tr>
</thead><tbody>
<% -- We will reuse the form connection structure to pass 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
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" })
		reversekeyfields[f] = i
	end
end
formvalues.table = form.value.table
form.value.table.type = "hidden"
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
	if not reversekeyfields[f] then
		allowupdate = true
		break
	end
end
allowupdate = allowupdate and viewlibrary.check_permission("updatetableentry")
%>
<% for i,tableentry in ipairs(form.value.entries.value) do %>
	<tr>
	<% if viewlibrary.check_permission("deletetableentry") or allowupdate then %>
		<%
		if formvalues.fields then
			for i,f in ipairs(form.value.keyfields.value) do
				if not tableentry[f] then
					formvalues.nulls.value[f].value = "true"
				else
					formvalues.fields.value[f].value = tableentry[f]
				end
			end
		end
		%>
		<td>
	<% if allowupdate then %>
		<% htmlviewfunctions.displayitem(cfe({type="link", value=formvalues, label="", option="Update", action="updatetableentry"}), page_info, -1) %>
	<% end %>
	<% if viewlibrary.check_permission("deletetableentry") then %>
		<% htmlviewfunctions.displayitem(cfe({type="form", value=formvalues, label="", option="Delete", action="deletetableentry", class="deletetableentry"}), page_info, -1) %>
	<% end %>
		</td>
	<% end %>
	<% for i,f in ipairs(form.value.fields.value) do %>
		<td>
		<% if not tableentry[f] then %>
			<i>NULL</i>
		<% else %>
			<%= html.html_escape(tableentry[f]) %>
		<% end %>
		</td>
	<% end %>
	</tr>
<% end %>
</tbody></table>
<% htmlviewfunctions.displayinfo(form) %>
<% if #form.value.entries.value == 0 then %>
<p>No entries found</p>
<% end %>
<% htmlviewfunctions.displaysectionend(header_level) %>

<% if page_info.action == "viewtable" and viewlibrary and viewlibrary.dispatch_component and viewlibrary.check_permission("createtableentry") then
	viewlibrary.dispatch_component("createtableentry", keyvalues)
end %>