Add checkbox in UI to opt into receiving notifications about your activity
This commit is contained in:
parent
3e81bc7b1d
commit
530d0fda7b
3 changed files with 38 additions and 0 deletions
|
@ -25,6 +25,7 @@
|
||||||
bindEvents() {
|
bindEvents() {
|
||||||
$('.js-preferences-form').on('change.preference', 'input[type=radio]', this.submitForm);
|
$('.js-preferences-form').on('change.preference', 'input[type=radio]', this.submitForm);
|
||||||
$('#user_notification_email').on('change', this.submitForm);
|
$('#user_notification_email').on('change', this.submitForm);
|
||||||
|
$('#user_notified_of_own_activity').on('change', this.submitForm);
|
||||||
$('.update-username').on('ajax:before', this.beforeUpdateUsername);
|
$('.update-username').on('ajax:before', this.beforeUpdateUsername);
|
||||||
$('.update-username').on('ajax:complete', this.afterUpdateUsername);
|
$('.update-username').on('ajax:complete', this.afterUpdateUsername);
|
||||||
$('.update-notifications').on('ajax:success', this.onUpdateNotifs);
|
$('.update-notifications').on('ajax:success', this.onUpdateNotifs);
|
||||||
|
|
|
@ -34,6 +34,11 @@
|
||||||
|
|
||||||
.clearfix
|
.clearfix
|
||||||
|
|
||||||
|
= form_for @user, url: profile_notifications_path, method: :put do |f|
|
||||||
|
%label{ for: 'user_notified_of_own_activity' }
|
||||||
|
= f.check_box :notified_of_own_activity
|
||||||
|
%span Receive notifications about your own activity
|
||||||
|
|
||||||
%hr
|
%hr
|
||||||
%h5
|
%h5
|
||||||
Groups (#{@group_notifications.count})
|
Groups (#{@group_notifications.count})
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
feature 'Profile > Notifications > User changes notified_of_own_activity setting', feature: true, js: true do
|
||||||
|
let(:user) { create(:user) }
|
||||||
|
|
||||||
|
before do
|
||||||
|
login_as(user)
|
||||||
|
end
|
||||||
|
|
||||||
|
scenario 'User opts into receiving notifications about their own activity' do
|
||||||
|
visit profile_notifications_path
|
||||||
|
|
||||||
|
expect(page).not_to have_checked_field('user[notified_of_own_activity]')
|
||||||
|
|
||||||
|
page.find('#user_notified_of_own_activity').set(true)
|
||||||
|
|
||||||
|
expect(page).to have_content('Notification settings saved')
|
||||||
|
expect(page).to have_checked_field('user[notified_of_own_activity]')
|
||||||
|
end
|
||||||
|
|
||||||
|
scenario 'User opts out of receiving notifications about their own activity' do
|
||||||
|
user.update!(notified_of_own_activity: true)
|
||||||
|
visit profile_notifications_path
|
||||||
|
|
||||||
|
expect(page).to have_checked_field('user[notified_of_own_activity]')
|
||||||
|
|
||||||
|
page.find('#user_notified_of_own_activity').set(false)
|
||||||
|
|
||||||
|
expect(page).to have_content('Notification settings saved')
|
||||||
|
expect(page).not_to have_checked_field('user[notified_of_own_activity]')
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in a new issue