mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2024-09-20 14:45:56 +08:00
Apply saved custom columns order to the inventory item card [SCI-9540] (#6462)
This commit is contained in:
parent
8b890bc10e
commit
80ccd0039c
|
@ -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
|
||||
|
|
|
@ -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'] &&
|
||||
|
|
|
@ -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(
|
||||
|
|
Loading…
Reference in a new issue