sugoi-mail 0.1.0 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- data/INSTALL +94 -0
- data/app/apis/mailservice_api.rb +32 -22
- data/app/controllers/account_controller.rb +38 -22
- data/app/controllers/address_controller.rb +2 -0
- data/app/controllers/application.rb +12 -1
- data/app/controllers/base_user_controller.rb +29 -0
- data/app/controllers/domain_controller.rb +7 -8
- data/app/controllers/mail_admin_controller.rb +275 -0
- data/app/controllers/mailinglist_controller.rb +68 -14
- data/app/controllers/mailservice_controller.rb +116 -94
- data/app/controllers/navigation_controller.rb +3 -0
- data/app/controllers/root_admin_controller.rb +346 -0
- data/app/controllers/sugoi_admin_controller.rb +16 -13
- data/app/helpers/base_user_helper.rb +2 -0
- data/app/helpers/mail_admin_helper.rb +7 -0
- data/app/helpers/navigation_helper.rb +2 -0
- data/app/helpers/root_admin_helper.rb +2 -0
- data/app/models/address.rb +3 -4
- data/app/models/domain.rb +1 -1
- data/app/models/mail_admin.rb +2 -0
- data/app/models/mailinglist.rb +41 -19
- data/app/models/mailinglist_class.rb +1 -0
- data/app/models/message.rb +18 -36
- data/app/models/proxy_link.rb +14 -6
- data/app/views/account/login.rhtml +14 -12
- data/app/views/account/logout.rhtml +4 -8
- data/app/views/account/welcome.rhtml +3 -13
- data/app/views/base_user/add_address.rhtml +3 -0
- data/app/views/base_user/edit_address.rhtml +3 -0
- data/app/views/base_user/edit_user_list.rhtml +21 -0
- data/app/views/base_user/list_mailinglists.rhtml +3 -0
- data/app/views/base_user/remove_address.rhtml +3 -0
- data/app/views/base_user/unsubscribe_self.rhtml +3 -0
- data/app/views/layouts/application.rhtml +47 -0
- data/app/views/layouts/login.rhtml +34 -0
- data/app/views/layouts/sugoi_admin.rhtml +1 -0
- data/app/views/mail_admin/_form.rhtml +11 -0
- data/app/views/mail_admin/edit_admin_message.rhtml +12 -0
- data/app/views/mail_admin/list_admin_messages.rhtml +20 -0
- data/app/views/mail_admin/new_admin_message.rhtml +0 -0
- data/app/views/mailinglist/_address_form.rhtml +23 -0
- data/app/views/mailinglist/_form.rhtml +10 -14
- data/app/views/mailinglist/_new_class_form.rhtml +16 -0
- data/app/views/mailinglist/_new_form.rhtml +30 -0
- data/app/views/mailinglist/edit.rhtml +11 -5
- data/app/views/mailinglist/list.rhtml +15 -15
- data/app/views/mailinglist/list_mailinglist_classes.rhtml +18 -0
- data/app/views/mailinglist/new.rhtml +5 -5
- data/app/views/mailinglist/new_address.rhtml +10 -0
- data/app/views/mailinglist/new_mailinglist_class.rhtml +8 -0
- data/app/views/mailinglist/show.rhtml +15 -13
- data/app/views/navigation/_base_add_address_module.rhtml +2 -0
- data/app/views/navigation/_base_edit_address_module.rhtml +2 -0
- data/app/views/navigation/_base_edit_user_list_module.rhtml +5 -0
- data/app/views/navigation/_base_index_module.rhtml +2 -0
- data/app/views/navigation/_base_list_mailinglists_module.rhtml +3 -0
- data/app/views/navigation/_base_remove_address_module.rhtml +2 -0
- data/app/views/navigation/_base_unsubscribe_self_module.rhtml +2 -0
- data/app/views/navigation/_base_welcome_module.rhtml +3 -0
- data/app/views/navigation/_nav_module.rhtml +77 -0
- data/app/views/navigation/_root_add_address_module.rhtml +3 -0
- data/app/views/navigation/_root_add_mailinglist_module.rhtml +3 -0
- data/app/views/navigation/_root_add_user_module.rhtml +3 -0
- data/app/views/navigation/_root_change_user_password_module.rhtml +3 -0
- data/app/views/navigation/_root_edit_address_module.rhtml +13 -0
- data/app/views/navigation/_root_edit_mailinglist_module.rhtml +12 -0
- data/app/views/navigation/_root_edit_user_list_module.rhtml +3 -0
- data/app/views/navigation/_root_edit_user_module.rhtml +10 -0
- data/app/views/navigation/_root_index_module.rhtml +4 -0
- data/app/views/navigation/_root_list_addresses_module.rhtml +11 -0
- data/app/views/navigation/_root_list_mailinglists_module.rhtml +11 -0
- data/app/views/navigation/_root_list_users_module.rhtml +12 -0
- data/app/views/navigation/_root_remove_address_module.rhtml +12 -0
- data/app/views/navigation/_root_remove_mailinglist_module.rhtml +12 -0
- data/app/views/navigation/_root_remove_user_module.rhtml +12 -0
- data/app/views/navigation/_root_show_user_module.rhtml +10 -0
- data/app/views/navigation/_root_welcome_module.rhtml +3 -0
- data/app/views/navigation/chooseNav.rhtml +0 -0
- data/app/views/navigation/logout.rhtml +8 -0
- data/app/views/root_admin/_form.rhtml +21 -0
- data/app/views/root_admin/add_address.rhtml +3 -0
- data/app/views/root_admin/add_mailinglist.rhtml +3 -0
- data/app/views/root_admin/admin_user_list.rhtml +29 -0
- data/app/views/root_admin/admin_user_new.rhtml +8 -0
- data/app/views/root_admin/change_user_password.rhtml +3 -0
- data/app/views/root_admin/edit_address.rhtml +3 -0
- data/app/views/root_admin/edit_mailinglist.rhtml +3 -0
- data/app/views/root_admin/edit_user_list.rhtml +3 -0
- data/app/views/root_admin/list_addresses.rhtml +3 -0
- data/app/views/root_admin/list_mailinglists.rhtml +3 -0
- data/app/views/root_admin/list_users.rhtml +32 -0
- data/app/views/root_admin/remove_address.rhtml +3 -0
- data/app/views/root_admin/remove_mailinglist.rhtml +3 -0
- data/app/views/root_admin/remove_user.rhtml +3 -0
- data/app/views/root_admin/show_user.rhtml +3 -0
- data/app/views/sugoi_admin/_command_description.rhtml +1 -1
- data/app/views/sugoi_admin/_command_list.rhtml +1 -1
- data/app/views/sugoi_admin/create_domain.rhtml +1 -1
- data/app/views/sugoi_admin/create_list.rhtml +1 -1
- data/app/views/sugoi_admin/create_user.rhtml +1 -1
- data/app/views/sugoi_admin/help.rhtml +1 -1
- data/app/views/sugoi_admin/init.rhtml +1 -1
- data/app/views/sugoi_admin/list_addresses.rhtml +1 -1
- data/app/views/sugoi_admin/list_domains.rhtml +1 -1
- data/app/views/sugoi_admin/list_mailinglist_classes.rhtml +1 -1
- data/app/views/sugoi_admin/list_mailinglists.rhtml +1 -1
- data/app/views/sugoi_admin/list_users.rhtml +1 -1
- data/app/views/sugoi_admin/set_config.rhtml +4 -1
- data/app/views/sugoi_admin/show_config.rhtml +1 -1
- data/app/views/sugoi_admin/subscribe.rhtml +1 -1
- data/app/views/sugoi_admin/unsubscribe.rhtml +1 -1
- data/bin/maild +1 -1
- data/bin/sugoi-mail +1 -1
- data/config/environment.rb +2 -2
- data/config/routes.rb +4 -2
- data/db/migrate/028_add_sessions.rb +15 -0
- data/db/schema.rb +56 -48
- data/lib/login_system.rb +6 -6
- data/lib/tasks/release.rake +2 -2
- data/public/404.html +27 -5
- data/public/500.html +27 -5
- data/public/images/celltop1.jpg +0 -0
- data/public/images/title11.jpg +0 -0
- data/public/{index.html → index_default.html} +0 -0
- data/public/javascripts/dragdrop.js +1 -1
- data/public/javascripts/effects.js +1 -1
- data/public/javascripts/prototype.js +1 -1
- data/public/stylesheets/global.css +201 -0
- data/public/stylesheets/scaffold.css +176 -11
- data/public/stylesheets/trestle.css +176 -11
- data/script/cover +6 -0
- data/script/process/inspector +3 -0
- data/test/all.rb +2 -0
- data/test/fixtures/helps.yml +1 -1
- data/test/fixtures/mailinglist_classes.yml +4 -4
- data/test/fixtures/messages.yml +22 -2
- data/test/functional/base_user_controller_test.rb +18 -0
- data/test/functional/mail_admin_controller_test.rb +18 -0
- data/test/functional/mailservice_controller_test.rb +164 -19
- data/test/functional/navigation_controller_test.rb +18 -0
- data/test/functional/root_admin_controller_test.rb +18 -0
- data/test/functional/sugoi_admin_controller_test.rb +68 -10
- data/test/functionals.rb +2 -1
- data/test/integration/test_soap.rb +3 -1
- data/test/unit/address_test.rb +16 -1
- data/test/unit/domain_test.rb +5 -12
- data/test/unit/mailinglist_class_test.rb +2 -2
- data/test/unit/mailinglist_test.rb +138 -3
- data/test/unit/message_test.rb +256 -1
- data/test/unit/proxy_link_test.rb +37 -0
- data/test/unit/sys_config_test.rb +6 -0
- data/test/unit/user_test.rb +20 -0
- data/test/units.rb +2 -1
- metadata +94 -8
- data/app/views/layouts/address.rhtml +0 -13
- data/app/views/layouts/scaffold.rhtml +0 -13
data/app/models/message.rb
CHANGED
@@ -44,11 +44,11 @@ class Message < ActiveRecord::Base
|
|
44
44
|
match(/(\<[^>]+\>)/)
|
45
45
|
if referenced then
|
46
46
|
referenced=referenced[1]
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
47
|
+
end
|
48
|
+
else
|
49
|
+
if mess.headers["References"] then
|
50
|
+
referenced=mess.headers["References"][0].contents.
|
51
|
+
split.last
|
52
52
|
end
|
53
53
|
end
|
54
54
|
Message.find_by_messageid referenced
|
@@ -79,7 +79,13 @@ class Message < ActiveRecord::Base
|
|
79
79
|
message.body = mess.body.to_s
|
80
80
|
message.parent = find_parent mess
|
81
81
|
message.envelope_from = mess.from
|
82
|
-
message.envelope_to = mess.to.map
|
82
|
+
message.envelope_to = mess.to.map do |t|
|
83
|
+
if Gurgitate::Header === t
|
84
|
+
t.contents
|
85
|
+
else
|
86
|
+
t
|
87
|
+
end
|
88
|
+
end
|
83
89
|
|
84
90
|
message.address.save if message.address.new_record?
|
85
91
|
|
@@ -92,7 +98,7 @@ class Message < ActiveRecord::Base
|
|
92
98
|
return message
|
93
99
|
|
94
100
|
elsif String === mess then
|
95
|
-
from_message Gurgitate::Mailmessage.new(mess
|
101
|
+
from_message Gurgitate::Mailmessage.new(mess,recipient,sender)
|
96
102
|
end
|
97
103
|
end
|
98
104
|
|
@@ -208,29 +214,18 @@ class Message < ActiveRecord::Base
|
|
208
214
|
# "deliver" message. This might have headers rewritten to reflect
|
209
215
|
# mail aliases.
|
210
216
|
def messagetext(smtpdetails={})
|
211
|
-
if smtpdetails.
|
212
|
-
smtpdetails[
|
217
|
+
if smtpdetails.has_key? :custom_message
|
218
|
+
return smtpdetails[:custom_message]
|
213
219
|
end
|
214
220
|
|
215
|
-
if mailinglist
|
221
|
+
if mailinglist and
|
222
|
+
( mailinglist.canonical_address? or mailinglist.closed? ) then
|
216
223
|
proxify_addresses
|
217
224
|
else
|
218
225
|
to_s
|
219
226
|
end
|
220
227
|
end
|
221
228
|
|
222
|
-
def proxy_deliver(from_address, to_address)
|
223
|
-
text = proxify_addresses
|
224
|
-
|
225
|
-
smtpserver = "localhost"
|
226
|
-
smtpport = 25
|
227
|
-
|
228
|
-
Net::SMTP.start(smtpserver, smtpport, "localhost") do |smtp|
|
229
|
-
smtp.send_message text, from_address, to_address
|
230
|
-
end
|
231
|
-
end
|
232
|
-
|
233
|
-
|
234
229
|
# Delivers a message with the optional parameter hash +smtpdetails+.
|
235
230
|
#
|
236
231
|
#
|
@@ -256,19 +251,10 @@ class Message < ActiveRecord::Base
|
|
256
251
|
addresses = mailinglist.expand_addresses.map { |a| a.address }
|
257
252
|
end
|
258
253
|
|
259
|
-
|
260
|
-
# Hm, not sure why this is *here* instead of somewhere
|
261
|
-
# else. Fix later.
|
262
|
-
#
|
263
|
-
# (This should actually be in the database somewhere, I'm thinking.)
|
264
254
|
smtpserver = SysConfig.smtpserver
|
265
255
|
smtpport = SysConfig.smtpport
|
266
256
|
mysmtpname = SysConfig.mysmtpname
|
267
257
|
|
268
|
-
# smtpserver = "localhost" # XXX MAGIC CONSTANT XXX
|
269
|
-
# smtpport = 25 # XXX MAGIC CONSTANT XXX
|
270
|
-
# mysmtpname = "localhost" # XXX MAGIC CONSTNAT XXX
|
271
|
-
|
272
258
|
if smtpdetails.has_key? :smtpserver then
|
273
259
|
smtpserver = smtpdetails[:smtpserver]
|
274
260
|
end
|
@@ -278,12 +264,8 @@ class Message < ActiveRecord::Base
|
|
278
264
|
|
279
265
|
fromaddress = mailinglist.name + SysConfig.address_separator +
|
280
266
|
SysConfig.bounce_suffix + "@" + mailinglist.user.domain.name
|
281
|
-
# XXX MAGIC CONSTANT XXX
|
282
|
-
# fromaddress = "#{mailinglist.name}-bounces@#{mailinglist.user.domain.name}"
|
283
267
|
Net::SMTP.start(smtpserver, smtpport, mysmtpname) do |smtp|
|
284
|
-
|
285
|
-
# puts "Message id is #{id}"
|
286
|
-
smtp.send_message messagetext, fromaddress, addresses
|
268
|
+
smtp.send_message messagetext(smtpdetails), fromaddress, addresses
|
287
269
|
end
|
288
270
|
end
|
289
271
|
|
data/app/models/proxy_link.rb
CHANGED
@@ -13,12 +13,20 @@ class ProxyLink < ActiveRecord::Base
|
|
13
13
|
if matches
|
14
14
|
mlname, proxyid, domainname = matches[1..3]
|
15
15
|
domain=Domain.find_by_name domainname
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
16
|
+
if domain
|
17
|
+
ml=Mailinglist.find_all_by_name(mlname).find do |m|
|
18
|
+
m.domain.id == domain.id
|
19
|
+
end
|
20
|
+
if ml
|
21
|
+
# find_by_id instead of find so that it returns
|
22
|
+
# nil if not found rather than raising an exception
|
23
|
+
pl=self.find_by_id proxyid.to_i
|
24
|
+
if pl
|
25
|
+
if pl.mailinglist_id == ml.id then
|
26
|
+
return pl.address.address
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
22
30
|
end
|
23
31
|
end
|
24
32
|
end
|
@@ -1,21 +1,23 @@
|
|
1
|
-
<%= start_form_tag :action=> "login" %>
|
2
1
|
|
3
|
-
<
|
4
|
-
<h3>Please login</h3>
|
5
|
-
|
6
|
-
<% if @flash['notice'] %>
|
7
|
-
<div id="message"><%= @flash['notice'] %></div>
|
8
|
-
<% end %>
|
2
|
+
<h3>Please login</h3>
|
9
3
|
|
10
|
-
<label for="user_login">Login:</label><br/>
|
11
|
-
<input type="text" name="user_login" id="user_login" size="30" value=""/><br/>
|
12
4
|
|
13
|
-
|
5
|
+
<%= start_form_tag :action=> "login" %>
|
6
|
+
<div title="Account login" id="loginform" class="form">
|
7
|
+
<br/>
|
8
|
+
<br/>
|
9
|
+
<label for="user_login">Login:</label>
|
10
|
+
<input type="text" name="user_login" id="user_login" class="loginInput" size="30" value=""/><br/>
|
11
|
+
<br/>
|
12
|
+
<label for="user_password">Password:</label>
|
14
13
|
<input type="password" name="user_password" id="user_password" size="30"/>
|
15
14
|
|
16
|
-
<br/>
|
15
|
+
<br/><br/><br/>
|
17
16
|
<input type="submit" name="login" value="Login »" class="primary" />
|
18
|
-
|
17
|
+
<br/><br/><br/>
|
18
|
+
<% if @flash['notice'] %>
|
19
|
+
<div id="message"><%= @flash['notice'] %></div>
|
20
|
+
<% end %>
|
19
21
|
</div>
|
20
22
|
|
21
23
|
<%= end_form_tag %>
|
@@ -1,10 +1,6 @@
|
|
1
1
|
|
2
|
-
<
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
<%= link_to "« login", :action=>"login"%>
|
8
|
-
|
9
|
-
</div>
|
2
|
+
<p>You are now logged out of the system...</p>
|
3
|
+
|
4
|
+
<%= render :partial => 'navigation/nav_module' %>
|
5
|
+
|
10
6
|
|
@@ -1,13 +1,3 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
<p>You are now logged into the system...</p>
|
6
|
-
<p>
|
7
|
-
Since you are here it's safe to assume the application never called store_location, otherwise
|
8
|
-
you would have been redirected somewhere else after a successful login.
|
9
|
-
</p>
|
10
|
-
|
11
|
-
<%= link_to "« logout", :action=>"logout"%>
|
12
|
-
|
13
|
-
</div>
|
1
|
+
<%= render :file => "mailinglist/list", :use_full_path => true %>
|
2
|
+
<%= render :file => "root_admin/list_users", :use_full_path => true %>
|
3
|
+
<%= render :file => "mailinglist/list_mailinglist_classes", :use_full_path => true %>
|
@@ -0,0 +1,21 @@
|
|
1
|
+
This is where the base user would change their forwarding addresses.
|
2
|
+
<br>
|
3
|
+
<table>
|
4
|
+
<tr>
|
5
|
+
<% for column in Mailinglist.content_columns %>
|
6
|
+
<th><%= column.human_name %></th>
|
7
|
+
<% end %>
|
8
|
+
</tr>
|
9
|
+
|
10
|
+
<% for mailinglist in @mailinglists %>
|
11
|
+
<tr>
|
12
|
+
<% for column in Mailinglist.content_columns %>
|
13
|
+
<td><%=h mailinglist.send(column.name) %></td>
|
14
|
+
<% end %>
|
15
|
+
<br>
|
16
|
+
<% end %>
|
17
|
+
</tr>
|
18
|
+
</table>
|
19
|
+
<%= link_to 'Destroy', { :action => 'destroy', :id => mailinglist }, :post => true, :confirm => 'Are you sure you want to destroy this mailinglist?' %>
|
20
|
+
<%= link_to 'Edit', :controller => 'mailinglist', :action => 'edit', :id => mailinglist %>
|
21
|
+
<%= render :partial => 'navigation/nav_module' %>
|
@@ -0,0 +1,47 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
3
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
4
|
+
<html>
|
5
|
+
<head>
|
6
|
+
<title>Sugoi Mail</title>
|
7
|
+
<%= stylesheet_link_tag 'global' %>
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
<div id="windowCenter" align="center">
|
11
|
+
|
12
|
+
<div id="windowConstrain" align="center">
|
13
|
+
|
14
|
+
<!-- Title bar -->
|
15
|
+
|
16
|
+
<div id="titlebar">
|
17
|
+
<!-- <h1 class="sugoiTitle">SUGOI-MAIL</h1> -->
|
18
|
+
</div>
|
19
|
+
|
20
|
+
<!-- End Title Bar -->
|
21
|
+
|
22
|
+
<!-- Main Content Panel -->
|
23
|
+
|
24
|
+
<div id="content">
|
25
|
+
<%= flash[:notice] %>
|
26
|
+
<%= @content_for_layout %>
|
27
|
+
</div>
|
28
|
+
|
29
|
+
<!-- End Main Content Panel -->
|
30
|
+
|
31
|
+
<!-- Navigation Panel -->
|
32
|
+
|
33
|
+
<%= render :partial => 'navigation/nav_module' %>
|
34
|
+
<%= yield :navbar %>
|
35
|
+
|
36
|
+
<!-- End Navigation Panel -->
|
37
|
+
|
38
|
+
<!-- Signature -->
|
39
|
+
|
40
|
+
<!-- <div id="signature">
|
41
|
+
Copyright © 2007 Invio Corporation
|
42
|
+
</div> -->
|
43
|
+
<!-- End Signature -->
|
44
|
+
</div>
|
45
|
+
</div>
|
46
|
+
</body>
|
47
|
+
</html>
|
@@ -0,0 +1,34 @@
|
|
1
|
+
<html>
|
2
|
+
<head>
|
3
|
+
<title>Sugoi Mail</title>
|
4
|
+
<%= stylesheet_link_tag 'global' %>
|
5
|
+
</head>
|
6
|
+
<body>
|
7
|
+
<div id="windowCenter" align="center">
|
8
|
+
|
9
|
+
<div id="windowConstrain" align="center">
|
10
|
+
|
11
|
+
<!-- Title bar -->
|
12
|
+
|
13
|
+
<div id="titlebar">
|
14
|
+
<!-- <h1 class="sugoiTitle">SUGOI-MAIL</h1> -->
|
15
|
+
</div>
|
16
|
+
|
17
|
+
<!-- End Title Bar -->
|
18
|
+
|
19
|
+
<!-- Content here -->
|
20
|
+
|
21
|
+
<%= @content_for_layout %>
|
22
|
+
|
23
|
+
<!-- End Content -->
|
24
|
+
|
25
|
+
<!-- Signature -->
|
26
|
+
|
27
|
+
<!-- <div id="signature">
|
28
|
+
Copyright © 2007 Invio Corporation
|
29
|
+
</div> -->
|
30
|
+
<!-- End Signature -->
|
31
|
+
</div>
|
32
|
+
</div>
|
33
|
+
</body>
|
34
|
+
</html>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= @content_for_layout -%>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<h1>Editing Admin Message: <%= @adminmessage.id %></h1>
|
2
|
+
|
3
|
+
<%= start_form_tag :action => 'edit_admin_message', :id => @adminmessage %>
|
4
|
+
<%= render :partial => 'form' %>
|
5
|
+
<br/>
|
6
|
+
<%= submit_tag 'Save Changes' %>
|
7
|
+
<%= end_form_tag %>
|
8
|
+
|
9
|
+
<br/><br/>
|
10
|
+
<%= button_to 'Delete This Admin Message', { :action => 'remove_admin_message', :id => @adminmessage }, :confirm => 'Are you sure you want to remove this admin message? It will cause problems!' %>
|
11
|
+
|
12
|
+
<br>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
|
2
|
+
<h3>Admin Messages</h3>
|
3
|
+
These are the messages sent out upon (un)subscription, and confirmation.
|
4
|
+
<table class="mainTable" cellspacing="0" cellpadding="4">
|
5
|
+
<tr>
|
6
|
+
<th>Message</th>
|
7
|
+
</tr>
|
8
|
+
|
9
|
+
<% for adminmessage in @adminmessages %> <!--set @adminmessages!-->
|
10
|
+
<tr>
|
11
|
+
<% for column in AdminMessage.content_columns %>
|
12
|
+
<% if column.human_name == "Message" %>
|
13
|
+
<td><%= adminmessage.send(column.name) %></td>
|
14
|
+
<% end %>
|
15
|
+
<td><%= link_to 'Edit', :controller => "mail_admin", :action => 'edit_admin_message', :id => {@mailinglist, adminmessage} %></td>
|
16
|
+
<td><%= link_to_image "remove.gif", { :controller => "mail_admin", :action => 'remove_admin_message', :id => adminmessage }, :post => true, :confirm => 'Are you sure you want to remove this message? It could cause serious problems.' %>
|
17
|
+
</tr>
|
18
|
+
<% end %>
|
19
|
+
<% end %>
|
20
|
+
</table>
|
File without changes
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<%= error_messages_for 'mailinglist' %>
|
2
|
+
<p>
|
3
|
+
<% if @mailinglist.addresses != nil %>
|
4
|
+
<b><%= "Addresses" %>:</b>
|
5
|
+
<ul>
|
6
|
+
<% @mailinglist.addresses.each do |address| %>
|
7
|
+
<li>
|
8
|
+
<% if false %><%= check_box "mailinglist_address", address.id, {}, "T", "F" %><% end %>
|
9
|
+
<%= address.address %>
|
10
|
+
</li>
|
11
|
+
<% end %>
|
12
|
+
</ul>
|
13
|
+
<% end %>
|
14
|
+
</p>
|
15
|
+
|
16
|
+
<!--[form:mailinglist]-->
|
17
|
+
<p>
|
18
|
+
<label for="mailinglist_address">Add Address</label>
|
19
|
+
<br/>
|
20
|
+
<%= text_field 'address', 'address' %>
|
21
|
+
</p>
|
22
|
+
|
23
|
+
<!--[eoform:mailinglist]-->
|
@@ -2,27 +2,23 @@
|
|
2
2
|
|
3
3
|
<!--[form:mailinglist]-->
|
4
4
|
<p>
|
5
|
-
<label for="mailinglist_name">
|
5
|
+
<label for="mailinglist_name">Name:</label>
|
6
6
|
<br/>
|
7
7
|
<%= text_field 'mailinglist', 'name' %>
|
8
8
|
</p>
|
9
9
|
<p>
|
10
|
+
<label for="mailinglist_class_id">Class:</label><br />
|
11
|
+
<select name="mailinglist_class_id" style="width:250px;">
|
12
|
+
<% if @mailinglist_classes %>
|
13
|
+
<%= options_from_collection_for_select(@mailinglist_classes, "id", "name", selected_value=@mailinglist.mailinglist_class_id) %>
|
14
|
+
<% end %>
|
15
|
+
</select>
|
16
|
+
</p>
|
17
|
+
<!-- <p>
|
10
18
|
<label for="mailinglist_openposting">Open to the public?</label>
|
11
19
|
<br/>
|
12
20
|
<%= check_box "mailinglist", 'openposting', {}, "T", "F" %>
|
13
|
-
</p
|
14
|
-
<p>
|
15
|
-
<b><%= "Addresses" %>:</b>
|
16
|
-
<ul>
|
17
|
-
<% @mailinglist.addresses.each do |address| %>
|
18
|
-
<li>
|
19
|
-
<%= check_box "mailinglist_address", address.id, {}, "T", "F" %>
|
20
|
-
<%= address.address %>
|
21
|
-
</li>
|
22
|
-
<% end %>
|
23
|
-
</ul>
|
24
|
-
</p>
|
25
|
-
|
21
|
+
</p>-->
|
26
22
|
|
27
23
|
|
28
24
|
<!--[eoform:mailinglist]-->
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<%= error_messages_for 'mailinglist_class' %>
|
2
|
+
|
3
|
+
<!--[form:mailinglist]-->
|
4
|
+
<p>
|
5
|
+
<label for="mailinglist_class_name">Mailinglist Class Name</label>
|
6
|
+
<br/>
|
7
|
+
<%= text_field 'mailinglist_class', 'name' %>
|
8
|
+
</p>
|
9
|
+
|
10
|
+
<label for="mailinglist_class_description">Description:</label>
|
11
|
+
<br />
|
12
|
+
<%= text_field 'mailinglist_class', 'description' %>
|
13
|
+
</p>
|
14
|
+
<br/>
|
15
|
+
<br/>
|
16
|
+
<!--[eoform:mailinglist]-->
|
@@ -0,0 +1,30 @@
|
|
1
|
+
<%= error_messages_for 'mailinglist' %>
|
2
|
+
|
3
|
+
<!--[form:mailinglist]-->
|
4
|
+
<p>
|
5
|
+
<label for="mailinglist_name">Mailinglist Name</label>
|
6
|
+
<br/>
|
7
|
+
<%= text_field 'mailinglist', 'name' %>
|
8
|
+
</p>
|
9
|
+
<p>
|
10
|
+
<label for="mailinglist_user">Select User:</label><br />
|
11
|
+
<select name="user" style="width:250px;">
|
12
|
+
<% if @users %>
|
13
|
+
<%= options_from_collection_for_select(@users, "login", "login", @selected) %>
|
14
|
+
<% end %>
|
15
|
+
</select>
|
16
|
+
</p>
|
17
|
+
<p>
|
18
|
+
<label for="mailinglist_mailinglist_class_id">Class:</label><br />
|
19
|
+
<select name="mailinglist_class_id" style="width:250px;">
|
20
|
+
<% if @mailinglist_classes %>
|
21
|
+
<%= options_from_collection_for_select(@mailinglist_classes, "id", "name", @selected) %>
|
22
|
+
<% end %>
|
23
|
+
</select>
|
24
|
+
</p>
|
25
|
+
<p>
|
26
|
+
<label for="mailinglist_description">Description:</label<br />
|
27
|
+
<%= text_field 'mailinglist', 'description' %>
|
28
|
+
</p>
|
29
|
+
|
30
|
+
<!--[eoform:mailinglist]-->
|
@@ -1,10 +1,16 @@
|
|
1
|
-
<h1>Editing mailinglist
|
1
|
+
<h1>Editing Mailing List: <%= @mailinglist.name %></h1>
|
2
2
|
|
3
3
|
<%= start_form_tag :action => 'edit', :id => @mailinglist %>
|
4
4
|
<%= render :partial => 'form' %>
|
5
|
-
|
5
|
+
<br/>
|
6
|
+
<%= submit_tag 'Save Changes' %>
|
6
7
|
<%= end_form_tag %>
|
7
|
-
<%= button_to 'Destroy', { :action => 'destroy', :id => @mailinglist }, :confirm => 'Are you sure you want to destroy this mailinglist?' %>
|
8
8
|
|
9
|
-
<%=
|
10
|
-
<%=
|
9
|
+
<%= start_form_tag :action => 'add_address', :id => @mailinglist %>
|
10
|
+
<%= render :partial => 'address_form' %>
|
11
|
+
<%= submit_tag 'Add' %>
|
12
|
+
<%= end_form_tag %>
|
13
|
+
<br/><br/>
|
14
|
+
<%= button_to 'Delete This Mailing List', { :action => 'remove', :id => @mailinglist }, :confirm => 'Are you sure you want to destroy this mailinglist?' %>
|
15
|
+
|
16
|
+
<br>
|
@@ -1,27 +1,27 @@
|
|
1
|
-
<h1>Listing mailinglists</h1>
|
2
1
|
|
3
|
-
<
|
2
|
+
<h3>Mailing Lists</h3>
|
3
|
+
|
4
|
+
<table class="mainTable" cellspacing="0" cellpadding="4">
|
4
5
|
<tr>
|
6
|
+
|
5
7
|
<% for column in Mailinglist.content_columns %>
|
6
8
|
<th><%= column.human_name %></th>
|
7
9
|
<% end %>
|
10
|
+
<th>Class</th>
|
8
11
|
</tr>
|
9
12
|
|
10
13
|
<% for mailinglist in @mailinglists %>
|
11
14
|
<tr>
|
12
15
|
<% for column in Mailinglist.content_columns %>
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
16
|
+
<% if column.human_name == "Name" %>
|
17
|
+
<td><%= link_to mailinglist.send(column.name), :controller => "mailinglist", :action => 'show', :id => mailinglist %></td>
|
18
|
+
<% else %>
|
19
|
+
<td><%=h mailinglist.send(column.name) %></td>
|
20
|
+
<% end %>
|
21
|
+
<% end %>
|
22
|
+
<td><%= mailinglist.mailinglist_class.name %></td>
|
23
|
+
<td><%= link_to 'Edit', :controller => "mailinglist", :action => 'edit', :id => mailinglist %></td>
|
24
|
+
<td><%= link_to_image "remove.gif", { :controller => "mailinglist", :action => 'remove', :id => mailinglist }, :post => true, :confirm => 'Are you sure you want to remove this mailinglist?' %>
|
18
25
|
</tr>
|
19
26
|
<% end %>
|
20
|
-
</table>
|
21
|
-
|
22
|
-
<%= link_to 'Previous page', { :page => @mailinglist_pages.current.previous } if @mailinglist_pages.current.previous %>
|
23
|
-
<%= link_to 'Next page', { :page => @mailinglist_pages.current.next } if @mailinglist_pages.current.next %>
|
24
|
-
|
25
|
-
<br />
|
26
|
-
|
27
|
-
<%= link_to 'New mailinglist', :action => 'new' %>
|
27
|
+
</table>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
|
2
|
+
<h3>Mailing List Classes</h3>
|
3
|
+
|
4
|
+
<table class="mainTable" cellspacing="0" cellpadding="4">
|
5
|
+
<tr>
|
6
|
+
<th>Name</th>
|
7
|
+
<th>Description</th>
|
8
|
+
</tr>
|
9
|
+
|
10
|
+
<% for mailinglist_class in @mailinglist_classes %>
|
11
|
+
<tr>
|
12
|
+
<td><%= link_to mailinglist_class.name, :controller => "mailinglist", :action => 'show', :id => mailinglist_class %></td>
|
13
|
+
<td><%=h mailinglist_class.description %></td>
|
14
|
+
<td><%= link_to 'Edit', :controller => "mailinglist", :action => 'edit', :id => mailinglist_class %></td>
|
15
|
+
<td><%= link_to_image "remove.gif", { :controller => "mailinglist", :action => 'remove', :id => mailinglist_class }, :post => true, :confirm => 'Are you sure you want to remove this mailinglist?' %>
|
16
|
+
</tr>
|
17
|
+
<% end %>
|
18
|
+
</table>
|
@@ -1,8 +1,8 @@
|
|
1
|
-
<
|
1
|
+
<h3>New mailing list</h3>
|
2
2
|
|
3
3
|
<%= start_form_tag :action => 'new' %>
|
4
|
-
<%= render :partial => 'form' %>
|
5
|
-
<%= submit_tag 'Save' %>
|
6
|
-
<%= end_form_tag %>
|
7
4
|
|
8
|
-
<%=
|
5
|
+
<%= render :partial => 'new_form' %>
|
6
|
+
|
7
|
+
<%= submit_tag 'Save' %>
|
8
|
+
<%= end_form_tag %>
|