Class: Optimacms::Filters::FormFilter
- Inherits:
-
Object
- Object
- Optimacms::Filters::FormFilter
- Defined in:
- lib/optimacms/filters/form_filter.rb
Constant Summary collapse
- FIELD_TYPE_TEXT =
'text'- FIELD_TYPE_HIDDEN =
'hidden'- FIELD_TYPE_SELECT_AUTO =
text with autocomplete
'select_auto'- DBTYPE_STRING =
'string'- DBTYPE_INT =
'int'- DBTYPE_DATE =
'date'
Instance Attribute Summary collapse
-
#data ⇒ Object
Returns the value of attribute data.
-
#fields ⇒ Object
Returns the value of attribute fields.
-
#prefix ⇒ Object
session prefix.
Instance Method Summary collapse
-
#add_field(f) ⇒ Object
fields.
- #add_fields_from_array(a) ⇒ Object
- #clear_data ⇒ Object
- #field_def_value(name) ⇒ Object
- #get_opposite_order_dir_for_column(name) ⇒ Object
- #get_order ⇒ Object
-
#html_style(name) ⇒ Object
helper methods.
-
#initialize(_session, _prefix) ⇒ FormFilter
constructor
A new instance of FormFilter.
- #opposite_order_dir(order_dir) ⇒ Object
-
#order ⇒ Object
order.
- #order=(value) ⇒ Object
-
#session_get(name, def_value) ⇒ Object
sessions.
- #session_save(name, v) ⇒ Object
- #set(field_name, v) ⇒ Object
- #set_data_from_form(params) ⇒ Object
- #set_order(order_by, order_dir) ⇒ Object
- #set_order_default(order_by, order_dir) ⇒ Object
- #v(name, v_def = nil) ⇒ Object
- #v_empty?(name) ⇒ Boolean
Constructor Details
#initialize(_session, _prefix) ⇒ FormFilter
Returns a new instance of FormFilter.
21 22 23 24 25 26 27 28 29 |
# File 'lib/optimacms/filters/form_filter.rb', line 21 def initialize(_session, _prefix) @prefix = _prefix @session = _session @fields ||={} # init data data() end |
Instance Attribute Details
#data ⇒ Object
Returns the value of attribute data.
16 17 18 |
# File 'lib/optimacms/filters/form_filter.rb', line 16 def data @data end |
#fields ⇒ Object
Returns the value of attribute fields.
15 16 17 |
# File 'lib/optimacms/filters/form_filter.rb', line 15 def fields @fields end |
#prefix ⇒ Object
session prefix
14 15 16 |
# File 'lib/optimacms/filters/form_filter.rb', line 14 def prefix @prefix end |
Instance Method Details
#add_field(f) ⇒ Object
fields
36 37 38 39 |
# File 'lib/optimacms/filters/form_filter.rb', line 36 def add_field(f) @fields[f[:name]] = f end |
#add_fields_from_array(a) ⇒ Object
41 42 43 44 45 46 |
# File 'lib/optimacms/filters/form_filter.rb', line 41 def add_fields_from_array(a) a.each do |fa| add_field fa end end |
#clear_data ⇒ Object
116 117 118 |
# File 'lib/optimacms/filters/form_filter.rb', line 116 def clear_data session_save 'data', {} end |
#field_def_value(name) ⇒ Object
49 50 51 52 53 54 |
# File 'lib/optimacms/filters/form_filter.rb', line 49 def field_def_value(name) if (@fields.has_key? name) && (@fields[name].has_key? :def) return @fields[name][:def] end nil end |
#get_opposite_order_dir_for_column(name) ⇒ Object
192 193 194 195 196 197 198 199 200 201 |
# File 'lib/optimacms/filters/form_filter.rb', line 192 def get_opposite_order_dir_for_column(name) return 'asc' if order.empty? if order[0][0] == name return opposite_order_dir(order[0][1]) end return 'asc' end |
#get_order ⇒ Object
186 187 188 189 |
# File 'lib/optimacms/filters/form_filter.rb', line 186 def get_order order[0] if order.count>0 order[0] end |
#html_style(name) ⇒ Object
helper methods
213 214 215 216 217 218 219 220 221 |
# File 'lib/optimacms/filters/form_filter.rb', line 213 def html_style(name) return '' unless @fields[name].has_key?(:opt) s = '' opt = @fields[name][:opt] unless opt[:width].nil? s << "width: #{opt[:width]}px; " end end |
#opposite_order_dir(order_dir) ⇒ Object
203 204 205 206 207 |
# File 'lib/optimacms/filters/form_filter.rb', line 203 def opposite_order_dir(order_dir) return 'asc' if order_dir=='desc' return 'desc' if order_dir=='asc' 'asc' end |
#order ⇒ Object
order
152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 |
# File 'lib/optimacms/filters/form_filter.rb', line 152 def order return @order unless @order.nil? # from session @v_sess = session_get 'order', nil @order = @v_sess unless @v_sess.nil? # @order ||= [] session_save 'order', @order # @order end |
#order=(value) ⇒ Object
168 169 170 171 172 |
# File 'lib/optimacms/filters/form_filter.rb', line 168 def order= (value) @order = value session_save 'order', @order end |
#session_get(name, def_value) ⇒ Object
sessions
60 61 62 |
# File 'lib/optimacms/filters/form_filter.rb', line 60 def session_get(name, def_value) @session[prefix+name] || def_value end |
#session_save(name, v) ⇒ Object
64 65 66 |
# File 'lib/optimacms/filters/form_filter.rb', line 64 def session_save(name, v) @session[prefix+name] = v end |
#set(field_name, v) ⇒ Object
111 112 113 |
# File 'lib/optimacms/filters/form_filter.rb', line 111 def set(field_name,v) data[field_name] = v end |
#set_data_from_form(params) ⇒ Object
120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 |
# File 'lib/optimacms/filters/form_filter.rb', line 120 def set_data_from_form(params) # search for fields like filter[XXX] params.each do |name, v| #if f =~ /^filter\[([^\]]+)\]$/ #name = Regexp.last_match(1) next unless @fields.has_key? name if @fields[name][:dbtype]==DBTYPE_INT data[name] = (v.to_i rescue 0) else data[name] = v end #end end # default values from fields @fields.each do |name, f| next if @data.has_key? name @data[name] = field_def_value name end end |
#set_order(order_by, order_dir) ⇒ Object
182 183 184 |
# File 'lib/optimacms/filters/form_filter.rb', line 182 def set_order(order_by, order_dir) self.order = [[order_by, order_dir]] end |
#set_order_default(order_by, order_dir) ⇒ Object
174 175 176 177 178 179 |
# File 'lib/optimacms/filters/form_filter.rb', line 174 def set_order_default(order_by, order_dir) return false if !order.nil? && !order.empty? set_order(order_by, order_dir) end |
#v(name, v_def = nil) ⇒ Object
94 95 96 97 98 99 100 |
# File 'lib/optimacms/filters/form_filter.rb', line 94 def v(name, v_def=nil) if (data.has_key? name) && (!data[name].nil?) return data[name] end field_def_value(name) || v_def end |
#v_empty?(name) ⇒ Boolean
102 103 104 105 106 107 108 109 |
# File 'lib/optimacms/filters/form_filter.rb', line 102 def v_empty?(name) if (data.has_key? name) && (!data[name].nil?) return true end # if v == default value end |