wice_grid_mongoid 0.5.7 → 6.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +4 -1
- data/Gemfile +17 -0
- data/Gemfile.lock +140 -0
- data/README.rdoc +19 -3
- data/Rakefile +1 -3
- data/VERSION +1 -1
- data/lib/filter_conditions_generators.rb +126 -0
- data/{generators/wice_grid_assets_prototype/templates/stylesheets → lib/generators/wice_grid/templates}/calendarview.css +0 -0
- data/{generators/wice_grid_assets_prototype/templates/javascripts → lib/generators/wice_grid/templates}/calendarview.js +0 -0
- data/{generators/common_templates → lib/generators/wice_grid/templates}/icons/arrow_down.gif +0 -0
- data/{generators/common_templates → lib/generators/wice_grid/templates}/icons/arrow_up.gif +0 -0
- data/{generators/common_templates → lib/generators/wice_grid/templates}/icons/calendar_view_month.png +0 -0
- data/{generators/common_templates → lib/generators/wice_grid/templates}/icons/delete.png +0 -0
- data/{generators/common_templates → lib/generators/wice_grid/templates}/icons/expand.png +0 -0
- data/{generators/common_templates → lib/generators/wice_grid/templates}/icons/page_white_excel.png +0 -0
- data/{generators/common_templates → lib/generators/wice_grid/templates}/icons/page_white_find.png +0 -0
- data/{generators/common_templates → lib/generators/wice_grid/templates}/icons/table.png +0 -0
- data/{generators/common_templates → lib/generators/wice_grid/templates}/icons/table_refresh.png +0 -0
- data/{generators/common_templates → lib/generators/wice_grid/templates}/icons/tick_all.png +0 -0
- data/{generators/common_templates → lib/generators/wice_grid/templates}/icons/untick_all.png +0 -0
- data/{generators/common_templates/stylesheets → lib/generators/wice_grid/templates}/wice_grid.css +0 -0
- data/{generators/common_templates/locales → lib/generators/wice_grid/templates}/wice_grid.yml +0 -0
- data/{generators/common_templates/initializers → lib/generators/wice_grid/templates}/wice_grid_config.rb +0 -0
- data/{generators/wice_grid_assets_jquery/templates/javascripts → lib/generators/wice_grid/templates}/wice_grid_jquery.js +0 -0
- data/{generators/wice_grid_assets_prototype/templates/javascripts → lib/generators/wice_grid/templates}/wice_grid_prototype.js +0 -0
- data/lib/generators/wice_grid/wice_grid_assets_jquery_generator.rb +32 -0
- data/lib/generators/wice_grid/wice_grid_assets_prototype_generator.rb +34 -0
- data/lib/grid_renderer.rb +36 -20
- data/lib/helpers/js_calendar_helpers.rb +0 -5
- data/lib/helpers/wice_grid_view_helpers.rb +113 -133
- data/lib/mongoid_field.rb +50 -0
- data/{tasks → lib/tasks}/wice_grid_tasks.rake +0 -0
- data/lib/view_columns.rb +23 -29
- data/lib/wice_grid.rb +91 -379
- data/lib/wice_grid_misc.rb +3 -3
- data/mongoid_wice_grid.gemspec +122 -0
- data/test/blueprint.rb +17 -0
- data/test/public/javascripts/jquery-1.4.2.min.js +154 -0
- data/test/public/javascripts/wice_grid.js +163 -0
- data/test/rails_mongoid_test.rb +104 -0
- data/test/rails_test_app.rb +71 -0
- data/test/require_gems.rb +19 -0
- data/test/spec_helper.rb +22 -0
- data/test/wice_grid_initializer.rb +215 -0
- data/wice_grid_mongoid.gemspec +43 -30
- metadata +45 -34
- data/generators/wice_grid_assets_jquery/templates/USAGE +0 -6
- data/generators/wice_grid_assets_jquery/wice_grid_assets_jquery_generator.rb +0 -35
- data/generators/wice_grid_assets_prototype/USAGE +0 -8
- data/generators/wice_grid_assets_prototype/wice_grid_assets_prototype_generator.rb +0 -37
- data/init.rb +0 -1
- data/install.rb +0 -1
- data/lib/table_column_matrix.rb +0 -51
- data/uninstall.rb +0 -1
@@ -116,7 +116,7 @@ module Wice
|
|
116
116
|
if grid.output_buffer
|
117
117
|
if grid.output_buffer == true
|
118
118
|
raise WiceGridException.new("Second occurence of grid helper with the same grid object. " +
|
119
|
-
|
119
|
+
"Did you intend to use detached filters and forget to define them?")
|
120
120
|
else
|
121
121
|
return grid.output_buffer
|
122
122
|
end
|
@@ -199,12 +199,12 @@ module Wice
|
|
199
199
|
buff = GridOutputBuffer.new
|
200
200
|
|
201
201
|
buff << if rendering.blank_slate_handler.is_a?(Proc)
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
202
|
+
call_block_as_erb_or_ruby(rendering, rendering.blank_slate_handler, nil)
|
203
|
+
elsif rendering.blank_slate_handler.is_a?(Hash)
|
204
|
+
render(rendering.blank_slate_handler)
|
205
|
+
else
|
206
|
+
rendering.blank_slate_handler
|
207
|
+
end
|
208
208
|
|
209
209
|
if rendering.find_one_for(:in_html){|column| column.detach_with_id}
|
210
210
|
buff.stubborn_output_mode = true
|
@@ -268,10 +268,10 @@ module Wice
|
|
268
268
|
# first row of column labels with sorting links
|
269
269
|
|
270
270
|
filter_shown = if options[:show_filters] == :when_filtered
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
271
|
+
grid.filtering_on?
|
272
|
+
elsif options[:show_filters] == :always
|
273
|
+
true
|
274
|
+
end
|
275
275
|
|
276
276
|
cached_javascript = []
|
277
277
|
|
@@ -295,28 +295,27 @@ module Wice
|
|
295
295
|
direction = 'desc' if grid.order_direction == 'asc'
|
296
296
|
end
|
297
297
|
|
298
|
-
col_link = link_to(
|
299
|
-
|
300
|
-
|
301
|
-
:class => link_style)
|
298
|
+
col_link = link_to(column_name,
|
299
|
+
rendering.column_link(column, direction, params, options[:extra_request_parameters]),
|
300
|
+
:class => link_style)
|
302
301
|
content << content_tag(:th, col_link, Hash.make_hash(:class, css_class))
|
303
302
|
column.css_class = css_class
|
304
303
|
else
|
305
304
|
if reuse_last_column_for_filter_buttons && last
|
306
305
|
content << content_tag(:th,
|
307
|
-
|
308
|
-
|
309
|
-
|
306
|
+
hide_show_icon(filter_row_id, grid, filter_shown, no_filter_row, options[:show_filters], rendering),
|
307
|
+
:class => 'hide_show_icon'
|
308
|
+
)
|
310
309
|
else
|
311
|
-
content << content_tag(:th, column_name)
|
310
|
+
content << content_tag(:th, (column.icon ? image_tag("/images/icons/grid/#{column.icon}", :alt => column_name, :border => 0) : column_name))
|
312
311
|
end
|
313
312
|
end
|
314
313
|
end
|
315
314
|
|
316
315
|
content << content_tag(:th,
|
317
|
-
|
318
|
-
|
319
|
-
|
316
|
+
hide_show_icon(filter_row_id, grid, filter_shown, no_filter_row, options[:show_filters], rendering),
|
317
|
+
:class => 'hide_show_icon'
|
318
|
+
) unless no_rightmost_column
|
320
319
|
|
321
320
|
content << '</tr>'
|
322
321
|
# rendering first row end
|
@@ -346,7 +345,6 @@ module Wice
|
|
346
345
|
|
347
346
|
rendering.each_column_aware_of_one_last_one(:in_html) do |column, last|
|
348
347
|
if column.filter_shown?
|
349
|
-
|
350
348
|
filter_html_code, filter_js_code = column.render_filter
|
351
349
|
filter_html_code = filter_html_code.html_safe_if_necessary
|
352
350
|
cached_javascript << filter_js_code
|
@@ -360,9 +358,9 @@ module Wice
|
|
360
358
|
else
|
361
359
|
if reuse_last_column_for_filter_buttons && last
|
362
360
|
content << content_tag(:th,
|
363
|
-
|
364
|
-
|
365
|
-
|
361
|
+
reset_submit_buttons(options, grid, rendering),
|
362
|
+
Hash.make_hash(:class, column.css_class).add_or_append_class_value!('filter_icons')
|
363
|
+
)
|
366
364
|
else
|
367
365
|
content << content_tag(:th, '', Hash.make_hash(:class, column.css_class))
|
368
366
|
end
|
@@ -382,6 +380,7 @@ module Wice
|
|
382
380
|
end
|
383
381
|
|
384
382
|
content << '</thead><tfoot>'
|
383
|
+
|
385
384
|
content << rendering.pagination_panel(no_rightmost_column, options[:hide_csv_button]) do
|
386
385
|
if pagination_panel_content_html
|
387
386
|
pagination_panel_content_html
|
@@ -402,16 +401,16 @@ module Wice
|
|
402
401
|
grid.each do |ar| # rows
|
403
402
|
|
404
403
|
before_row_output = if rendering.before_row_handler
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
|
404
|
+
call_block_as_erb_or_ruby(rendering, rendering.before_row_handler, ar)
|
405
|
+
else
|
406
|
+
nil
|
407
|
+
end
|
409
408
|
|
410
409
|
after_row_output = if rendering.after_row_handler
|
411
|
-
|
412
|
-
|
413
|
-
|
414
|
-
|
410
|
+
call_block_as_erb_or_ruby(rendering, rendering.after_row_handler, ar)
|
411
|
+
else
|
412
|
+
nil
|
413
|
+
end
|
415
414
|
|
416
415
|
row_content = ''
|
417
416
|
rendering.each_column(:in_html) do |column|
|
@@ -420,23 +419,23 @@ module Wice
|
|
420
419
|
opts = column.td_html_attrs.clone
|
421
420
|
|
422
421
|
column_block_output = if column.class == Wice::ActionViewColumn
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
422
|
+
cell_block.call(ar, params)
|
423
|
+
else
|
424
|
+
call_block_as_erb_or_ruby(rendering, cell_block, ar)
|
425
|
+
end
|
427
426
|
|
428
427
|
if column_block_output.kind_of?(Array)
|
429
428
|
|
430
429
|
unless column_block_output.size == 2
|
431
430
|
raise WiceGridArgumentError.new('When WiceGrid column block returns an array it is expected to contain 2 elements only - '+
|
432
|
-
|
431
|
+
'the first is the contents of the table cell and the second is a hash containing HTML attributes for the <td> tag.')
|
433
432
|
end
|
434
433
|
|
435
434
|
column_block_output, additional_opts = column_block_output
|
436
435
|
|
437
436
|
unless additional_opts.is_a?(Hash)
|
438
437
|
raise WiceGridArgumentError.new('When WiceGrid column block returns an array its second element is expected to be a ' +
|
439
|
-
|
438
|
+
"hash containing HTML attributes for the <td> tag. The returned value is #{additional_opts.inspect}. Read documentation.")
|
440
439
|
end
|
441
440
|
|
442
441
|
additional_css_class = nil
|
@@ -476,6 +475,8 @@ module Wice
|
|
476
475
|
end
|
477
476
|
|
478
477
|
content << '</tbody></table></div>'
|
478
|
+
|
479
|
+
content << link_to( "More ▼".html_safe, rendering.more_link(controller, options[:extra_request_parameters]), :id => 'more') if grid.has_more_to_show?
|
479
480
|
|
480
481
|
base_link_for_filter, base_link_for_show_all_records = rendering.base_link_for_filter(controller, options[:extra_request_parameters])
|
481
482
|
|
@@ -485,18 +486,18 @@ module Wice
|
|
485
486
|
parameter_name_for_focus = {grid.name => {:foc => ''}}.to_query
|
486
487
|
|
487
488
|
prototype_and_js_version_check = if ENV['RAILS_ENV'] == 'development'
|
488
|
-
|
489
|
-
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
|
489
|
+
%$ if (typeof(WiceGridProcessor) == "undefined"){\n$ +
|
490
|
+
%$ alert('wice_grid.js not loaded, WiceGrid cannot proceed! ' +\n$ +
|
491
|
+
%$ 'Please make sure that you include WiceGrid javascript in your page. ' +\n$ +
|
492
|
+
%$ 'Use <%= include_wice_grid_assets %> or <%= include_wice_grid_assets(:include_calendar => true) %> ' +\n$ +
|
493
|
+
%$ 'for WiceGrid javascripts and assets.')\n$ +
|
494
|
+
%$ } else if ((typeof(WiceGridProcessor._version) == "undefined") || ( WiceGridProcessor._version != "0.4.3")) {\n$ +
|
495
|
+
%$ alert("wice_grid.js in your /public is outdated, please run\\n ./script/generate wice_grid_assets_jquery\\n$ +
|
496
|
+
%$ or\\n ./script/generate wice_grid_assets_prototype\\nto update it.");\n$ +
|
497
|
+
%$ }\n$
|
498
|
+
else
|
499
|
+
''
|
500
|
+
end
|
500
501
|
|
501
502
|
if rendering.show_hide_button_present
|
502
503
|
cached_javascript << JsAdaptor.show_hide_button_initialization(grid.name, filter_row_id)
|
@@ -539,21 +540,21 @@ module Wice
|
|
539
540
|
end
|
540
541
|
|
541
542
|
content << javascript_tag(
|
542
|
-
|
543
|
-
|
544
|
-
|
545
|
-
|
546
|
-
|
547
|
-
|
548
|
-
|
549
|
-
|
550
|
-
|
551
|
-
|
552
|
-
|
553
|
-
|
554
|
-
|
555
|
-
|
556
|
-
|
543
|
+
JsAdaptor.dom_loaded +
|
544
|
+
%/ #{prototype_and_js_version_check}\n/ +
|
545
|
+
%/ window['#{grid.name}'] = new WiceGridProcessor('#{grid.name}', '#{base_link_for_filter}',\n/ +
|
546
|
+
%/ '#{base_link_for_show_all_records}', '#{link_for_export}', '#{parameter_name_for_query_loading}',\n/ +
|
547
|
+
%/ '#{parameter_name_for_focus}', '#{ENV['RAILS_ENV']}');\n/ +
|
548
|
+
if no_filters_at_all
|
549
|
+
''
|
550
|
+
else
|
551
|
+
rendering.select_for(:in_html) do |vc|
|
552
|
+
vc.attribute_name and not vc.no_filter
|
553
|
+
end.collect{|column| column.yield_javascript}.join("\n")
|
554
|
+
end +
|
555
|
+
"\n" + cached_javascript.compact.join('') +
|
556
|
+
'})'
|
557
|
+
)
|
557
558
|
|
558
559
|
if content.stubborn_output_mode
|
559
560
|
grid.output_buffer = content
|
@@ -582,25 +583,25 @@ module Wice
|
|
582
583
|
filter_tooltip = WiceGridNlMessageProvider.get_message(:HIDE_FILTER_TOOLTIP)
|
583
584
|
|
584
585
|
hide_icon = content_tag(:span,
|
585
|
-
|
586
|
-
|
587
|
-
|
588
|
-
|
589
|
-
|
590
|
-
|
591
|
-
|
586
|
+
image_tag(Defaults::SHOW_HIDE_FILTER_ICON,
|
587
|
+
:title => filter_tooltip,
|
588
|
+
:alt => filter_tooltip),
|
589
|
+
:id => grid_name + '_hide_icon',
|
590
|
+
:style => styles[0],
|
591
|
+
:class => 'clickable'
|
592
|
+
)
|
592
593
|
|
593
594
|
|
594
595
|
filter_tooltip = WiceGridNlMessageProvider.get_message(:SHOW_FILTER_TOOLTIP)
|
595
596
|
|
596
597
|
show_icon = content_tag(:span,
|
597
|
-
|
598
|
-
|
599
|
-
|
600
|
-
|
601
|
-
|
602
|
-
|
603
|
-
|
598
|
+
image_tag(Defaults::SHOW_HIDE_FILTER_ICON,
|
599
|
+
:title => filter_tooltip,
|
600
|
+
:alt => filter_tooltip),
|
601
|
+
:id => grid_name + '_show_icon',
|
602
|
+
:style => styles[1],
|
603
|
+
:class => 'clickable'
|
604
|
+
)
|
604
605
|
|
605
606
|
hide_icon + show_icon
|
606
607
|
end
|
@@ -608,19 +609,19 @@ module Wice
|
|
608
609
|
|
609
610
|
def reset_submit_buttons(options, grid, rendering) #:nodoc:
|
610
611
|
(if options[:hide_submit_button]
|
611
|
-
|
612
|
-
|
613
|
-
|
614
|
-
|
615
|
-
|
616
|
-
|
617
|
-
|
618
|
-
|
619
|
-
|
620
|
-
|
621
|
-
|
622
|
-
|
623
|
-
|
612
|
+
''
|
613
|
+
else
|
614
|
+
rendering.submit_button_present = true
|
615
|
+
filter_tooltip = WiceGridNlMessageProvider.get_message(:FILTER_TOOLTIP)
|
616
|
+
image_tag(Defaults::FILTER_ICON, :title => filter_tooltip, :alt => filter_tooltip, :class => 'submit clickable')
|
617
|
+
end + ' ' +
|
618
|
+
if options[:hide_reset_button]
|
619
|
+
''
|
620
|
+
else
|
621
|
+
rendering.reset_button_present = true
|
622
|
+
filter_tooltip = WiceGridNlMessageProvider.get_message(:RESET_FILTER_TOOLTIP)
|
623
|
+
image_tag(Defaults::RESET_ICON, :title => filter_tooltip, :alt => filter_tooltip, :class => 'reset clickable')
|
624
|
+
end).html_safe_if_necessary
|
624
625
|
end
|
625
626
|
|
626
627
|
# Renders a detached filter. The parameters are:
|
@@ -635,7 +636,7 @@ module Wice
|
|
635
636
|
end
|
636
637
|
if grid.output_buffer == true
|
637
638
|
raise WiceGridArgumentError.new("grid_filter: You have defined no detached filters, or you try use detached filters with" +
|
638
|
-
|
639
|
+
":show_filters => :no (set :show_filters to :always in this case). Read about detached filters in the documentation.")
|
639
640
|
end
|
640
641
|
|
641
642
|
content_tag :span, grid.output_buffer.filter_for(filter_key), :class => "#{grid.name}_detached_filter"
|
@@ -672,8 +673,6 @@ module Wice
|
|
672
673
|
|
673
674
|
|
674
675
|
def grid_csv(grid, rendering) #:nodoc:
|
675
|
-
|
676
|
-
|
677
676
|
field_separator = (grid.export_to_csv_enabled && grid.export_to_csv_enabled.is_a?(String)) ? grid.export_to_csv_enabled : ','
|
678
677
|
spreadsheet = ::Wice::Spreadsheet.new(grid.name, field_separator)
|
679
678
|
|
@@ -708,13 +707,14 @@ module Wice
|
|
708
707
|
end
|
709
708
|
|
710
709
|
html, js = pagination_info(grid, allow_showing_all_records)
|
711
|
-
|
712
|
-
|
713
|
-
|
714
|
-
|
715
|
-
|
716
|
-
|
717
|
-
|
710
|
+
'<div class="pagination_status">' + html + '</div>'
|
711
|
+
|
712
|
+
# [will_paginate(grid.resultset,
|
713
|
+
# :previous_label => WiceGridNlMessageProvider.get_message(:PREVIOUS_LABEL),
|
714
|
+
# :next_label => WiceGridNlMessageProvider.get_message(:NEXT_LABEL),
|
715
|
+
# :param_name => "#{grid.name}[page]",
|
716
|
+
# :params => extra_request_parameters).to_s +
|
717
|
+
# (' <div class="pagination_status">' + html + '</div>').html_safe_if_necessary, js]
|
718
718
|
end
|
719
719
|
|
720
720
|
|
@@ -747,35 +747,15 @@ module Wice
|
|
747
747
|
end
|
748
748
|
|
749
749
|
def pagination_info(grid, allow_showing_all_records) #:nodoc:
|
750
|
-
|
751
|
-
|
752
|
-
|
753
|
-
|
754
|
-
|
755
|
-
|
756
|
-
|
757
|
-
|
758
|
-
'0'
|
759
|
-
else
|
760
|
-
parameters << ["#{grid.name}[pp]", collection_total_entries_str]
|
761
|
-
|
762
|
-
"#{collection.offset + 1}-#{collection.offset + collection.length} / #{collection_total_entries_str} " +
|
763
|
-
if (! allow_showing_all_records) || collection_total_entries <= collection.length
|
764
|
-
''
|
765
|
-
else
|
766
|
-
res, js = show_all_link(collection_total_entries, parameters, grid.name)
|
767
|
-
res
|
768
|
-
end
|
769
|
-
end +
|
770
|
-
if grid.all_record_mode?
|
771
|
-
res, js = back_to_pagination_link(parameters, grid.name)
|
772
|
-
res
|
773
|
-
else
|
774
|
-
''
|
775
|
-
end
|
776
|
-
|
777
|
-
[html, js]
|
750
|
+
found = grid.resultset.count
|
751
|
+
total = grid.klass.count
|
752
|
+
shown = [found, grid.status[:per_page].to_i].min
|
753
|
+
summary = ""
|
754
|
+
summary << "Shown: #{shown}"
|
755
|
+
summary << ", Found: #{found}" if grid.has_any_filter_criteria?
|
756
|
+
summary << ", Total: #{total}"
|
757
|
+
[summary, ""]
|
778
758
|
end
|
779
759
|
|
780
760
|
end
|
781
|
-
end
|
761
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require 'filter_conditions_generators'
|
2
|
+
|
3
|
+
module Wice
|
4
|
+
# to be mixed in into Mongoid::Field
|
5
|
+
module MongoidField
|
6
|
+
def wice_add_filter_criteria(all_filter_params, criteria, custom_filter_active) #:nodoc:
|
7
|
+
request_params = all_filter_params ? all_filter_params[name] : nil
|
8
|
+
return nil unless request_params
|
9
|
+
|
10
|
+
# Preprocess incoming parameters for datetime, if what's coming in is
|
11
|
+
# a datetime (with custom_filter it can be anything else, and not
|
12
|
+
# the datetime hash {"fr" => ..., "to" => ...})
|
13
|
+
if (self.type == Time) && request_params.is_a?(Hash)
|
14
|
+
["fr", "to"].each do |sym|
|
15
|
+
if request_params[sym]
|
16
|
+
if request_params[sym].is_a?(String)
|
17
|
+
request_params[sym] = Time.parse(Wice::Defaults::DATETIME_PARSER.call(request_params[sym]).to_s)
|
18
|
+
elsif request_params[sym].is_a?(Hash)
|
19
|
+
request_params[sym] = Time.parse(::Wice::GridTools.params_2_datetime(request_params[sym]).to_s)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
# Preprocess incoming parameters for date, if what's coming in is
|
26
|
+
# a date (with custom_filter it can be anything else, and not
|
27
|
+
# the date hash {"fr" => ..., "to" => ...})
|
28
|
+
if self.type == Date && request_params.is_a?(Hash)
|
29
|
+
["fr", "to"].each do |sym|
|
30
|
+
if request_params[sym]
|
31
|
+
if request_params[sym].is_a?(String)
|
32
|
+
request_params[sym] = Wice::Defaults::DATE_PARSER.call(request_params[sym]).to_time
|
33
|
+
elsif request_params[sym].is_a?(Hash)
|
34
|
+
request_params[sym] = ::Wice::GridTools.params_2_date(request_params[sym]).to_time
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
processor_klass = ::Wice::FilterConditionsGeneratorCustomFilter if custom_filter_active
|
41
|
+
processor_klass = ::Wice::FilterConditionsGenerator.handled_type[self.type] unless processor_klass
|
42
|
+
unless processor_klass
|
43
|
+
Wice.log("No processor for database type #{self.type}!!!")
|
44
|
+
return nil
|
45
|
+
end
|
46
|
+
processor_klass.new(self, criteria).generate_conditions(request_params)
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
end
|
File without changes
|
data/lib/view_columns.rb
CHANGED
@@ -8,7 +8,7 @@ module Wice
|
|
8
8
|
include ActionView::Helpers::AssetTagHelper
|
9
9
|
|
10
10
|
# fields defined from the options parameter
|
11
|
-
FIELDS = [:attribute_name, :column_name, :td_html_attrs, :no_filter, :model_class, :allow_multiple_selection,
|
11
|
+
FIELDS = [:attribute_name, :column_name, :icon, :td_html_attrs, :no_filter, :model_class, :allow_multiple_selection,
|
12
12
|
:in_html, :in_csv, :helper_style, :table_alias, :custom_order, :detach_with_id, :allow_ordering, :auto_reload]
|
13
13
|
|
14
14
|
attr_accessor *FIELDS
|
@@ -26,7 +26,7 @@ module Wice
|
|
26
26
|
@view = view
|
27
27
|
|
28
28
|
FIELDS.each do |field|
|
29
|
-
self.send(field
|
29
|
+
self.send("#{field}=", options[field])
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
@@ -58,6 +58,15 @@ module Wice
|
|
58
58
|
end
|
59
59
|
end
|
60
60
|
|
61
|
+
|
62
|
+
def config
|
63
|
+
@view.config
|
64
|
+
end
|
65
|
+
|
66
|
+
def controller
|
67
|
+
@view.controller
|
68
|
+
end
|
69
|
+
|
61
70
|
def render_filter #:nodoc:
|
62
71
|
params = @grid.filter_params(self)
|
63
72
|
res = render_filter_internal(params)
|
@@ -76,16 +85,6 @@ module Wice
|
|
76
85
|
return query, query_without_equals_sign, parameter_name, dom_id.tr('.', '_')
|
77
86
|
end
|
78
87
|
|
79
|
-
# bad name, because for the main table the name is not really 'fully_qualified'
|
80
|
-
def attribute_name_fully_qualified_for_all_but_main_table_columns #:nodoc:
|
81
|
-
self.main_table ? attribute_name : table_alias_or_table_name + '.' + attribute_name
|
82
|
-
end
|
83
|
-
|
84
|
-
def fully_qualified_attribute_name #:nodoc:
|
85
|
-
table_alias_or_table_name + '.' + attribute_name
|
86
|
-
end
|
87
|
-
|
88
|
-
|
89
88
|
def filter_shown? #:nodoc:
|
90
89
|
self.attribute_name && ! self.no_filter
|
91
90
|
end
|
@@ -93,12 +92,7 @@ module Wice
|
|
93
92
|
def filter_shown_in_main_table? #:nodoc:
|
94
93
|
filter_shown? && ! self.detach_with_id
|
95
94
|
end
|
96
|
-
|
97
|
-
|
98
|
-
def table_alias_or_table_name #:nodoc:
|
99
|
-
table_alias || table_name
|
100
|
-
end
|
101
|
-
|
95
|
+
|
102
96
|
def capable_of_hosting_filter_related_icons? #:nodoc:
|
103
97
|
self.attribute_name.blank? && self.column_name.blank? && ! self.filter_shown?
|
104
98
|
end
|
@@ -122,7 +116,7 @@ module Wice
|
|
122
116
|
protected
|
123
117
|
|
124
118
|
def form_parameter_template(v) #:nodoc:
|
125
|
-
{@grid.name => {:f => {self.
|
119
|
+
{@grid.name => {:f => {self.attribute_name => v}}}.to_query
|
126
120
|
end
|
127
121
|
|
128
122
|
def form_parameter_name(v) #:nodoc:
|
@@ -185,7 +179,7 @@ module Wice
|
|
185
179
|
end
|
186
180
|
|
187
181
|
class ViewColumnInteger < ViewColumn #:nodoc:
|
188
|
-
@@handled_type[
|
182
|
+
@@handled_type[Integer] = self
|
189
183
|
|
190
184
|
def render_filter_internal(params) #:nodoc:
|
191
185
|
@contains_a_text_input = true
|
@@ -216,8 +210,8 @@ module Wice
|
|
216
210
|
end
|
217
211
|
|
218
212
|
class ViewColumnFloat < ViewColumnInteger #:nodoc:
|
219
|
-
@@handled_type[
|
220
|
-
@@handled_type[
|
213
|
+
@@handled_type[BigDecimal] = self
|
214
|
+
@@handled_type[Float] = self
|
221
215
|
end
|
222
216
|
|
223
217
|
class ViewColumnCustomDropdown < ViewColumn #:nodoc:
|
@@ -277,7 +271,7 @@ module Wice
|
|
277
271
|
end
|
278
272
|
|
279
273
|
class ViewColumnBoolean < ViewColumnCustomDropdown #:nodoc:
|
280
|
-
@@handled_type[
|
274
|
+
@@handled_type[Boolean] = self
|
281
275
|
include ActionView::Helpers::FormOptionsHelper
|
282
276
|
|
283
277
|
attr_accessor :boolean_filter_true_label, :boolean_filter_false_label
|
@@ -292,8 +286,8 @@ module Wice
|
|
292
286
|
end
|
293
287
|
|
294
288
|
class ViewColumnDatetime < ViewColumn #:nodoc:
|
295
|
-
@@handled_type[
|
296
|
-
@@handled_type[
|
289
|
+
@@handled_type[DateTime] = self
|
290
|
+
@@handled_type[Time] = self
|
297
291
|
include ActionView::Helpers::DateHelper
|
298
292
|
include Wice::JsCalendarHelpers
|
299
293
|
|
@@ -371,7 +365,7 @@ module Wice
|
|
371
365
|
end
|
372
366
|
|
373
367
|
class ViewColumnDate < ViewColumnDatetime #:nodoc:
|
374
|
-
@@handled_type[
|
368
|
+
@@handled_type[Date] = self
|
375
369
|
|
376
370
|
@@datetime_chunk_names = %w(year month day)
|
377
371
|
|
@@ -413,8 +407,8 @@ module Wice
|
|
413
407
|
end
|
414
408
|
|
415
409
|
class ViewColumnString < ViewColumn #:nodoc:
|
416
|
-
@@handled_type[
|
417
|
-
@@handled_type[:text] = self
|
410
|
+
@@handled_type[String] = self
|
411
|
+
# @@handled_type[:text] = self
|
418
412
|
|
419
413
|
attr_accessor :negation, :auto_reloading_input_with_negation_checkbox
|
420
414
|
|
@@ -466,4 +460,4 @@ module Wice
|
|
466
460
|
|
467
461
|
end
|
468
462
|
|
469
|
-
end
|
463
|
+
end
|