Sha256: 532cee48984b5de2b823ba5fbbb685f4c1cdb6a642af943bd43b6dc2ad861325

Contents?: true

Size: 1.79 KB

Versions: 5

Compression:

Stored size: 1.79 KB

Contents

class Netzke::TreePanel < Netzke::Base
  api :get_children
  
  def self.js_base_class
    "Ext.tree.TreePanel"
  end
  
  def self.js_common_config_for_constructor
    super.merge({
      :root => {:text => '/', :id => 'source'},
      :loader => {:data_url => "config.api.getChildren".l}
    })
  end
  
  def self.js_extend_properties
    {
      :refresh_handler => <<-END_OF_JAVASCRIPT.l,
        function(){
          console.info('refresh!');
        }
      END_OF_JAVASCRIPT

      :add_handler => <<-END_OF_JAVASCRIPT.l,
        function(e){
          console.info(e);
        }
      END_OF_JAVASCRIPT

      :edit_handler => <<-END_OF_JAVASCRIPT.l,
        function(e){
          console.info(e);
        
        }
      END_OF_JAVASCRIPT

      :delete_handler => <<-END_OF_JAVASCRIPT.l
        function(e){
          console.info(e);
        
        }
      END_OF_JAVASCRIPT
    }
  end
  
  def actions
    { :add    => {:text => 'Add'},
      :edit   => {:text => 'Edit'},
      :del => {:text => 'Delete', :disabled => true}
    }
  end
  
  def bbar
    persistent_config[:bbar] ||= config[:bbar] == false ? nil : config[:bbar] || %w{ add edit delete }
  end
  
  def tools
    persistent_config[:tools] ||= config[:tools] == false ? nil : config[:tools] #|| %w{ gear refresh }
  end
  
  def tbar
    persistent_config[:tbar] ||= config[:tbar] == false ? nil : config[:tbar]
  end

  def menu
    persistent_config[:menu] ||= config[:menu] == false ? nil : config[:menu] # || [{:text => 'Button', :menu => ['edit', {:text => 'Submenu', :menu => ['delete']}]}]
  end
  
  def get_children(params)
    klass = config[:data_class_name].constantize
    node = params[:node] == 'source' ? klass.find_by_parent_id(nil) : klass.find(params[:node].to_i)
    node.children.map{|n| {:text => n.name, :id => n.id}}
  end
end

Version data entries

5 entries across 5 versions & 2 rubygems

Version Path
skozlov-netzke-basepack-0.5.0 lib/netzke/tree_panel.rb
skozlov-netzke-basepack-0.5.1 lib/netzke/tree_panel.rb
skozlov-netzke-basepack-0.5.2 lib/netzke/tree_panel.rb
netzke-basepack-0.5.1 lib/netzke/tree_panel.rb
netzke-basepack-0.5.2 lib/netzke/tree_panel.rb