diff options
-rw-r--r-- | Makefile | 1 | ||||
-rw-r--r--[l---------] | did-assigndefinition-html.lsp | 50 | ||||
-rw-r--r-- | did-controller.lua | 9 | ||||
-rw-r--r-- | did-model.lua | 16 | ||||
-rw-r--r-- | did.roles | 4 |
5 files changed, 77 insertions, 3 deletions
@@ -5,6 +5,7 @@ VERSION=0.0.1 APP_DIST=\ did* \ template-did-editdefinition-html.lsp \ + template-searchdefinitionlist-text.lsp \ EXTRA_DIST=README Makefile config.mk diff --git a/did-assigndefinition-html.lsp b/did-assigndefinition-html.lsp index ea40188..1b9ee32 120000..100644 --- a/did-assigndefinition-html.lsp +++ b/did-assigndefinition-html.lsp @@ -1 +1,49 @@ -did-editdefinition-html.lsp
\ No newline at end of file +<% local form, viewlibrary, page_info = ... %> +<% require("viewfunctions") %> + +<link rel="stylesheet" type="text/css" href="/jquery.autocomplete.css"> +<script type="text/javascript" src="/js/jquery-latest.js"></script> +<script type="text/javascript" src="/js/jquery.autocomplete.js"></script> +<script type="text/javascript"> + var lastdata = {}; + $(function(){ +// var data = "<% local result = viewlibrary.dispatch_component("listdefinitions", nil, true) + local tab = {} + for i,res in ipairs(result.value.definitions.value) do + tab[#tab+1] = res.did + end + io.write(table.concat(tab, " ")) %>".split(" "); + $("#did").focus(); + $("#did").attr('autocomplete', 'off'); +// $("#did").autocomplete(data); + $("#did").autocomplete("cgi-bin/acf/did/did/searchdefinitionlist"); + $("#did").progress(function(event,data) { + // The data is the number of results + if (lastdata != data) { + lastdata = data; + if (data == 1) { + $("#diderrtxt").html(""); + $("#extension").focus(); + } + else if (data == 0) + $("#diderrtxt").html("No result"); + else + $("#diderrtxt").html(""); + }; + }); + + }); +</script> + +<H1>Assign Definition</H1> +<DL> +<p class="error" id="errortxt"><p></DD> +<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="extension" name="extension" value=""></DD> +<DT></DT><DD><input class="submit" type="submit" name="Save" value="Save"></DD> +</FORM> +</DL> diff --git a/did-controller.lua b/did-controller.lua index 7b27837..a18d4b0 100644 --- a/did-controller.lua +++ b/did-controller.lua @@ -20,6 +20,15 @@ function listdefinitions(self) self.clientdata.identification, self.clientdata.description, self.clientdata.department) end +function searchdefinitionlist(self) + self.clientdata.did = self.clientdata.q or self.clientdata.did + local result = self.model.searchdefinitions(self.clientdata.did) + if self.clientdata.q then + self.conf.viewtype = "text" + end + return result +end + function editdefinition(self) return controllerfunctions.handle_form(self, function() return self.model.getdefinition(self.clientdata.did) end, self.model.updatedefinition, self.clientdata, "Save", "Edit Definition", "Definition Saved") end diff --git a/did-model.lua b/did-model.lua index 0e39d7a..e7d1113 100644 --- a/did-model.lua +++ b/did-model.lua @@ -622,6 +622,22 @@ function getdefinitionlist(did, extension, identification, description, departme return def end +function searchdefinitions(did) + local result = {} + local res, err = pcall(function() + local connected = databaseconnect(DatabaseUser) + local list = listdefinitions("^"..did) + for i,did in ipairs(list) do + result[#result+1] = did.did + end + if connected then databasedisconnect() end + end) + if not res then + def.errtxt = err + end + return cfe({ type="list", value=result, label="DID list" }) +end + function getdefinition(did) local errtxt local group = {} @@ -1,3 +1,3 @@ -USER=did:searchdefinitions,did:listdefinitions,did:listunuseddefinitions,did:listuseddefinitions,did:editdefinition,did:assigndefinition,did:newdefinition,did:viewactivitylog +USER=did:searchdefinitions,did:searchdefinitionlist,did:listdefinitions,did:listunuseddefinitions,did:listuseddefinitions,did:editdefinition,did:assigndefinition,did:newdefinition,did:viewactivitylog EXPERT=did:publish,did:publishall,did:status,did:createdatabase,did:createdefinition,did:deletedefinition -ADMIN=did:searchdefinitions,did:listdefinitions,did:listunuseddefinitions,did:listuseddefinitions,did:editdefinition,did:assigndefinition,did:newdefinition,did:publish,did:publishall,did:status,did:createdatabase,did:createdefinition,did:deletedefinition,did:viewactivitylog +ADMIN=did:searchdefinitions,did:searchdefinitionlist,did:listdefinitions,did:listunuseddefinitions,did:listuseddefinitions,did:editdefinition,did:assigndefinition,did:newdefinition,did:publish,did:publishall,did:status,did:createdatabase,did:createdefinition,did:deletedefinition,did:viewactivitylog |