(*
||M|| This file is part of HELM, an Hypertextual, Electronic
||A|| Library of Mathematics, developed at the Computer Science
||T|| Department, University of Bologna, Italy.
||I||
||T|| HELM is free software; you can redistribute it and/or
||A|| modify it under the terms of the GNU General Public License
\ / version 2 or (at your option) any later version.
\ / This software is distributed as is, NO WARRANTY.
V_______________________________________________________________ *)
module KP = Printf
module EE = RolesEngine
module EG = RolesGlobal
module ET = RolesTypes
module EU = RolesUtils
module WS = WebLWS
let error = ref ""
let open_out () =
let author = "λδ development binary: role manager" in
let description = "λδ development binary: role manager" in
let title = "Role Manager" in
let icon = Filename.concat !EG.base_url "images/crux_32.ico" in
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 ()
let string_of_request req arg =
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 "" ph req p p
in
let button_specs = [
"default", "Refresh";
"save", "Save";
"add", "Add";
"match", "Match";
"remove", "Remove";
] in
let each_button (action, str) =
let req = string_of_request action "" in
KP.printf "%s\n" req str
in
let before_roles p count =
let req = string_of_request "select" p in
KP.printf "
\n";
KP.printf "Roles:\n" p req;
KP.printf "%s\n" count;
filter p
in
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 "
" s n k o;
KP.printf "⮞ " req_x;
KP.printf "%s" req_s str
in
let before_role x n o =
let msg_n = if n then " (added)" else "" in
let msg_o = if o then " (removed)" else "" in
KP.printf "%s%s
\n"
in
let stage s m =
let msg_m = if m then " (modified)" else "" in
KP.printf "
";
KP.printf "Stage: %s%s" s msg_m;
KP.printf "
\n"
in
let before_atoms a p count =
let c, str =
if a then "object-color", "objects"
else "name-color", "names"
in
let req = string_of_request "select" p in
KP.printf "
\n"
in
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 "