class ActiveScaffold::Config::List::UserSettings
don’t inherit, defined with columns_accessor, class_eval would complain about block too long
Attributes
change list sorting for this request, unless sorting is defined {column => direction, column => direction}
Public Class Methods
Source
# File lib/active_scaffold/config/list.rb, line 268 def initialize(conf, storage, params) super(conf, storage, params, :list) @_sorting = nil end
Calls superclass method
Public Instance Methods
Source
# File lib/active_scaffold/config/list.rb, line 342 def count_includes @conf.count_includes end
Source
# File lib/active_scaffold/config/list.rb, line 309 def default_sorting nested_default_sorting.nil? || @sorting.present? ? sorting_dup : nested_default_sorting end
Source
# File lib/active_scaffold/config/list.rb, line 280 def embedded_label @params.dig :embedded, :label end
Source
# File lib/active_scaffold/config/list.rb, line 276 def label self['label'] || embedded_label || @label || @conf.label end
This label has already been localized.
Source
# File lib/active_scaffold/config/list.rb, line 304 def nested_default_sorting=(options) @nested_default_sorting ||= sorting_dup @nested_default_sorting.set_nested_sorting(options[:table_name], options[:default_sorting]) end
Source
# File lib/active_scaffold/config/list.rb, line 293 def page self['page'] = @params['page'] || 1 if @params.key?('page') || @conf.auto_pagination self['page'] || 1 end
Source
# File lib/active_scaffold/config/list.rb, line 298 def page=(value = nil) self['page'] = value end
Source
# File lib/active_scaffold/config/list.rb, line 284 def per_page self['per_page'] = @params['limit'].to_i if @params.key? 'limit' self['per_page'] || @conf.per_page end
Source
# File lib/active_scaffold/config/list.rb, line 289 def per_page=(value) self['per_page'] = value end
Source
# File lib/active_scaffold/config/list.rb, line 323 def sorting if @_sorting.nil? # we want to store as little as possible in the session, but we want to return a Sorting data structure. so we recreate it each page load based on session data. self['sort'] = [@params['sort'], @params['sort_direction']] if @params['sort'] && @params['sort_direction'] self['sort'] = nil if @params['sort_direction'] == 'reset' if self['sort'] && @conf.core.columns[self['sort'][0]] sorting = sorting_dup sorting.set(*self['sort']) @_sorting = sorting else @_sorting = default_sorting @_sorting.set(*@sorting) if @sorting @_sorting.constraint_columns = @conf.columns.constraint_columns if @conf.columns.constraint_columns.present? end end @_sorting end
Source
# File lib/active_scaffold/config/list.rb, line 315 def user_sorting? @params['sort'] && @params['sort_direction'] != 'reset' end
TODO: programatically set sorting, for per-request configuration, priority @params, then @sort
Protected Instance Methods
Source
# File lib/active_scaffold/config/list.rb, line 348 def sorting_dup sorting = @conf.sorting.dup # access to config instance columns instead of config class columns, in case columns are changed in this request sorting.instance_variable_set :@columns, core.columns sorting end