mirror of
https://github.com/zulip/zulip.git
synced 2025-11-02 13:03:29 +00:00
notification settings: Add UI for stream email notifications.
Previous commits have fully implemented the logic for stream email notifications; this final commit adds support for configuring it to the UI. Fixes #6511.
This commit is contained in:
@@ -79,6 +79,12 @@ run_test('update_property', () => {
|
||||
checkbox = $(".subscription_settings[data-stream-id='1'] #sub_push_notifications_setting .sub_setting_control");
|
||||
assert.equal(checkbox.prop('checked'), true);
|
||||
|
||||
// Tests email notifications
|
||||
stream_events.update_property(1, 'email_notifications', true);
|
||||
assert.equal(frontend.email_notifications, true);
|
||||
checkbox = $(".subscription_settings[data-stream-id='1'] #sub_email_notifications_setting .sub_setting_control");
|
||||
assert.equal(checkbox.prop('checked'), true);
|
||||
|
||||
// Test name change
|
||||
with_overrides(function (override) {
|
||||
global.with_stub(function (stub) {
|
||||
|
||||
@@ -90,6 +90,7 @@ function setup_settings_label() {
|
||||
enable_stream_desktop_notifications: i18n.t("Visual desktop notifications"),
|
||||
enable_stream_sounds: i18n.t("Audible desktop notifications"),
|
||||
enable_stream_push_notifications: i18n.t("Mobile notifications"),
|
||||
enable_stream_email_notifications: i18n.t("Email notifications"),
|
||||
|
||||
// pm_mention_notification_settings
|
||||
enable_desktop_notifications: i18n.t("Visual desktop notifications"),
|
||||
|
||||
@@ -6,6 +6,7 @@ var stream_notification_settings = [
|
||||
{setting: "enable_stream_desktop_notifications", notifications:"desktop_notifications"},
|
||||
{setting: "enable_stream_push_notifications", notifications:"push_notifications"},
|
||||
{setting: "enable_stream_sounds", notifications:"audible_notifications"},
|
||||
{setting: "enable_stream_email_notifications", notifications:"email_notifications"},
|
||||
];
|
||||
|
||||
var pm_mention_notification_settings = [
|
||||
|
||||
@@ -439,6 +439,7 @@ exports.create_sub_from_server_data = function (stream_name, attrs) {
|
||||
desktop_notifications: page_params.enable_stream_desktop_notifications,
|
||||
audible_notifications: page_params.enable_stream_sounds,
|
||||
push_notifications: page_params.enable_stream_push_notifications,
|
||||
email_notifications: page_params.enable_stream_email_notifications,
|
||||
description: '',
|
||||
});
|
||||
|
||||
|
||||
@@ -414,6 +414,12 @@ function stream_push_notifications_clicked(e) {
|
||||
exports.set_stream_property(sub, 'push_notifications', sub.push_notifications);
|
||||
}
|
||||
|
||||
function stream_email_notifications_clicked(e) {
|
||||
var sub = get_sub_for_target(e.target);
|
||||
sub.email_notifications = !sub.email_notifications;
|
||||
exports.set_stream_property(sub, 'email_notifications', sub.email_notifications);
|
||||
}
|
||||
|
||||
function stream_pin_clicked(e) {
|
||||
var sub = get_sub_for_target(e.target);
|
||||
if (!sub) {
|
||||
@@ -540,6 +546,8 @@ exports.initialize = function () {
|
||||
stream_audible_notifications_clicked);
|
||||
$("#subscriptions_table").on("click", "#sub_push_notifications_setting",
|
||||
stream_push_notifications_clicked);
|
||||
$("#subscriptions_table").on("click", "#sub_email_notifications_setting",
|
||||
stream_email_notifications_clicked);
|
||||
$("#subscriptions_table").on("click", "#sub_pin_setting",
|
||||
stream_pin_clicked);
|
||||
|
||||
|
||||
@@ -26,6 +26,12 @@ function update_stream_push_notifications(sub, value) {
|
||||
sub.push_notifications = value;
|
||||
}
|
||||
|
||||
function update_stream_email_notifications(sub, value) {
|
||||
var email_notifications_checkbox = $(".subscription_settings[data-stream-id='" + sub.stream_id + "'] #sub_email_notifications_setting .sub_setting_control");
|
||||
email_notifications_checkbox.prop('checked', value);
|
||||
sub.email_notifications = value;
|
||||
}
|
||||
|
||||
function update_stream_pin(sub, value) {
|
||||
var pin_checkbox = $('#pinstream-' + sub.stream_id);
|
||||
pin_checkbox.prop('checked', value);
|
||||
@@ -58,6 +64,9 @@ exports.update_property = function (stream_id, property, value) {
|
||||
case 'push_notifications':
|
||||
update_stream_push_notifications(sub, value);
|
||||
break;
|
||||
case 'email_notifications':
|
||||
update_stream_email_notifications(sub, value);
|
||||
break;
|
||||
case 'name':
|
||||
subs.update_stream_name(sub, value);
|
||||
break;
|
||||
|
||||
@@ -26,6 +26,12 @@
|
||||
"label" settings_label.enable_stream_push_notifications
|
||||
"end_content" '<div class="propagate_stream_notifications_change"></div>'}}
|
||||
|
||||
{{partial "settings_checkbox"
|
||||
"setting_name" "enable_stream_email_notifications"
|
||||
"is_checked" page_params.enable_stream_email_notifications
|
||||
"label" settings_label.enable_stream_email_notifications
|
||||
"end_content" '<div class="propagate_stream_notifications_change"></div>'}}
|
||||
|
||||
<p class="notification-settings-note">
|
||||
{{#tr this}}Change notification settings for individual streams on your <a href="/#streams">Streams page</a>.{{/tr}}
|
||||
</p>
|
||||
|
||||
@@ -70,6 +70,13 @@
|
||||
<label class="subscription-control-label">{{t "Mobile notifications" }}</label>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="sub_email_notifications_setting"
|
||||
class="sub_setting_checkbox sub_notification_setting {{#unless in_home_view}}muted-sub{{/unless}}">
|
||||
<input id="email-notifystream-{{stream_id}}" class="sub_setting_control" type="checkbox" tabindex="-1" {{#if email_notifications}}checked{{/if}} {{#unless in_home_view}}disabled="disabled"{{/unless}}/>
|
||||
<label class="subscription-control-label">{{t "Email notifications" }}</label>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div id="sub_pin_setting" class="sub_setting_checkbox">
|
||||
<input id="pinstream-{{stream_id}}" class="sub_setting_control" type="checkbox" tabindex="-1" {{#if pin_to_top}}checked{{/if}} />
|
||||
|
||||
Reference in New Issue
Block a user