Class: Puffer::TreeBase

Inherits:
Base
  • Object
show all
Defined in:
app/controllers/puffer/tree_base.rb

Instance Method Summary collapse

Methods inherited from Base

#create, #destroy, #edit, #event, #new, #show, #update

Instance Method Details

#collapseObject



41
42
43
44
45
46
47
# File 'app/controllers/puffer/tree_base.rb', line 41

def collapse
  @parent = resource.member
  session[:expanded] ||= []
  session[:expanded].delete params[:id]
  @records = resource.model.to_adapter.filter(resource.collection_scope.where(:id => [@parent.id]), tree_fields).arrange
  render 'toggle'
end

#expandObject



32
33
34
35
36
37
38
39
# File 'app/controllers/puffer/tree_base.rb', line 32

def expand
  @parent = resource.member
  session[:expanded] ||= []
  session[:expanded].push params[:id] if @parent
  session[:expanded].uniq!
  @records = resource.model.to_adapter.filter(@parent.self_and_descendants.where(:parent_id => [@parent.parent_id] + session[:expanded]), tree_fields).arrange
  render 'toggle'
end

#indexObject



9
10
11
12
13
14
15
16
17
18
# File 'app/controllers/puffer/tree_base.rb', line 9

def index
  return super if puffer_filters.any?
  @records = resource.collection_scope
  if session[:expanded].present?
    @records = @records.where(["depth in (0, 1) or parent_id in (#{session[:expanded].join(', ')})"]).arrange
  else
    @records = @records.with_depth([0, 1]).arrange
  end
  render 'tree'
end

#inheritObject



26
27
28
29
30
# File 'app/controllers/puffer/tree_base.rb', line 26

def inherit
  @parent = resource.member
  @record = @parent.children.new
  render 'new'
end