Commit | Line | Data |
---|---|---|
b340786b AC |
1 | <% @header[("title", ["Member locations"])]; |
2 | ||
3 | val admin = Group.inGroupName "location"; | |
4 | ||
5 | ref showNormal = true; | |
6 | ||
7 | if $"cmd" = "add" then | |
8 | val parent = (case $"parent" of "" => NONE | parent => SOME (Web.stoi parent)); | |
9 | val name = $"name"; | |
10 | ||
11 | if Location.alreadyExists (parent, name) then | |
b6dd1aaf | 12 | %><h3>That location already exists!</h3><% |
b340786b AC |
13 | else |
14 | val id = Location.addLocation (parent, $"name") | |
b6dd1aaf | 15 | %><h3>Location added</h3> |
b340786b AC |
16 | <% end |
17 | ||
18 | elseif $"mod" <> "" then | |
19 | Group.requireGroupName "location"; | |
20 | showNormal := false; | |
21 | val id = Web.stoi ($"mod"); | |
22 | val loc = Location.lookupLocation id %> | |
23 | ||
b6dd1aaf | 24 | <h3>Modify a location</h3> |
b340786b | 25 | |
a4ccdb5e | 26 | <form action="location" method="post"> |
b340786b | 27 | <input type="hidden" name="save" value="<% id %>"> |
b6dd1aaf AC |
28 | <table class="blanks"> |
29 | <tr> <td>Parent:</td> <td><select name="parent"> | |
b340786b AC |
30 | <option value=""<% if #parent loc = NONE then %> selected<% end %>><None></option> |
31 | <% ref indent = 0; | |
32 | foreach item in Location.locationTree (NONE, NONE) do | |
33 | switch item of | |
34 | Util.BEGIN => | |
35 | indent := indent + 1 %> | |
36 | <ul> | |
37 | <% | Util.END => | |
38 | indent := indent - 1 %> | |
39 | </ul> | |
40 | <% | Util.ITEM loc2 => %> | |
41 | <option value="<% #id loc2 %>"<% if SOME (#id loc2) = #parent loc then %> selected<% end %>><% for i in 1 .. indent do %>-<% end %><% Web.html (#name loc2) %></option> | |
42 | <% end | |
43 | end %> | |
44 | </select></td> </tr> | |
10e55875 | 45 | <tr> <td>Name:</td> <td><input name="name" required="required" value="<% Web.html (#name loc) %>"></td> </tr> |
b340786b AC |
46 | <tr> <td><input type="submit" value="Save"></td> </tr> |
47 | </table> | |
48 | </form> | |
49 | ||
50 | <% elseif $"save" <> "" then | |
51 | Group.requireGroupName "location"; | |
52 | val id = Web.stoi ($"save"); | |
53 | val loc = Location.lookupLocation id; | |
54 | Location.modLocation {loc with parent = (case $"parent" of "" => NONE | parent => SOME (Web.stoi parent)), | |
55 | name = $"name"}; | |
b6dd1aaf | 56 | %><h3>Location saved</h3> |
b340786b AC |
57 | |
58 | <% elseif $"del" <> "" then | |
59 | Group.requireGroupName "location"; | |
60 | showNormal := false; | |
61 | val id = Web.stoi ($"del"); | |
62 | val loc = Location.lookupLocation id %> | |
b6dd1aaf | 63 | <h3>Are you sure you want to delete "<% Web.html (#name loc) %>"?</h3> |
b340786b AC |
64 | <a href="location?del2=<% id %>">Yes, delete "<% Web.html (#name loc) %>"!</a> |
65 | ||
66 | <% elseif $"del2" <> "" then | |
67 | Group.requireGroupName "location"; | |
68 | val id = Web.stoi ($"del2"); | |
69 | val loc = Location.lookupLocation id; | |
70 | Location.deleteLocation id %> | |
b6dd1aaf | 71 | <h3>Deleted location "<% Web.html (#name loc) %>"</h3> |
b340786b AC |
72 | |
73 | <% elseif $"addLoc" <> "" then | |
74 | Location.addToLocation {loc = Web.stoi ($"addLoc"), usr = Init.getUserId ()} | |
b6dd1aaf | 75 | %><h3>Added</h3> |
b340786b AC |
76 | |
77 | <% elseif $"remLoc" <> "" then | |
78 | Location.removeFromLocation {loc = Web.stoi ($"remLoc"), usr = Init.getUserId ()} | |
b6dd1aaf | 79 | %><h3>Removed</h3> |
b340786b AC |
80 | |
81 | <% elseif $"id" <> "" then | |
82 | showNormal := false; | |
83 | val id = Web.stoi ($"id"); | |
84 | val loc = Location.lookupLocation id %> | |
85 | ||
86 | <h2><b><% Web.html (#name loc) %></b></h2> | |
87 | ||
88 | <% switch #parent loc of | |
89 | SOME par => | |
90 | val ploc = Location.lookupLocation par; | |
91 | %><b>Parent</b>: <a href="location?id=<% par %>"><% Web.html (#name ploc) %></a><% | |
92 | end %> | |
93 | ||
b6dd1aaf | 94 | <h3>Residents:</h3> |
b340786b AC |
95 | <% ref first = true; |
96 | foreach user in Location.residents id do | |
97 | if first then | |
98 | first := false | |
99 | else | |
100 | %>, <% | |
101 | end; | |
102 | %><a href="user?id=<% #id user %>"><% #name user %></a><% | |
103 | end %> | |
104 | ||
b6dd1aaf | 105 | <h3>Regions:</h3> |
b340786b AC |
106 | <% foreach loc in Location.subLocations (SOME id) do %> |
107 | <a href="location?id=<% #id loc %>"><% Web.html (#name loc) %></a><br> | |
108 | <% end; | |
109 | ||
10e55875 | 110 | end; %> |
b340786b | 111 | |
b340786b | 112 | |
b6dd1aaf | 113 | <h3>Add a new location</h3> |
b340786b | 114 | |
a4ccdb5e | 115 | <form action="location" method="post"> |
b340786b | 116 | <input type="hidden" name="cmd" value="add"> |
b6dd1aaf AC |
117 | <table class="blanks"> |
118 | <tr> <td>Parent:</td> <td><select name="parent"> | |
b340786b AC |
119 | <option value=""><None></option> |
120 | <% ref indent = 0; | |
121 | foreach item in Location.locationTree (NONE, NONE) do | |
122 | switch item of | |
123 | Util.BEGIN => | |
124 | indent := indent + 1 %> | |
125 | <ul> | |
126 | <% | Util.END => | |
127 | indent := indent - 1 %> | |
128 | </ul> | |
129 | <% | Util.ITEM loc => %> | |
130 | <option value="<% #id loc %>"><% for i in 1 .. indent do %>-<% end %><% Web.html (#name loc) %></option> | |
131 | <% end | |
132 | end %> | |
133 | </select></td> </tr> | |
10e55875 | 134 | <tr> <td>Name:</td> <td><input name="name" required="required"></td> </tr> |
b340786b AC |
135 | <tr> <td><input type="submit" value="Add"></td> </tr> |
136 | </table> | |
137 | </form> | |
138 | ||
139 | <% val withUser = Location.locationTreeWithUser (NONE, NONE, Init.getUserId ()) %> | |
140 | ||
b6dd1aaf | 141 | <h3>Add yourself to a location</h3> |
b340786b AC |
142 | |
143 | Adding yourself to a location automatically adds you to all more general loations. | |
144 | ||
a4ccdb5e | 145 | <form action="location" method="post"> |
b340786b AC |
146 | <select name="addLoc"> |
147 | <% ref indent = 0; | |
148 | foreach item in withUser do | |
149 | switch item of | |
150 | Util.BEGIN => | |
151 | indent := indent + 1 %> | |
152 | <ul> | |
153 | <% | Util.END => | |
154 | indent := indent - 1 %> | |
155 | </ul> | |
156 | <% | Util.ITEM (true, _) => | |
157 | | Util.ITEM (false, loc) => %> | |
158 | <option value="<% #id loc %>"><% for i in 1 .. indent do %>-<% end %><% Web.html (#name loc) %></option> | |
159 | <% end | |
160 | end %> | |
161 | </select> <input type="submit" value="Add"> | |
162 | </form> | |
163 | ||
b6dd1aaf | 164 | <h3>Remove yourself from a location</h3> |
b340786b | 165 | |
a4ccdb5e | 166 | <form action="location" method="post"> |
b340786b AC |
167 | <select name="remLoc"> |
168 | <% ref indent = 0; | |
169 | foreach item in withUser do | |
170 | switch item of | |
171 | Util.BEGIN => | |
172 | indent := indent + 1 %> | |
173 | <ul> | |
174 | <% | Util.END => | |
175 | indent := indent - 1 %> | |
176 | </ul> | |
177 | <% | Util.ITEM (false, _) => | |
178 | | Util.ITEM (true, loc) => %> | |
179 | <option value="<% #id loc %>"><% for i in 1 .. indent do %>-<% end %><% Web.html (#name loc) %></option> | |
180 | <% end | |
181 | end %> | |
182 | </select> <input type="submit" value="Remove"> | |
183 | </form> | |
184 | ||
185 | ||
10e55875 CE |
186 | <% if showNormal then %> |
187 | <ul> | |
188 | <% foreach item in Location.locationTreeWithCounts (NONE, NONE) do | |
189 | switch item of | |
190 | Util.BEGIN => %> | |
191 | <ul> | |
192 | <% | Util.END => %> | |
193 | </ul> | |
194 | <% | Util.ITEM (num, loc) => %> | |
195 | <li> <a href="location?id=<% #id loc %>"><% Web.html (#name loc) %></a> (<% num %>) | |
196 | <a href="location?mod=<% #id loc %>">[Modify]</a> <a href="location?del=<% #id loc %>">[Delete]</a></li> | |
197 | <% end | |
198 | end %> | |
199 | </ul> | |
200 | ||
201 | ||
202 | ||
b340786b AC |
203 | <% end %> |
204 | ||
205 | <% @footer[] %> |