summaryrefslogtreecommitdiffstats
path: root/did-assigndefinition-html.lsp
blob: 28badb599efea174c968ce8993705d05ac0fb300 (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
<% local form, viewlibrary, page_info, session = ... %>
<% html = require("acf.html") %>

<link rel="stylesheet" type="text/css" href="<%= html.html_escape(page_info.wwwprefix) %>/js/jquery.autocomplete.css">
<script type="text/javascript" src="<%= html.html_escape(page_info.wwwprefix) %>/js/jquery-latest.js"></script>
<script type="text/javascript" src="<%= html.html_escape(page_info.wwwprefix) %>/js/jquery.autocomplete.js"></script>
<script type="text/javascript">
	function checkrules() {
		// Here, we can get the did info and check for complicated rules
		// $("#diderrtxt").html("Got focus");
		$.getJSON(
			'<%= html.html_escape(page_info.script .. page_info.prefix .. page_info.controller .. "/" .. page_info.action) %>?viewtype=json&did='+$("#did").val(),
			function(data) {
				// we want to look at data.value.rules.value
				if (data.value.did.errtxt)
					$("#diderrtxt").html(data.value.did.errtxt);
				else if (data.value.rules.value.search("\n") != -1) 
					$("#diderrtxt").html("Warning - this DID contains time constraints");
				else {
					var t = data.value.rules.value.match(/[^,]*/);
					if ( t == "" ) t = "Restricted";
					$("#diderrtxt").html("Current extension is " + t);
				}
			}
		);
	};
	function preventblank() {
		if ($("#rules").val() === "") {
			$("#rules").val(" ");
		}
		if ($("#rules").val() === "r") {
			$("#rules").val("");
		}
	};
	var lastdata = {};
	$(function(){
		var data = "<% local result = viewlibrary.dispatch_component("searchdefinitionlist", nil, true)
		io.write(table.concat(result.value, " ")) %>".split(" ");
		$("#did").focus();
		$("#did").attr('autocomplete', 'off');
//		$("#did").autocomplete(data);
		$("#did").autocomplete(data, {autoFill:true});
//		$("#did").autocomplete("cgi-bin/acf/did/did/searchdefinitionlist");
		$("#did").result(function(event,data,formatted) {
			if (data) {
				$("#rules").focus();
			};
		});
		$("#did").progress(function(event,data) {
			// The data is the number of results
			if (lastdata != data) {
				lastdata = data;
				if (data == 1) {
					$("#diderrtxt").html("");
					$("#rules").focus();
				}
				else if (data == 0)
					$("#diderrtxt").html("No result");
				else
					$("#diderrtxt").html("");
			};
		});
		$.ajaxSetup({cache:false});
                $("#rules").focus(function(event) {
			// We need to give #did an opportunity to autocomplete on the TAB before checking value
			window.setTimeout("checkrules();", 10);
		});
		$("form").submit(preventblank);
	});
</script>

<% if form.descr then
	session.didresult = form.descr
	form.descr = nil
end %>
<% if session.didresult or form.errtxt then %>
<H1>Last Result</H1><DL>
<% if form.errtxt then
	io.write('<P CLASS="error">' .. string.gsub(html.html_escape(form.errtxt), "\n", "<BR>") .. " " .. html.html_escape(form.value.did.value) .. "<BR>\n")
	for name,val in pairs(form.value) do
		if val.errtxt then
			io.write(string.gsub(html.html_escape(val.errtxt), "\n", "<BR>").."<BR>\n")
		end
	end
	io.write("</P>\n")
	form.errtxt = nil
else %>
<P CLASS="descr"><%= string.gsub(html.html_escape(session.didresult), "\n", "<BR>") %></P>
<% end %>
</DL>
<% end %>

<H1>Assign DID Number</H1>
<DL>
<form action="/cgi-bin/acf/did/did/assigndefinition" method="POST">
<DT>DID</DT>
<DD><input class="text" type="text" id="did" name="did" value="">
<p class="error" id="diderrtxt"></p></DD>
<DT>Extension</DT>
<DD><input class="text" type="text" id="rules" name="rules" value="">
Enter 'r' for Restricted</DD>
<DT></DT><DD><input class="submit" type="submit" name="submit" value="Save"></DD>
</FORM>
</DL>