scinote-web/app/helpers/repository_columns_helper.rb

31 lines
1.1 KiB
Ruby

# frozen_string_literal: true
module RepositoryColumnsHelper
def defined_delimiters_options
(%i(auto) + Constants::REPOSITORY_LIST_ITEMS_DELIMITERS_MAP.keys)
.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