cvsimport
[hcoop/zz_old/portal.git] / list.mlt
CommitLineData
78304862 1<% @header [("title", ["Mailing list creation requests"])];
2
3val admin = Group.inGroupName "lists";
4
5if $"req" <> "" then
6 val dom = $"req";
7 if Util.validEmail dom then
8 val id = MailingList.add (Init.getUserId(), dom, $"msg");
9 if not (MailingList.notifyNew id) then
1fe415e0 10 %><h3>Error sending e-mail notification</h3><%
78304862 11 end
1fe415e0 12 %><h3>Request added</h3><%
78304862 13 else
1fe415e0 14 %><h3>Invalid list e-mail address</h3><%
78304862 15 end
16
17elseif $"cmd" = "open" then
1fe415e0 18 %><h3>Open requests</h3>
78304862 19 <a href="list?cmd=list">List all requests</a><%
20
21 foreach (name, req) in MailingList.listOpen () do %>
22<br><hr><br>
1fe415e0 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>List name:</td> <td><% #data req %></td> </tr>
27<tr> <td>Reason:</td> <td colspan="2"><% Web.html (#msg req) %></td> </tr>
78304862 28</table>
29
f038f26c 30<% if admin then
22969c7b 31 val vitals = MailingList.listWebHost (#data req) %>
78304862 32 <br>
33 <a href="list?mod=<% #id req %>">[Modify]</a>
34 <a href="list?del=<% #id req %>">[Delete]</a><br>
22969c7b 35 To set up, run: <tt>listnew <% #user vitals %>&nbsp;<% #dom vitals %>&nbsp;<% #vhost vitals %>&nbsp;<% name %>&nbsp;<% Util.randomPassword () %></tt>
78304862 36<% end %>
37
38<% end
39
40elseif $"cmd" = "list" then
1fe415e0 41 %><h3>All requests</h3><%
78304862 42
43 foreach (name, req) in MailingList.list () do %>
44<br><hr><br>
1fe415e0 45<table class="blanks">
46<tr> <td>By:</td> <td colspan="2"><a href="user?id=<% #usr req %>"><% name %></a></td> </tr>
47<tr> <td>Time:</td> <td colspan="2"><% #stamp req %></td> </tr>
48<tr> <td>List name:</td> <td><% #data req %></td> </tr>
49<tr> <td>Reason:</td> <td colspan="2"><% Web.html (#msg req) %></td> </tr>
78304862 50</table>
51
52<% if admin then %>
53 <br>
54 <a href="list?mod=<% #id req %>">[Modify]</a>
55 <a href="list?del=<% #id req %>">[Delete]</a>
56<% end %>
57
58<% end
59
60elseif $"mod" <> "" then
61 Group.requireGroupName "lists";
62 val id = Web.stoi ($"mod");
63 val req = MailingList.lookup id;
64 val user = Init.lookupUser (#usr req) %>
1fe415e0 65<h3>Handle request</h3>
78304862 66
add44c00 67<form action="list" method="post">
78304862 68<input type="hidden" name="save" value="<% id %>">
1fe415e0 69<table class="blanks">
70<tr> <td>Requestor:</td> <td><a href="user?id=<% #usr req %>"><% #name user %></a></td> </tr>
71<tr> <td>Time:</td> <td><% #stamp req %></td> </tr>
72<tr> <td>Status:</td> <td><select name="status">
78304862 73 <option value="0"<% if #status req = MailingList.NEW then %> selected<% end %>>New</option>
74 <option value="1"<% if #status req = MailingList.INSTALLED then %> selected<% end %>>Installed</option>
75 <option value="2"<% if #status req = MailingList.REJECTED then %> selected<% end %>>Rejected</option>
76</select></td> </tr>
1fe415e0 77<tr> <td>List name:</td> <td><input name="dom" value="<% #data req %>"></td> </tr>
78<tr> <td>Message:</td> <td><textarea name="msg" rows="10" cols="80" wrap="soft"><% Web.html (#msg req) %></textarea></td> </tr>
78304862 79<tr> <td><input type="submit" value="Save"></td> </tr>
80</table>
81</form>
82
83<% elseif $"save" <> "" then
84 Group.requireGroupName "lists";
85 val id = Web.stoi ($"save");
86 val req = MailingList.lookup id;
87 val oldStatus = #status req;
88 val newStatus = MailingList.statusFromInt (Web.stoi ($"status"));
89 MailingList.modify {req with data = $"dom", msg = $"msg", status = newStatus};
90 if oldStatus <> newStatus then
91 if not (MailingList.notifyMod (oldStatus, newStatus, Init.getUserName(), id)) then
1fe415e0 92 %><h3>Error sending e-mail notification</h3><%
78304862 93 end
94 end
1fe415e0 95 %><h3>Request modified</h3>
78304862 96 Back to: <a href="list?cmd=open">open requests</a>, <a href="list?cmd=list">all requests</a>
97
98<% elseif $"del" <> "" then
99 Group.requireGroupName "lists";
100 val id = Web.stoi ($"del");
101 val req = MailingList.lookup id;
102 val user = Init.lookupUser (#usr req)
1fe415e0 103 %><h3>Are you sure you want to delete request by <% #name user %> for <tt><% #data req %></tt>?</h3>
78304862 104 <a href="list?del2=<% id %>">Yes, I'm sure!</a>
105
106<% elseif $"del2" <> "" then
107 Group.requireGroupName "lists";
108 val id = Web.stoi ($"del2");
109 MailingList.delete id
1fe415e0 110 %><h3>Request deleted</b><h3>
78304862 111 Back to: <a href="list?cmd=open">open requests</a>, <a href="list?cmd=list">all requests</a>
112
113<% else %>
114
1fe415e0 115<h3>Request new mailing list</h3>
78304862 116
566fd712 117<p>Enter here the e-mail address you would like for your list. Please keep in mind that the part of your list address before the "@" must be unique across all mailing lists we run. We may reject applications with overly general names here, especially names of current users or UNIX usernames that are likely to be chosen by future members. The "Reason" field is optional.</p>
118
fb88d4e5 119<p>If you want to use the Mailman web interface on your new list, and you want this to appear on a different web virtual host than hcoop.net, then you should follow <a href="http://wiki.hcoop.net/MemberManual/Email/MailingLists">these instructions</a> <b>before</b> requesting the list. You should only need to follow the instructions once per domain.</p>
78304862 120
add44c00 121<form action="list" method="post">
1fe415e0 122<table class="blanks">
123<tr> <td>List name:</td> <td><input name="req"></td> </tr>
124<tr> <td>Reason:</td> <td><textarea name="msg" rows="5" cols="80" wrap="soft"></textarea></td> </tr>
78304862 125<tr> <td><input type="submit" value="Request"></td> </tr>
126</table>
127</form>
128
129<% end %>
130
e11f6f75 131<% @footer[] %>