Class: ActiveScaffold::Config::List::UserSettings

Inherits:
UserSettings
  • Object
show all
Defined in:
lib/active_scaffold/config/list.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(conf, storage, params) ⇒ UserSettings

Returns a new instance of UserSettings.



229
230
231
232
# File 'lib/active_scaffold/config/list.rb', line 229

def initialize(conf, storage, params)
  super(conf, storage, params, :list)
  @sorting = nil
end

Instance Attribute Details

#labelObject

This label has already been localized.



236
237
238
# File 'lib/active_scaffold/config/list.rb', line 236

def label
  self['label'] || @label || @conf.label
end

#nested_default_sortingObject

Returns the value of attribute nested_default_sorting.



254
255
256
# File 'lib/active_scaffold/config/list.rb', line 254

def nested_default_sorting
  @nested_default_sorting
end

Instance Method Details

#count_includesObject



289
290
291
# File 'lib/active_scaffold/config/list.rb', line 289

def count_includes
  @conf.count_includes
end

#default_sortingObject



261
262
263
# File 'lib/active_scaffold/config/list.rb', line 261

def default_sorting
  nested_default_sorting.nil? ? @conf.sorting.clone : nested_default_sorting
end

#pageObject



245
246
247
248
# File 'lib/active_scaffold/config/list.rb', line 245

def page
  self['page'] = @params['page'] || 1 if @params.key?('page') || @conf.auto_pagination
  self['page'] || 1
end

#page=(value = nil) ⇒ Object



250
251
252
# File 'lib/active_scaffold/config/list.rb', line 250

def page=(value = nil)
  self['page'] = value
end

#per_pageObject



240
241
242
243
# File 'lib/active_scaffold/config/list.rb', line 240

def per_page
  self['per_page'] = @params['limit'].to_i if @params.key? 'limit'
  self['per_page'] || @conf.per_page
end

#sortingObject



269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
# File 'lib/active_scaffold/config/list.rb', line 269

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']
      sorting = @conf.sorting.clone
      sorting.set(*self['sort'])
      @sorting = sorting
    else
      @sorting = default_sorting
      if @conf.columns.constraint_columns.present?
        @sorting.constraint_columns = @conf.columns.constraint_columns
      end
    end
  end
  @sorting
end

#user_sorting?Boolean

Returns:

  • (Boolean)


265
266
267
# File 'lib/active_scaffold/config/list.rb', line 265

def user_sorting?
  @params['sort'] && @params['sort_direction'] != 'reset'
end