Module: ActiveScaffold::Actions::Sortable

Defined in:
lib/active_scaffold/actions/sortable.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/active_scaffold/actions/sortable.rb', line 3

def self.included(base)
  base.helper ActiveScaffold::Helpers::SortableHelpers
  base.before_action :sortable_authorized?, :only => :reorder
  base.active_scaffold_config.configure do |config|
    config.list.pagination = false if config.actions.include? :list
  
    # turn sorting off
    sortable_column = config.sortable.column.name
    config.columns.each {|c| c.sort = false unless c.name == sortable_column }
    config.list.sorting = { sortable_column => "asc" } if config.actions.include? :list
  
    config.actions.each do |action_name|
      next if action_name == :subform
      action = config.send(action_name)
      action.columns.exclude(sortable_column) if action.respond_to? :columns
    end

    base.add_active_scaffold_path File.join(ActiveScaffold::Config::Sortable.plugin_directory, 'frontends', 'default')
  end
end

Instance Method Details

#reorderObject



24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/active_scaffold/actions/sortable.rb', line 24

def reorder
  model = active_scaffold_config.model
  
  unless (model.instance_methods & [:nested_set_scope, 'nested_set_scope']).empty?
    reorder_children_in_tree(model)
  else
    if model.respond_to? :ancestry_column
      reorder_ancestry_tree(model) 
    else
      reorder_simple_list(model)
    end
  end
  do_refresh_list if active_scaffold_config.sortable.refresh_list
end