add notification for removing user from team and removing user from project

This commit is contained in:
Mojca Lorber 2016-11-02 11:52:41 +01:00
parent 6e022699eb
commit a2213e23b3
4 changed files with 39 additions and 7 deletions

View file

@ -191,6 +191,7 @@ class UserProjectsController < ApplicationController
unassigned_by_user: current_user.full_name
)
)
generate_notification(current_user, @up.user, @project)
respond_to do |format|
format.html {
@ -275,6 +276,26 @@ class UserProjectsController < ApplicationController
end
end
def generate_notification(user, target_user, project)
title = I18n.t(
"activities.unassign_user_from_project",
unassigned_user: target_user.full_name,
project: project.name,
unassigned_by_user: user.full_name
)
message = "#{I18n.t('search.index.project')} #{@project.name}"
notification = Notification.create(
type_of: :assignment,
title:
ActionController::Base.helpers.sanitize(title),
message:
ActionController::Base.helpers.sanitize(message)
)
if target_user.assignments_notification
UserNotification.create(notification: notification, user: target_user)
end
end
def init_gui
@users = @project.unassigned_users
end

View file

@ -224,8 +224,8 @@ class Users::SettingsController < ApplicationController
generate_notification(@user_organization.user,
@new_user_org.user,
@new_user_org.role_str,
@new_user_org.organization)
@new_user_org.organization,
@new_user_org.role_str)
flash[:notice] = I18n.t(
'users.settings.organizations.edit.modal_add_user.existing_flash_success',
@ -409,7 +409,10 @@ class Users::SettingsController < ApplicationController
)
flash.keep(:notice)
end
generate_notification(@user_organization.user,
@user_org.user,
@user_org.organization,
false)
format.json {
render json: {
status: :ok
@ -579,12 +582,19 @@ class Users::SettingsController < ApplicationController
)
end
def generate_notification(user, target_user, role, org)
title = I18n.t('notifications.assign_user_to_organization',
def generate_notification(user, target_user, org, role)
if role
title = I18n.t('notifications.assign_user_to_organization',
assigned_user: target_user.name,
role: role,
organization: org.name,
assigned_by_user: user.name)
else
title = I18n.t('notifications.unassign_user_from_organization',
unassigned_user: target_user.name,
organization: org.name,
unassigned_by_user: user.name)
end
message = "#{I18n.t('search.index.organization')} #{org.name}"
notification = Notification.create(
@ -592,7 +602,7 @@ class Users::SettingsController < ApplicationController
title:
ActionController::Base.helpers.sanitize(title),
message:
ActionController::Base.helpers.sanitize(message),
ActionController::Base.helpers.sanitize(message),
)
if target_user.assignments_notification

View file

@ -54,7 +54,7 @@ class Activity < ActiveRecord::Base
private
def generate_notification
if %w(assign_user_to_project assign_user_to_module).include? type_of
if %w(assign_user_to_project assign_user_to_module unassign_user_from_module).include? type_of
notification_type = :assignment
else
notification_type = :recent_changes

View file

@ -1510,6 +1510,7 @@ en:
system_message: "sciNote system message"
email_title: "You've received a sciNote notification!"
assign_user_to_organization: "<i>%{assigned_user}</i> was added as %{role} to team <strong>%{organization}</strong> by <i>%{assigned_by_user}</i>."
unassign_user_from_organization: "<i>%{unassigned_user}</i> was removed from team <strong>%{organization}</strong> by <i>%{unassigned_by_user}</i>."
# This section contains general words that can be used in any parts of
# application.