Class: ActiveScaffold::Config::List::UserSettings
- Defined in:
- lib/active_scaffold/config/list.rb
Overview
don’t inherit, defined with columns_accessor, class_eval would complain about block too long
Instance Attribute Summary collapse
-
#label ⇒ Object
This label has already been localized.
-
#nested_default_sorting ⇒ Object
Returns the value of attribute nested_default_sorting.
- #sorting ⇒ Object
Instance Method Summary collapse
- #default_sorting ⇒ Object
- #embedded_label ⇒ Object
-
#initialize(conf, storage, params) ⇒ UserSettings
constructor
A new instance of UserSettings.
- #page ⇒ Object
- #page=(value = nil) ⇒ Object
- #per_page ⇒ Object
- #per_page=(value) ⇒ Object
-
#user_sorting? ⇒ Boolean
TODO: programatically set sorting, for per-request configuration, priority @params, then @sort.
Constructor Details
#initialize(conf, storage, params) ⇒ UserSettings
Returns a new instance of UserSettings.
270 271 272 273 |
# File 'lib/active_scaffold/config/list.rb', line 270 def initialize(conf, storage, params) super(conf, storage, params, :list) @_sorting = nil end |
Instance Attribute Details
#label ⇒ Object
This label has already been localized.
278 279 280 |
# File 'lib/active_scaffold/config/list.rb', line 278 def label self['label'] || || @label || @conf.label(core: core) end |
#nested_default_sorting ⇒ Object
Returns the value of attribute nested_default_sorting.
304 305 306 |
# File 'lib/active_scaffold/config/list.rb', line 304 def nested_default_sorting @nested_default_sorting end |
#sorting ⇒ Object
325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 |
# File 'lib/active_scaffold/config/list.rb', line 325 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 |
Instance Method Details
#default_sorting ⇒ Object
311 312 313 |
# File 'lib/active_scaffold/config/list.rb', line 311 def default_sorting nested_default_sorting.nil? || @sorting.present? ? sorting_dup : nested_default_sorting end |
#embedded_label ⇒ Object
282 283 284 |
# File 'lib/active_scaffold/config/list.rb', line 282 def @params.dig :embedded, :label end |
#page ⇒ Object
295 296 297 298 |
# File 'lib/active_scaffold/config/list.rb', line 295 def page self['page'] = @params['page'] || 1 if @params.key?('page') || @conf.auto_pagination self['page'] || 1 end |
#page=(value = nil) ⇒ Object
300 301 302 |
# File 'lib/active_scaffold/config/list.rb', line 300 def page=(value = nil) self['page'] = value end |
#per_page ⇒ Object
286 287 288 289 |
# File 'lib/active_scaffold/config/list.rb', line 286 def per_page self['per_page'] = @params['limit'].to_i if @params.key? 'limit' self['per_page'] || @conf.per_page end |
#per_page=(value) ⇒ Object
291 292 293 |
# File 'lib/active_scaffold/config/list.rb', line 291 def per_page=(value) self['per_page'] = value end |
#user_sorting? ⇒ Boolean
TODO: programatically set sorting, for per-request configuration, priority @params, then @sort
317 318 319 |
# File 'lib/active_scaffold/config/list.rb', line 317 def user_sorting? @params['sort'] && @params['sort_direction'] != 'reset' end |