Commit | Line | Data |
---|---|---|
208e2cbc AC |
1 | <% Group.requireGroupNum 0; |
2 | ||
3 | @header [("title", ["Member management"])]; | |
4 | ||
5 | ref showNormal = true; | |
6 | ||
7 | if $"cmd" = "Create" then | |
8 | if not (Init.validUsername ($"name")) then %> | |
9 | <h3><b>Invalid username</b></h3> | |
10 | <% else switch Init.userNameToId ($"name") of | |
11 | SOME _ => %> | |
12 | <h3><b>Username already in use</b></h3> | |
13 | <% | NONE => | |
14 | val bal = | |
15 | (case $"bal" of | |
16 | "" => Balance.addBalance ($"name") | |
17 | | s => Web.stoi s); | |
18 | ||
19 | val id = Init.addUser ($"name", $"rname", bal); | |
20 | Group.addToGroups (id, map Web.stoi (Web.getMultiParam "grp")) %> | |
21 | <h3><b>Member added</b></h3> | |
22 | <% end | |
23 | end | |
24 | elseif $"mod" <> "" then | |
25 | showNormal := false; | |
26 | val user = Init.lookupUser (Web.stoi ($"mod")) %> | |
27 | <h3><b>Modify member record</b></h3> | |
28 | ||
29 | <form action="users"> | |
30 | <input type="hidden" name="id" value="<% $"mod" %>"> | |
31 | <table> | |
32 | <tr> <td align="right"><b>Name</b>:</td> <td><input name="name" value="<% #name user %>"></td> </tr> | |
33 | <tr> <td align="right"><b>Real name</b>:</td> <td><input name="rname" value="<% #rname user %>"></td> </tr> | |
34 | <tr> <td align="right" valign="top"><b>Funded by</b>:</td> <td><select name="bal"> | |
35 | <% foreach bal in Balance.listBalances () do %> | |
36 | <option value="<% #id bal %>"<% if #bal user = #id bal then %> selected <% end %>><% Web.html (#name bal) %></option> | |
37 | <% end %> | |
38 | </select></td></tr> | |
39 | <tr> <td><input type="submit" name="cmd" value="Save"></td> </tr> | |
40 | </table> | |
41 | </form> | |
42 | ||
43 | <% elseif $"cmd" = "Save" then | |
44 | val user = Init.lookupUser (Web.stoi ($"id")); | |
45 | Init.modUser {user with name = $"name", bal = Web.stoi ($"bal")} %> | |
46 | <h3><b>Member record saved.</b></h3> | |
47 | ||
48 | <% elseif $"del" <> "" then | |
49 | showNormal := false; | |
50 | val user = Init.lookupUser (Web.stoi ($"del")) %> | |
51 | <h3><b>Are you sure you want to delete member <a href="user?id=<% #id user %>"><% #name user %></a>?</b></h3> | |
52 | <a href="users?del2=<% $"del" %>">Yes, delete <% #name user %>!</a> | |
53 | ||
54 | <% elseif $"del2" <> "" then | |
55 | val user = Init.lookupUser (Web.stoi ($"del2")); | |
56 | Init.deleteUser (Web.stoi ($"del2")) %> | |
57 | <h3><b><% #name user %> deleted!</b></h3> | |
58 | ||
59 | <% end %> | |
60 | ||
61 | <% if showNormal then %> | |
62 | <h3><b>New member</b></h3> | |
63 | ||
64 | <form action="users"> | |
65 | <table> | |
66 | <tr> <td align="right"><b>Name</b>:</td> <td><input name="name"></td> </tr> | |
67 | <tr> <td align="right"><b>Real name</b>:</td> <td><input name="rname"></td> </tr> | |
68 | <tr> <td align="right" valign="top"><b>Funded by</b>:</td> <td><select name="bal"> | |
69 | <option value="">A new balance</option> | |
70 | <% foreach bal in Balance.listBalances () do %> | |
71 | <option value="<% #id bal %>"><% Web.html (#name bal) %></option> | |
72 | <% end %> | |
73 | </select></td></tr> | |
74 | <tr> <td align="right"><b>Groups</b>:</td> <td><select name="grp" size="5" multiple> | |
75 | <% foreach group in Group.listGroups () do %> | |
76 | <option value="<% #id group %>"><% Web.html (#name group) %></option> | |
77 | <% end %> | |
78 | </select></td></tr> | |
79 | <tr> <td><input type="submit" name="cmd" value="Create"></td> </tr> | |
80 | </table> | |
81 | </form> | |
82 | ||
83 | <h3><b>Manage current members</b></h3> | |
84 | ||
85 | <table> | |
86 | <% foreach user in Init.listUsers () do %> | |
87 | <tr> <td><a href="user?id=<% #id user %>"><% Web.html (#name user) %></a></td> <td> | |
88 | <% val bal = Balance.lookupBalance (#bal user); | |
89 | if #name bal <> #name user then %> | |
90 | <i><% Web.html (#name bal) %></i> | |
91 | <% end %> | |
92 | </td><td><a href="users?mod=<% #id user %>">[Modify]</a> <a href="users?del=<% #id user %>">[Delete]</a></td> </tr> | |
93 | <% end %> | |
94 | </table> | |
95 | ||
96 | <% end %> | |
97 | ||
98 | <% @footer [] %> |