FEATURE: mailing list mode always available

This commit is contained in:
Sam 2014-03-05 14:21:53 +11:00
parent 69b498da24
commit adb6541635
9 changed files with 11 additions and 25 deletions

View File

@ -103,12 +103,6 @@
<div class="control-group"> <div class="control-group">
<label class="control-label">{{i18n user.email_settings}}</label> <label class="control-label">{{i18n user.email_settings}}</label>
<div class="controls"> <div class="controls">
{{#if Discourse.SiteSettings.enable_mailing_list_mode}}
<label class="checkbox-label">
{{view Ember.Checkbox checkedBinding="mailing_list_mode"}}
{{i18n user.mailing_list_mode}}
</label>
{{/if}}
<label class="checkbox-label">{{view Ember.Checkbox checkedBinding="email_digests"}} <label class="checkbox-label">{{view Ember.Checkbox checkedBinding="email_digests"}}
{{i18n user.email_digests.title}}</label> {{i18n user.email_digests.title}}</label>
@ -120,8 +114,12 @@
{{/if}} {{/if}}
<label class="checkbox-label">{{view Ember.Checkbox checkedBinding="email_private_messages"}} <label class="checkbox-label">{{view Ember.Checkbox checkedBinding="email_private_messages"}}
{{i18n user.email_private_messages}}</label> {{i18n user.email_private_messages}}</label>
<label class="checkbox-label">{{view Ember.Checkbox checkedBinding="email_direct"}} <label class="checkbox-label">{{view Ember.Checkbox checkedBinding="email_direct"}}
{{i18n user.email_direct}}</label> {{i18n user.email_direct}}</label>
<label class="checkbox-label">
{{view Ember.Checkbox checkedBinding="mailing_list_mode"}}
{{i18n user.mailing_list_mode}}</label>
<label class="checkbox-label">{{view Ember.Checkbox checkedBinding="email_always"}} <label class="checkbox-label">{{view Ember.Checkbox checkedBinding="email_always"}}
{{i18n user.email_always}}</label> {{i18n user.email_always}}</label>
</div> </div>

View File

@ -141,8 +141,7 @@ class UserNotifications < ActionMailer::Base
username = @notification.data_hash[:original_username] username = @notification.data_hash[:original_username]
notification_type = opts[:notification_type] || Notification.types[@notification.notification_type].to_s notification_type = opts[:notification_type] || Notification.types[@notification.notification_type].to_s
return if SiteSetting.enable_mailing_list_mode && return if user.mailing_list_mode &&
user.mailing_list_mode &&
["replied", "mentioned", "quoted", "posted"].include?(notification_type) ["replied", "mentioned", "quoted", "posted"].include?(notification_type)
title = @notification.data_hash[:topic_title] title = @notification.data_hash[:topic_title]

View File

@ -803,7 +803,6 @@ en:
email_in_address: "The email address the users can post new topics to. None means users can't post globally." email_in_address: "The email address the users can post new topics to. None means users can't post globally."
email_in_min_trust: "The minimum trust level an users needs to have to be allowed to post new topics via email" email_in_min_trust: "The minimum trust level an users needs to have to be allowed to post new topics via email"
email_in_category: "The category new emails are posted into" email_in_category: "The category new emails are posted into"
enable_mailing_list_mode: "Allow users to (optionally) opt-in to mailing list mode via a user preference"
minimum_topics_similar: "How many topics need to exist in the database before similar topics are presented." minimum_topics_similar: "How many topics need to exist in the database before similar topics are presented."

View File

@ -694,7 +694,6 @@ fr:
pop3s_polling_host: "L'hôte utilisé pour le polling pour l'email via POP3S" pop3s_polling_host: "L'hôte utilisé pour le polling pour l'email via POP3S"
pop3s_polling_username: "Le nom d'utilisateur pour le polling POPS3 par email" pop3s_polling_username: "Le nom d'utilisateur pour le polling POPS3 par email"
pop3s_polling_password: "Le mot de passe pour le polling POPS3 par email" pop3s_polling_password: "Le mot de passe pour le polling POPS3 par email"
enable_mailing_list_mode: "Autoriser les utilisateurs à s'inscrire (optionnellement) au mode de liste de diffusion via une préférence de l'utilisateur"
minimum_topics_similar: "Combien de topics ont besoin d'exister dans la base de données avant que des topics similaires soit présentés." minimum_topics_similar: "Combien de topics ont besoin d'exister dans la base de données avant que des topics similaires soit présentés."
relative_date_duration: "Nombre de jours après la création d'un message à partir desquels les dates seront affichées en absolu plutôt qu'en relatif. Exemple: relatif : 7j, absolut : 20 Fév" relative_date_duration: "Nombre de jours après la création d'un message à partir desquels les dates seront affichées en absolu plutôt qu'en relatif. Exemple: relatif : 7j, absolut : 20 Fév"
delete_user_max_post_age: "L'âge maximum du premier message d'un utilisateur, en jours, qui permet de supprimer un utilisateur." delete_user_max_post_age: "L'âge maximum du premier message d'un utilisateur, en jours, qui permet de supprimer un utilisateur."

View File

@ -721,7 +721,6 @@ ru:
pop3s_polling_host: 'Имя хоста для доступа по протоколу POP3S' pop3s_polling_host: 'Имя хоста для доступа по протоколу POP3S'
pop3s_polling_username: 'Имя пользователя для доступа по протоколу POP3S' pop3s_polling_username: 'Имя пользователя для доступа по протоколу POP3S'
pop3s_polling_password: 'Пароль пользователя для доступа по протоколу POP3S' pop3s_polling_password: 'Пароль пользователя для доступа по протоколу POP3S'
enable_mailing_list_mode: 'Позволить пользователям (опционально) присоединиться к списку рассылки через пользовательские настройки'
minimum_topics_similar: 'Количество тем, которое должно присутствовать в базе данных, перед тем, как начнет выводиться подсказка о похожих темах.' minimum_topics_similar: 'Количество тем, которое должно присутствовать в базе данных, перед тем, как начнет выводиться подсказка о похожих темах.'
relative_date_duration: 'Количество дней после отправки, в течении которых даты будут отображаться в относительном виде вместо абсолютного. Например, относительная дата: 7д, абсолютная дата: 20 Фев' relative_date_duration: 'Количество дней после отправки, в течении которых даты будут отображаться в относительном виде вместо абсолютного. Например, относительная дата: 7д, абсолютная дата: 20 Фев'
delete_user_max_post_age: 'Максимальный возраст первого сообщения пользователя, в днях, позволяющий удалить пользователя.' delete_user_max_post_age: 'Максимальный возраст первого сообщения пользователя, в днях, позволяющий удалить пользователя.'
@ -995,4 +994,4 @@ ru:
message_blank: 'пустое сообщение' message_blank: 'пустое сообщение'
message_to_blank: 'Адрес получателя пусто' message_to_blank: 'Адрес получателя пусто'
text_part_body_blank: 'Текстовая часть сообщения письма пуста' text_part_body_blank: 'Текстовая часть сообщения письма пуста'
body_blank: 'Cообщения письма пусто' body_blank: 'Cообщения письма пусто'

View File

@ -255,9 +255,6 @@ email:
default: 3 default: 3
enum: 'MinTrustToCreateTopicSetting' enum: 'MinTrustToCreateTopicSetting'
email_in_category: -1 email_in_category: -1
enable_mailing_list_mode:
default: false
client: true
files: files:
max_image_size_kb: max_image_size_kb:

View File

@ -32,13 +32,11 @@ class PostJobsEnqueuer
TopicTrackingState.publish_unread(@post) TopicTrackingState.publish_unread(@post)
end end
if SiteSetting.enable_mailing_list_mode Jobs.enqueue_in(
Jobs.enqueue_in( SiteSetting.email_time_window_mins.minutes,
SiteSetting.email_time_window_mins.minutes, :notify_mailing_list_subscribers,
:notify_mailing_list_subscribers, post_id: @post.id
post_id: @post.id )
)
end
end end
def after_topic_create def after_topic_create

View File

@ -90,7 +90,6 @@ describe UserNotifications do
tu.last_emailed_post_number.should == response.post_number tu.last_emailed_post_number.should == response.post_number
# in mailing list mode user_replies is not sent through # in mailing list mode user_replies is not sent through
SiteSetting.stubs(:enable_mailing_list_mode).returns(true)
response.user.mailing_list_mode = true response.user.mailing_list_mode = true
mail = UserNotifications.user_replied(response.user, post: response, notification: notification) mail = UserNotifications.user_replied(response.user, post: response, notification: notification)
mail.class.should == ActionMailer::Base::NullMail mail.class.should == ActionMailer::Base::NullMail

View File

@ -271,8 +271,6 @@ describe TopicUser do
describe "mailing_list_mode" do describe "mailing_list_mode" do
it "will receive email notification for every topic" do it "will receive email notification for every topic" do
SiteSetting.stubs(:enable_mailing_list_mode).returns(true)
user1 = Fabricate(:user) user1 = Fabricate(:user)
user2 = Fabricate(:user, mailing_list_mode: true) user2 = Fabricate(:user, mailing_list_mode: true)
post = create_post post = create_post