sugoi-mail 0.1.0 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 %>
|