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> | |
b6dd1aaf | 45 | <tr> <td>Name:</td> <td><input name="name" 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 | ||
110 | end; | |
111 | ||
112 | if showNormal then %> | |
113 | <ul> | |
114 | <% foreach item in Location.locationTreeWithCounts (NONE, NONE) do | |
115 | switch item of | |
116 | Util.BEGIN => %> | |
117 | <ul> | |
118 | <% | Util.END => %> | |
119 | </ul> | |
120 | <% | Util.ITEM (num, loc) => %> | |
121 | <li> <a href="location?id=<% #id loc %>"><% Web.html (#name loc) %></a> (<% num %>) | |
122 | <a href="location?mod=<% #id loc %>">[Modify]</a> <a href="location?del=<% #id loc %>">[Delete]</a></li> | |
123 | <% end | |
124 | end %> | |
125 | </ul> | |
126 | ||
b6dd1aaf | 127 | <h3>Add a new location</h3> |
b340786b | 128 | |
a4ccdb5e | 129 | <form action="location" method="post"> |
b340786b | 130 | <input type="hidden" name="cmd" value="add"> |
b6dd1aaf AC |
131 | <table class="blanks"> |
132 | <tr> <td>Parent:</td> <td><select name="parent"> | |
b340786b AC |
133 | <option value=""><None></option> |
134 | <% ref indent = 0; | |
135 | foreach item in Location.locationTree (NONE, NONE) do | |
136 | switch item of | |
137 | Util.BEGIN => | |
138 | indent := indent + 1 %> | |
139 | <ul> | |
140 | <% | Util.END => | |
141 | indent := indent - 1 %> | |
142 | </ul> | |
143 | <% | Util.ITEM loc => %> | |
144 | <option value="<% #id loc %>"><% for i in 1 .. indent do %>-<% end %><% Web.html (#name loc) %></option> | |
145 | <% end | |
146 | end %> | |
147 | </select></td> </tr> | |
b6dd1aaf | 148 | <tr> <td>Name:</td> <td><input name="name"></td> </tr> |
b340786b AC |
149 | <tr> <td><input type="submit" value="Add"></td> </tr> |
150 | </table> | |
151 | </form> | |
152 | ||
153 | <% val withUser = Location.locationTreeWithUser (NONE, NONE, Init.getUserId ()) %> | |
154 | ||
b6dd1aaf | 155 | <h3>Add yourself to a location</h3> |
b340786b AC |
156 | |
157 | Adding yourself to a location automatically adds you to all more general loations. | |
158 | ||
a4ccdb5e | 159 | <form action="location" method="post"> |
b340786b AC |
160 | <select name="addLoc"> |
161 | <% ref indent = 0; | |
162 | foreach item in withUser do | |
163 | switch item of | |
164 | Util.BEGIN => | |
165 | indent := indent + 1 %> | |
166 | <ul> | |
167 | <% | Util.END => | |
168 | indent := indent - 1 %> | |
169 | </ul> | |
170 | <% | Util.ITEM (true, _) => | |
171 | | Util.ITEM (false, loc) => %> | |
172 | <option value="<% #id loc %>"><% for i in 1 .. indent do %>-<% end %><% Web.html (#name loc) %></option> | |
173 | <% end | |
174 | end %> | |
175 | </select> <input type="submit" value="Add"> | |
176 | </form> | |
177 | ||
b6dd1aaf | 178 | <h3>Remove yourself from a location</h3> |
b340786b | 179 | |
a4ccdb5e | 180 | <form action="location" method="post"> |
b340786b AC |
181 | <select name="remLoc"> |
182 | <% ref indent = 0; | |
183 | foreach item in withUser do | |
184 | switch item of | |
185 | Util.BEGIN => | |
186 | indent := indent + 1 %> | |
187 | <ul> | |
188 | <% | Util.END => | |
189 | indent := indent - 1 %> | |
190 | </ul> | |
191 | <% | Util.ITEM (false, _) => | |
192 | | Util.ITEM (true, loc) => %> | |
193 | <option value="<% #id loc %>"><% for i in 1 .. indent do %>-<% end %><% Web.html (#name loc) %></option> | |
194 | <% end | |
195 | end %> | |
196 | </select> <input type="submit" value="Remove"> | |
197 | </form> | |
198 | ||
199 | ||
200 | <% end %> | |
201 | ||
202 | <% @footer[] %> |