Class: Lipsiadmin::Ext::ColumnModel
- Defined in:
- lib/view/helpers/ext/column_model.rb
Overview
Generate a new Ext.grid.ColumnModel
Examples:
var columnModel = new Ext.grid.ColumnModel({
columns: [{
header: "Name",
dataIndex: "name"
},{
header: "Category",
dataIndex: "category_name",
query: "categories.name LIKE {query}"
},{
header: "Date",
dataIndex: "date"
},{
header: "Created At",
dataIndex: "created_at"
}]});
ColumnModel.new do |columns|
columns.add :name, "Name"
columns.add :category_name, "Category", :dataIndex => "categories.name"
columns.add :date, "Date"
columns.add :created_at, "Created At"
end
Instance Method Summary collapse
-
#add_column(name = nil, data = nil, options = {}) ⇒ Object
Add columns to a Ext.grid.ColumnModel.
-
#fields(fields) ⇒ Object
This add automatically fields from an array.
-
#initialize(options = {}) {|_self| ... } ⇒ ColumnModel
constructor
:nodoc:.
Methods inherited from Component
#add, #after, #before, #config, #config=, #get_var, #id, #method_missing, #on, #prefix=, #raise_error, #title, #to_s, #un, #var, #with_output_buffer
Constructor Details
#initialize(options = {}) {|_self| ... } ⇒ ColumnModel
:nodoc:
31 32 33 34 |
# File 'lib/view/helpers/ext/column_model.rb', line 31 def initialize(={}, &block)#:nodoc: super("Ext.grid.ColumnModel", { :columns => [] }.merge()) yield self if block_given? end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class Lipsiadmin::Ext::Component
Instance Method Details
#add_column(name = nil, data = nil, options = {}) ⇒ Object
Add columns to a Ext.grid.ColumnModel
# Generates: { header: "Created At", dataIndex: "accounts.datetime", sortable => true }
add "Created At", "accounts.datetime", :sortable => true
You can pass :renderer
# Generates: Ext.util.Format.dateRenderer()
:render => :time_to_date # This render a datetime to a date
# Generates: Ext.util.Format.dateRenderer()
:renderer => :date
# Generates: Ext.util.Format.dateTimeRenderer()
:renderer => :datetime
# Generates: Ext.util.Format.percentage
:renderer => :percentage
# Generates: Ext.util.Format.eurMoney
:renderer => :eur_money
# Generates: Ext.util.Format.usMoney
:renderer => :us_money
# Generates: Ext.util.Format.boolRenderer
:renderer => :boolean
...
:render => :capitalize
:render => :file_size
:render => :downcase
:render => :trim
:render => :undef
:render => :upcase
For more see extjs.com/deploy/dev/docs/?class=Ext.util.Format
You can pass :editor
# Generates: { checkbox: true }
:editor => { :xtype => :checkbox, :someConfig => true }
# Generates: new Ext.form.ComboBox({ someConfig => true });
:editor => { :xtype => :combo, :someConfig => true }
# Generates: new Ext.form.DateField({ someConfig => true });
:editor => { :xtype => :datefield, :someConfig => true }
# Generates: new Ext.form.NumberField({ someConfig => true });
:editor => { :xtype => :numberfield, :someConfig => true }
# Generates: new Ext.form.Radio({ someConfig => true });
:editor => { :xtype => :radio, :someConfig => true }
# Generates: new Ext.form.TextArea({ someConfig => true });
:editor => { :xtype => :textarea, :someConfig => true }
# Generates: new Ext.form.TextField({ someConfig => true });
:editor => { :xtype => :textfield, :someConfig => true }
# Generates: new Ext.form.TimeField({ someConfig => true });
:editor => { :xtype => :timefield, :someConfig => true }
Form components so are:
---------------------------------------
:checkbox => Ext.form.Checkbox
:combo => Ext.form.ComboBox
:datefield => Ext.form.DateField
:numberfield => Ext.form.NumberField
:radio => Ext.form.Radio
:textarea => Ext.form.TextArea
:textfield => Ext.form.TextField
:timefield => Ext.form.TimeField
102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 |
# File 'lib/view/helpers/ext/column_model.rb', line 102 def add_column(name=nil, data=nil, ={}) [:header] = name if name [:dataIndex] = data if data if [:editor] xtype = [:editor][:xtype] case xtype when :checkbox then .delete(:editor); .merge!(:checkbox => true) when :combo then .merge!(:editor => "new Ext.form.ComboBox(#{Configuration.new([:editor]).to_s(3)})".to_l) when :datefield then .merge!(:editor => "new Ext.form.DateField(#{Configuration.new([:editor]).to_s(3)})".to_l) when :numberfield then .merge!(:editor => "new Ext.form.NumberField(#{Configuration.new([:editor]).to_s(3)})".to_l) when :radio then .merge!(:editor => "new Ext.form.Radio(#{Configuration.new([:editor]).to_s(3)})".to_l) when :textarea then .merge!(:editor => "new Ext.form.TextArea(#{Configuration.new([:editor]).to_s(3)})".to_l) when :textfield then .merge!(:editor => "new Ext.form.TextField(#{Configuration.new([:editor]).to_s(3)})".to_l) when :timefield then .merge!(:editor => "new Ext.form.TimeField(#{Configuration.new([:editor]).to_s(3)})".to_l) when :datetimefield then .merge!(:editor => "new Ext.form.DateTimeField(#{Configuration.new([:editor]).to_s(3)})".to_l) end end case [:renderer] when :time_to_date then .merge!(:renderer => "Ext.util.Format.dateRenderer()".to_l) when :date then .merge!(:renderer => "Ext.util.Format.dateRenderer()".to_l) when :datetime then .merge!(:renderer => "Ext.util.Format.dateTimeRenderer()".to_l) when :percentage then .merge!(:renderer => "Ext.util.Format.percentage".to_l) when :eur_money then .merge!(:renderer => "Ext.util.Format.eurMoney".to_l) when :us_money then .merge!(:renderer => "Ext.util.Format.usMoney".to_l) when :boolean then .merge!(:renderer => "Ext.util.Format.boolRenderer".to_l) when :capitalize then .merge!(:renderer => "Ext.util.Format.capitalize".to_l) when :file_size then .merge!(:renderer => "Ext.util.Format.fileSize".to_l) when :downcase then .merge!(:renderer => "Ext.util.Format.lowercase".to_l) when :trim then .merge!(:renderer => "Ext.util.Format.trim".to_l) when :undef then .merge!(:renderer => "Ext.util.Format.undef".to_l) when :upcase then .merge!(:renderer => "Ext.util.Format.uppercase".to_l) end raise ComponentError, "You must provide header and dataIndex for generate a column model" if [:header].blank? || [:dataIndex].blank? config[:columns] << Configuration.new() end |
#fields(fields) ⇒ Object
This add automatically fields from an array
37 38 39 |
# File 'lib/view/helpers/ext/column_model.rb', line 37 def fields(fields) fields.each { || add_column(nil, nil, ); } end |