Class: Wice::ViewColumn

Inherits:
Object show all
Includes:
ActionView::Helpers::AssetTagHelper, ActionView::Helpers::FormTagHelper, ActionView::Helpers::JavaScriptHelper, ActionView::Helpers::TagHelper
Defined in:
lib/view_columns.rb

Constant Summary collapse

FIELDS =

fields defined from the options parameter

[:attribute_name, :column_name, :td_html_attrs, :no_filter, :model_class, :allow_multiple_selection,
:in_html, :in_csv, :helper_style, :table_alias, :custom_order, :detach_with_id, :allow_ordering, :auto_reload]
@@handled_type =
Hash.new

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from ActionView::Helpers::TagHelper

#tag_options

Constructor Details

#initialize(block, options, grid_obj, tname, mtable, cfilter, view) ⇒ ViewColumn

:nodoc:


20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/view_columns.rb', line 20

def initialize(block, options, grid_obj, tname, mtable, cfilter, view)  #:nodoc:
  self.cell_rendering_block = block
  self.grid           = grid_obj
  self.table_name     = tname
  self.main_table     = mtable
  self.custom_filter  = cfilter
  @view = view

  FIELDS.each do |field|
    self.send(field.to_s + '=', options[field])
  end
end

Instance Attribute Details

#cell_rendering_blockObject

Returns the value of attribute cell_rendering_block


16
17
18
# File 'lib/view_columns.rb', line 16

def cell_rendering_block
  @cell_rendering_block
end

#contains_a_text_inputObject (readonly)

Returns the value of attribute contains_a_text_input


18
19
20
# File 'lib/view_columns.rb', line 18

def contains_a_text_input
  @contains_a_text_input
end

#css_classObject

:nodoc:


36
37
38
# File 'lib/view_columns.rb', line 36

def css_class
  @css_class
end

#custom_filterObject

Returns the value of attribute custom_filter


16
17
18
# File 'lib/view_columns.rb', line 16

def custom_filter
  @custom_filter
end

#gridObject

Returns the value of attribute grid


16
17
18
# File 'lib/view_columns.rb', line 16

def grid
  @grid
end

#main_tableObject

Returns the value of attribute main_table


16
17
18
# File 'lib/view_columns.rb', line 16

def main_table
  @main_table
end

#model_classObject

Returns the value of attribute model_class


16
17
18
# File 'lib/view_columns.rb', line 16

def model_class
  @model_class
end

#table_nameObject

Returns the value of attribute table_name


16
17
18
# File 'lib/view_columns.rb', line 16

def table_name
  @table_name
end

Instance Method Details

#attribute_name_fully_qualified_for_all_but_main_table_columnsObject

bad name, because for the main table the name is not really 'fully_qualified'


80
81
82
# File 'lib/view_columns.rb', line 80

def attribute_name_fully_qualified_for_all_but_main_table_columns #:nodoc:
  self.main_table ? attribute_name : table_alias_or_table_name + '.' + attribute_name
end

#auto_reloading_input_with_negation_checkbox?Boolean

:nodoc:

Returns:

  • (Boolean)

110
111
112
# File 'lib/view_columns.rb', line 110

def auto_reloading_input_with_negation_checkbox?  #:nodoc:
  false
end

:nodoc:

Returns:

  • (Boolean)

102
103
104
# File 'lib/view_columns.rb', line 102

def capable_of_hosting_filter_related_icons?  #:nodoc:
  self.attribute_name.blank? && self.column_name.blank? && ! self.filter_shown?
end

#detachnessObject

:nodoc:


44
45
46
# File 'lib/view_columns.rb', line 44

def detachness #:nodoc:
  (! detach_with_id.blank?).to_s
end

#filter_shown?Boolean

:nodoc:

Returns:

  • (Boolean)

89
90
91
# File 'lib/view_columns.rb', line 89

def filter_shown? #:nodoc:
  self.attribute_name && ! self.no_filter
end

#filter_shown_in_main_table?Boolean

:nodoc:

Returns:

  • (Boolean)

93
94
95
# File 'lib/view_columns.rb', line 93

def filter_shown_in_main_table? #:nodoc:
  filter_shown? && ! self.detach_with_id
end

#form_parameter_name_id_and_query(v) ⇒ Object

:nodoc:


71
72
73
74
75
76
77
# File 'lib/view_columns.rb', line 71

def form_parameter_name_id_and_query(v) #:nodoc:
  query = form_parameter_template(v)
  query_without_equals_sign = query.sub(/=$/,'')
  parameter_name = CGI.unescape(query_without_equals_sign)
  dom_id = id_out_of_name(parameter_name)
  return query, query_without_equals_sign, parameter_name, dom_id.tr('.', '_')
end

#fully_qualified_attribute_nameObject

:nodoc:


84
85
86
# File 'lib/view_columns.rb', line 84

def fully_qualified_attribute_name #:nodoc:
  table_alias_or_table_name + '.' + attribute_name
end

#has_auto_reloading_calendar?Boolean

:nodoc:

Returns:

  • (Boolean)

118
119
120
# File 'lib/view_columns.rb', line 118

def has_auto_reloading_calendar?  #:nodoc:
  false
end

#has_auto_reloading_input?Boolean

:nodoc:

Returns:

  • (Boolean)

106
107
108
# File 'lib/view_columns.rb', line 106

def has_auto_reloading_input?  #:nodoc:
  false
end

#has_auto_reloading_select?Boolean

:nodoc:

Returns:

  • (Boolean)

114
115
116
# File 'lib/view_columns.rb', line 114

def has_auto_reloading_select?  #:nodoc:
  false
end

#render_filterObject

:nodoc:


61
62
63
64
65
# File 'lib/view_columns.rb', line 61

def render_filter #:nodoc:
  params = @grid.filter_params(self)
  res = render_filter_internal(params)
  return (res.is_a?(Array)) ? res : [res, nil]
end

#render_filter_internal(params) ⇒ Object

:nodoc:


67
68
69
# File 'lib/view_columns.rb', line 67

def render_filter_internal(params) #:nodoc:
  '<!-- implement me! -->'
end

#table_alias_or_table_nameObject

:nodoc:


98
99
100
# File 'lib/view_columns.rb', line 98

def table_alias_or_table_name  #:nodoc:
  table_alias || table_name
end

#yield_declaration_of_column_filterObject

:nodoc:


40
41
42
# File 'lib/view_columns.rb', line 40

def yield_declaration_of_column_filter #:nodoc:
  nil
end

#yield_javascriptObject

:nodoc:


48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/view_columns.rb', line 48

def yield_javascript #:nodoc:
  declaration = yield_declaration_of_column_filter
  if declaration
    %!#{@grid.name}.register( {
      filter_name : "#{self.column_name}",
      detached : #{detachness},
      #{declaration}
    } ); !
  else
    ''
  end
end