mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2024-09-21 15:36:22 +08:00
Merge pull request #3224 from okriuchykhin/ok_SCI_5575
Implement missing missing user smart annotation notifications [SCI-5575]
This commit is contained in:
commit
f9f99cc26b
|
@ -62,20 +62,19 @@ module StepsActions
|
|||
new_checklists,
|
||||
old_checklists)
|
||||
step_description_annotation(step, old_description)
|
||||
new_checklists.each do |e|
|
||||
new_checklists.each do |new_checklist|
|
||||
# generates smart annotaion if the checklist is new
|
||||
add_new_checklist(step, e) if e.id.zero?
|
||||
checklist_name_annotation(step, e) unless e.id
|
||||
add_new_checklist(step, new_checklist) and next if new_checklist.id.zero?
|
||||
# else check if checklist is not deleted and generates
|
||||
# new notifications
|
||||
next unless old_checklists.map(&:id).include?(e.id)
|
||||
old_checklist = old_checklists.select { |i| i.id == e.id }.first
|
||||
checklist_name_annotation(step, e, old_checklist.name)
|
||||
e.items.each do |ci|
|
||||
old_list = old_checklists.select { |i| i.id == e.id }.first
|
||||
old_item = old_list.items.select { |i| i.id == ci.id }.first if old_list
|
||||
text = old_item ? old_item.text : ''
|
||||
checklist_item_annotation(step, ci, text)
|
||||
next unless old_checklists.map(&:id).include?(new_checklist.id)
|
||||
|
||||
old_checklist = old_checklists.find { |i| i.id == new_checklist.id }
|
||||
checklist_name_annotation(step, new_checklist, old_checklist.name)
|
||||
new_checklist.items.each do |new_checklist_item|
|
||||
old_checklist_item = old_checklist.items.find { |i| i.id == new_checklist_item.id } if old_checklist
|
||||
text = old_checklist_item ? old_checklist_item.text : ''
|
||||
checklist_item_annotation(step, new_checklist_item, text)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -184,11 +184,13 @@ class MyModulesController < ApplicationController
|
|||
end
|
||||
|
||||
def update_description
|
||||
old_description = @my_module.description
|
||||
respond_to do |format|
|
||||
format.json do
|
||||
if @my_module.update(description: params.require(:my_module)[:description])
|
||||
log_activity(:change_module_description)
|
||||
TinyMceAsset.update_images(@my_module, params[:tiny_mce_images], current_user)
|
||||
my_module_annotation_notification(old_description)
|
||||
render json: {
|
||||
html: custom_auto_link(
|
||||
@my_module.tinymce_render(:description),
|
||||
|
@ -206,12 +208,15 @@ class MyModulesController < ApplicationController
|
|||
|
||||
def update_protocol_description
|
||||
protocol = @my_module.protocol
|
||||
old_description = protocol.description
|
||||
return render_404 unless protocol
|
||||
|
||||
respond_to do |format|
|
||||
format.json do
|
||||
if protocol.update(description: params.require(:protocol)[:description])
|
||||
log_activity(:protocol_description_in_task_edited)
|
||||
TinyMceAsset.update_images(protocol, params[:tiny_mce_images], current_user)
|
||||
protocol_annotation_notification(old_description)
|
||||
render json: {
|
||||
html: custom_auto_link(
|
||||
protocol.tinymce_render(:description),
|
||||
|
@ -402,4 +407,32 @@ class MyModulesController < ApplicationController
|
|||
:page, :starting_timestamp, :from_date, :to_date, types: [], users: [], subjects: {}
|
||||
)
|
||||
end
|
||||
|
||||
def my_module_annotation_notification(old_text = nil)
|
||||
smart_annotation_notification(
|
||||
old_text: old_text,
|
||||
new_text: @my_module.description,
|
||||
title: t('notifications.my_module_description_annotation_title',
|
||||
my_module: @my_module.name,
|
||||
user: current_user.full_name),
|
||||
message: t('notifications.my_module_description_annotation_message_html',
|
||||
project: link_to(@my_module.experiment.project.name, project_url(@my_module.experiment.project)),
|
||||
experiment: link_to(@my_module.experiment.name, canvas_experiment_url(@my_module.experiment)),
|
||||
my_module: link_to(@my_module.name, protocols_my_module_url(@my_module)))
|
||||
)
|
||||
end
|
||||
|
||||
def protocol_annotation_notification(old_text = nil)
|
||||
smart_annotation_notification(
|
||||
old_text: old_text,
|
||||
new_text: @my_module.protocol.description,
|
||||
title: t('notifications.my_module_protocol_annotation_title',
|
||||
my_module: @my_module.name,
|
||||
user: current_user.full_name),
|
||||
message: t('notifications.my_module_protocol_annotation_message_html',
|
||||
project: link_to(@my_module.experiment.project.name, project_url(@my_module.experiment.project)),
|
||||
experiment: link_to(@my_module.experiment.name, canvas_experiment_url(@my_module.experiment)),
|
||||
my_module: link_to(@my_module.name, protocols_my_module_url(@my_module)))
|
||||
)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -192,11 +192,13 @@ class ProtocolsController < ApplicationController
|
|||
end
|
||||
|
||||
def update_description
|
||||
old_description = @protocol.description
|
||||
respond_to do |format|
|
||||
format.json do
|
||||
if @protocol.update(description: params.require(:protocol)[:description])
|
||||
log_activity(:edit_description_in_protocol_repository, nil, protocol: @protocol.id)
|
||||
TinyMceAsset.update_images(@protocol, params[:tiny_mce_images], current_user)
|
||||
protocol_annotation_notification(old_description)
|
||||
render json: {
|
||||
html: custom_auto_link(
|
||||
@protocol.tinymce_render(:description),
|
||||
|
@ -1200,4 +1202,16 @@ class ProtocolsController < ApplicationController
|
|||
project: project,
|
||||
message_items: message_items)
|
||||
end
|
||||
|
||||
def protocol_annotation_notification(old_text)
|
||||
smart_annotation_notification(
|
||||
old_text: old_text,
|
||||
new_text: @protocol.description,
|
||||
title: t('notifications.protocol_description_annotation_title',
|
||||
user: current_user.full_name,
|
||||
protocol: @protocol.name),
|
||||
message: t('notifications.protocol_description_annotation_message_html',
|
||||
protocol: link_to(@protocol.name, edit_protocol_url(@protocol)))
|
||||
)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -204,7 +204,7 @@ module CommentHelper
|
|||
title: t('notifications.my_module_comment_annotation_title',
|
||||
my_module: my_module.name,
|
||||
user: current_user.full_name),
|
||||
message: t('notifications.my_module_annotation_message_html',
|
||||
message: t('notifications.my_module_comment_annotation_message_html',
|
||||
project: link_to(my_module.experiment.project.name,
|
||||
project_url(my_module
|
||||
.experiment
|
||||
|
|
|
@ -2229,8 +2229,12 @@ en:
|
|||
experiment_annotation_message_html: "Project: %{project} | Experiment: %{experiment}"
|
||||
project_comment_annotation_title: "%{user} mentioned you in a comment on project %{project}."
|
||||
project_annotation_message_html: "Project: %{project}"
|
||||
my_module_description_annotation_title: "%{user} mentioned you in a description on task %{my_module}."
|
||||
my_module_description_annotation_message_html: "Project: %{project} | Experiment: %{experiment} | Task: %{my_module}"
|
||||
my_module_comment_annotation_title: "%{user} mentioned you in a comment on task %{my_module}."
|
||||
my_module_annotation_message_html: "Project: %{project} | Experiment: %{experiment} | Task: %{my_module}"
|
||||
my_module_comment_annotation_message_html: "Project: %{project} | Experiment: %{experiment} | Task: %{my_module}"
|
||||
my_module_protocol_annotation_title: "%{user} mentioned you in a protocol description on task %{my_module}."
|
||||
my_module_protocol_annotation_message_html: "Project: %{project} | Experiment: %{experiment} | Task: %{my_module}"
|
||||
step_comment_annotation_title: "%{user} mentioned you in a comment on step %{step}."
|
||||
step_description_title: "%{user} mentioned you in a description on step %{step}."
|
||||
checklist_title: "%{user} mentioned you in a checklist on step %{step}."
|
||||
|
@ -2240,6 +2244,8 @@ en:
|
|||
result_annotation_message_html: "Project: %{project} | Experiment: %{experiment} | Task: %{my_module}"
|
||||
repository_annotation_title: "%{user} mentioned you in Column: %{column} of Item %{record} in Inventory %{repository}"
|
||||
repository_annotation_message_html: "Item: %{record} | Column: %{column}"
|
||||
protocol_description_annotation_title: "%{user} mentioned you in a description on protocol %{protocol}."
|
||||
protocol_description_annotation_message_html: "Protocol: %{protocol}"
|
||||
protocol_step_annotation_message_html: "Protocol: %{protocol}"
|
||||
email_title: "You've received a SciNote notification!"
|
||||
assign_user_to_team: "<i>%{assigned_user}</i> was added as %{role} to team <strong>%{team}</strong> by <i>%{assigned_by_user}</i>."
|
||||
|
|
Loading…
Reference in a new issue