wice_grid 3.0.4 → 3.2.0.pre1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. data/CHANGELOG +24 -2
  2. data/README.rdoc +282 -316
  3. data/RELEASE_NOTES_3.2.pre1.rdoc +82 -0
  4. data/Rakefile +4 -2
  5. data/SAVED_QUERIES_HOWTO.rdoc +18 -31
  6. data/VERSION +1 -1
  7. data/lib/generators/wice_grid/add_migration_for_serialized_queries_generator.rb +22 -0
  8. data/lib/generators/wice_grid/install_generator.rb +20 -0
  9. data/lib/generators/wice_grid/templates/create_wice_grid_serialized_queries.rb +13 -0
  10. data/lib/generators/wice_grid/templates/wice_grid.css.scss +139 -0
  11. data/lib/generators/wice_grid/templates/wice_grid.yml +113 -19
  12. data/lib/generators/wice_grid/templates/wice_grid_config.rb +17 -41
  13. data/lib/grid_output_buffer.rb +3 -2
  14. data/lib/grid_renderer.rb +63 -102
  15. data/lib/helpers/js_calendar_helpers.rb +27 -157
  16. data/lib/helpers/wice_grid_misc_view_helpers.rb +1 -66
  17. data/lib/helpers/wice_grid_serialized_queries_view_helpers.rb +41 -32
  18. data/lib/helpers/wice_grid_view_helpers.rb +138 -274
  19. data/lib/table_column_matrix.rb +11 -11
  20. data/lib/view_columns.rb +41 -350
  21. data/lib/view_columns/action_view_column.rb +45 -0
  22. data/lib/view_columns/column_processor_index.rb +16 -0
  23. data/lib/view_columns/view_column_boolean.rb +23 -0
  24. data/lib/view_columns/view_column_custom_dropdown.rb +81 -0
  25. data/lib/view_columns/view_column_date.rb +17 -0
  26. data/lib/view_columns/view_column_datetime.rb +85 -0
  27. data/lib/view_columns/view_column_float.rb +7 -0
  28. data/lib/view_columns/view_column_integer.rb +38 -0
  29. data/lib/view_columns/view_column_string.rb +63 -0
  30. data/lib/wice_grid.rb +23 -26
  31. data/lib/wice_grid_controller.rb +14 -15
  32. data/lib/wice_grid_misc.rb +3 -3
  33. data/lib/wice_grid_serialized_queries_controller.rb +15 -18
  34. data/lib/wice_grid_spreadsheet.rb +2 -2
  35. data/lib/will_paginate_paginator.rb +31 -0
  36. data/test/readme.txt +1 -0
  37. data/{lib/generators/wice_grid/templates/icons → vendor/assets/images/icons/grid}/arrow_down.gif +0 -0
  38. data/{lib/generators/wice_grid/templates/icons → vendor/assets/images/icons/grid}/arrow_up.gif +0 -0
  39. data/{lib/generators/wice_grid/templates/icons → vendor/assets/images/icons/grid}/calendar_view_month.png +0 -0
  40. data/vendor/assets/images/icons/grid/collapse.gif +0 -0
  41. data/{lib/generators/wice_grid/templates/icons → vendor/assets/images/icons/grid}/delete.png +0 -0
  42. data/vendor/assets/images/icons/grid/expand.gif +0 -0
  43. data/{lib/generators/wice_grid/templates/icons → vendor/assets/images/icons/grid}/page_white_excel.png +0 -0
  44. data/{lib/generators/wice_grid/templates/icons → vendor/assets/images/icons/grid}/page_white_find.png +0 -0
  45. data/{lib/generators/wice_grid/templates/icons → vendor/assets/images/icons/grid}/table.png +0 -0
  46. data/{lib/generators/wice_grid/templates/icons → vendor/assets/images/icons/grid}/table_refresh.png +0 -0
  47. data/{lib/generators/wice_grid/templates/icons → vendor/assets/images/icons/grid}/tick_all.png +0 -0
  48. data/{lib/generators/wice_grid/templates/icons → vendor/assets/images/icons/grid}/untick_all.png +0 -0
  49. data/vendor/assets/javascripts/wice_grid.js +3 -0
  50. data/vendor/assets/javascripts/wice_grid_init.js.coffee +247 -0
  51. data/vendor/assets/javascripts/wice_grid_processor.js.coffee +128 -0
  52. data/vendor/assets/javascripts/wice_grid_saved_queries_init.js.coffee +103 -0
  53. data/wice_grid.gemspec +44 -50
  54. metadata +68 -94
  55. data/lib/generators/wice_grid/templates/calendarview.css +0 -107
  56. data/lib/generators/wice_grid/templates/calendarview.js +0 -1168
  57. data/lib/generators/wice_grid/templates/icons/expand.png +0 -0
  58. data/lib/generators/wice_grid/templates/wice_grid.css +0 -173
  59. data/lib/generators/wice_grid/templates/wice_grid_jquery.js +0 -162
  60. data/lib/generators/wice_grid/templates/wice_grid_prototype.js +0 -154
  61. data/lib/generators/wice_grid/wice_grid_assets_jquery_generator.rb +0 -32
  62. data/lib/generators/wice_grid/wice_grid_assets_prototype_generator.rb +0 -34
  63. data/lib/js_adaptors/jquery_adaptor.rb +0 -157
  64. data/lib/js_adaptors/js_adaptor.rb +0 -12
  65. data/lib/js_adaptors/prototype_adaptor.rb +0 -179
  66. data/lib/tasks/wice_grid_tasks.rake +0 -28
  67. data/lib/views/create.rjs +0 -13
  68. data/lib/views/create_jq.rjs +0 -31
  69. data/lib/views/delete.rjs +0 -12
  70. data/lib/views/delete_jq.rjs +0 -26
  71. data/test/.gitignore +0 -2
  72. data/test/database.yml +0 -21
  73. data/test/schema.rb +0 -33
  74. data/test/test_helper.rb +0 -89
  75. data/test/views/projects_and_people_grid.html.erb +0 -12
  76. data/test/views/projects_and_people_grid_invalid.html.erb +0 -12
  77. data/test/views/simple_projects_grid.html.erb +0 -9
  78. data/test/wice_grid_core_ext_test.rb +0 -183
  79. data/test/wice_grid_functional_test.rb +0 -68
  80. data/test/wice_grid_misc_test.rb +0 -41
  81. data/test/wice_grid_test.rb +0 -42
  82. data/test/wice_grid_view_helper_test.rb +0 -12
@@ -13,7 +13,7 @@ module Wice
13
13
  def add_condition(column, conditions)
14
14
  @generated_conditions << [column, conditions] unless conditions.blank?
15
15
  end
16
-
16
+
17
17
  def conditions
18
18
  @generated_conditions.collect{|_, cond| cond}
19
19
  end
@@ -21,14 +21,14 @@ module Wice
21
21
  alias_method :get, :[]
22
22
 
23
23
  attr_reader :default_model_class
24
- def default_model_class=(model_klass) #:nodoc:
25
- init_columns_of_table(model_klass) unless has_key?(model_klass)
26
- @default_model_class = model_klass
24
+ def default_model_class=(model) #:nodoc:
25
+ init_columns_of_table(model) unless has_key?(model)
26
+ @default_model_class = model
27
27
  end
28
28
 
29
- def [](model_klass) #:nodoc:
30
- init_columns_of_table(model_klass) unless has_key?(model_klass)
31
- get(model_klass)
29
+ def [](model) #:nodoc:
30
+ init_columns_of_table(model) unless has_key?(model)
31
+ get(model)
32
32
  end
33
33
 
34
34
  def get_column_by_model_class_and_column_name(model_class, column_name) #:nodoc:
@@ -40,10 +40,10 @@ module Wice
40
40
  self[@default_model_class][column_name]
41
41
  end
42
42
 
43
- def init_columns_of_table(model_klass) #:nodoc:
44
- self[model_klass] = HashWithIndifferentAccess.new(model_klass.columns.index_by(&:name))
45
- @by_table_names[model_klass.table_name] = self[model_klass]
46
- self[model_klass].each_value{|c| c.model_klass = model_klass}
43
+ def init_columns_of_table(model) #:nodoc:
44
+ self[model] = HashWithIndifferentAccess.new(model.columns.index_by(&:name))
45
+ @by_table_names[model.table_name] = self[model]
46
+ self[model].each_value{|c| c.model = model}
47
47
  end
48
48
  alias_method :<< , :init_columns_of_table
49
49
 
data/lib/view_columns.rb CHANGED
@@ -2,18 +2,45 @@
2
2
  module Wice
3
3
 
4
4
  class ViewColumn #:nodoc:
5
+
6
+ class << self
7
+ def load_column_processors
8
+
9
+ loaded_column_processors = Hash.new
10
+ Wice::COLUMN_PROCESSOR_INDEX.each do |column_type, column_source_file|
11
+ unless loaded_column_processors[column_source_file]
12
+ require "view_columns/#{column_source_file}.rb"
13
+ column_class_name = column_source_file.classify
14
+
15
+ unless Wice.const_defined?(column_class_name.intern)
16
+ raise "#{column_source_file}.rb is expected to define #{column_class_name}!"
17
+ end
18
+ column_class = eval("Wice::#{column_class_name}")
19
+
20
+ loaded_column_processors[column_source_file] = column_class
21
+ end
22
+
23
+ @@handled_type[column_type] = loaded_column_processors[column_source_file]
24
+ end
25
+ end
26
+
27
+ def get_column_processor(column_type)
28
+ @@handled_type[column_type] || ViewColumn
29
+ end
30
+ end
31
+
5
32
  include ActionView::Helpers::FormTagHelper
6
33
  include ActionView::Helpers::TagHelper
7
34
  include ActionView::Helpers::JavaScriptHelper
8
35
  include ActionView::Helpers::AssetTagHelper
9
36
 
10
37
  # fields defined from the options parameter
11
- FIELDS = [:attribute_name, :column_name, :td_html_attrs, :no_filter, :model_class, :allow_multiple_selection,
12
- :in_html, :in_csv, :helper_style, :table_alias, :custom_order, :detach_with_id, :allow_ordering, :auto_reload]
38
+ FIELDS = [:attribute, :name, :html, :filter, :model, :allow_multiple_selection,
39
+ :in_html, :in_csv, :helper_style, :table_alias, :custom_order, :detach_with_id, :ordering, :auto_reload]
13
40
 
14
41
  attr_accessor *FIELDS
15
42
 
16
- attr_accessor :cell_rendering_block, :grid, :css_class, :table_name, :main_table, :model_class, :custom_filter
43
+ attr_accessor :cell_rendering_block, :grid, :css_class, :table_name, :main_table, :model, :custom_filter
17
44
 
18
45
  attr_reader :contains_a_text_input
19
46
 
@@ -45,16 +72,14 @@ module Wice
45
72
  (! detach_with_id.blank?).to_s
46
73
  end
47
74
 
48
- def yield_javascript #:nodoc:
75
+ def yield_declaration #:nodoc:
49
76
  declaration = yield_declaration_of_column_filter
50
77
  if declaration
51
- %!#{@grid.name}.register( {
52
- filter_name : "#{self.column_name}",
53
- detached : #{detachness},
54
- #{declaration}
55
- } ); !
56
- else
57
- ''
78
+ {
79
+ :filterName => self.name,
80
+ :detached => detachness,
81
+ :declaration => declaration
82
+ }
58
83
  end
59
84
  end
60
85
 
@@ -70,8 +95,7 @@ module Wice
70
95
 
71
96
  def render_filter #:nodoc:
72
97
  params = @grid.filter_params(self)
73
- res = render_filter_internal(params)
74
- return (res.is_a?(Array)) ? res : [res, nil]
98
+ render_filter_internal(params)
75
99
  end
76
100
 
77
101
  def render_filter_internal(params) #:nodoc:
@@ -88,16 +112,16 @@ module Wice
88
112
 
89
113
  # bad name, because for the main table the name is not really 'fully_qualified'
90
114
  def attribute_name_fully_qualified_for_all_but_main_table_columns #:nodoc:
91
- self.main_table ? attribute_name : table_alias_or_table_name + '.' + attribute_name
115
+ self.main_table ? attribute : table_alias_or_table_name + '.' + attribute
92
116
  end
93
117
 
94
118
  def fully_qualified_attribute_name #:nodoc:
95
- table_alias_or_table_name + '.' + attribute_name
119
+ table_alias_or_table_name + '.' + attribute
96
120
  end
97
121
 
98
122
 
99
123
  def filter_shown? #:nodoc:
100
- self.attribute_name && ! self.no_filter
124
+ self.attribute && self.filter
101
125
  end
102
126
 
103
127
  def filter_shown_in_main_table? #:nodoc:
@@ -110,7 +134,7 @@ module Wice
110
134
  end
111
135
 
112
136
  def capable_of_hosting_filter_related_icons? #:nodoc:
113
- self.attribute_name.blank? && self.column_name.blank? && ! self.filter_shown?
137
+ self.attribute.blank? && self.name.blank? && ! self.filter_shown?
114
138
  end
115
139
 
116
140
  def has_auto_reloading_input? #:nodoc:
@@ -149,338 +173,5 @@ module Wice
149
173
 
150
174
  end
151
175
 
152
- class ActionViewColumn < ViewColumn #:nodoc:
153
- def initialize(grid_obj, td_html_attrs, param_name, select_all_buttons, object_property, view) #:nodoc:
154
- @view = view
155
- @select_all_buttons = select_all_buttons
156
- self.grid = grid_obj
157
- self.td_html_attrs = td_html_attrs
158
- self.td_html_attrs.add_or_append_class_value!('sel')
159
- grid_name = self.grid.name
160
- @param_name = param_name
161
- @cell_rendering_block = lambda do |object, params|
162
- selected = if params[grid_name] && params[grid_name][param_name] &&
163
- params[grid_name][param_name].index(object.send(object_property).to_s)
164
- true
165
- else
166
- false
167
- end
168
- check_box_tag("#{grid_name}[#{param_name}][]", object.send(object_property), selected, :id => nil)
169
- end
170
- end
171
-
172
- def in_html #:nodoc:
173
- true
174
- end
175
-
176
- def capable_of_hosting_filter_related_icons? #:nodoc:
177
- false
178
- end
179
-
180
- def column_name #:nodoc:
181
- return '' unless @select_all_buttons
182
- select_all_tootip = WiceGridNlMessageProvider.get_message(:SELECT_ALL)
183
- deselect_all_tootip = WiceGridNlMessageProvider.get_message(:DESELECT_ALL)
184
-
185
- html = content_tag(:span, image_tag(Defaults::TICK_ALL_ICON, :alt => select_all_tootip),
186
- :class => 'clickable select_all', :title => select_all_tootip) + ' ' +
187
- content_tag(:span, image_tag(Defaults::UNTICK_ALL_ICON, :alt => deselect_all_tootip),
188
- :class => 'clickable deselect_all', :title => deselect_all_tootip)
189
-
190
- js = JsAdaptor.action_column_initialization(grid.name)
191
-
192
- [html, js]
193
- end
194
-
195
- end
196
-
197
- class ViewColumnInteger < ViewColumn #:nodoc:
198
- @@handled_type[:integer] = self
199
-
200
- def render_filter_internal(params) #:nodoc:
201
- @contains_a_text_input = true
202
-
203
- @query, _, parameter_name, @dom_id = form_parameter_name_id_and_query(:fr => '')
204
- @query2, _, parameter_name2, @dom_id2 = form_parameter_name_id_and_query(:to => '')
205
-
206
- opts1 = {:size => 3, :id => @dom_id, :class => 'range-start'}
207
- opts2 = {:size => 3, :id => @dom_id2, :class => 'range-end'}
208
-
209
- if auto_reload
210
- opts1[:class] += ' auto_reload'
211
- opts2[:class] += ' auto_reload'
212
- end
213
-
214
- text_field_tag(parameter_name, params[:fr], opts1) + text_field_tag(parameter_name2, params[:to], opts2)
215
- end
216
-
217
- def yield_declaration_of_column_filter #:nodoc:
218
- %$templates : ['#{@query}', '#{@query2}'],
219
- ids : ['#{@dom_id}', '#{@dom_id2}'] $
220
- end
221
-
222
- def has_auto_reloading_input? #:nodoc:
223
- auto_reload
224
- end
225
-
226
- end
227
-
228
- class ViewColumnFloat < ViewColumnInteger #:nodoc:
229
- @@handled_type[:decimal] = self
230
- @@handled_type[:float] = self
231
- end
232
-
233
- class ViewColumnCustomDropdown < ViewColumn #:nodoc:
234
- include ActionView::Helpers::FormOptionsHelper
235
-
236
- attr_accessor :filter_all_label
237
- attr_accessor :custom_filter
238
-
239
- def render_filter_internal(params) #:nodoc:
240
- @query, @query_without_equals_sign, @parameter_name, @dom_id = form_parameter_name_id_and_query('')
241
- @query_without_equals_sign += '%5B%5D='
242
-
243
- @custom_filter = @custom_filter.call if @custom_filter.kind_of? Proc
244
-
245
- if @custom_filter.kind_of? Array
246
-
247
- @custom_filter = [[@filter_all_label, nil]] + @custom_filter.map{|label, value|
248
- [label.to_s, value.to_s]
249
- }
250
-
251
- end
252
-
253
- select_options = {:name => @parameter_name, :id => @dom_id, :class => 'custom_dropdown'}
254
-
255
- if @turn_off_select_toggling
256
- select_toggle = ''
257
- else
258
- if self.allow_multiple_selection
259
- select_options[:multiple] = params.is_a?(Array) && params.size > 1
260
- select_toggle = content_tag(:a,
261
- tag(:img, :alt => 'Expand/Collapse', :src => Defaults::TOGGLE_MULTI_SELECT_ICON),
262
- :href => "javascript: toggle_multi_select('#{@dom_id}', this, 'Expand', 'Collapse');", # TO DO: to locales
263
- :class => 'toggle_multi_select_icon', :title => 'Expand')
264
- else
265
- select_options[:multiple] = false
266
- select_toggle = ''
267
- end
268
- end
269
-
270
- if auto_reload
271
- select_options[:class] += ' auto_reload'
272
- end
273
-
274
- params_for_select = (params.is_a?(Hash) && params.empty?) ? [nil] : params
275
-
276
- '<span class="custom_dropdown_container">'.html_safe_if_necessary +
277
- content_tag(:select,
278
- options_for_select(@custom_filter, params_for_select),
279
- select_options) +
280
- select_toggle.html_safe_if_necessary + '</span>'.html_safe_if_necessary
281
- end
282
-
283
- def yield_declaration_of_column_filter #:nodoc:
284
- %$templates : ['#{@query_without_equals_sign}'],
285
- ids : ['#{@dom_id}'] $
286
- end
287
-
288
- def has_auto_reloading_select? #:nodoc:
289
- auto_reload
290
- end
291
- end
292
-
293
- class ViewColumnBoolean < ViewColumnCustomDropdown #:nodoc:
294
- @@handled_type[:boolean] = self
295
- include ActionView::Helpers::FormOptionsHelper
296
-
297
- attr_accessor :boolean_filter_true_label, :boolean_filter_false_label
298
-
299
- def render_filter_internal(params) #:nodoc:
300
- @custom_filter = {
301
- @filter_all_label => nil,
302
- @boolean_filter_true_label => 't',
303
- @boolean_filter_false_label => 'f'
304
- }
305
-
306
- @turn_off_select_toggling = true
307
- super(params)
308
- end
309
- end
310
-
311
- class ViewColumnDatetime < ViewColumn #:nodoc:
312
- @@handled_type[:datetime] = self
313
- @@handled_type[:timestamp] = self
314
- include ActionView::Helpers::DateHelper
315
- include Wice::JsCalendarHelpers
316
-
317
-
318
- # name_and_id_from_options in Rails Date helper does not substitute '.' with '_'
319
- # like all other simpler form helpers do. Thus, overriding it here.
320
- def name_and_id_from_options(options, type) #:nodoc:
321
- options[:name] = (options[:prefix] || DEFAULT_PREFIX) + (options[:discard_type] ? '' : "[#{type}]")
322
- options[:id] = options[:name].gsub(/([\[\(])|(\]\[)/, '_').gsub(/[\]\)]/, '').gsub(/\./, '_').gsub(/_+/, '_')
323
- end
324
-
325
- @@datetime_chunk_names = %w(year month day hour minute)
326
-
327
- def prepare_for_standard_filter #:nodoc:
328
- x = lambda{|sym|
329
- @@datetime_chunk_names.collect{|datetime_chunk_name|
330
- triple = form_parameter_name_id_and_query(sym => {datetime_chunk_name => ''})
331
- [triple[0], triple[3]]
332
- }
333
- }
334
-
335
- @queris_ids = x.call(:fr) + x.call(:to)
336
-
337
- _, _, @name1, _ = form_parameter_name_id_and_query({:fr => ''})
338
- _, _, @name2, _ = form_parameter_name_id_and_query({:to => ''})
339
- end
340
-
341
-
342
- def prepare_for_calendar_filter #:nodoc:
343
- query, _, @name1, @dom_id = form_parameter_name_id_and_query(:fr => '')
344
- query2, _, @name2, @dom_id2 = form_parameter_name_id_and_query(:to => '')
345
-
346
- @queris_ids = [[query, @dom_id], [query2, @dom_id2] ]
347
- end
348
-
349
-
350
- def render_standard_filter_internal(params) #:nodoc:
351
- '<div class="date-filter">' +
352
- select_datetime(params[:fr], {:include_blank => true, :prefix => @name1}) + '<br/>' +
353
- select_datetime(params[:to], {:include_blank => true, :prefix => @name2}) +
354
- '</div>'
355
- end
356
-
357
- def render_calendar_filter_internal(params) #:nodoc:
358
- html1, js1 = datetime_calendar_prototype(params[:fr], @view,
359
- {:include_blank => true, :prefix => @name1, :id => @dom_id, :fire_event => auto_reload, :grid_name => self.grid.name},
360
- :title => WiceGridNlMessageProvider.get_message(:DATE_SELECTOR_TOOLTIP_FROM))
361
- html2, js2 = datetime_calendar_prototype(params[:to], @view,
362
- {:include_blank => true, :prefix => @name2, :id => @dom_id2, :fire_event => auto_reload, :grid_name => self.grid.name},
363
- :title => WiceGridNlMessageProvider.get_message(:DATE_SELECTOR_TOOLTIP_TO))
364
- [%!<div class="date-filter">#{html1}<br/>#{html2}</div>!, js1 + js2]
365
- end
366
-
367
-
368
- def render_filter_internal(params) #:nodoc:
369
- # falling back to the Rails helpers for Datetime
370
- if helper_style == :standard || Defaults::JS_FRAMEWORK == :jquery
371
- prepare_for_standard_filter
372
- render_standard_filter_internal(params)
373
- else
374
- prepare_for_calendar_filter
375
- render_calendar_filter_internal(params)
376
- end
377
- end
378
-
379
- def yield_declaration_of_column_filter #:nodoc:
380
- %$templates : [ #{@queris_ids.collect{|tuple| "'" + tuple[0] + "'"}.join(', ')} ],
381
- ids : [ #{@queris_ids.collect{|tuple| "'" + tuple[1] + "'"}.join(', ')} ] $
382
- end
383
-
384
- def has_auto_reloading_calendar? #:nodoc:
385
- auto_reload && helper_style == :calendar
386
- end
387
-
388
- end
389
-
390
- class ViewColumnDate < ViewColumnDatetime #:nodoc:
391
- @@handled_type[:date] = self
392
-
393
- @@datetime_chunk_names = %w(year month day)
394
-
395
- def render_standard_filter_internal(params) #:nodoc:
396
- '<div class="date-filter">' +
397
- select_date(params[:fr], {:include_blank => true, :prefix => @name1, :id => @dom_id}) + '<br/>' +
398
- select_date(params[:to], {:include_blank => true, :prefix => @name2, :id => @dom_id2}) +
399
- '</div>'
400
- end
401
-
402
- def render_calendar_filter_internal(params) #:nodoc:
403
-
404
- calendar_helper_method = if Wice::ConfigurationProvider.value_for(:JS_FRAMEWORK) == :prototype
405
- :date_calendar_prototype
406
- else
407
- :date_calendar_jquery
408
- end
409
-
410
- html1, js1 = send(calendar_helper_method, params[:fr], @view,
411
- {:include_blank => true, :prefix => @name1, :fire_event => auto_reload, :grid_name => self.grid.name},
412
- :title => WiceGridNlMessageProvider.get_message(:DATE_SELECTOR_TOOLTIP_FROM))
413
- html2, js2 = send(calendar_helper_method, params[:to], @view,
414
- {:include_blank => true, :prefix => @name2, :fire_event => auto_reload, :grid_name => self.grid.name},
415
- :title => WiceGridNlMessageProvider.get_message(:DATE_SELECTOR_TOOLTIP_TO))
416
-
417
- [%!<div class="date-filter">#{html1}<br/>#{html2}</div>!, js1 + js2]
418
- end
419
-
420
- def render_filter_internal(params) #:nodoc:
421
-
422
- if helper_style == :standard
423
- prepare_for_standard_filter
424
- render_standard_filter_internal(params)
425
- else
426
- prepare_for_calendar_filter
427
- render_calendar_filter_internal(params)
428
- end
429
- end
430
- end
431
-
432
- class ViewColumnString < ViewColumn #:nodoc:
433
- @@handled_type[:string] = self
434
- @@handled_type[:text] = self
435
-
436
- attr_accessor :negation, :auto_reloading_input_with_negation_checkbox
437
-
438
- def render_filter_internal(params) #:nodoc:
439
- @contains_a_text_input = true
440
- css_class = auto_reload ? 'auto_reload' : nil
441
-
442
- if negation
443
- self.auto_reloading_input_with_negation_checkbox = true if auto_reload
444
-
445
- @query, _, parameter_name, @dom_id = form_parameter_name_id_and_query(:v => '')
446
- @query2, _, parameter_name2, @dom_id2 = form_parameter_name_id_and_query(:n => '')
447
-
448
- '<div class="text_filter_container">' +
449
- text_field_tag(parameter_name, params[:v], :size => 8, :id => @dom_id, :class => css_class) +
450
- if defined?(Wice::Defaults::NEGATION_CHECKBOX_LABEL) && ! Wice::ConfigurationProvider.value_for(:NEGATION_CHECKBOX_LABEL).blank?
451
- Wice::ConfigurationProvider.value_for(:NEGATION_CHECKBOX_LABEL)
452
- else
453
- ''
454
- end +
455
- check_box_tag(parameter_name2, '1', (params[:n] == '1'),
456
- :id => @dom_id2,
457
- :title => WiceGridNlMessageProvider.get_message(:NEGATION_CHECKBOX_TITLE),
458
- :class => 'negation_checkbox') +
459
- '</div>'
460
- else
461
- @query, _, parameter_name, @dom_id = form_parameter_name_id_and_query('')
462
- text_field_tag(parameter_name, (params.blank? ? '' : params), :size => 8, :id => @dom_id, :class => css_class)
463
- end
464
- end
465
-
466
- def yield_declaration_of_column_filter #:nodoc:
467
- if negation
468
- %$templates : ['#{@query}', '#{@query2}'],
469
- ids : ['#{@dom_id}', '#{@dom_id2}'] $
470
- else
471
- %$templates : ['#{@query}'],
472
- ids : ['#{@dom_id}'] $
473
- end
474
- end
475
-
476
- def has_auto_reloading_input? #:nodoc:
477
- auto_reload
478
- end
479
-
480
- def auto_reloading_input_with_negation_checkbox? #:nodoc:
481
- self.auto_reloading_input_with_negation_checkbox
482
- end
483
-
484
- end
485
176
 
486
177
  end