cvsimport
[hcoop/zz_old/portal.git] / domain.mlt
1 <% @header [("title", ["Domain set-up requests"])];
2
3 val admin = Group.inGroupName "server";
4
5 if $"req" <> "" then
6 val dom = $"req";
7 if Util.validDomain dom then
8 val id = Domain.add (Init.getUserId(), dom, $"msg");
9 if not (Domain.notifyNew id) then
10 %><h3>Error sending e-mail notification</h3><%
11 end
12 %><h3>Request added</h3><%
13 else
14 %><h3>Invalid domain name</h3><%
15 end
16
17 elseif $"cmd" = "open" then
18 %><h3>Open requests</h3>
19 <a href="domain?cmd=list">List all requests</a><%
20
21 foreach (name, req) in Domain.listOpen () do %>
22 <br><hr><br>
23 <table class="blanks">
24 <tr> <td>By:</td> <td><a href="user?id=<% #usr req %>"><% name %></a></td> </tr>
25 <tr> <td>Time:</td> <td><% #stamp req %></td> </tr>
26 <tr> <td>Domain:</td> <td><a href="<% Util.whoisUrl (#data req) %>"><% #data req %></a></td> </tr>
27 <tr> <td>Reason:</td> <td colspan="2"><% Web.html (#msg req) %></td> </tr>
28 </table>
29
30 <% if admin then %>
31 <br>
32 <a href="domain?mod=<% #id req %>">[Modify]</a>
33 <a href="domain?del=<% #id req %>">[Delete]</a><br>
34 To set up, run: <tt>domtool-admin grant <% name %> domain <% #data req %></tt>
35 <% end %>
36
37 <% end
38
39 elseif $"cmd" = "list" then
40 %><h3>All requests</h3><%
41
42 foreach (name, req) in Domain.list () do %>
43 <br><hr><br>
44 <table class="blanks">
45 <tr> <td>By:</td> <td colspan="2"><a href="user?id=<% #usr req %>"><% name %></a></td> </tr>
46 <tr> <td>Time:</td> <td colspan="2"><% #stamp req %></td> </tr>
47 <tr> <td>Domain:</td> <td><a href="<% Util.whoisUrl (#data req) %>"><% #data req %></a></td> </tr>
48 <tr> <td>Reason:</td> <td colspan="2"><% Web.html (#msg req) %></td> </tr>
49 </table>
50
51 <% if admin then %>
52 <br>
53 <a href="domain?mod=<% #id req %>">[Modify]</a>
54 <a href="domain?del=<% #id req %>">[Delete]</a>
55 <% end %>
56
57 <% end
58
59 elseif $"mod" <> "" then
60 Group.requireGroupName "server";
61 val id = Web.stoi ($"mod");
62 val req = Domain.lookup id;
63 val user = Init.lookupUser (#usr req) %>
64 <h3>Handle request</h3>
65
66 <form action="domain" method="post">
67 <input type="hidden" name="save" value="<% id %>">
68 <table class="blanks">
69 <tr> <td>Requestor:</td> <td><a href="user?id=<% #usr req %>"><% #name user %></a></td> </tr>
70 <tr> <td>Time:</td> <td><% #stamp req %></td> </tr>
71 <tr> <td>Status</b>:</td> <td><select name="status">
72 <option value="0"<% if #status req = Domain.NEW then %> selected<% end %>>New</option>
73 <option value="1"<% if #status req = Domain.INSTALLED then %> selected<% end %>>Installed</option>
74 <option value="2"<% if #status req = Domain.REJECTED then %> selected<% end %>>Rejected</option>
75 </select></td> </tr>
76 <tr> <td>Domain:</td> <td><input name="dom" value="<% #data req %>"></td> </tr>
77 <tr> <td>Message:</td> <td><textarea name="msg" rows="10" cols="80" wrap="soft"><% Web.html (#msg req) %></textarea></td> </tr>
78 <tr> <td><input type="submit" value="Save"></td> </tr>
79 </table>
80 </form>
81
82 <% elseif $"save" <> "" then
83 Group.requireGroupName "server";
84 val id = Web.stoi ($"save");
85 val req = Domain.lookup id;
86 val oldStatus = #status req;
87 val newStatus = Domain.statusFromInt (Web.stoi ($"status"));
88 Domain.modify {req with data = $"dom", msg = $"msg", status = newStatus};
89 if oldStatus <> newStatus then
90 if not (Domain.notifyMod (oldStatus, newStatus, Init.getUserName(), id)) then
91 %><h3>Error sending e-mail notification</h3><%
92 end
93 end
94 %><h3>Request modified</h3>
95 Back to: <a href="domain?cmd=open">open requests</a>, <a href="domain?cmd=list">all requests</a>
96
97 <% elseif $"del" <> "" then
98 Group.requireGroupName "server";
99 val id = Web.stoi ($"del");
100 val req = Domain.lookup id;
101 val user = Init.lookupUser (#usr req)
102 %><h3>Are you sure you want to delete request by <% #name user %> for <tt><% #data req %></tt>?</h3>
103 <a href="domain?del2=<% id %>">Yes, I'm sure!</a>
104
105 <% elseif $"del2" <> "" then
106 Group.requireGroupName "server";
107 val id = Web.stoi ($"del2");
108 Domain.delete id
109 %><h3>Request deleted</b><h3>
110 Back to: <a href="domain?cmd=open">open requests</a>, <a href="domain?cmd=list">all requests</a>
111
112 <% else %>
113
114 <h3>Request new domain</h3>
115
116 Enter the full Internet domain name that you own and would like set up here. We don't do domain registration, so it is your responsibility to register this name with your registrar of choice before submitting it here. The "Reason" field is optional.
117
118 <form action="domain" method="post">
119 <table class="blanks">
120 <tr> <td>Domain:</td> <td><input name="req"></td> </tr>
121 <tr> <td>Reason:</td> <td><textarea name="msg" rows="5" cols="80" wrap="soft"></textarea></td> </tr>
122 <tr> <td><input type="submit" value="Request"></td> </tr>
123 </table>
124 </form>
125
126 <% end %>
127
128 <% @footer[] %>