diff --git a/app/assets/javascripts/my_modules/repositories.js b/app/assets/javascripts/my_modules/repositories.js
index 6cf2d443f..b34d7630f 100644
--- a/app/assets/javascripts/my_modules/repositories.js
+++ b/app/assets/javascripts/my_modules/repositories.js
@@ -340,8 +340,8 @@ var MyModuleRepositories = (function() {
json.state.columns[0].visible = false;
}
if ($(tableContainer).data('type') !== 'snapshot') {
- json.state.columns[6].visible = false;
- json.state.columns[7].visible = false;
+ json.state.columns[9].visible = false;
+ json.state.columns[10].visible = false;
}
if (json.state.search) delete json.state.search;
if ($(tableContainer).data('stockConsumptionColumn')) {
diff --git a/app/assets/javascripts/repositories/repository_datatable.js b/app/assets/javascripts/repositories/repository_datatable.js
index fc652222c..9850f40af 100644
--- a/app/assets/javascripts/repositories/repository_datatable.js
+++ b/app/assets/javascripts/repositories/repository_datatable.js
@@ -662,6 +662,14 @@ var RepositoryDatatable = (function(global) {
targets: 6,
class: 'added-by',
visible: true
+ }, {
+ targets: 7,
+ class: 'updated-on',
+ visible: true
+ }, {
+ targets: 8,
+ class: 'updated-by',
+ visible: true
}, {
targets: '_all',
render: function(data) {
@@ -752,8 +760,8 @@ var RepositoryDatatable = (function(global) {
var state = localStorage.getItem(`datatables_repositories_state/${repositoryId}/${viewType}`);
json.state.start = state !== null ? JSON.parse(state).start : 0;
- if (json.state.columns[7]) json.state.columns[7].visible = archived;
- if (json.state.columns[8]) json.state.columns[8].visible = archived;
+ if (json.state.columns[9]) json.state.columns[9].visible = archived;
+ if (json.state.columns[10]) json.state.columns[10].visible = archived;
if (json.state.search) delete json.state.search;
if (json.state.ColSizes && json.state.ColSizes.length > 0) {
diff --git a/app/assets/javascripts/sitewide/repository_helper.js b/app/assets/javascripts/sitewide/repository_helper.js
index 996685b25..0782f05b8 100644
--- a/app/assets/javascripts/sitewide/repository_helper.js
+++ b/app/assets/javascripts/sitewide/repository_helper.js
@@ -53,15 +53,21 @@ function prepareRepositoryHeaderForExport(th) {
case 'added-on':
val = -6;
break;
- case 'archived-by':
+ case 'updated-on':
val = -7;
break;
- case 'archived-on':
+ case 'updated-by':
val = -8;
break;
- case 'relationship':
+ case 'archived-by':
val = -9;
break;
+ case 'archived-on':
+ val = -10;
+ break;
+ case 'relationship':
+ val = -11;
+ break;
default:
val = th.attr('id');
}
diff --git a/app/helpers/repository_datatable_helper.rb b/app/helpers/repository_datatable_helper.rb
index 34c9b336b..5153d2478 100644
--- a/app/helpers/repository_datatable_helper.rb
+++ b/app/helpers/repository_datatable_helper.rb
@@ -239,8 +239,10 @@ module RepositoryDatatableHelper
'4': "#{record.parent_connections_count || 0} / #{record.child_connections_count || 0}",
'5': I18n.l(record.created_at, format: :full),
'6': escape_input(record.created_by.full_name),
- '7': (record.archived_on ? I18n.l(record.archived_on, format: :full) : ''),
- '8': escape_input(record.archived_by&.full_name)
+ '7': (record.updated_at ? I18n.l(record.updated_at, format: :full) : ''),
+ '8': escape_input(record.last_modified_by.full_name),
+ '9': (record.archived_on ? I18n.l(record.archived_on, format: :full) : ''),
+ '10': escape_input(record.archived_by&.full_name)
}
end
diff --git a/app/javascript/vue/repository_item_sidebar/RepositoryItemSidebar.vue b/app/javascript/vue/repository_item_sidebar/RepositoryItemSidebar.vue
index 2fc821fed..7bed566e7 100644
--- a/app/javascript/vue/repository_item_sidebar/RepositoryItemSidebar.vue
+++ b/app/javascript/vue/repository_item_sidebar/RepositoryItemSidebar.vue
@@ -97,6 +97,26 @@
+
+
diff --git a/app/jobs/repositories_export_job.rb b/app/jobs/repositories_export_job.rb
index fc7e9dd42..00f445359 100644
--- a/app/jobs/repositories_export_job.rb
+++ b/app/jobs/repositories_export_job.rb
@@ -49,8 +49,8 @@ class RepositoriesExportJob < ApplicationJob
file_name = FileUtils.touch("#{path}/#{repository_name}.#{@file_type}").first
# Define headers and columns IDs
- col_ids = [-3, -4, -5, -6, -7, -8]
- col_ids << -9 if Repository.repository_row_connections_enabled?
+ col_ids = [-3, -4, -5, -6, -7, -8, -9, -10]
+ col_ids << -11 if Repository.repository_row_connections_enabled?
col_ids += repository.repository_columns.map(&:id)
# Define callback function for file name
diff --git a/app/models/linked_repository.rb b/app/models/linked_repository.rb
index 84a98e6ad..a6874ad91 100644
--- a/app/models/linked_repository.rb
+++ b/app/models/linked_repository.rb
@@ -20,8 +20,11 @@ class LinkedRepository < Repository
'assigned',
'repository_rows.id',
'repository_rows.name',
+ 'relationships',
'repository_rows.created_at',
'users.full_name',
+ 'repository_rows.updated_at',
+ 'last_modified_bies_repository_rows.full_name',
'repository_rows.archived_on',
'archived_bies_repository_rows.full_name',
'repository_rows.external_id'
diff --git a/app/models/repository.rb b/app/models/repository.rb
index f65539491..175a8054d 100644
--- a/app/models/repository.rb
+++ b/app/models/repository.rb
@@ -102,6 +102,8 @@ class Repository < RepositoryBase
'relationships',
'repository_rows.created_at',
'users.full_name',
+ 'repository_rows.updated_at',
+ 'last_modified_bies_repository_rows.full_name',
'repository_rows.archived_on',
'archived_bies_repository_rows.full_name'
]
diff --git a/app/services/repository_csv_export.rb b/app/services/repository_csv_export.rb
index 407eb47bf..1218fccd1 100644
--- a/app/services/repository_csv_export.rb
+++ b/app/services/repository_csv_export.rb
@@ -20,10 +20,14 @@ module RepositoryCsvExport
when -6
csv_header << I18n.t('repositories.table.added_on')
when -7
- csv_header << I18n.t('repositories.table.archived_by')
+ csv_header << I18n.t('repositories.table.updated_on')
when -8
- csv_header << I18n.t('repositories.table.archived_on')
+ csv_header << I18n.t('repositories.table.updated_by')
when -9
+ csv_header << I18n.t('repositories.table.archived_by')
+ when -10
+ csv_header << I18n.t('repositories.table.archived_on')
+ when -11
csv_header << I18n.t('repositories.table.parents')
csv_header << I18n.t('repositories.table.children')
else
@@ -50,10 +54,14 @@ module RepositoryCsvExport
when -6
csv_row << I18n.l(row.created_at, format: :full)
when -7
- csv_row << (row.archived? && row.archived_by.present? ? row.archived_by.full_name : '')
+ csv_row << row.updated_at ? I18n.l(row.updated_at, format: :full) : ''
when -8
- csv_row << (row.archived? && row.archived_on.present? ? I18n.l(row.archived_on, format: :full) : '')
+ csv_row << row.last_modified_by.full_name
when -9
+ csv_row << (row.archived? && row.archived_by.present? ? row.archived_by.full_name : '')
+ when -10
+ csv_row << (row.archived? && row.archived_on.present? ? I18n.l(row.archived_on, format: :full) : '')
+ when -11
csv_row << row.parent_repository_rows.map(&:code).join(' | ')
csv_row << row.child_repository_rows.map(&:code).join(' | ')
else
diff --git a/app/services/repository_datatable_service.rb b/app/services/repository_datatable_service.rb
index 86d545bc8..027f5186d 100644
--- a/app/services/repository_datatable_service.rb
+++ b/app/services/repository_datatable_service.rb
@@ -127,7 +127,7 @@ class RepositoryDatatableService
repository_rows = repository_rows.where(id: advanced_search(repository_rows)) if @params[:advanced_search].present?
- repository_rows.left_outer_joins(:created_by, :archived_by)
+ repository_rows.left_outer_joins(:created_by, :archived_by, :last_modified_by)
.select('repository_rows.*')
.select('COUNT("repository_rows"."id") OVER() AS filtered_count')
.group('repository_rows.id')
diff --git a/app/services/repository_xlsx_export.rb b/app/services/repository_xlsx_export.rb
index c7e242750..6bfe6e840 100644
--- a/app/services/repository_xlsx_export.rb
+++ b/app/services/repository_xlsx_export.rb
@@ -23,10 +23,14 @@ module RepositoryXlsxExport
when -6
header << I18n.t('repositories.table.added_on')
when -7
- header << I18n.t('repositories.table.archived_by')
+ csv_header << I18n.t('repositories.table.updated_on')
when -8
- header << I18n.t('repositories.table.archived_on')
+ csv_header << I18n.t('repositories.table.updated_by')
when -9
+ header << I18n.t('repositories.table.archived_by')
+ when -10
+ header << I18n.t('repositories.table.archived_on')
+ when -11
header << I18n.t('repositories.table.parents')
header << I18n.t('repositories.table.children')
else
@@ -51,10 +55,14 @@ module RepositoryXlsxExport
when -6
row_data << I18n.l(row.created_at, format: :full)
when -7
- row_data << (row.archived? && row.archived_by.present? ? row.archived_by.full_name : '')
+ csv_row << row.updated_at ? I18n.l(row.updated_at, format: :full) : ''
when -8
- row_data << (row.archived? && row.archived_on.present? ? I18n.l(row.archived_on, format: :full) : '')
+ csv_row << row.last_modified_by.full_name
when -9
+ row_data << (row.archived? && row.archived_by.present? ? row.archived_by.full_name : '')
+ when -10
+ row_data << (row.archived? && row.archived_on.present? ? I18n.l(row.archived_on, format: :full) : '')
+ when -11
row_data << row.parent_repository_rows.map(&:code).join(' | ')
row_data << row.child_repository_rows.map(&:code).join(' | ')
else
diff --git a/app/views/my_modules/repositories/_full_view_table.html.erb b/app/views/my_modules/repositories/_full_view_table.html.erb
index 9d435494f..053dbfff9 100644
--- a/app/views/my_modules/repositories/_full_view_table.html.erb
+++ b/app/views/my_modules/repositories/_full_view_table.html.erb
@@ -26,6 +26,8 @@
<%= t("repositories.table.relationships") %> |
<%= t("repositories.table.added_on") %> |
<%= t("repositories.table.added_by") %> |
+
<%= t("repositories.table.updated_on") %> |
+
<%= t("repositories.table.updated_by") %> |
<%= t("repositories.table.archived_on") %> |
<%= t("repositories.table.archived_by") %> |
<% if @repository.is_a?(LinkedRepository) %>
diff --git a/app/views/repositories/_repository_table.html.erb b/app/views/repositories/_repository_table.html.erb
index 59ec696d5..aa0456b49 100644
--- a/app/views/repositories/_repository_table.html.erb
+++ b/app/views/repositories/_repository_table.html.erb
@@ -40,6 +40,8 @@
"><%= t("repositories.table.relationships") %> |
<%= t("repositories.table.added_on") %> |
<%= t("repositories.table.added_by") %> |
+
<%= t("repositories.table.updated_on") %> |
+
<%= t("repositories.table.updated_by") %> |
<%= t("repositories.table.archived_on") %> |
<%= t("repositories.table.archived_by") %> |
<% if @repository.is_a?(LinkedRepository) %>
diff --git a/app/views/repository_rows/show.json.jbuilder b/app/views/repository_rows/show.json.jbuilder
index d9e4e9a47..3526eb620 100644
--- a/app/views/repository_rows/show.json.jbuilder
+++ b/app/views/repository_rows/show.json.jbuilder
@@ -42,6 +42,8 @@ json.default_columns do
json.code @repository_row.code
json.added_on I18n.l(@repository_row.created_at, format: :full)
json.added_by @repository_row.created_by&.full_name
+ json.updated_on I18n.l(@repository_row.updated_at, format: :full)
+ json.updated_by @repository_row.last_modified_by&.full_name
json.archived @repository_row.archived?
if @repository_row.archived?
json.archived_on I18n.l(@repository_row.archived_on, format: :full)
diff --git a/config/initializers/constants.rb b/config/initializers/constants.rb
index 45e36763f..0b4b75b10 100644
--- a/config/initializers/constants.rb
+++ b/config/initializers/constants.rb
@@ -360,9 +360,9 @@ class Constants
'order' => [[3, 'asc']], # Default sorting by 'name' column
'columns' => [],
'assigned' => 'assigned',
- 'ColReorder' => [*0..8]
+ 'ColReorder' => [*0..10]
}
- 9.times do |i|
+ 11.times do |i|
REPOSITORY_TABLE_DEFAULT_STATE['columns'] << {
'visible' => (i < 7 && i != 4), # relationship column is hidden by default
'searchable' => (i >= 1 && i != 4), # Checkboxes and relationship column is not searchable
@@ -386,6 +386,7 @@ class Constants
}
REPOSITORY_SNAPSHOT_TABLE_DEFAULT_STATE['columns'] = REPOSITORY_TABLE_DEFAULT_STATE['columns'][0..4]
+ REPOSITORY_SNAPSHOT_TABLE_DEFAULT_STATE['columns'][4]['visible'] = true
REPOSITORY_SNAPSHOT_TABLE_DEFAULT_STATE.freeze
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 20543ace7..2f6fe6d2e 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -2137,6 +2137,8 @@ en:
row_name: "Name"
added_on: "Created on"
added_by: "Added by"
+ updated_on: "Updated on"
+ updated_by: "Updated by"
archived_on: "Archived on"
archived_by: "Archived by"
relationships: "Relationships"
@@ -2486,6 +2488,8 @@ en:
added_on: "Added on"
added_at: "Added at"
added_by: "Added by"
+ updated_on: 'Updated on'
+ updated_by: 'Updated by'
archived_on: "Archived on"
archived_by: "Archived by"
reminders: