mail_manager 3.0.0 → 3.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (204) hide show
  1. checksums.yaml +5 -13
  2. data/.gitignore +5 -0
  3. data/.rspec +1 -0
  4. data/.ruby-version +1 -1
  5. data/Gemfile +27 -10
  6. data/LICENSE.txt +2 -2
  7. data/MIT-LICENSE +1 -1
  8. data/README.md +97 -15
  9. data/{features/bounce_management.feature → app/assets/images/mail_manager/.gitkeep} +0 -0
  10. data/app/assets/images/mail_manager/BottomRight.gif +0 -0
  11. data/app/assets/images/mail_manager/MidRight.gif +0 -0
  12. data/app/assets/images/mail_manager/TopCenter.gif +0 -0
  13. data/app/assets/images/mail_manager/TopRight.gif +0 -0
  14. data/app/assets/images/mail_manager/calendar_date_select/calendar.gif +0 -0
  15. data/app/assets/images/mail_manager/iReach_logo.gif +0 -0
  16. data/app/assets/images/mail_manager/spacer.gif +0 -0
  17. data/app/assets/images/mail_manager/topMid.gif +0 -0
  18. data/app/assets/javascripts/mail_manager/application.js +19 -1
  19. data/app/assets/javascripts/mail_manager/jquery-ui-timepicker-addon.js +2134 -0
  20. data/app/assets/stylesheets/mail_manager/admin.css +261 -0
  21. data/app/assets/stylesheets/mail_manager/application.css +3 -1
  22. data/app/assets/stylesheets/mail_manager/nav.css +68 -0
  23. data/app/assets/stylesheets/mail_manager/timepicker.css +11 -0
  24. data/app/controllers/mail_manager/application_controller.rb +7 -2
  25. data/app/controllers/mail_manager/bounces_controller.rb +5 -10
  26. data/app/controllers/mail_manager/contacts_controller.rb +42 -20
  27. data/app/controllers/mail_manager/mailing_lists_controller.rb +5 -12
  28. data/app/controllers/mail_manager/mailings_controller.rb +18 -18
  29. data/app/controllers/mail_manager/messages_controller.rb +3 -10
  30. data/app/controllers/mail_manager/subscriptions_controller.rb +16 -75
  31. data/app/helpers/mail_manager/layout_helper.rb +43 -0
  32. data/app/models/mail_manager/bounce.rb +16 -5
  33. data/app/models/mail_manager/contact.rb +64 -1
  34. data/app/models/mail_manager/mailable.rb +14 -0
  35. data/app/models/mail_manager/mailer.rb +48 -81
  36. data/app/models/mail_manager/mailing.rb +23 -42
  37. data/app/models/mail_manager/message.rb +52 -8
  38. data/app/models/mail_manager/subscription.rb +9 -3
  39. data/app/models/status_history.rb +3 -2
  40. data/app/views/layouts/mail_manager/application.html.erb +33 -5
  41. data/app/views/layouts/mail_manager/layout.html.erb +15 -0
  42. data/app/views/mail_manager/bounces/index.html.erb +6 -4
  43. data/app/views/mail_manager/bounces/show.html.erb +3 -3
  44. data/app/views/mail_manager/contacts/_form.html.erb +7 -23
  45. data/app/views/mail_manager/contacts/edit.html.erb +3 -3
  46. data/app/views/mail_manager/contacts/index.html.erb +14 -28
  47. data/app/views/mail_manager/contacts/new.html.erb +2 -2
  48. data/app/views/mail_manager/contacts/show.html.erb +5 -5
  49. data/app/views/mail_manager/contacts/subscribe.html.erb +1 -1
  50. data/app/views/mail_manager/mailer/double_opt_in.erb +1 -1
  51. data/app/views/mail_manager/mailer/double_opt_in.html.erb +6 -0
  52. data/app/views/mail_manager/mailer/unsubscribed.erb +1 -1
  53. data/app/views/mail_manager/mailer/unsubscribed.html.erb +1 -1
  54. data/app/views/mail_manager/mailing_lists/_form.html.erb +8 -17
  55. data/app/views/mail_manager/mailing_lists/edit.html.erb +4 -4
  56. data/app/views/mail_manager/mailing_lists/index.html.erb +6 -5
  57. data/app/views/mail_manager/mailing_lists/new.html.erb +3 -3
  58. data/app/views/mail_manager/mailings/_form.html.erb +22 -44
  59. data/app/views/mail_manager/mailings/edit.html.erb +3 -3
  60. data/app/views/mail_manager/mailings/index.html.erb +23 -27
  61. data/app/views/mail_manager/mailings/new.html.erb +2 -2
  62. data/app/views/mail_manager/mailings/test.html.erb +3 -3
  63. data/app/views/mail_manager/messages/index.html.erb +2 -2
  64. data/app/views/mail_manager/subscriptions/_form.html.erb +1 -1
  65. data/app/views/mail_manager/subscriptions/_subscriptions.html.erb +2 -2
  66. data/app/views/mail_manager/subscriptions/edit.html.erb +2 -2
  67. data/app/views/mail_manager/subscriptions/index.html.erb +3 -3
  68. data/app/views/mail_manager/subscriptions/new.html.erb +1 -1
  69. data/app/views/mail_manager/subscriptions/unsubscribe.html.erb +1 -1
  70. data/app/views/mail_manager/subscriptions/unsubscribe_by_email_address.html.erb +3 -3
  71. data/config/locales/en.yml +13 -0
  72. data/config/locales/mailings.en.yml +52 -0
  73. data/config/routes.rb +21 -19
  74. data/db/migrate/008_add_bounces_count_to_mailings.rb +14 -0
  75. data/db/migrate/009_add_messages_count_to_mailings.rb +14 -0
  76. data/db/migrate/010_add_login_token_to_contact.rb +11 -0
  77. data/db/migrate/011_add_deleted_at_to_mailing.rb +11 -0
  78. data/lib/delayed/mailer.rb +9 -5
  79. data/lib/delayed/status.rb +6 -2
  80. data/lib/delayed_overrides/worker.rb +21 -0
  81. data/lib/deleteable.rb +13 -14
  82. data/lib/mail_manager/config.rb +3 -3
  83. data/lib/mail_manager/engine.rb +136 -7
  84. data/lib/mail_manager/lock.rb +1 -0
  85. data/lib/mail_manager/version.rb +1 -1
  86. data/lib/tasks/mail_manager.rake +92 -56
  87. data/mail_manager.gemspec +4 -0
  88. data/spec/rails_helper.rb +50 -0
  89. data/spec/spec_helper.rb +87 -48
  90. data/spec/test_app/.env.development +3 -0
  91. data/spec/test_app/.env.test +2 -0
  92. data/spec/test_app/.rspec +1 -0
  93. data/spec/test_app/Procfile +3 -0
  94. data/spec/test_app/app/controllers/application_controller.rb +4 -0
  95. data/spec/test_app/app/models/ability.rb +7 -0
  96. data/spec/test_app/app/models/user.rb +8 -2
  97. data/spec/test_app/app/models/user_with_role.rb +22 -0
  98. data/spec/test_app/config/database.postgres.yml +21 -0
  99. data/spec/test_app/config/database.sqlite.yml +2 -2
  100. data/spec/test_app/config/environment.rb +2 -2
  101. data/spec/test_app/config/environments/test.rb +13 -0
  102. data/spec/test_app/config/mail_manager.yml +66 -2
  103. data/spec/test_app/config/routes.rb +0 -1
  104. data/spec/test_app/db/migrate/20150420163235_add_bounces_count_to_mailings.rb +14 -0
  105. data/spec/test_app/db/migrate/20150420163804_add_messages_count_to_mailings.rb +14 -0
  106. data/spec/test_app/db/migrate/20150421151457_add_login_token_to_contact.rb +11 -0
  107. data/spec/test_app/db/migrate/20150423143754_add_deleted_at_to_mailing.rb +11 -0
  108. data/spec/test_app/db/schema.rb +10 -5
  109. data/spec/test_app/db/structure.sql +150 -15
  110. data/spec/test_app/features/bounce_management.feature +11 -0
  111. data/spec/test_app/features/contact_management.feature +91 -0
  112. data/{features → spec/test_app/features}/mailable.feature +3 -1
  113. data/spec/test_app/features/mailing_list_management.feature +39 -0
  114. data/spec/test_app/features/mailing_management.feature +60 -0
  115. data/{features → spec/test_app/features}/message.feature +4 -4
  116. data/spec/test_app/features/message_management.feature +22 -0
  117. data/spec/test_app/features/step_definitions/bounce_steps.rb +4 -0
  118. data/spec/test_app/features/step_definitions/contact_steps.rb +63 -0
  119. data/spec/test_app/features/step_definitions/debugging_steps.rb +3 -0
  120. data/spec/test_app/features/step_definitions/email_steps.rb +6 -0
  121. data/spec/test_app/features/step_definitions/job_steps.rb +25 -0
  122. data/spec/test_app/features/step_definitions/login_steps.rb +4 -0
  123. data/spec/test_app/features/step_definitions/mailing_list.rb +17 -0
  124. data/spec/test_app/features/step_definitions/mailing_steps.rb +51 -0
  125. data/spec/test_app/features/step_definitions/subscription_steps.rb +26 -0
  126. data/{features → spec/test_app/features}/step_definitions/webrat_steps.rb +10 -6
  127. data/spec/test_app/features/subscription_management.feature +62 -0
  128. data/spec/test_app/features/support/env.rb +37 -0
  129. data/spec/test_app/features/support/paths.rb +36 -0
  130. data/spec/test_app/lib/debugging.rb +61 -0
  131. data/spec/test_app/lib/post_office_manager.rb +71 -0
  132. data/spec/test_app/public/subscribe.html +40 -0
  133. data/spec/test_app/script/full_suite +50 -0
  134. data/spec/test_app/script/post_office +25 -0
  135. data/spec/test_app/script/rails +20 -0
  136. data/spec/test_app/script/rspec_multi_db +34 -0
  137. data/spec/test_app/spec/controllers/mail_manager/bounces_controller_spec.rb +59 -0
  138. data/spec/test_app/spec/controllers/mail_manager/contacts_controller_spec.rb +178 -0
  139. data/spec/test_app/spec/controllers/mail_manager/mailing_lists_controller_spec.rb +164 -0
  140. data/spec/test_app/spec/controllers/mail_manager/mailings_controller_spec.rb +184 -0
  141. data/spec/test_app/spec/controllers/users_controller_spec.rb +47 -46
  142. data/spec/test_app/spec/factories/_functions.rb +27 -0
  143. data/spec/test_app/spec/factories/contacts.rb +7 -0
  144. data/spec/test_app/spec/factories/mail_manager_bounces.rb +13 -0
  145. data/spec/test_app/spec/factories/mailable.rb +8 -0
  146. data/spec/test_app/spec/factories/mailings.rb +7 -1
  147. data/spec/test_app/spec/factories/message.rb +7 -0
  148. data/spec/test_app/spec/factories/users.rb +19 -7
  149. data/spec/test_app/spec/features/mail_manager/bounce_spec.rb +73 -0
  150. data/spec/test_app/spec/features/mail_manager/double_opt_in_spec.rb +62 -0
  151. data/spec/test_app/spec/features/mail_manager/mailing_spec.rb +46 -0
  152. data/spec/test_app/spec/features/navigation_spec.rb +9 -0
  153. data/spec/test_app/spec/helpers/mail_manager/layout_helper_spec.rb +41 -0
  154. data/spec/test_app/spec/helpers/mail_manager/subscriptions_helper_spec.rb +14 -0
  155. data/spec/test_app/spec/models/delayed/mailer_spec.rb +27 -0
  156. data/spec/test_app/spec/models/delayed/status_job_spec.rb +13 -0
  157. data/spec/test_app/spec/models/delayed/status_spec.rb +37 -0
  158. data/spec/test_app/spec/models/mail_manager/bounce_spec.rb +23 -3
  159. data/spec/test_app/spec/models/mail_manager/engine_spec.rb +79 -0
  160. data/spec/test_app/spec/models/mail_manager/mailable_spec.rb +10 -0
  161. data/spec/test_app/spec/models/mail_manager/mailer_spec.rb +35 -3
  162. data/spec/test_app/spec/models/mail_manager/mailing_list_spec.rb +5 -5
  163. data/spec/test_app/spec/models/mail_manager/mailing_spec.rb +58 -0
  164. data/spec/test_app/spec/models/mail_manager/message_spec.rb +112 -0
  165. data/spec/test_app/spec/models/user_spec.rb +10 -8
  166. data/spec/test_app/spec/rails_helper.rb +86 -0
  167. data/spec/test_app/spec/requests/users_spec.rb +3 -3
  168. data/spec/test_app/spec/routing/mail_manager/bounces_routing_spec.rb +27 -0
  169. data/spec/test_app/spec/routing/mail_manager/contacts_routing_spec.rb +36 -0
  170. data/spec/test_app/spec/routing/mail_manager/mailing_lists_routing_spec.rb +36 -0
  171. data/spec/test_app/spec/routing/mail_manager/mailings_routing_spec.rb +36 -0
  172. data/spec/test_app/spec/spec_helper.rb +82 -32
  173. data/spec/test_app/spec/support/continuance.rb +18 -0
  174. data/spec/test_app/spec/support/custom_matchers.rb +17 -0
  175. data/spec/test_app/spec/support/database_cleaner.rb +10 -1
  176. data/spec/test_app/spec/views/mail_manager/bounces/index.html.erb_spec.rb +32 -0
  177. data/spec/test_app/spec/views/mail_manager/bounces/show.html.erb_spec.rb +12 -0
  178. data/spec/test_app/spec/views/users/edit.html.erb_spec.rb +8 -5
  179. data/spec/test_app/spec/views/users/index.html.erb_spec.rb +10 -19
  180. data/spec/test_app/spec/views/users/new.html.erb_spec.rb +9 -6
  181. data/spec/test_app/spec/views/users/show.html.erb_spec.rb +8 -9
  182. metadata +231 -75
  183. data/.DS_Store +0 -0
  184. data/README.rdoc +0 -3
  185. data/app/.DS_Store +0 -0
  186. data/app/controllers/mail_manager/base_controller.rb +0 -22
  187. data/app/models/.DS_Store +0 -0
  188. data/features/contact_management.feature +0 -24
  189. data/features/mailing_management.feature +0 -78
  190. data/features/step_definitions/email_steps.rb +0 -50
  191. data/features/step_definitions/mlm_steps.rb +0 -11
  192. data/features/step_definitions/pickle_steps.rb +0 -41
  193. data/features/subscription_management.feature +0 -17
  194. data/features/support/env.rb +0 -11
  195. data/features/support/paths.rb +0 -44
  196. data/lib/tasks/mail_manager_tasks.rake +0 -4
  197. data/lib/tasks/rspec.rake +0 -165
  198. data/spec/test_app/bin/cucumber +0 -7
  199. data/spec/test_app/bin/rails +0 -10
  200. data/spec/test_app/bin/rake +0 -7
  201. data/spec/test_app/bin/rspec +0 -7
  202. data/spec/test_app/bin/spring +0 -18
  203. data/spec/test_app/spec/routing/users_routing_spec.rb +0 -35
  204. data/spec/test_app/spec/support/post_office.rb +0 -13
@@ -1,12 +1,12 @@
1
- <% title "Edit Contact" %>
1
+ <%= title "Edit Contact" %>
2
2
 
3
3
  <%= render :partial => 'form' %>
4
4
 
5
5
  <%= content_for :page_navigation do %>
6
6
  <div>
7
7
  <% if use_show_for_resources? %>
8
- <%= link_to "Show", @contact, :class => 'button' %><div class="linkbuttonEnding"></div>
8
+ <%= link_to "Show", @contact, :class => 'button' %>
9
9
  <% end %>
10
- <%= link_to "View All", mail_manager.contacts_path, :class => 'button' %><div class="linkbuttonEnding"></div>
10
+ <%= link_to "View All", mail_manager.contacts_path, :class => 'button' %>
11
11
  </div>
12
12
  <% end %>
@@ -1,16 +1,12 @@
1
- <% title "Contacts" %>
2
-
1
+ <%= title "Listing Contacts" %>
3
2
 
4
3
  <%= form_tag mail_manager.contacts_path(), :id => 'search_form', :method => 'get' do %>
5
- <label class="form">Contact Search:</label> <%= text_field_tag "term","", :class => "text"%>
6
- <label class="form">Mailing List:</label><%= select_tag "mailing_list_id", options_for_select([['','']] + ::MailManager::MailingList.order(:name).map{|mailing_list|
7
- [mailing_list.name, mailing_list.id]
8
- }, params[:mailing_list_id].to_i), {onChange: "return toggleStatus()"} %>
4
+ <label class="form" for="term">Contact Search:</label> <%= text_field_tag "term","", title: "First or last name or email" , :class => "text", :style => "width: 400px;" %><br />
5
+ <label class="form" for="mailing_list_id">Mailing List:</label><%= select_tag "mailing_list_id", options_for_select([['','']] + @mailing_lists, params[:mailing_list_id].to_i), {onChange: "return toggleStatus()"} %><br />
9
6
  <div id="subscription_status_selector" style="display: <%= params[:mailing_list_id].present? ? 'inline' : 'none' %>">
10
- <label class="form">Status:</label><%= select_tag "status", options_for_select(['active','unsubscribed','failed_address','pending'].map{|status|
11
- [status.humanize,status]}, params[:status]) %>
7
+ <label class="form" for="status">Status:</label><%= select_tag "status", options_for_select(@statuses, params[:status]) %>
12
8
  </div>
13
- <%= submit_tag "Search", :class => 'button' %><div class="buttonEnding"></div>
9
+ <%= submit_tag "Search", :class => 'button' %>
14
10
  <% end %>
15
11
  <% content_for :head do %>
16
12
  <script language="javascript">
@@ -25,10 +21,10 @@ function toggleStatus() {
25
21
  <% end %>
26
22
 
27
23
  <br/>
28
- <b>Listing Contacts </b>
29
24
 
30
- <%= will_paginate @contacts %>
31
-
25
+ <% if @contacts.length <= 0 %>
26
+ <p>No contacts exist.</p>
27
+ <% else %>
32
28
  <table class="list" cellpadding="1" cellspacing="0">
33
29
  <tr class="title">
34
30
  <td>First Name</td>
@@ -46,7 +42,7 @@ function toggleStatus() {
46
42
  <td><%=h contact.email_address %></td>
47
43
  <% if params[:mailing_list_id].present? %> <td><%= params[:status].humanize %></td> <% end %>
48
44
  <% if use_show_for_resources? %>
49
- <td><%= link_to "View", contact, :class => 'button' %><div class="linkbuttonEnding"></div></td>
45
+ <td><%= link_to "View", contact, :class => 'button' %></td>
50
46
  <% end %>
51
47
  <% if (contactable = contact.contactable).present? %>
52
48
  <% if contactable.respond_to?(:is_deleted?) && contactable.is_deleted? %>
@@ -58,29 +54,19 @@ function toggleStatus() {
58
54
  </td>
59
55
  <% end %>
60
56
  <% else %>
61
- <td><%= link_to "Edit", mail_manager.edit_contact_path(contact), :class => 'button' %><div class="linkbuttonEnding"></div></td>
62
- <td><%= link_to "Delete", contact, :confirm => 'Are you sure?', :method => :delete, :class => 'button' %><div class="linkbuttonEnding"></div>
57
+ <td><%= link_to "Edit", mail_manager.edit_contact_path(contact), :class => 'button' %></td>
58
+ <td><%= link_to "Delete", contact, :confirm => 'Are you sure?', :method => :delete, :class => 'button' %>
63
59
  </td>
64
60
  <% end %>
65
- <!--
66
- <-% if @mailings.length > 0 %>
67
- <td>
68
- <-% form_tag mail_manager.send_one_off_message_contact_path(contact), :style => 'display:inline' do |f| %>
69
- <-%= select_tag 'mailing_id',
70
- options_for_select(@mailings.collect{|mailing| [mailing.subject, mailing.id]}) %>
71
- <-%= submit_tag "Send One Off Message", :class => 'button' %><div class="buttonEnding"></div>
72
- <-% end %>
73
- </td>
74
- <-% end %>
75
- -->
76
61
  </tr>
77
62
  <% end %>
78
63
  </table>
64
+ <% end %>
79
65
 
80
- <%= will_paginate @contacts %><br/>
81
66
  <%= content_for :page_navigation do %>
82
67
  <div>
83
- <%= link_to "New Contact", mail_manager.new_contact_path, :class => 'button' %><div class="linkbuttonEnding"></div>
68
+ <%= will_paginate @contacts %><br/>
69
+ <%= link_to "New Contact", mail_manager.new_contact_path, :class => 'button' %>
84
70
  </div>
85
71
  <% end %>
86
72
 
@@ -1,9 +1,9 @@
1
- <% title "New Contact" %>
1
+ <%= title "New Contact" %>
2
2
 
3
3
  <%= render :partial => 'form' %>
4
4
 
5
5
  <%= content_for :page_navigation do %>
6
6
  <div>
7
- <%= link_to "Back to List", mail_manager.contacts_path, :class => 'button' %><div class="linkbuttonEnding"></div>
7
+ <%= link_to "Back to List", mail_manager.contacts_path, :class => 'button' %>
8
8
  </div>
9
9
  <% end %>
@@ -1,4 +1,4 @@
1
- <% title "Contact" %>
1
+ <%= title "Contact" %>
2
2
 
3
3
  <p>
4
4
  <strong>First Name:</strong>
@@ -15,8 +15,8 @@
15
15
 
16
16
  <%= content_for :page_navigation do %>
17
17
  <div>
18
- <%= link_to "Edit", mail_manager.edit_contact_path(@contact), :class => 'button' %><div class="linkbuttonEnding"></div>
19
- <%= link_to "Delete", @contact, :confirm => 'Are you sure?', :method => :delete, :class => 'button' %><div class="linkbuttonEnding"></div>
20
- <%= link_to "View All", mail_manager.contacts_path, :class => 'button' %><div class="linkbuttonEnding"></div>
18
+ <%= link_to "Edit", mail_manager.edit_contact_path(@contact), :class => 'button' %>
19
+ <%= link_to "Delete", @contact, :confirm => 'Are you sure?', :method => :delete, :class => 'button' %>
20
+ <%= link_to "View All", mail_manager.contacts_path, :class => 'button' %>
21
21
  </div>
22
- <% end %>
22
+ <% end %>
@@ -1,2 +1,2 @@
1
- <% title "Thank You" %>
1
+ <%= title "Thank You" %>
2
2
  <p>Thank you for signing up for our newsletter. Please check your email and follow the instructions to confirm your subscription.</p>
@@ -1,6 +1,6 @@
1
1
  Hello <%= @contact.full_name %>,
2
2
 
3
- To complete your subscription to <%= @mailing_list_names %> at <%= site_url %> please follow the link below:
3
+ To complete your subscription to <%= @mailing_list_names %> at <%= ::MailManager.site_url %> please follow the link below:
4
4
 
5
5
  <%= @contact.double_opt_in_url %>
6
6
 
@@ -0,0 +1,6 @@
1
+ <p>Hello <%= @contact.full_name %>,<br/>
2
+ <br/>
3
+ To complete your subscription to <%= @mailing_list_names %> at <%= ::MailManager.site_url %> please follow the link below:<br/>
4
+ <br/>
5
+ <%= link_to "Confirm", @contact.double_opt_in_url %>
6
+ </p>
@@ -1,5 +1,5 @@
1
1
  Hi <%= @contact.full_name %>,
2
2
 
3
- You have successfully unsubscribed '<%= @contact.email_address %>' from '<%= @mailing_list.name %>'. This is merely a confirmation that the subscription has been ended.
3
+ You have successfully unsubscribed '<%= @contact.email_address %>' from '<%= @mailing_lists.join(', ') %>'. This is merely a confirmation that the subscription has been ended.
4
4
 
5
5
  Thank you.
@@ -1,5 +1,5 @@
1
1
  <p>Hi <%= @contact.full_name %>,</p>
2
2
 
3
- <p>You have successfully unsubscribed '<%= @contact.email_address %>' from '<%= @mailing_list.name %>'. This is merely a confirmation that the subscription has been ended.</p>
3
+ <p>You have successfully unsubscribed '<%= @contact.email_address %>' from '<%= @mailing_lists.join(', ') %>'. This is merely a confirmation that the subscription has been ended.</p>
4
4
 
5
5
  <p>Thank you.</p>
@@ -1,20 +1,11 @@
1
1
  <%= form_for(@mailing_list) do |f| %>
2
2
  <%= f.error_messages %>
3
- <table cellspacing='1' cellpadding='0' border='0'>
4
- <tr valign="top">
5
- <td width='150'><%= f.label :name %></td>
6
- <td><%= f.text_field :name %></td>
7
- </tr>
8
- <tr valign="top">
9
- <td width='150'><%= f.label :description %></td>
10
- <td><%= f.text_area :description %></td>
11
- </tr>
12
- <tr valign="top">
13
- <td width='150'><%= f.label :defaults_to_active %></td>
14
- <td><%= f.check_box :defaults_to_active %></td>
15
- </tr>
16
- <tr>
17
- <td align="right" colspan="2"><%= f.submit "Submit", :class => 'button' %><div class="buttonEnding"></div></td>
18
- </tr>
19
- </table>
3
+ <%= f.label :name %>
4
+ <%= f.text_field :name %><br />
5
+ <%= f.label :description %>
6
+ <%= f.text_area :description, {:cols => 40, :rows => 10} %><br />
7
+ <%= f.label :defaults_to_active %>
8
+ <%= f.check_box :defaults_to_active %><br />
9
+ Note: If checked, the new contact form will default to checked for this mailing list.
10
+ <div class="submit_button"><%= f.submit "Submit", :class => 'button' %></div>
20
11
  <% end %>
@@ -1,4 +1,4 @@
1
- <% title "Editing #{@mailing_list.name}" %>
1
+ <%= title "Editing #{@mailing_list.name}" %>
2
2
  <%= render :partial => 'form' %>
3
3
 
4
4
  <% @page_title = "Editing #{@mailing_list.name}" %>
@@ -6,8 +6,8 @@
6
6
  <%= content_for :page_navigation do %>
7
7
  <div>
8
8
  <% if use_show_for_resources? %>
9
- <%= link_to "Show", @mailing, :class => 'button' %><div class="linkbuttonEnding"></div>
9
+ <%= link_to "Show", @mailing, :class => 'button' %>
10
10
  <% end %>
11
- <%= link_to "Back", mail_manager.mailing_lists_path, :class => 'button' %><div class="linkbuttonEnding"></div>
11
+ <%= link_to "Back", mail_manager.mailing_lists_path, :class => 'button' %>
12
12
  </div>
13
- <% end %>
13
+ <% end %>
@@ -1,4 +1,4 @@
1
- <% title "Listing Mailing Lists" %>
1
+ <%= title "Listing Mailing Lists" %>
2
2
 
3
3
  <% if @mailing_lists.length > 0 %>
4
4
 
@@ -20,9 +20,9 @@
20
20
  <td align="right"> <%= link_to(mailing_list.subscriptions.unsubscribed.size, mail_manager.contacts_path(mailing_list_id: mailing_list.id, status: 'unsubscribed')) %> </td>
21
21
  <td align="right"> <%= link_to(mailing_list.subscriptions.failed_address.size, mail_manager.contacts_path(mailing_list_id: mailing_list.id, status: 'failed_address')) %> </td>
22
22
  <td align="right"> <%= link_to(mailing_list.subscriptions.pending.size, mail_manager.contacts_path(mailing_list_id: mailing_list.id, status: 'pending')) %> </td>
23
- <td><%= link_to 'Edit', mail_manager.edit_mailing_list_path(mailing_list), :class => 'button' %><div class="linkbuttonEnding"></div></td>
24
- <td><%= link_to 'Delete', mailing_list, :confirm => 'Are you sure?', :method => :delete, :class => 'button' %><div class="linkbuttonEnding"></div></td>
25
- <td><%= link_to 'View Contacts', mail_manager.contacts_path(mailing_list_id: mailing_list.id), :class => 'button' %><div class="linkbuttonEnding"></div></td>
23
+ <td><%= link_to 'Edit', mail_manager.edit_mailing_list_path(mailing_list), :class => 'button' %></td>
24
+ <td><%= link_to 'Delete', mailing_list, :confirm => 'Are you sure?', :method => :delete, :class => 'button' %></td>
25
+ <td><%= link_to 'View Contacts', mail_manager.contacts_path(mailing_list_id: mailing_list.id), :class => 'button' %></td>
26
26
  </tr>
27
27
  <% end %>
28
28
  </table>
@@ -34,6 +34,7 @@ No mailing lists exist.
34
34
  <% @page_title = "Mailing Lists" %>
35
35
  <%= content_for :page_navigation do %>
36
36
  <div>
37
- <%= link_to "New Mailing List", mail_manager.new_mailing_list_path, :class => 'button' %><div class="linkbuttonEnding"></div>
37
+ <%= will_paginate @mailing_lists %>
38
+ <%= link_to "New Mailing List", mail_manager.new_mailing_list_path, :class => 'button' %>
38
39
  </div>
39
40
  <% end %>
@@ -1,9 +1,9 @@
1
- <% title "New Mailing List" %>
1
+ <%= title "New Mailing List" %>
2
2
 
3
3
  <%= render :partial => 'form' %>
4
4
 
5
5
  <%= content_for :page_navigation do %>
6
6
  <div>
7
- <%= link_to "Back", mail_manager.mailing_lists_path, :class => 'button' %><div class="linkbuttonEnding"></div>
7
+ <%= link_to "Back", mail_manager.mailing_lists_path, :class => 'button' %>
8
8
  </div>
9
- <% end %>
9
+ <% end %>
@@ -1,72 +1,50 @@
1
1
  <%= form_for @mailing do |f| %>
2
2
  <%= f.error_messages %>
3
3
  <% if @all_mailing_lists.length == 1 %><%= hidden_field_tag 'mailing[mailing_list_ids][]', @mailing.mailing_lists.first.try(:id) %><% end %>
4
- <table cellspacing='1' cellpadding='0' border='0'>
5
- <tr valign="top">
6
- <td width='150'><%= f.label :subject %></td>
7
- <td><%= f.text_field :subject %></td>
8
- </tr>
9
- <tr valign="top">
10
- <td width='150'><%= f.label :from_email_address %></td>
11
- <td><%= f.text_field :from_email_address %></td>
12
- </tr>
4
+ <%= f.label :subject %>
5
+ <%= f.text_field :subject, title: "The email subject" %><br />
6
+ <%= f.label :from_email_address %>
7
+ <%= f.text_field :from_email_address, title: "The from email address. Default value configured in /config/mail_manager.yml", placeholder: "Example, Inc. <news@example.com>" %><br />
13
8
  <% if @mailables.length > 0 %>
14
- <tr valign="top">
15
- <td width='150'><%= f.label "Select Mailable Item" %></td>
16
- <td><%= select_tag 'mailing[mailable_class_and_id]',
9
+ <%= f.label "Select a newsletter" %>
10
+ <%= select_tag 'mailing[mailable_class_and_id]',
17
11
  options_for_select(@mailables_for_select,
18
12
  @mailing.mailable_thing_and_id), :onChange => "if($('mailing_mailable')."+
19
13
  "getValue() == 'Mailable_new') {$('new_mailable').show();}else"+
20
- "{$('new_mailable').hide();}" %>
21
- </td>
22
- </tr>
14
+ "{$('new_mailable').hide();}" %><br />
23
15
  <% else %>
24
16
  <!-- You need to create some mailable items! -->
25
17
  <% end %>
26
18
  <% unless @mailable.nil? %>
27
19
  <%= div_for @mailable, (@mailables.length == 0) ? {} : {:style => 'display:none'} do %>
28
20
  <% f.fields_for @mailable do |fm| %>
29
- <tr valign="top">
30
- <td width='150'><%= fm.label :email_html %></td>
31
- <td><%= fm.text_area :email_html %></td>
32
- </tr>
33
- <tr valign="top">
34
- <td width='150'><%= fm.label :email_text %></td>
35
- <td><%= fm.text_area :email_html %></td>
36
- </tr>
21
+ <%= fm.label :email_html %>
22
+ <%= fm.text_area :email_html %><br />
23
+ <%= fm.label :email_text %>
24
+ <%= fm.text_area :email_html %><br />
37
25
  <% end %>
38
26
  <% end %>
39
27
  <% end %>
40
- <tr valign="top">
41
- <td width='150'><%= f.label :scheduled_at %></td>
42
- <td><%= f.text_field :scheduled_at, {class: 'datetime-picker', value: l(f.object.scheduled_at || Time.now)} %></td>
43
- </tr>
44
- <tr valign="top">
45
- <td width='150'><%= f.label :include_images %></td>
46
- <td><%= f.check_box :include_images %></td>
47
- </tr>
48
- <% if @all_mailing_lists.length > 1 %>
49
- <tr>
50
- <td colspan="2">
51
- <div class='newsletter_parts_group' style='margin-top: 10px; padding: 0 5px 5px 15px; border: thin dashed black; background-color: #eee'>
52
- <h2 style='padding-bottom: 0; margin-bottom: 0; font-size: 10pt; '>Available Lists</h2>
28
+ <%= f.label :scheduled_at %>
29
+ <%= f.text_field :scheduled_at, {class: 'datetime-picker', value: l(f.object.scheduled_at || Time.now)} %><br />
30
+ <%= f.label :include_images %>
31
+ <%= f.check_box :include_images %><br />
32
+ Note: If checked, images are encoded and attached to the email (except for contacts with yahoo.com, gmail.com and
33
+ hotmail.com emails). If unchecked, remote image references are used for all contacts.
34
+ <% if @all_mailing_lists.length > 0 %>
35
+ <div class='mailing_lists_group'>
36
+ <h2 class='list_group'>Send to these mailing lists:</h2>
53
37
  <p>
54
38
  <% @all_mailing_lists.each do |mailing_list| %>
55
39
  <%= check_box_tag 'mailing[mailing_list_ids][]', mailing_list.id, @mailing.mailing_lists.include?(mailing_list) %>
56
- <%= label_tag :mailing_mailing_list_id, "#{mailing_list.name}" %><br/>
40
+ <%= label_tag :mailing_mailing_list_ids_, "#{mailing_list.name}" %><br/>
57
41
  <% end %>
58
42
  </p>
59
43
  </div>
60
- </td>
61
44
  <% end %>
62
- <tr>
63
- <td align="right" colspan="2"><%= f.submit "Submit", :class => 'button' %><div class="buttonEnding"></div></td>
64
- </tr>
65
- </table>
66
-
45
+ <div class="submit_button"><%= f.submit "Submit", :class => 'button' %></div>
67
46
  <% end %>
68
47
 
69
-
70
48
  <%= content_for :head do %>
71
49
  <script>
72
50
  jQuery(document).ready(function(){
@@ -1,12 +1,12 @@
1
- <% title "Edit #{@mailing.subject}"%>
1
+ <%= title 'mail_manager/mailing.edit.title', subject: @mailing.subject, default: "Edit #{@mailing.subject}" %>
2
2
 
3
3
  <%= render :partial => 'form' %>
4
4
 
5
5
  <%= content_for :page_navigation do %>
6
6
  <div>
7
7
  <% if use_show_for_resources? %>
8
- <%= link_to "Show", @mailing, :class => 'button' %><div class="linkbuttonEnding"></div>
8
+ <%= link_to "Show", @mailing, :class => 'button' %>
9
9
  <% end %>
10
- <%= link_to "Back", mail_manager.mailings_path, :class => 'button' %><div class="linkbuttonEnding"></div>
10
+ <%= link_to "Back", mail_manager.mailings_path, :class => 'button' %>
11
11
  </div>
12
12
  <% end %>
@@ -1,52 +1,48 @@
1
- <% title "Listing Mailings" %>
1
+ <%= title "Listing Mailings" %>
2
2
 
3
3
  <% if @mailings.length > 0 %>
4
-
5
4
  <table class="list" border="0" cellpadding="0" cellspacing="0">
6
5
  <tr class="title">
7
6
  <td>Subject</td>
7
+ <td>Mailable Name</td>
8
8
  <td>Scheduled At</td>
9
9
  <td>Status</td>
10
- <td colspan="6"> </td>
10
+ <td colspan="2"> </td>
11
11
  </tr>
12
- <% @mailings.each do |mailing|
13
- dynamic_tds_left = 5 %>
12
+ <% @mailings.each do |mailing| %>
14
13
  <tr class="<%= cycle('odd','even') %>">
15
14
  <td><%=h mailing.subject %></td>
16
- <td><%=l mailing.scheduled_at %></td>
15
+ <td><%=h mailing.mailable.name rescue 'N/A' %></td>
16
+ <td><%=l(mailing.scheduled_at) rescue '' %></td>
17
17
  <td><b><%=h mailing.status %></b></td>
18
- <td align="center"><nobr><%= link_to 'Send Test', mail_manager.test_mailing_path(mailing), :id => 'Send_Test', :class => 'button' %></nobr><div class="linkbuttonEnding"></div></td>
19
- <% if mailing.can_edit?
20
- dynamic_tds_left -= 1 %>
21
- <td align="center"><%= link_to 'Edit', mail_manager.edit_mailing_path(mailing), :class => 'button' %><div class="linkbuttonEnding"></div></td>
22
- <% if mailing.can_schedule?
23
- dynamic_tds_left -= 1 %>
24
- <td align="center"><%= link_to 'Schedule', mail_manager.schedule_mailing_path(mailing), :class => 'button' %><div class="linkbuttonEnding"></div></td>
25
- <% elsif mailing.can_cancel?
26
- dynamic_tds_left -= 1 %>
27
- <td align="center"><%= link_to 'Cancel', mail_manager.cancel_mailing_path(mailing), :class => 'button' %> <div class="linkbuttonEnding"></div></td>
18
+ <td align="center"><nobr><%= link_to 'Send Test', mail_manager.test_mailing_path(mailing), :id => 'Send_Test', :class => 'button' %></nobr></td>
19
+ <td>
20
+ <% if mailing.can_edit? %>
21
+ <%= link_to 'Edit', mail_manager.edit_mailing_path(mailing), :class => 'button' %>
22
+ <% if mailing.can_schedule? %>
23
+ <%= link_to 'Schedule', mail_manager.schedule_mailing_path(mailing), :method => :put, :class => 'button', :confirm => "Are you sure you want to start the mailing at #{l(mailing.scheduled_at) rescue "N/A"}?" %>
24
+ <% elsif mailing.can_cancel? %>
25
+ <%= link_to 'Cancel', mail_manager.cancel_mailing_path(mailing), :method => :put, :class => 'button', :id => "cancel_mailing_#{mailing.id}" %>
28
26
  <% end %>
29
27
  <% end %>
30
- <% if mailing.messages.length > 0
31
- dynamic_tds_left -= 1 %>
32
- <td align="center"><%= link_to 'Messages', mail_manager.mailing_messages_path(mailing), :class => 'button' %><div class="linkbuttonEnding"></div></td>
33
- <% end %>
34
- <% if mailing.bounces.length > 0
35
- dynamic_tds_left -= 1 %>
36
- <td align="center"><%= link_to 'Bounces', mail_manager.bounces_path(:mailing_id => mailing.id), :class => 'button' %><div class="linkbuttonEnding"></div></td>
28
+ <% if mailing.messages.size > 0 %>
29
+ <%= link_to 'Messages', mail_manager.mailing_messages_path(mailing), :class => 'button' %>
37
30
  <% end %>
38
- <% 1.upto( dynamic_tds_left ) do %>
39
- <td align="center"></td>
31
+ <% if mailing.bounces.size > 0 %>
32
+ <%= link_to 'Bounces', mail_manager.bounces_path(:mailing_id => mailing.id), :class => 'button' %>
40
33
  <% end %>
34
+ <%= link_to 'Delete', mail_manager.mailing_path(mailing), :method => :delete, :confirm => "Are you sure?", :class => 'button' %>
35
+ </td>
41
36
  </tr>
42
37
  <% end %>
43
38
  </table>
44
39
  <% else %>
45
- No mailings exist.
40
+ No mailings exist.<br /><br />
46
41
  <% end %>
47
42
 
48
43
  <%= content_for :page_navigation do %>
49
44
  <div>
50
- <%= link_to "New Mailing", mail_manager.new_mailing_path, :class => 'button' %><div class="linkbuttonEnding"></div>
45
+ <%= will_paginate @mailings %>
46
+ <%= link_to "New Mailing", mail_manager.new_mailing_path, :class => 'button' %>
51
47
  </div>
52
48
  <% end %>