mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-01-27 10:08:11 +08:00
Adding system notifications email function in settings
This commit is contained in:
parent
6bea0a9e1a
commit
42f6b679f8
7 changed files with 54 additions and 19 deletions
|
@ -144,6 +144,7 @@
|
|||
dependant.checkboxpicker().prop('disabled', false);
|
||||
}
|
||||
|
||||
// Initialize system messages
|
||||
var system_message_notification = $('[name="system_message_notification"]');
|
||||
system_message_notification
|
||||
.checkboxpicker({
|
||||
|
@ -151,6 +152,17 @@
|
|||
});
|
||||
system_message_notification.prop('checked', true);
|
||||
system_message_notification.prop('disabled', true);
|
||||
|
||||
// Initialize system messages email
|
||||
var system_message_notification_mail = $('[name="system_message_notification_email"]');
|
||||
system_message_notification_mail
|
||||
.checkboxpicker({
|
||||
onActiveCls: 'btn-primary'
|
||||
});
|
||||
system_message_notification_mail.prop(
|
||||
'checked',
|
||||
system_message_notification_mail.attr('value') === 'true'
|
||||
);
|
||||
}
|
||||
|
||||
// triggers submit action when the user clicks
|
||||
|
|
|
@ -465,6 +465,8 @@ class Users::SettingsController < ApplicationController
|
|||
params[:recent_notification_email] ? true : false
|
||||
@user.assignments_notification_email =
|
||||
params[:assignments_notification_email] ? true : false
|
||||
@user.system_message_notification_email =
|
||||
params[:system_message_notification_email] ? true : false
|
||||
|
||||
if @user.save
|
||||
respond_to do |format|
|
||||
|
|
|
@ -33,7 +33,10 @@ class UserNotification < ActiveRecord::Base
|
|||
def send_email
|
||||
case notification.type_of
|
||||
when 'system_message'
|
||||
send_email_notification(user, notification)
|
||||
send_email_notification(
|
||||
user,
|
||||
notification
|
||||
) if user.system_message_notification_email
|
||||
when 'assignment'
|
||||
send_email_notification(
|
||||
user,
|
||||
|
|
|
@ -64,11 +64,13 @@
|
|||
<%= check_box_tag :system_message_notification %>
|
||||
</div>
|
||||
<div class="col-md-3 col-sm-3 col-text-center">
|
||||
<h5 class="hidden-sm hidden-xs"><%= t('notifications.form.email_settings') %></h5>
|
||||
<h5 class="hidden-sm hidden-xs"><%= t('notifications.email_settings') %></h5>
|
||||
<%= f.label t('notifications.form.recent_notification'), class: 'visible-sm visible-xs'%> <br>
|
||||
<%= check_box_tag :recent_notification_email, @user.recent_notification_email %> <br>
|
||||
<%= f.label t('notifications.form.assignments'), class: 'visible-sm visible-xs' %>
|
||||
<%= check_box_tag :assignments_notification_email, @user.assignments_notification_email %>
|
||||
<%= check_box_tag :assignments_notification_email, @user.assignments_notification_email %> <br>
|
||||
<%= f.label t('notifications.form.system_message'), class: 'visible-sm visible-xs' %>
|
||||
<%= check_box_tag :system_message_notification_email, @user.system_message_notification_email %>
|
||||
</div>
|
||||
</div>
|
||||
<% end %>
|
||||
|
|
|
@ -1500,10 +1500,11 @@ en:
|
|||
|
||||
notifications:
|
||||
title: "Notifications"
|
||||
email_settings: "E-mail notifications"
|
||||
form:
|
||||
assignments: "Assignments notifications"
|
||||
recent_notification: "Change notifications"
|
||||
email_settings: "E-mail notifications"
|
||||
system_message: "Update notifications"
|
||||
show_all: "Show all notifications"
|
||||
show_more: "Show more notifications"
|
||||
no_notifications: "No notifications."
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
class AddEmailSystemNotificationSettingToUser < ActiveRecord::Migration
|
||||
def up
|
||||
add_column :users,
|
||||
:system_message_notification_email,
|
||||
:boolean,
|
||||
default: false
|
||||
|
||||
User.update_all(system_message_notification_email: false)
|
||||
end
|
||||
|
||||
def down
|
||||
remove_column :users, :system_message_notification_email
|
||||
end
|
||||
end
|
31
db/schema.rb
31
db/schema.rb
|
@ -11,7 +11,7 @@
|
|||
#
|
||||
# It's strongly recommended that you check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(version: 20161006065203) do
|
||||
ActiveRecord::Schema.define(version: 20161012112900) do
|
||||
|
||||
# These are extensions that must be enabled in order to support this database
|
||||
enable_extension "plpgsql"
|
||||
|
@ -628,20 +628,20 @@ ActiveRecord::Schema.define(version: 20161006065203) do
|
|||
add_index "user_projects", ["user_id"], name: "index_user_projects_on_user_id", using: :btree
|
||||
|
||||
create_table "users", force: :cascade do |t|
|
||||
t.string "full_name", null: false
|
||||
t.string "initials", null: false
|
||||
t.string "email", default: "", null: false
|
||||
t.string "encrypted_password", default: "", null: false
|
||||
t.string "full_name", null: false
|
||||
t.string "initials", null: false
|
||||
t.string "email", default: "", null: false
|
||||
t.string "encrypted_password", default: "", null: false
|
||||
t.string "reset_password_token"
|
||||
t.datetime "reset_password_sent_at"
|
||||
t.datetime "remember_created_at"
|
||||
t.integer "sign_in_count", default: 0, null: false
|
||||
t.integer "sign_in_count", default: 0, null: false
|
||||
t.datetime "current_sign_in_at"
|
||||
t.datetime "last_sign_in_at"
|
||||
t.string "current_sign_in_ip"
|
||||
t.string "last_sign_in_ip"
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.string "avatar_file_name"
|
||||
t.string "avatar_content_type"
|
||||
t.integer "avatar_file_size"
|
||||
|
@ -650,7 +650,7 @@ ActiveRecord::Schema.define(version: 20161006065203) do
|
|||
t.datetime "confirmed_at"
|
||||
t.datetime "confirmation_sent_at"
|
||||
t.string "unconfirmed_email"
|
||||
t.string "time_zone", default: "UTC"
|
||||
t.string "time_zone", default: "UTC"
|
||||
t.string "invitation_token"
|
||||
t.datetime "invitation_created_at"
|
||||
t.datetime "invitation_sent_at"
|
||||
|
@ -658,12 +658,13 @@ ActiveRecord::Schema.define(version: 20161006065203) do
|
|||
t.integer "invitation_limit"
|
||||
t.integer "invited_by_id"
|
||||
t.string "invited_by_type"
|
||||
t.integer "invitations_count", default: 0
|
||||
t.integer "tutorial_status", default: 0, null: false
|
||||
t.boolean "assignments_notification", default: true
|
||||
t.boolean "recent_notification", default: true
|
||||
t.boolean "assignments_notification_email", default: false
|
||||
t.boolean "recent_notification_email", default: false
|
||||
t.integer "invitations_count", default: 0
|
||||
t.integer "tutorial_status", default: 0, null: false
|
||||
t.boolean "assignments_notification", default: true
|
||||
t.boolean "recent_notification", default: true
|
||||
t.boolean "assignments_notification_email", default: false
|
||||
t.boolean "recent_notification_email", default: false
|
||||
t.boolean "system_message_notification_email", default: false
|
||||
end
|
||||
|
||||
add_index "users", ["confirmation_token"], name: "index_users_on_confirmation_token", unique: true, using: :btree
|
||||
|
|
Loading…
Reference in a new issue