wice_grid_mongoid 0.5.7 → 6.0.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|