Contact kind administration
[bpt/portal.git] / kind.mlt
diff --git a/kind.mlt b/kind.mlt
new file mode 100644 (file)
index 0000000..2f8f08c
--- /dev/null
+++ b/kind.mlt
@@ -0,0 +1,82 @@
+<% @header[("title", ["Contact kind admin"])];
+
+Group.requireGroupName "contact";
+
+ref showNormal = true;
+
+if $"cmd" = "add" then
+       val id = Contact.addKind ($"name", (iff $"url" = "on" then SOME ($"urlPrefix", $"urlPostfix") else NONE))
+       %> <h3><b>Contact kind added</b></h3>
+
+<% elseif $"mod" <> "" then
+       showNormal := false;
+       val id = Web.stoi ($"mod");
+       val kind = Contact.lookupKind id %>
+
+<form action="kind">
+<input type="hidden" name="save" value="<% id %>">
+<table>
+<tr> <td align="right"><b>Name</b>:</td> <td><input name="name" value="<% Web.html (#name kind) %>"></td> </tr>
+<tr> <td align="right"><b>URL pattern</b>:</td> <td><%
+       switch #makeUrl kind of
+                 NONE => %><input type="checkbox" name="url"> <input name="urlPrefix">...<input name="urlPostfix"><%
+               | SOME (pre, post) => %><input type="checkbox" name="url" checked> <input name="urlPrefix" value="<% Web.html pre %>">...<input name="urlPostfix" value="<% Web.html post %>"><%
+       end
+%></td> </tr>
+<tr> <td><input type="submit" value="Save"></td> </tr>
+</table>
+</form>
+
+<% elseif $"save" <> "" then
+       val id = Web.stoi ($"save");
+       val kind = Contact.lookupKind id;
+       Contact.modKind {kind with name = $"name", makeUrl = (iff $"url" = "on" then SOME ($"urlPrefix", $"urlPostfix") else NONE)}
+       %> <h3><b>Contact kind modified</b></h3>
+
+<% elseif $"del" <> "" then
+       showNormal := false;
+       val id = Web.stoi ($"del");
+       val kind = Contact.lookupKind id %>
+       <h3><b>Are you sure you want to delete "<% Web.html (#name kind) %>"?</b></h3>
+
+       <a href="kind?del2=<% $"del" %>">Yes, delete "<% Web.html (#name kind) %>"!</a>
+
+<% elseif $"del2" <> "" then
+       val id = Web.stoi ($"del2");
+       val kind = Contact.lookupKind id;
+       Contact.deleteKind id %>
+       <h3><b>"<% Web.html (#name kind) %>" deleted</b></h3>
+
+<% end %>
+
+<% if showNormal then %>
+
+<h3><b>Add a contact kind</b></h3>
+
+<form action="kind">
+<input type="hidden" name="cmd" value="add">
+<table>
+<tr> <td align="right"><b>Name</b>:</td> <td><input name="name"></td> </tr>
+<tr> <td align="right"><b>URL pattern</b>:</td> <td><input type="checkbox" name="url"> <input name="urlPrefix">...<input name="urlPostfix"></td> </tr>
+<tr> <td><input type="submit" value="Add"></td> </tr>
+</table>
+</form>
+
+<h3><b>Current contact kinds</b></h3>
+
+<table>
+<tr> <td><b>Kind</b></td> <td><b>URL pattern</b></td> </tr>
+<% foreach kind in Contact.listKinds () do %>
+       <tr>
+       <td><% Web.html (#name kind) %></td>
+       <td><% switch #makeUrl kind of
+                 NONE => %><i>none</i><%
+               | SOME (pre, post) => Web.html pre %>...<% Web.html post
+       end %></td>
+       <td><a href="kind?mod=<% #id kind %>">[Modify]</a> <a href="kind?del=<% #id kind %>">[Delete]</a></td>
+       </tr>
+<% end %>
+
+<% end %>
+
+<% @footer[] %>
\ No newline at end of file