let author = "λδ development binary: role manager" in
let description = "λδ development binary: role manager" in
let title = "Role Manager" in
- let css = Filename.concat !EG.base_url "css/roles.css" in
let icon = Filename.concat !EG.base_url "images/crux_32.ico" in
- WS.open_out_html author description title css icon
+ let css = Filename.concat !EG.base_url "css/roles.css" in
+ let js = Filename.concat !EG.base_url "js/roles.js" in
+ WS.open_out_html author description title icon css js
let close_out () =
WS.close_out_html ()
WS.string_of_request "roles" (["system-"^req, arg], "")
let status_out () =
+ let filter p =
+ let req = string_of_request "select" p in
+ let ph = "Filter..." in
+ KP.printf "<input class=\"filter\" type=\"text\" autocomplete=\"on\" \
+ placeholder=%S onkeyup=\"filter('%s','%s');\" id=\"f.%s\"\n/>" ph req p p
+ in
let button_specs = [
"default", "Refresh";
"save", "Save";
"remove", "Remove";
] in
let each_button (action, str) =
- let req = string_of_request action "" in
+ let req = string_of_request action "" in
KP.printf "<span class=\"button\"><a href=\"%s\">%s</a></span>\n" req str
in
let before_roles p count =
let req = string_of_request "select" p in
KP.printf "<div class=\"roles-head role-color\">\n";
- KP.printf "<a href=\"%s\">Roles:</a>\n" req;
- KP.printf "<span class=\"count\">%s</span>\n" count
+ KP.printf "<a id=\"s.%s\" href=\"%s\">Roles:</a>\n" p req;
+ KP.printf "<span class=\"count\">%s</span>\n" count;
+ filter p
in
- let each_role p b str =
+ let each_role n p b k o str =
let req_x = string_of_request "expand" p in
let req_s = string_of_request "select" p in
let s = if b then " selected" else "" in
- KP.printf "<div class=\"role role-color%s\">" s;
+ KP.printf "<div class=\"role role-color%s\" name=%S key=%S ord=%S>" s n k o;
KP.printf "<a href=\"%s\">⮞</a> " req_x;
KP.printf "<a href=\"%s\">%s</a>" req_s str
in
in
let req = string_of_request "select" p in
KP.printf "<div class=\"atoms-head %s\">\n" c;
- KP.printf "<a href=\"%s\">%s:</a>\n" req str;
+ KP.printf "<a id=\"s.%s\" href=\"%s\">%s:</a>\n" p req str;
KP.printf "<span class=\"count\">%s</span>\n" count;
+ filter p;
KP.printf "</div>\n";
KP.printf "<div class=\"atoms\"><table class=\"atoms-table\"><tr>\n"
in
- let each_atom a p b str =
+ let each_atom a n p b k o str =
let c = if a then "object-color" else "name-color" in
let s = if b then " selected" else "" in
let req = string_of_request "select" p in
- KP.printf "<td class=\"atom %s%s\"><a href=\"%s\">%s</a></td>\n" c s req str
+ KP.printf "<td class=\"atom %s%s\" name=%S key=%S ord=%S>\
+ <a href=\"%s\">%s</a></td>\n" c s n k o req str
in
let after_atoms () =
KP.printf "</tr></table></div>\n"
| _ -> EU.raise_error (ET.EWrongRequest (opt, arg))
with
| ET.Error e -> error := EU.string_of_error e
- | e -> error := Printexc.to_string e
+ | e -> error := Printexc.to_string e
end;
open_out ();
status_out ();