diff --git a/app/models/mailer.rb b/app/models/mailer.rb index da793740..c17e2aa1 100644 --- a/app/models/mailer.rb +++ b/app/models/mailer.rb @@ -20,99 +20,111 @@ class Mailer < ActionMailer::Base helper IssuesHelper helper CustomFieldsHelper - def account_information(user, password) - set_language_if_valid user.language - recipients user.mail - from Setting.mail_from - subject l(:mail_subject_register) - body :user => user, :password => password - end - - def issue_add(issue) - set_language_if_valid(Setting.default_language) - @recipients = issue.recipients - @from = Setting.mail_from - @subject = "[#{issue.project.name} - #{issue.tracker.name} ##{issue.id}] #{issue.status.name} - #{issue.subject}" - @body['issue'] = issue + include ActionController::UrlWriter + + def issue_add(issue) + recipients issue.recipients + subject "[#{issue.project.name} - #{issue.tracker.name} ##{issue.id}] #{issue.status.name} - #{issue.subject}" + body :issue => issue, + :issue_url => url_for(:controller => 'issues', :action => 'show', :id => issue) end def issue_edit(journal) - set_language_if_valid(Setting.default_language) issue = journal.journalized - @recipients = issue.recipients + recipients issue.recipients # Watchers in cc - @cc = issue.watcher_recipients - @recipients - @from = Setting.mail_from - @subject = "[#{issue.project.name} - #{issue.tracker.name} ##{issue.id}] #{issue.status.name} - #{issue.subject}" - @body['issue'] = issue - @body['journal']= journal + cc(issue.watcher_recipients - @recipients) + subject "[#{issue.project.name} - #{issue.tracker.name} ##{issue.id}] #{issue.status.name} - #{issue.subject}" + body :issue => issue, + :journal => journal, + :issue_url => url_for(:controller => 'issues', :action => 'show', :id => issue) end def document_added(document) - set_language_if_valid(Setting.default_language) - @recipients = document.project.recipients - @from = Setting.mail_from - @subject = "[#{document.project.name}] #{l(:label_document_new)}: #{document.title}" - @body['document'] = document + recipients document.project.recipients + subject "[#{document.project.name}] #{l(:label_document_new)}: #{document.title}" + body :document => document, + :document_url => url_for(:controller => 'documents', :action => 'show', :id => document) end def attachments_added(attachments) - set_language_if_valid(Setting.default_language) container = attachments.first.container - url = '' added_to = '' + added_to_url = '' case container.class.name when 'Version' - url = {:only_path => false, :host => Setting.host_name, :controller => 'projects', :action => 'list_files', :id => container.project_id} + added_to_url = url_for(:controller => 'projects', :action => 'list_files', :id => container.project_id) added_to = "#{l(:label_version)}: #{container.name}" when 'Document' - url = {:only_path => false, :host => Setting.host_name, :controller => 'documents', :action => 'show', :id => container.id} + added_to_url = url_for(:controller => 'documents', :action => 'show', :id => container.id) added_to = "#{l(:label_document)}: #{container.title}" end - @recipients = container.project.recipients - @from = Setting.mail_from - @subject = "[#{container.project.name}] #{l(:label_attachment_new)}" - @body['attachments'] = attachments - @body['url'] = url - @body['added_to'] = added_to + recipients container.project.recipients + subject "[#{container.project.name}] #{l(:label_attachment_new)}" + body :attachments => attachments, + :added_to => added_to, + :added_to_url => added_to_url end def news_added(news) - set_language_if_valid(Setting.default_language) - @recipients = news.project.recipients - @from = Setting.mail_from - @subject = "[#{news.project.name}] #{l(:label_news)}: #{news.title}" - @body['news'] = news + recipients news.project.recipients + subject "[#{news.project.name}] #{l(:label_news)}: #{news.title}" + body :news => news, + :news_url => url_for(:controller => 'news', :action => 'show', :id => news) end - + + def message_posted(message, recipients) + recipients(recipients) + subject "[#{message.board.project.name} - #{message.board.name}] #{message.subject}" + body :message => message, + :message_url => url_for(:controller => 'messages', :action => 'show', :board_id => message.board_id, :id => message.root) + end + + def account_information(user, password) + set_language_if_valid user.language + recipients user.mail + subject l(:mail_subject_register) + body :user => user, + :password => password, + :login_url => url_for(:controller => 'account', :action => 'login') + end + def lost_password(token) set_language_if_valid(token.user.language) - @recipients = token.user.mail - @from = Setting.mail_from - @subject = l(:mail_subject_lost_password) - @body['token'] = token + recipients token.user.mail + subject l(:mail_subject_lost_password) + body :token => token, + :url => url_for(:controller => 'account', :action => 'lost_password', :token => token.value) end def register(token) set_language_if_valid(token.user.language) - @recipients = token.user.mail - @from = Setting.mail_from - @subject = l(:mail_subject_register) - @body['token'] = token - end - - def message_posted(message, recipients) - set_language_if_valid(Setting.default_language) - @recipients = recipients - @from = Setting.mail_from - @subject = "[#{message.board.project.name} - #{message.board.name}] #{message.subject}" - @body['message'] = message + recipients token.user.mail + subject l(:mail_subject_register) + body :token => token, + :url => url_for(:controller => 'account', :action => 'register', :token => token.value) end def test(user) set_language_if_valid(user.language) - @recipients = user.mail - @from = Setting.mail_from - @subject = 'Redmine' + recipients user.mail + subject 'Redmine test' + body :url => url_for(:controller => 'welcome') + end + + private + def initialize_defaults(method_name) + super + set_language_if_valid Setting.default_language + from Setting.mail_from + default_url_options[:host] = Setting.host_name + default_url_options[:protocol] = Setting.protocol + end + + # Renders a message with the corresponding layout + def render_message(method_name, body) + layout = method_name.match(%r{text\.html\.(rhtml|rxml)}) ? 'layout.text.html.rhtml' : 'layout.text.plain.rhtml' + body[:content_for_layout] = render(:file => method_name, :body => body) + ActionView::Base.new(File.join(template_root, 'mailer'), body, self).render(:file => layout) end end diff --git a/app/views/mailer/_issue_text_html.rhtml b/app/views/mailer/_issue_text_html.rhtml index 80885eba..a3eb05b0 100644 --- a/app/views/mailer/_issue_text_html.rhtml +++ b/app/views/mailer/_issue_text_html.rhtml @@ -1,5 +1,4 @@ -<%= link_to "#{issue.tracker.name} ##{issue.id}", :only_path => false, :host => Setting.host_name, :controller => 'issues', :action => 'show', :id => issue %>: -<%= issue.subject %> +

<%= link_to "#{issue.tracker.name} ##{issue.id}: #{issue.subject}", issue_url %>

<%= textilizable(@journal.notes) %>
-<%= render :file => "_issue_text_html", :use_full_path => true, :locals => { :issue => @issue } %> -
-<%= textilizable Setting.emails_footer %> +<%= render :file => "_issue_text_html", :use_full_path => true, :locals => { :issue => @issue, :issue_url => @issue_url } %> diff --git a/app/views/mailer/issue_edit.text.plain.rhtml b/app/views/mailer/issue_edit.text.plain.rhtml index 4ecc3754..32019eae 100644 --- a/app/views/mailer/issue_edit.text.plain.rhtml +++ b/app/views/mailer/issue_edit.text.plain.rhtml @@ -5,6 +5,4 @@ <% end %> <%= @journal.notes if @journal.notes? %> ---------------------------------------- -<%= render :file => "_issue_text_plain", :use_full_path => true, :locals => { :issue => @issue } %> ----------------------------------------- -<%= Setting.emails_footer %> +<%= render :file => "_issue_text_plain", :use_full_path => true, :locals => { :issue => @issue, :issue_url => @issue_url } %> diff --git a/app/views/mailer/layout.text.html.rhtml b/app/views/mailer/layout.text.html.rhtml new file mode 100644 index 00000000..b78e92bd --- /dev/null +++ b/app/views/mailer/layout.text.html.rhtml @@ -0,0 +1,17 @@ + + + + + +<%= yield %> +
+<%= Redmine::WikiFormatting.to_html(Setting.emails_footer) %> + + diff --git a/app/views/mailer/layout.text.plain.rhtml b/app/views/mailer/layout.text.plain.rhtml new file mode 100644 index 00000000..ec3e1bfa --- /dev/null +++ b/app/views/mailer/layout.text.plain.rhtml @@ -0,0 +1,3 @@ +<%= yield %> +---------------------------------------- +<%= Setting.emails_footer %> diff --git a/app/views/mailer/lost_password.rhtml b/app/views/mailer/lost_password.rhtml deleted file mode 100644 index 5b5bb3b9..00000000 --- a/app/views/mailer/lost_password.rhtml +++ /dev/null @@ -1,5 +0,0 @@ -<%= l(:mail_body_lost_password) %> -<%= url_for :only_path => false, :host => Setting.host_name, :controller => 'account', :action => 'lost_password', :token => @token.value %> - ----------------------------------------- -<%= Setting.emails_footer %> diff --git a/app/views/mailer/lost_password.text.html.rhtml b/app/views/mailer/lost_password.text.html.rhtml new file mode 100644 index 00000000..26eacfa9 --- /dev/null +++ b/app/views/mailer/lost_password.text.html.rhtml @@ -0,0 +1,2 @@ +

<%= l(:mail_body_lost_password) %>
+<%= auto_link(@url) %>

diff --git a/app/views/mailer/lost_password.text.plain.rhtml b/app/views/mailer/lost_password.text.plain.rhtml new file mode 100644 index 00000000..aec1b5b8 --- /dev/null +++ b/app/views/mailer/lost_password.text.plain.rhtml @@ -0,0 +1,2 @@ +<%= l(:mail_body_lost_password) %> +<%= @url %> diff --git a/app/views/mailer/message_posted.text.html.rhtml b/app/views/mailer/message_posted.text.html.rhtml index 89346e72..558a6e52 100644 --- a/app/views/mailer/message_posted.text.html.rhtml +++ b/app/views/mailer/message_posted.text.html.rhtml @@ -1,6 +1,4 @@ -<%=h @message.board.project.name %> - <%=h @message.board.name %>: <%= link_to @message.subject, :only_path => false, :host => Setting.host_name, :controller => 'messages', :action => 'show', :board_id => @message.board_id, :id => @message.root %>
+

<%=h @message.board.project.name %> - <%=h @message.board.name %>: <%= link_to @message.subject, @message_url %>

<%= @message.author.name %> <%= textilizable @message.content %> -
-<%= textilizable Setting.emails_footer %> diff --git a/app/views/mailer/message_posted.text.plain.rhtml b/app/views/mailer/message_posted.text.plain.rhtml index 97539fd0..cc112056 100644 --- a/app/views/mailer/message_posted.text.plain.rhtml +++ b/app/views/mailer/message_posted.text.plain.rhtml @@ -1,6 +1,4 @@ -<%= url_for :only_path => false, :host => Setting.host_name, :controller => 'messages', :action => 'show', :board_id => @message.board_id, :id => @message.root %> +<%= @message_url %> <%= @message.author.name %> <%= @message.content %> ----------------------------------------- -<%= Setting.emails_footer %> diff --git a/app/views/mailer/news_added.text.html.rhtml b/app/views/mailer/news_added.text.html.rhtml index e99dfd5b..010ef8ee 100644 --- a/app/views/mailer/news_added.text.html.rhtml +++ b/app/views/mailer/news_added.text.html.rhtml @@ -1,6 +1,4 @@ -<%= link_to @news.title, :only_path => false, :host => Setting.host_name, :controller => 'news', :action => 'show', :id => @news %>
+

<%= link_to @news.title, @news_url %>

<%= @news.author.name %> <%= textilizable(@news.description) %> -
-<%= textilizable Setting.emails_footer %> diff --git a/app/views/mailer/news_added.text.plain.rhtml b/app/views/mailer/news_added.text.plain.rhtml index 1a04af9c..c8ae3035 100644 --- a/app/views/mailer/news_added.text.plain.rhtml +++ b/app/views/mailer/news_added.text.plain.rhtml @@ -1,7 +1,5 @@ <%= @news.title %> -<%= url_for :only_path => false, :host => Setting.host_name, :controller => 'news', :action => 'show', :id => @news %> +<%= @news_url %> <%= @news.author.name %> <%= @news.description %> ----------------------------------------- -<%= Setting.emails_footer %> diff --git a/app/views/mailer/register.rhtml b/app/views/mailer/register.rhtml deleted file mode 100644 index 55fcf1e1..00000000 --- a/app/views/mailer/register.rhtml +++ /dev/null @@ -1,5 +0,0 @@ -<%= l(:mail_body_register) %> -<%= url_for :only_path => false, :host => Setting.host_name, :controller => 'account', :action => 'register', :token => @token.value %> - ----------------------------------------- -<%= Setting.emails_footer %> diff --git a/app/views/mailer/register.text.html.rhtml b/app/views/mailer/register.text.html.rhtml new file mode 100644 index 00000000..145c3d7c --- /dev/null +++ b/app/views/mailer/register.text.html.rhtml @@ -0,0 +1,2 @@ +

<%= l(:mail_body_register) %>
+<%= auto_link(@url) %>

diff --git a/app/views/mailer/register.text.plain.rhtml b/app/views/mailer/register.text.plain.rhtml new file mode 100644 index 00000000..102a15ee --- /dev/null +++ b/app/views/mailer/register.text.plain.rhtml @@ -0,0 +1,2 @@ +<%= l(:mail_body_register) %> +<%= @url %> diff --git a/app/views/mailer/test.text.html.rhtml b/app/views/mailer/test.text.html.rhtml index f1cb1881..25ad20c5 100644 --- a/app/views/mailer/test.text.html.rhtml +++ b/app/views/mailer/test.text.html.rhtml @@ -1,5 +1,2 @@

This is a test email sent by Redmine.
-Redmine URL: <%= link_to url_for(:only_path => false, :host => Setting.host_name, :controller => 'welcome'), - url_for(:only_path => false, :host => Setting.host_name, :controller => 'welcome') %>

-
-<%= textilizable Setting.emails_footer %> +Redmine URL: <%= auto_link(@url) %>

diff --git a/app/views/mailer/test.text.plain.rhtml b/app/views/mailer/test.text.plain.rhtml index 0519caab..790d6ab2 100644 --- a/app/views/mailer/test.text.plain.rhtml +++ b/app/views/mailer/test.text.plain.rhtml @@ -1,5 +1,2 @@ This is a test email sent by Redmine. -Redmine URL: <%= url_for :only_path => false, :host => Setting.host_name, :controller => 'welcome' %> - ----------------------------------------- -<%= Setting.emails_footer %> +Redmine URL: <%= @url %> diff --git a/app/views/settings/edit.rhtml b/app/views/settings/edit.rhtml index 50333988..d3f994d4 100644 --- a/app/views/settings/edit.rhtml +++ b/app/views/settings/edit.rhtml @@ -37,6 +37,9 @@

<%= text_field_tag 'settings[host_name]', Setting.host_name, :size => 60 %>

+

+<%= select_tag 'settings[protocol]', options_for_select(['http', 'https'], Setting.protocol) %>

+

<%= select_tag 'settings[text_formatting]', options_for_select([[l(:label_none), "0"], ["textile", "textile"]], Setting.text_formatting) %>

@@ -91,4 +94,4 @@ <%= submit_tag l(:button_save) %> -<% end %> \ No newline at end of file +<% end %> diff --git a/config/settings.yml b/config/settings.yml index ff695cc7..333203f0 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -47,6 +47,8 @@ default_language: default: en host_name: default: localhost:3000 +protocol: + default: http feeds_limit: format: int default: 15 diff --git a/lang/bg.yml b/lang/bg.yml index 366aa94a..46979253 100644 --- a/lang/bg.yml +++ b/lang/bg.yml @@ -534,3 +534,6 @@ label_user_mail_option_none: "Only for things I watch or I'm involved in" setting_emails_footer: Emails footer label_float: Float button_copy: Copy +mail_body_account_information_external: You can use your "%s" account to log into Redmine. +mail_body_account_information: Your Redmine account information +setting_protocol: Protocol diff --git a/lang/cs.yml b/lang/cs.yml index 4f35c8a3..d6274663 100644 --- a/lang/cs.yml +++ b/lang/cs.yml @@ -534,3 +534,6 @@ label_user_mail_option_none: "Only for things I watch or I'm involved in" setting_emails_footer: Emails footer label_float: Float button_copy: Copy +mail_body_account_information_external: You can use your "%s" account to log into Redmine. +mail_body_account_information: Your Redmine account information +setting_protocol: Protocol diff --git a/lang/de.yml b/lang/de.yml index 350a86e4..9a5fcee2 100644 --- a/lang/de.yml +++ b/lang/de.yml @@ -534,3 +534,6 @@ label_user_mail_option_none: "Only for things I watch or I'm involved in" setting_emails_footer: Emails footer label_float: Float button_copy: Copy +mail_body_account_information_external: You can use your "%s" account to log into Redmine. +mail_body_account_information: Your Redmine account information +setting_protocol: Protocol diff --git a/lang/en.yml b/lang/en.yml index 4a52d281..2ab4c11a 100644 --- a/lang/en.yml +++ b/lang/en.yml @@ -80,6 +80,8 @@ mail_subject_lost_password: Your Redmine password mail_body_lost_password: 'To change your Redmine password, click on the following link:' mail_subject_register: Redmine account activation mail_body_register: 'To activate your Redmine account, click on the following link:' +mail_body_account_information_external: You can use your "%s" account to log into Redmine. +mail_body_account_information: Your Redmine account information gui_validation_error: 1 error gui_validation_error_plural: %d errors @@ -189,6 +191,7 @@ setting_cross_project_issue_relations: Allow cross-project issue relations setting_issue_list_default_columns: Default columns displayed on the issue list setting_repositories_encodings: Repositories encodings setting_emails_footer: Emails footer +setting_protocol: Protocol label_user: User label_user_plural: Users diff --git a/lang/es.yml b/lang/es.yml index 5d1f806c..e93fb5bd 100644 --- a/lang/es.yml +++ b/lang/es.yml @@ -537,3 +537,6 @@ label_user_mail_option_none: "Only for things I watch or I'm involved in" setting_emails_footer: Emails footer label_float: Float button_copy: Copy +mail_body_account_information_external: You can use your "%s" account to log into Redmine. +mail_body_account_information: Your Redmine account information +setting_protocol: Protocol diff --git a/lang/fr.yml b/lang/fr.yml index e5a2b843..1f35272c 100644 --- a/lang/fr.yml +++ b/lang/fr.yml @@ -80,6 +80,8 @@ mail_subject_lost_password: Votre mot de passe redMine mail_body_lost_password: 'Pour changer votre mot de passe Redmine, cliquez sur le lien suivant:' mail_subject_register: Activation de votre compte redMine mail_body_register: 'Pour activer votre compte Redmine, cliquez sur le lien suivant:' +mail_body_account_information_external: Vous pouvez utiliser votre compte "%s" pour vous connecter à Redmine. +mail_body_account_information: Paramètres de connexion de votre compte Redmine gui_validation_error: 1 erreur gui_validation_error_plural: %d erreurs @@ -189,6 +191,7 @@ setting_cross_project_issue_relations: Autoriser les relations entre demandes de setting_issue_list_default_columns: Colonnes affichées par défaut sur la liste des demandes setting_repositories_encodings: Encodages des dépôts setting_emails_footer: Pied-de-page des emails +setting_protocol: Protocole label_user: Utilisateur label_user_plural: Utilisateurs diff --git a/lang/he.yml b/lang/he.yml index 206d3309..73f72d5b 100644 --- a/lang/he.yml +++ b/lang/he.yml @@ -534,3 +534,6 @@ label_user_mail_option_none: "Only for things I watch or I'm involved in" setting_emails_footer: Emails footer label_float: Float button_copy: Copy +mail_body_account_information_external: You can use your "%s" account to log into Redmine. +mail_body_account_information: Your Redmine account information +setting_protocol: Protocol diff --git a/lang/it.yml b/lang/it.yml index 36475e67..224843e0 100644 --- a/lang/it.yml +++ b/lang/it.yml @@ -534,3 +534,6 @@ label_user_mail_option_none: "Only for things I watch or I'm involved in" setting_emails_footer: Emails footer label_float: Float button_copy: Copy +mail_body_account_information_external: You can use your "%s" account to log into Redmine. +mail_body_account_information: Your Redmine account information +setting_protocol: Protocol diff --git a/lang/ja.yml b/lang/ja.yml index 5a3362c2..4ff45f5f 100644 --- a/lang/ja.yml +++ b/lang/ja.yml @@ -535,3 +535,6 @@ label_user_mail_option_none: "Only for things I watch or I'm involved in" setting_emails_footer: Emails footer label_float: Float button_copy: Copy +mail_body_account_information_external: You can use your "%s" account to log into Redmine. +mail_body_account_information: Your Redmine account information +setting_protocol: Protocol diff --git a/lang/nl.yml b/lang/nl.yml index 4d9479f3..f43f5a5b 100644 --- a/lang/nl.yml +++ b/lang/nl.yml @@ -535,3 +535,6 @@ label_user_mail_option_none: "Only for things I watch or I'm involved in" setting_emails_footer: Emails footer label_float: Float button_copy: Copy +mail_body_account_information_external: You can use your "%s" account to log into Redmine. +mail_body_account_information: Your Redmine account information +setting_protocol: Protocol diff --git a/lang/pl.yml b/lang/pl.yml index 6f8d7f2f..e636afe5 100644 --- a/lang/pl.yml +++ b/lang/pl.yml @@ -534,3 +534,6 @@ label_user_mail_option_none: "Only for things I watch or I'm involved in" setting_emails_footer: Emails footer label_float: Float button_copy: Copy +mail_body_account_information_external: Możesz użyć twojego "%s" konta do zalogowania do Redmine. +mail_body_account_information: Twoje konto w Redmine +setting_protocol: Protocol diff --git a/lang/pt-br.yml b/lang/pt-br.yml index a0179397..707baffc 100644 --- a/lang/pt-br.yml +++ b/lang/pt-br.yml @@ -534,3 +534,6 @@ label_user_mail_option_none: "Only for things I watch or I'm involved in" setting_emails_footer: Emails footer label_float: Float button_copy: Copy +mail_body_account_information_external: You can use your "%s" account to log into Redmine. +mail_body_account_information: Your Redmine account information +setting_protocol: Protocol diff --git a/lang/pt.yml b/lang/pt.yml index da919938..687ab512 100644 --- a/lang/pt.yml +++ b/lang/pt.yml @@ -534,3 +534,6 @@ label_user_mail_option_none: "Only for things I watch or I'm involved in" setting_emails_footer: Emails footer label_float: Float button_copy: Copy +mail_body_account_information_external: You can use your "%s" account to log into Redmine. +mail_body_account_information: Your Redmine account information +setting_protocol: Protocol diff --git a/lang/ro.yml b/lang/ro.yml index 73280933..f31bd6f8 100644 --- a/lang/ro.yml +++ b/lang/ro.yml @@ -534,3 +534,6 @@ label_user_mail_option_none: "Only for things I watch or I'm involved in" setting_emails_footer: Emails footer label_float: Float button_copy: Copy +mail_body_account_information_external: You can use your "%s" account to log into Redmine. +mail_body_account_information: Your Redmine account information +setting_protocol: Protocol diff --git a/lang/sr.yml b/lang/sr.yml index 96cd9273..d9585573 100644 --- a/lang/sr.yml +++ b/lang/sr.yml @@ -80,6 +80,8 @@ mail_subject_lost_password: Vaša redMine lozinka mail_body_lost_password: 'Da biste izmenili vašu Redmine lozinku, kliknite na sledeći link:' mail_subject_register: aktivacija redMine naloga mail_body_register: 'Da biste aktivirali vaš Redmine nalog, kliknite na sledeći link:' +mail_body_account_information_external: Mozete koristiti vas "%s" nalog da bi ste se prikljucili na Redmine. +mail_body_account_information: Informacije o vasem Redmine nalogu gui_validation_error: 1 greška gui_validation_error_plural: %d grešaka @@ -535,3 +537,4 @@ enumeration_doc_categories: Kategorija dokumenata enumeration_activities: Aktivnosti (praćenje vremena)) label_float: Float button_copy: Copy +setting_protocol: Protocol diff --git a/lang/sv.yml b/lang/sv.yml index ae1329db..0cd4f1a1 100644 --- a/lang/sv.yml +++ b/lang/sv.yml @@ -535,3 +535,6 @@ label_user_mail_option_none: "Only for things I watch or I'm involved in" setting_emails_footer: Emails footer label_float: Float button_copy: Copy +mail_body_account_information_external: You can use your "%s" account to log into Redmine. +mail_body_account_information: Your Redmine account information +setting_protocol: Protocol diff --git a/lang/zh.yml b/lang/zh.yml index a7ce17e1..71501092 100644 --- a/lang/zh.yml +++ b/lang/zh.yml @@ -537,3 +537,6 @@ label_user_mail_option_none: "Only for things I watch or I'm involved in" setting_emails_footer: Emails footer label_float: Float button_copy: Copy +mail_body_account_information_external: You can use your "%s" account to log into Redmine. +mail_body_account_information: Your Redmine account information +setting_protocol: Protocol diff --git a/test/fixtures/attachments.yml b/test/fixtures/attachments.yml index 6c352e1e..76494875 100644 --- a/test/fixtures/attachments.yml +++ b/test/fixtures/attachments.yml @@ -11,3 +11,16 @@ attachments_001: filesize: 28 filename: error281.txt author_id: 2 +attachments_002: + created_on: 2006-07-19 21:07:27 +02:00 + downloads: 0 + content_type: text/plain + disk_filename: 060719210727_document.txt + container_id: 1 + digest: b91e08d0cf966d5c6ff411bd8c4cc3a2 + id: 2 + container_type: Document + filesize: 28 + filename: document.txt + author_id: 2 + \ No newline at end of file diff --git a/test/unit/mailer_test.rb b/test/unit/mailer_test.rb index d92c5837..096551ee 100644 --- a/test/unit/mailer_test.rb +++ b/test/unit/mailer_test.rb @@ -18,7 +18,7 @@ require File.dirname(__FILE__) + '/../test_helper' class MailerTest < Test::Unit::TestCase - fixtures :projects, :issues, :users, :members, :documents, :attachments, :tokens, :journals, :journal_details, :trackers, :issue_statuses, :enumerations + fixtures :projects, :issues, :users, :members, :documents, :attachments, :news, :tokens, :journals, :journal_details, :trackers, :issue_statuses, :enumerations # test mailer methods for each language def test_issue_add @@ -37,18 +37,54 @@ class MailerTest < Test::Unit::TestCase end end - def test_document_add + def test_document_added document = Document.find(1) GLoc.valid_languages.each do |lang| Setting.default_language = lang.to_s assert Mailer.deliver_document_added(document) end end + + def test_attachments_added + attachements = [ Attachment.find_by_container_type('Document') ] + GLoc.valid_languages.each do |lang| + Setting.default_language = lang.to_s + assert Mailer.deliver_attachments_added(attachements) + end + end + + def test_news_added + news = News.find(:first) + GLoc.valid_languages.each do |lang| + Setting.default_language = lang.to_s + assert Mailer.deliver_news_added(news) + end + end + + def test_message_posted + message = Message.find(:first) + recipients = ([message.root] + message.root.children).collect {|m| m.author.mail if m.author} + recipients = recipients.compact.uniq + GLoc.valid_languages.each do |lang| + Setting.default_language = lang.to_s + assert Mailer.deliver_message_posted(message, recipients) + end + end + + def test_account_information + user = User.find(:first) + GLoc.valid_languages.each do |lang| + user.update_attribute :language, lang.to_s + user.reload + assert Mailer.deliver_account_information(user, 'pAsswORd') + end + end def test_lost_password token = Token.find(2) GLoc.valid_languages.each do |lang| token.user.update_attribute :language, lang.to_s + token.reload assert Mailer.deliver_lost_password(token) end end @@ -57,7 +93,8 @@ class MailerTest < Test::Unit::TestCase token = Token.find(1) GLoc.valid_languages.each do |lang| token.user.update_attribute :language, lang.to_s + token.reload assert Mailer.deliver_register(token) end end -end \ No newline at end of file +end