mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-09-13 08:34:49 +08:00
Add aditional checks for inventory state objects [SCI-3412]
This commit is contained in:
parent
0b3b6d593b
commit
5a9640c5d1
2 changed files with 12 additions and 8 deletions
|
@ -3,7 +3,7 @@ class UserRepositoriesController < ApplicationController
|
||||||
|
|
||||||
def save_table_state
|
def save_table_state
|
||||||
service = RepositoryTableStateService.new(current_user, @repository)
|
service = RepositoryTableStateService.new(current_user, @repository)
|
||||||
service.update_state(params[:state])
|
service.update_state(params.require(:state).permit!.to_h)
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.json do
|
format.json do
|
||||||
render json: {
|
render json: {
|
||||||
|
|
|
@ -13,16 +13,20 @@ class RepositoryTableStateService
|
||||||
# record, has EVERYTHING (booleans, symbols, keys, ...) saved as Strings.
|
# record, has EVERYTHING (booleans, symbols, keys, ...) saved as Strings.
|
||||||
|
|
||||||
def load_state
|
def load_state
|
||||||
state = RepositoryTableState.where(user: @user, repository: @repository).take
|
loaded = RepositoryTableState.where(user: @user, repository: @repository).take
|
||||||
if state.blank?
|
loaded = create_default_state unless loaded&.state&.present? &&
|
||||||
state = self.create_default_state
|
loaded.state['order'] &&
|
||||||
end
|
loaded.state['columns'] &&
|
||||||
state
|
loaded.state['ColReorder'] &&
|
||||||
|
loaded.state.dig('columns', '1', 'visible') == 'true' &&
|
||||||
|
loaded.state.dig('columns', '3', 'visible') == 'true'
|
||||||
|
loaded
|
||||||
end
|
end
|
||||||
|
|
||||||
def update_state(state)
|
def update_state(state)
|
||||||
self.load_state
|
saved_state = load_state
|
||||||
.update(state: state)
|
return if saved_state.state.except('time') == state.except('time')
|
||||||
|
saved_state.update(state: state)
|
||||||
end
|
end
|
||||||
|
|
||||||
def create_default_state
|
def create_default_state
|
||||||
|
|
Loading…
Add table
Reference in a new issue