Class: Edgarj::FormDrawer::Search
- Defined in:
- app/helpers/edgarj/form_drawer.rb
Overview
Search-class differs from Base-class as follows:
-
draws the fields of ID, created_at, and updated_at for search
-
‘kind’ selection has blank-option.
-
boolean is not checkbox. Rather, it is selection of [nil,false,true]
-
edgarj_file column is not drawn.
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
-
#_draw_belongs_to_field(parent_model, col) ⇒ Object
overwrite to draw ‘belongs_to’ field for SearchForm.
-
#_draw_head(col, label = nil, &block) ⇒ Object
overwrite to insert operator.
-
#columns ⇒ Object
overwrite.
-
#draw_address(col) ⇒ Object
overwrite to draw address fields: TBD.
-
#draw_boolean(col) ⇒ Object
overwrite because it is totally different from checkbox on search.
-
#draw_created_at(col) ⇒ Object
overwrite to draw created_at.
-
#draw_enum(col, enum) ⇒ Object
overwrite to add ‘(all)’ at top of enum selection for search.
-
#draw_file(col) ⇒ Object
overwrite to disable file upload column.
-
#draw_id(col) ⇒ Object
overwrite to draw ‘id’ search field.
-
#draw_updated_at(col) ⇒ Object
overwrite to draw updated_at.
-
#edgarj_address?(col) ⇒ Boolean
overwrite.
-
#edgarj_file?(col) ⇒ Boolean
overwrite.
-
#get_enum(col) ⇒ Object
overwrite to return enum of the column in SearchForm.
-
#initialize(drawer, model, f, operator_builder) ⇒ Search
constructor
INPUTS drawer:: Edgarj::Drawer instance model:: SearchForm object f:: FormBuilder object operator_builder:: FormBuilder object for operator.
Methods inherited from Base
#_draw_2_lane, #_draw_field, #draw, #draw_bitset, #draw_field, #draw_type, #get_bitset
Constructor Details
#initialize(drawer, model, f, operator_builder) ⇒ Search
INPUTS
- drawer
-
Edgarj::Drawer instance
- model
-
SearchForm object
- f
-
FormBuilder object
- operator_builder
-
FormBuilder object for operator
199 200 201 202 203 204 205 206 |
# File 'app/helpers/edgarj/form_drawer.rb', line 199 def initialize(drawer, model, f, operator_builder) super(drawer, model, f) @operator_builder = operator_builder # merge options @options[:kind].merge!(:include_blank=>true) @options[:default][:date].merge!(:include_blank=>true) end |
Instance Method Details
#_draw_belongs_to_field(parent_model, col) ⇒ Object
overwrite to draw ‘belongs_to’ field for SearchForm
This is similar to Base class ‘belongs_to field’, but
-
add parent ‘name’ hidden field at drawing.
-
no link on parent name
271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 |
# File 'app/helpers/edgarj/form_drawer.rb', line 271 def _draw_belongs_to_field(parent_model, col) model = @f.object._klass_str.constantize parent_name = @f.object._parent && @f.object._parent[col.name] _draw_head(col, @vc.draw_belongs_to_label(@f, @drawer.popup_path_on_search(col), col.name, model)){ popup_field = Edgarj::PopupHelper::PopupField.new_builder( @f.object_name, col.name) @vc.content_tag(:span, parent_name, id: popup_field.label_target) + @vc.hidden_field_tag( 'edgarj_search_form[search_form_parent][%s]' % col.name, parent_name.blank? ? '' : parent_name, id: popup_field.label_hidden_field) + @vc.draw_belongs_to_clear_link(@f, col.name, popup_field, parent_name, '[' + @vc.draw_belongs_to_label_sub(model, col.name, parent_model) + ']') } end |
#_draw_head(col, label = nil, &block) ⇒ Object
overwrite to insert operator
226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 |
# File 'app/helpers/edgarj/form_drawer.rb', line 226 def _draw_head(col, label=nil, &block) _draw_2_lane{ sprintf("<th>%s</th><td>", label || @vc.column_label(col)).html_safe + # add operator for appropreate data type. if col.name == 'id' @vc.draw_search_operator(@operator_builder, '_id') else case col.type when :date, :datetime, :integer @vc.draw_search_operator(@operator_builder, col.name) else '' end end + '</td><td>'.html_safe + yield + '</td>'.html_safe } end |
#columns ⇒ Object
overwrite
209 210 211 212 |
# File 'app/helpers/edgarj/form_drawer.rb', line 209 def columns drawer = @vc.drawer drawer.columns_for(drawer.search_form_columns, :search_form) end |
#draw_address(col) ⇒ Object
overwrite to draw address fields: TBD
260 261 262 263 264 |
# File 'app/helpers/edgarj/form_drawer.rb', line 260 def draw_address(col) _draw_head(col){ 'TBD' } end |
#draw_boolean(col) ⇒ Object
overwrite because it is totally different from checkbox on search.
290 291 292 293 294 295 296 297 |
# File 'app/helpers/edgarj/form_drawer.rb', line 290 def draw_boolean(col) _draw_head(col){ @f.select(col.name, [ ['(both)', ''], ['', 'false'], ['√', 'true']]) } end |
#draw_created_at(col) ⇒ Object
overwrite to draw created_at
250 251 252 |
# File 'app/helpers/edgarj/form_drawer.rb', line 250 def draw_created_at(col) _draw_head(col){ @vc.draw_date(@f, col, @options[:default]) } end |
#draw_enum(col, enum) ⇒ Object
overwrite to add ‘(all)’ at top of enum selection for search.
see overwritten get_enum() also.
309 310 311 312 313 314 315 316 |
# File 'app/helpers/edgarj/form_drawer.rb', line 309 def draw_enum(col, enum) _draw_head(col){ @vc.draw_enum(@f, col, enum, :choice_1st => ['(all)',''], :class => @record._klass_str.constantize ) } end |
#draw_file(col) ⇒ Object
overwrite to disable file upload column
319 320 321 |
# File 'app/helpers/edgarj/form_drawer.rb', line 319 def draw_file(col) '' end |
#draw_id(col) ⇒ Object
overwrite to draw ‘id’ search field
245 246 247 |
# File 'app/helpers/edgarj/form_drawer.rb', line 245 def draw_id(col) _draw_head(col){ @f.text_field('_id', @options[:default][:integer]) } end |
#draw_updated_at(col) ⇒ Object
overwrite to draw updated_at
255 256 257 |
# File 'app/helpers/edgarj/form_drawer.rb', line 255 def draw_updated_at(col) _draw_head(col){ @vc.draw_date(@f, col, @options[:default]) } end |
#edgarj_address?(col) ⇒ Boolean
overwrite
215 216 217 |
# File 'app/helpers/edgarj/form_drawer.rb', line 215 def edgarj_address?(col) @record._klass_str.constantize.edgarj_address?(col) end |
#edgarj_file?(col) ⇒ Boolean
overwrite
220 221 222 |
# File 'app/helpers/edgarj/form_drawer.rb', line 220 def edgarj_file?(col) @record._klass_str.constantize.edgarj_file?(col) end |
#get_enum(col) ⇒ Object
overwrite to return enum of the column in SearchForm
see overwritten draw_enum() also.
302 303 304 |
# File 'app/helpers/edgarj/form_drawer.rb', line 302 def get_enum(col) @vc.get_enum(@record._klass_str.constantize, col) end |