mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-01-31 12:09:17 +08:00
parent
b37349624a
commit
687b53feb1
4 changed files with 80 additions and 18 deletions
|
@ -17,6 +17,7 @@ class TagsController < ApplicationController
|
|||
end
|
||||
|
||||
if @tag.save
|
||||
log_activity(:create_tag, @tag.project, tag: @tag.id, project: @tag.project.id)
|
||||
if params.include? "my_module_id"
|
||||
# Assign the tag to the specified module
|
||||
new_mmt = MyModuleTag.new(
|
||||
|
@ -25,17 +26,8 @@ class TagsController < ApplicationController
|
|||
new_mmt.save
|
||||
|
||||
my_module = new_mmt.my_module
|
||||
Activities::CreateActivityService
|
||||
.call(activity_type: :add_task_tag,
|
||||
owner: current_user,
|
||||
subject: my_module,
|
||||
project:
|
||||
my_module.experiment.project,
|
||||
team: current_team,
|
||||
message_items: {
|
||||
my_module: my_module.id,
|
||||
tag: @tag.id
|
||||
})
|
||||
|
||||
log_activity(:add_task_tag, my_module, tag: @tag.id, my_module: my_module.id)
|
||||
end
|
||||
|
||||
flash_success = t(
|
||||
|
@ -82,6 +74,7 @@ class TagsController < ApplicationController
|
|||
def update
|
||||
@tag.last_modified_by = current_user
|
||||
if @tag.update_attributes(tag_params)
|
||||
log_activity(:edit_tag, @tag.project, tag: @tag.id, project: @tag.project.id)
|
||||
respond_to do |format|
|
||||
format.html
|
||||
format.json do
|
||||
|
@ -103,6 +96,7 @@ class TagsController < ApplicationController
|
|||
end
|
||||
|
||||
def destroy
|
||||
log_activity(:delete_tag, @tag.project, tag: @tag.id, project: @tag.project.id)
|
||||
if @tag.destroy
|
||||
flash_success = t(
|
||||
"tags.destroy.success_flash",
|
||||
|
@ -166,4 +160,14 @@ class TagsController < ApplicationController
|
|||
def tag_params
|
||||
params.require(:tag).permit(:name, :color, :project_id)
|
||||
end
|
||||
|
||||
def log_activity(type_of, subject = nil, message_items = {})
|
||||
Activities::CreateActivityService
|
||||
.call(activity_type: type_of,
|
||||
owner: current_user,
|
||||
subject: subject,
|
||||
team: current_team,
|
||||
project: @tag.project,
|
||||
message_items: message_items)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -178,7 +178,7 @@ class Extends
|
|||
change_task_due_date: 62,
|
||||
remove_task_due_date: 63,
|
||||
add_task_tag: 64,
|
||||
edit_task_tag: 65,
|
||||
edit_tag: 65,
|
||||
remove_task_tag: 66, # 67, 68, 69 are in addons
|
||||
create_inventory: 70,
|
||||
rename_inventory: 71,
|
||||
|
@ -214,13 +214,15 @@ class Extends
|
|||
copy_protocol_in_repository: 103,
|
||||
user_leave_team: 104,
|
||||
copy_inventory: 105,
|
||||
export_protocol_from_task: 106
|
||||
export_protocol_from_task: 106,
|
||||
create_tag: 108,
|
||||
delete_tag: 109
|
||||
}
|
||||
|
||||
ACTIVITY_GROUPS = {
|
||||
projects: [*0..7, 32, 33, 34, 95],
|
||||
projects: [*0..7, 32, 33, 34, 95, 108, 65, 109],
|
||||
task_results: [23, 26, 25, 42, 24, 40, 41, 99],
|
||||
task: [8, 58, 9, 59, 10, 11, 12, 13, 14, 35, 36, 37, 53, 54, *60..69, 106],
|
||||
task: [8, 58, 9, 59, 10, 11, 12, 13, 14, 35, 36, 37, 53, 54, *60..64, *66..69, 106],
|
||||
task_protocol: [15, 22, 16, 18, 19, 20, 21, 17, 38, 39, 100, 45, 46, 47],
|
||||
task_inventory: [55, 56],
|
||||
experiment: [*27..31, 57],
|
||||
|
|
|
@ -127,6 +127,10 @@ en:
|
|||
change_users_role_on_team_html: "%{user} changed user %{user_changed}'s role in team %{team} to %{role}."
|
||||
export_projects_html: "%{user} exported project(s) %{projects} to .zip."
|
||||
export_inventory_items_html: "%{user} exported inventory item(s) from %{repository}."
|
||||
create_tag_html: "%{user} created tag <strong>%{tag}</strong> in project %{project}."
|
||||
edit_tag_html: "%{user} edited tag <strong>%{tag}</strong> in project %{project}."
|
||||
delete_tag_html: "%{user} deleted tag <strong>%{tag}</strong> in project %{project}."
|
||||
|
||||
activity_name:
|
||||
create_project: "Project created"
|
||||
rename_project: "Project renamed"
|
||||
|
@ -192,7 +196,6 @@ en:
|
|||
change_task_due_date: "Task due date changed"
|
||||
remove_task_due_date: "Task due date removed"
|
||||
add_task_tag: "Task tag added"
|
||||
edit_task_tag: "Task tag edited"
|
||||
remove_task_tag: "Task tag removed"
|
||||
create_inventory: "Inventory created"
|
||||
rename_inventory: "Inventory renamed"
|
||||
|
@ -225,6 +228,10 @@ en:
|
|||
user_leave_team: "User left team"
|
||||
export_projects: "Projects exported"
|
||||
export_inventory_items: "Inventory items exported"
|
||||
create_tag: "Tag created"
|
||||
edit_tag: "Tag edited"
|
||||
delete_tag: "Tag deleted"
|
||||
|
||||
activity_group:
|
||||
projects: "Projects"
|
||||
task_results: "Task results"
|
||||
|
|
|
@ -14,10 +14,10 @@ describe TagsController, type: :controller do
|
|||
end
|
||||
let(:experiment) { create :experiment, project: project }
|
||||
let(:my_module) { create :my_module, experiment: experiment }
|
||||
let(:tag) { create :tag, project: project }
|
||||
|
||||
describe 'POST create' do
|
||||
let(:action) { post :create, params: params, format: :json }
|
||||
let(:tag) { create :tag, project: project }
|
||||
let(:params) do
|
||||
{
|
||||
my_module_id: my_module.id,
|
||||
|
@ -28,7 +28,10 @@ describe TagsController, type: :controller do
|
|||
}
|
||||
end
|
||||
|
||||
it 'calls create activity for adding task tag' do
|
||||
it 'calls create activity for create tag' do
|
||||
expect(Activities::CreateActivityService)
|
||||
.to(receive(:call)
|
||||
.with(hash_including(activity_type: :create_tag)))
|
||||
expect(Activities::CreateActivityService)
|
||||
.to(receive(:call)
|
||||
.with(hash_including(activity_type: :add_task_tag)))
|
||||
|
@ -40,4 +43,50 @@ describe TagsController, type: :controller do
|
|||
.to(change { Activity.count })
|
||||
end
|
||||
end
|
||||
|
||||
describe 'PUT update' do
|
||||
let(:action) do
|
||||
put :update, params: {
|
||||
project_id: tag.project.id,
|
||||
id: tag.id,
|
||||
my_module_id: my_module.id,
|
||||
tag: { name: 'Name2' }
|
||||
}, format: :json
|
||||
end
|
||||
|
||||
it 'calls create activity for edit tag' do
|
||||
expect(Activities::CreateActivityService)
|
||||
.to(receive(:call)
|
||||
.with(hash_including(activity_type: :edit_tag)))
|
||||
action
|
||||
end
|
||||
|
||||
it 'adds activity in DB' do
|
||||
expect { action }
|
||||
.to(change { Activity.count })
|
||||
end
|
||||
end
|
||||
|
||||
describe 'DELETE destroy' do
|
||||
let(:action) do
|
||||
delete :destroy, params: {
|
||||
project_id: tag.project.id,
|
||||
id: tag.id,
|
||||
my_module_id: my_module.id,
|
||||
format: :json
|
||||
}
|
||||
end
|
||||
|
||||
it 'calls create activity for delete tag' do
|
||||
expect(Activities::CreateActivityService)
|
||||
.to(receive(:call)
|
||||
.with(hash_including(activity_type: :delete_tag)))
|
||||
action
|
||||
end
|
||||
|
||||
it 'adds activity in DB' do
|
||||
expect { action }
|
||||
.to(change { Activity.count })
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue