Apply saved custom columns order to the inventory item card [SCI-9540] (#6462)

This commit is contained in:
Alex Kriuchykhin 2023-10-16 16:38:43 +02:00 committed by GitHub
parent 8b890bc10e
commit 80ccd0039c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 23 additions and 2 deletions

View file

@ -6,4 +6,25 @@ module RepositoryColumnsHelper
.map { |e| Hash[t('libraries.manange_modal_column.list_type.delimiters.' + e.to_s), e] }
.inject(:merge)
end
def repository_columns_ordered_by_state(repository)
columns = repository.repository_columns.order(:id).to_a
return columns if columns.blank?
table_state = current_user.repository_table_states.find_by(repository: repository)
return columns unless table_state && table_state.state['ColReorder'].present?
default_columns_count = repository.default_table_state['ColReorder'].length
columns_reorder = table_state.state['ColReorder'] - repository.default_table_state['ColReorder']
return columns if columns_reorder.blank?
columns_reorder.map! { |position| position - default_columns_count }
reordered_columns = []
columns_reorder.each do |position|
column = columns.at(position)
reordered_columns << column if column.present?
end
reordered_columns | columns
end
end

View file

@ -14,7 +14,7 @@ class RepositoryTableStateService
def load_state
loaded = RepositoryTableState.where(user: @user, repository: @repository).take
loaded = create_default_state unless loaded&.state&.present? &&
loaded = create_default_state unless loaded&.state.present? &&
loaded.state['length'].to_i.positive? &&
loaded.state['order'] &&
loaded.state['columns'] &&

View file

@ -33,7 +33,7 @@ json.default_columns do
end
json.custom_columns do
json.array! @repository_row.repository.repository_columns.each do |repository_column|
json.array! repository_columns_ordered_by_state(@repository_row.repository).each do |repository_column|
repository_cell = @repository_row.repository_cells.find_by(repository_column: repository_column)
if repository_cell
json.merge! **serialize_repository_cell_value(repository_cell, @repository.team, @repository, reminders_enabled: @reminders_present).merge(