diff --git a/app/controllers/repository_rows_controller.rb b/app/controllers/repository_rows_controller.rb index 24963ddbb..0491ccd8c 100644 --- a/app/controllers/repository_rows_controller.rb +++ b/app/controllers/repository_rows_controller.rb @@ -75,7 +75,8 @@ class RepositoryRowsController < ApplicationController if service.succeed? repository_row = service.repository_row - log_activity(:create_item_inventory, repository_row) + log_activity(:create_item_inventory, repository_row, { repository_row: repository_row.id, + repository: @repository.id }) repository_row.repository_cells.where(value_type: 'RepositoryTextValue').each do |repository_cell| record_annotation_notification(repository_row, repository_cell) end @@ -158,7 +159,8 @@ class RepositoryRowsController < ApplicationController if row_update.succeed? if row_update.record_updated - log_activity(:edit_item_inventory, @repository_row) + log_activity(:edit_item_inventory, @repository_row, { repository_row: @repository_row.id, + repository: @repository.id }) @repository_row.repository_cells.where(value_type: 'RepositoryTextValue').each do |repository_cell| record_annotation_notification(@repository_row, repository_cell) end @@ -189,6 +191,12 @@ class RepositoryRowsController < ApplicationController ) if row_cell_update.succeed? + if row_cell_update.record_updated + log_activity(:edit_item_field_inventory, @repository_row, + { repository_row: @repository_row.id, + repository_column: update_params['repository_cells']&.keys&.first || + I18n.t('repositories.table.row_name') }) + end head :no_content else render json: row_update.errors, status: :bad_request @@ -202,7 +210,7 @@ class RepositoryRowsController < ApplicationController row = @repository.repository_rows.find_by(id: row_id) next unless row && can_manage_repository_rows?(@repository) - log_activity(:delete_item_inventory, row) + log_activity(:delete_item_inventory, row, { repository_row: row.id, repository: @repository.id }) row.destroy && deleted_count += 1 end if deleted_count.zero? @@ -453,15 +461,12 @@ class RepositoryRowsController < ApplicationController params.permit(repository_row: :name, repository_cells: {}).to_h end - def log_activity(type_of, repository_row) + def log_activity(type_of, repository_row, message_items = {}) Activities::CreateActivityService .call(activity_type: type_of, owner: current_user, subject: repository_row, team: @repository.team, - message_items: { - repository_row: repository_row.id, - repository: @repository.id - }) + message_items: message_items) end end diff --git a/app/services/activities/create_activity_service.rb b/app/services/activities/create_activity_service.rb index 3e1c4d410..c66f92bd2 100644 --- a/app/services/activities/create_activity_service.rb +++ b/app/services/activities/create_activity_service.rb @@ -50,7 +50,7 @@ module Activities k = k.to_s.sub('tiny_mce_asset', 'asset').to_sym if k.to_s.include? 'tiny_mce_asset' - if const + if const && (v.is_a?(Hash) || v.to_i != 0) if v.is_a?(Hash) # Value is Hash, so you have getter specified id = v[:id] getter_method = v[:value_for] diff --git a/config/initializers/extends.rb b/config/initializers/extends.rb index adce2e064..b6fe05ec3 100644 --- a/config/initializers/extends.rb +++ b/config/initializers/extends.rb @@ -492,7 +492,8 @@ class Extends sequence_on_result_edited: 288, sequence_on_result_deleted: 289, sequence_on_result_moved: 290, - move_chemical_structure_on_result: 291 + move_chemical_structure_on_result: 291, + edit_item_field_inventory: 292 } ACTIVITY_GROUPS = { @@ -506,7 +507,7 @@ class Extends experiment: [*27..31, 57, 141, 165], reports: [48, 50, 49, 163, 164], inventories: [70, 71, 105, 144, 145, 72, 73, 74, 102, 142, 143, 75, 76, 77, - 78, 96, 107, 113, 114, *133..136, 180, 181, 182], + 78, 96, 107, 113, 114, *133..136, 180, 181, 182, 292], protocol_repository: [80, 103, 89, 87, 79, 90, 91, 88, 85, 86, 84, 81, 82, 83, 101, 112, 123, 125, 117, 119, 129, 131, 170, 173, 179, 187, 186, 190, 191, *204..215, 220, 221, 223, 227, 228, 229, *230..235, diff --git a/config/locales/global_activities/en.yml b/config/locales/global_activities/en.yml index 45b3756fe..b1cdf8c07 100644 --- a/config/locales/global_activities/en.yml +++ b/config/locales/global_activities/en.yml @@ -154,6 +154,7 @@ en: create_item_inventory_html: "%{user} created inventory item %{repository_row}." edit_item_inventory_html: "%{user} edited inventory item %{repository_row}." delete_item_inventory_html: "%{user} deleted inventory item %{repository_row}." + edit_item_field_inventory_html: "%{user} edited %{repository_column} on inventory item %{repository_row}." archive_inventory_item_html: "%{user} archived inventory item %{repository_row}." restore_inventory_item_html: "%{user} restored inventory item %{repository_row}." create_column_inventory_html: "%{user} created column %{repository_column} in inventory %{repository}." @@ -420,6 +421,7 @@ en: update_share_with_all_permission_level: "Inventory sharing with all permission updated" create_item_inventory: "Inventory item created" edit_item_inventory: "Inventory item edited" + edit_item_field_inventory: "Inventory item field edited" delete_item_inventory: "Inventory item deleted" archive_inventory_item: "Inventory item archived" restore_inventory_item: "Inventory item restored"