datagrid 1.3.6 → 1.3.7
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.
- checksums.yaml +4 -4
- data/.travis.yml +1 -0
- data/Gemfile +3 -5
- data/VERSION +1 -1
- data/app/views/datagrid/_range_filter.html.erb +3 -0
- data/datagrid.gemspec +8 -14
- data/lib/datagrid/columns.rb +1 -1
- data/lib/datagrid/filters/extended_boolean_filter.rb +10 -2
- data/lib/datagrid/form_builder.rb +20 -3
- data/lib/datagrid/helper.rb +1 -1
- data/lib/datagrid/locale/en.yml +12 -12
- data/lib/datagrid/ordering.rb +21 -11
- data/spec/datagrid/columns_spec.rb +4 -1
- data/spec/datagrid/drivers/mongo_mapper_spec.rb +1 -1
- data/spec/datagrid/drivers/mongoid_spec.rb +1 -1
- data/spec/datagrid/filters/extended_boolean_filter_spec.rb +10 -0
- data/spec/datagrid/form_builder_spec.rb +8 -12
- data/spec/datagrid/ordering_spec.rb +30 -4
- data/spec/support/locale/{custom_range_format.yml → deprecated_range_format.yml} +0 -0
- metadata +6 -34
- data/lib/datagrid/i18n.rb +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0a5c31c4749036fb87065560c115eedfd90a4c26
|
|
4
|
+
data.tar.gz: afe23674ce0a6092e9a38aef5755327a934d942b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3fc66b0df7f1c502250b47dad4d1f92b56b155d2d4a89e5a04d8fb706565c2438d35b0a84a0776cf7ef93b7221e93b79e69591576d931bfe3bde8cab111db8af
|
|
7
|
+
data.tar.gz: f174e306b193df406d8bd519f7de01f91da7d37431ec7b898ef1bbab6150265054a82de1d256015efd3281d19940f42d689927d41a081ff72226e992f8185d19
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
source "https://rubygems.org"
|
|
2
2
|
|
|
3
|
-
gem "rails", ">= 3.
|
|
3
|
+
gem "rails", ">= 3.2.18"
|
|
4
4
|
|
|
5
5
|
group :development do
|
|
6
6
|
|
|
@@ -8,9 +8,8 @@ group :development do
|
|
|
8
8
|
gem "jeweler"
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
gem "debugger", :platform =>
|
|
12
|
-
gem "byebug", :platform => [
|
|
13
|
-
gem "ruby-debug", :platform => "ruby_18"
|
|
11
|
+
gem "debugger", :platform => :ruby_19
|
|
12
|
+
gem "byebug", :platform => [:ruby_20, :ruby_21, :ruby_22] & Bundler::Dsl::VALID_PLATFORMS
|
|
14
13
|
|
|
15
14
|
gem "rspec", ">= 3"
|
|
16
15
|
gem "nokogiri" # used to test html output
|
|
@@ -24,5 +23,4 @@ group :development do
|
|
|
24
23
|
gem "bson_ext", "1.4.0"
|
|
25
24
|
end
|
|
26
25
|
|
|
27
|
-
gem "fastercsv", :platform => "mri_18"
|
|
28
26
|
end
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.3.
|
|
1
|
+
1.3.7
|
data/datagrid.gemspec
CHANGED
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
|
5
|
-
# stub: datagrid 1.3.
|
|
5
|
+
# stub: datagrid 1.3.7 ruby lib
|
|
6
6
|
|
|
7
7
|
Gem::Specification.new do |s|
|
|
8
8
|
s.name = "datagrid"
|
|
9
|
-
s.version = "1.3.
|
|
9
|
+
s.version = "1.3.7"
|
|
10
10
|
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
12
12
|
s.require_paths = ["lib"]
|
|
13
13
|
s.authors = ["Bogdan Gusiev"]
|
|
14
|
-
s.date = "2015-
|
|
14
|
+
s.date = "2015-03-25"
|
|
15
15
|
s.description = "This allows you to easily build datagrid aka data tables with sortable columns and filters"
|
|
16
16
|
s.email = "agresso@gmail.com"
|
|
17
17
|
s.extra_rdoc_files = [
|
|
@@ -32,6 +32,7 @@ Gem::Specification.new do |s|
|
|
|
32
32
|
"app/views/datagrid/_form.html.erb",
|
|
33
33
|
"app/views/datagrid/_head.html.erb",
|
|
34
34
|
"app/views/datagrid/_order_for.html.erb",
|
|
35
|
+
"app/views/datagrid/_range_filter.html.erb",
|
|
35
36
|
"app/views/datagrid/_row.html.erb",
|
|
36
37
|
"app/views/datagrid/_table.html.erb",
|
|
37
38
|
"datagrid.gemspec",
|
|
@@ -67,7 +68,6 @@ Gem::Specification.new do |s|
|
|
|
67
68
|
"lib/datagrid/filters/string_filter.rb",
|
|
68
69
|
"lib/datagrid/form_builder.rb",
|
|
69
70
|
"lib/datagrid/helper.rb",
|
|
70
|
-
"lib/datagrid/i18n.rb",
|
|
71
71
|
"lib/datagrid/locale/en.yml",
|
|
72
72
|
"lib/datagrid/ordering.rb",
|
|
73
73
|
"lib/datagrid/renderer.rb",
|
|
@@ -103,7 +103,7 @@ Gem::Specification.new do |s|
|
|
|
103
103
|
"spec/spec_helper.rb",
|
|
104
104
|
"spec/support/active_record.rb",
|
|
105
105
|
"spec/support/configuration.rb",
|
|
106
|
-
"spec/support/locale/
|
|
106
|
+
"spec/support/locale/deprecated_range_format.yml",
|
|
107
107
|
"spec/support/locale/deprecated_range_separator.yml",
|
|
108
108
|
"spec/support/matchers.rb",
|
|
109
109
|
"spec/support/mongo_mapper.rb",
|
|
@@ -128,12 +128,11 @@ Gem::Specification.new do |s|
|
|
|
128
128
|
s.specification_version = 4
|
|
129
129
|
|
|
130
130
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
|
131
|
-
s.add_runtime_dependency(%q<rails>, [">= 3.
|
|
131
|
+
s.add_runtime_dependency(%q<rails>, [">= 3.2.18"])
|
|
132
132
|
s.add_development_dependency(%q<bundler>, [">= 0"])
|
|
133
133
|
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
|
134
134
|
s.add_development_dependency(%q<debugger>, [">= 0"])
|
|
135
135
|
s.add_development_dependency(%q<byebug>, [">= 0"])
|
|
136
|
-
s.add_development_dependency(%q<ruby-debug>, [">= 0"])
|
|
137
136
|
s.add_development_dependency(%q<rspec>, [">= 3"])
|
|
138
137
|
s.add_development_dependency(%q<nokogiri>, [">= 0"])
|
|
139
138
|
s.add_development_dependency(%q<sqlite3>, [">= 0"])
|
|
@@ -141,14 +140,12 @@ Gem::Specification.new do |s|
|
|
|
141
140
|
s.add_development_dependency(%q<mongo_mapper>, [">= 0.11.0"])
|
|
142
141
|
s.add_development_dependency(%q<bson>, ["= 1.4.0"])
|
|
143
142
|
s.add_development_dependency(%q<bson_ext>, ["= 1.4.0"])
|
|
144
|
-
s.add_development_dependency(%q<fastercsv>, [">= 0"])
|
|
145
143
|
else
|
|
146
|
-
s.add_dependency(%q<rails>, [">= 3.
|
|
144
|
+
s.add_dependency(%q<rails>, [">= 3.2.18"])
|
|
147
145
|
s.add_dependency(%q<bundler>, [">= 0"])
|
|
148
146
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
|
149
147
|
s.add_dependency(%q<debugger>, [">= 0"])
|
|
150
148
|
s.add_dependency(%q<byebug>, [">= 0"])
|
|
151
|
-
s.add_dependency(%q<ruby-debug>, [">= 0"])
|
|
152
149
|
s.add_dependency(%q<rspec>, [">= 3"])
|
|
153
150
|
s.add_dependency(%q<nokogiri>, [">= 0"])
|
|
154
151
|
s.add_dependency(%q<sqlite3>, [">= 0"])
|
|
@@ -156,15 +153,13 @@ Gem::Specification.new do |s|
|
|
|
156
153
|
s.add_dependency(%q<mongo_mapper>, [">= 0.11.0"])
|
|
157
154
|
s.add_dependency(%q<bson>, ["= 1.4.0"])
|
|
158
155
|
s.add_dependency(%q<bson_ext>, ["= 1.4.0"])
|
|
159
|
-
s.add_dependency(%q<fastercsv>, [">= 0"])
|
|
160
156
|
end
|
|
161
157
|
else
|
|
162
|
-
s.add_dependency(%q<rails>, [">= 3.
|
|
158
|
+
s.add_dependency(%q<rails>, [">= 3.2.18"])
|
|
163
159
|
s.add_dependency(%q<bundler>, [">= 0"])
|
|
164
160
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
|
165
161
|
s.add_dependency(%q<debugger>, [">= 0"])
|
|
166
162
|
s.add_dependency(%q<byebug>, [">= 0"])
|
|
167
|
-
s.add_dependency(%q<ruby-debug>, [">= 0"])
|
|
168
163
|
s.add_dependency(%q<rspec>, [">= 3"])
|
|
169
164
|
s.add_dependency(%q<nokogiri>, [">= 0"])
|
|
170
165
|
s.add_dependency(%q<sqlite3>, [">= 0"])
|
|
@@ -172,7 +167,6 @@ Gem::Specification.new do |s|
|
|
|
172
167
|
s.add_dependency(%q<mongo_mapper>, [">= 0.11.0"])
|
|
173
168
|
s.add_dependency(%q<bson>, ["= 1.4.0"])
|
|
174
169
|
s.add_dependency(%q<bson_ext>, ["= 1.4.0"])
|
|
175
|
-
s.add_dependency(%q<fastercsv>, [">= 0"])
|
|
176
170
|
end
|
|
177
171
|
end
|
|
178
172
|
|
data/lib/datagrid/columns.rb
CHANGED
|
@@ -419,7 +419,7 @@ module Datagrid
|
|
|
419
419
|
instance_eval(&dynamic_block) if dynamic_block
|
|
420
420
|
end
|
|
421
421
|
|
|
422
|
-
# Returns all columns available for current grid configuration
|
|
422
|
+
# Returns all columns available for current grid configuration.
|
|
423
423
|
#
|
|
424
424
|
# class MyGrid
|
|
425
425
|
# filter(:search)
|
|
@@ -16,8 +16,16 @@ class Datagrid::Filters::ExtendedBooleanFilter < Datagrid::Filters::EnumFilter #
|
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
def parse(value)
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
case
|
|
20
|
+
when value == true
|
|
21
|
+
YES
|
|
22
|
+
when value == false
|
|
23
|
+
NO
|
|
24
|
+
when value.blank?
|
|
25
|
+
nil
|
|
26
|
+
else
|
|
27
|
+
super(value)
|
|
28
|
+
end
|
|
21
29
|
end
|
|
22
30
|
|
|
23
31
|
end
|
|
@@ -137,19 +137,36 @@ module Datagrid
|
|
|
137
137
|
from_input = text_field(filter.name, from_options)
|
|
138
138
|
to_input = text_field(filter.name, to_options)
|
|
139
139
|
|
|
140
|
+
format_key = "datagrid.filters.#{type}.range_format"
|
|
141
|
+
separator_key = "datagrid.filters.#{type}.range_separator"
|
|
140
142
|
# 2 inputs: "from date" and "to date" to specify a range
|
|
141
|
-
if
|
|
143
|
+
if I18n.exists?(separator_key)
|
|
142
144
|
# Support deprecated translation option: range_separator
|
|
145
|
+
warn_deprecated_range_localization(separator_key)
|
|
146
|
+
separator = I18n.t(separator_key, default: '').presence
|
|
143
147
|
[from_input, separator, to_input].join.html_safe
|
|
148
|
+
elsif I18n.exists?(format_key)
|
|
149
|
+
# Support deprecated translation option: range_format
|
|
150
|
+
warn_deprecated_range_localization(format_key)
|
|
151
|
+
I18n.t(format_key, :from_input => from_input, :to_input => to_input).html_safe
|
|
144
152
|
else
|
|
145
|
-
# More flexible
|
|
146
|
-
|
|
153
|
+
# More flexible way to render via partial
|
|
154
|
+
@template.render :partial => 'datagrid/range_filter', :locals => {
|
|
155
|
+
:from_options => from_options, :to_options => to_options, :filter => filter, :form => self
|
|
156
|
+
}
|
|
147
157
|
end
|
|
148
158
|
else
|
|
149
159
|
datagrid_default_filter(filter, options)
|
|
150
160
|
end
|
|
151
161
|
end
|
|
152
162
|
|
|
163
|
+
def warn_deprecated_range_localization(key)
|
|
164
|
+
Datagrid::Utils.warn_once(
|
|
165
|
+
"#{key} localization key is deprectated. " +
|
|
166
|
+
"Customize formatting by rake datagrid:copy_partials and editing app/views/datagrid/range_filter partial."
|
|
167
|
+
)
|
|
168
|
+
end
|
|
169
|
+
|
|
153
170
|
def datagrid_range_filter_options(object, filter, type, options)
|
|
154
171
|
type_method_map = {:from => :first, :to => :last}
|
|
155
172
|
options = add_html_classes(options, type)
|
data/lib/datagrid/helper.rb
CHANGED
|
@@ -131,7 +131,7 @@ module Datagrid
|
|
|
131
131
|
end
|
|
132
132
|
|
|
133
133
|
def datagrid_column_classes(grid, column)
|
|
134
|
-
order_class = grid.
|
|
134
|
+
order_class = grid.ordered_by?(column) ? ["ordered", grid.descending ? "desc" : "asc"] : nil
|
|
135
135
|
[column.name, order_class, column.options[:class]].compact.join(" ")
|
|
136
136
|
end
|
|
137
137
|
end
|
data/lib/datagrid/locale/en.yml
CHANGED
|
@@ -10,18 +10,18 @@ en:
|
|
|
10
10
|
search: "Search"
|
|
11
11
|
reset: "Reset"
|
|
12
12
|
filters:
|
|
13
|
-
integer:
|
|
14
|
-
range_format:
|
|
15
|
-
"%{from_input}<span class=\"separator integer\"> - </span>%{to_input}"
|
|
16
|
-
date:
|
|
17
|
-
range_format:
|
|
18
|
-
"%{from_input}<span class=\"separator date\"> - </span>%{to_input}"
|
|
19
|
-
datetime:
|
|
20
|
-
range_format:
|
|
21
|
-
"%{from_input}<span class=\"separator datetime\"> - </span>%{to_input}"
|
|
22
|
-
float:
|
|
23
|
-
range_format:
|
|
24
|
-
"%{from_input}<span class=\"separator float\"> - </span>%{to_input}"
|
|
13
|
+
#integer:
|
|
14
|
+
#range_format:
|
|
15
|
+
#"%{from_input}<span class=\"separator integer\"> - </span>%{to_input}"
|
|
16
|
+
#date:
|
|
17
|
+
#range_format:
|
|
18
|
+
#"%{from_input}<span class=\"separator date\"> - </span>%{to_input}"
|
|
19
|
+
#datetime:
|
|
20
|
+
#range_format:
|
|
21
|
+
#"%{from_input}<span class=\"separator datetime\"> - </span>%{to_input}"
|
|
22
|
+
#float:
|
|
23
|
+
#range_format:
|
|
24
|
+
#"%{from_input}<span class=\"separator float\"> - </span>%{to_input}"
|
|
25
25
|
|
|
26
26
|
xboolean:
|
|
27
27
|
"yes": "Yes"
|
data/lib/datagrid/ordering.rb
CHANGED
|
@@ -11,16 +11,8 @@ module Datagrid
|
|
|
11
11
|
include Datagrid::Columns
|
|
12
12
|
|
|
13
13
|
datagrid_attribute :order do |value|
|
|
14
|
-
|
|
15
|
-
value
|
|
16
|
-
column = column_by_name(value)
|
|
17
|
-
unless column
|
|
18
|
-
self.class.order_unsupported(value, "no column #{value} in #{self.class}")
|
|
19
|
-
end
|
|
20
|
-
unless column.supports_order?
|
|
21
|
-
self.class.order_unsupported(column.name, "column don't support order" )
|
|
22
|
-
end
|
|
23
|
-
value
|
|
14
|
+
if value.present?
|
|
15
|
+
value.to_sym
|
|
24
16
|
else
|
|
25
17
|
nil
|
|
26
18
|
end
|
|
@@ -47,6 +39,7 @@ module Datagrid
|
|
|
47
39
|
module InstanceMethods
|
|
48
40
|
|
|
49
41
|
def assets # :nodoc:
|
|
42
|
+
check_order_valid!
|
|
50
43
|
apply_order(super)
|
|
51
44
|
end
|
|
52
45
|
|
|
@@ -60,7 +53,13 @@ module Datagrid
|
|
|
60
53
|
# MyGrid.new(:order => "name").order_column # => #<Column name: "name", ...>
|
|
61
54
|
#
|
|
62
55
|
def order_column
|
|
63
|
-
column_by_name(order)
|
|
56
|
+
order && column_by_name(order)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# Returns true if given grid is ordered by given column.
|
|
60
|
+
# <tt>column</tt> can be given as name or as column object
|
|
61
|
+
def ordered_by?(column)
|
|
62
|
+
order_column == column_by_name(column)
|
|
64
63
|
end
|
|
65
64
|
|
|
66
65
|
private
|
|
@@ -85,6 +84,17 @@ module Datagrid
|
|
|
85
84
|
end
|
|
86
85
|
end
|
|
87
86
|
|
|
87
|
+
def check_order_valid!
|
|
88
|
+
return unless order
|
|
89
|
+
column = column_by_name(order)
|
|
90
|
+
unless column
|
|
91
|
+
self.class.order_unsupported(order, "no column #{order} in #{self.class}")
|
|
92
|
+
end
|
|
93
|
+
unless column.supports_order?
|
|
94
|
+
self.class.order_unsupported(column.name, "column don't support order" )
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
|
|
88
98
|
def apply_asc_order(assets, order)
|
|
89
99
|
if order.respond_to?(:call)
|
|
90
100
|
apply_block_order(assets, order)
|
|
@@ -212,7 +212,10 @@ describe Datagrid::Columns do
|
|
|
212
212
|
end
|
|
213
213
|
first = Entry.create(:name => '1st')
|
|
214
214
|
second = Entry.create(:name => '2nd')
|
|
215
|
-
expect
|
|
215
|
+
expect do
|
|
216
|
+
report.attributes = {:order => :id}
|
|
217
|
+
report.assets
|
|
218
|
+
end.to raise_error(Datagrid::OrderUnsupported)
|
|
216
219
|
report.attributes = {:order => :name, :descending => true}
|
|
217
220
|
expect(report.assets).to eq([second, first])
|
|
218
221
|
end
|
|
@@ -30,7 +30,17 @@ describe Datagrid::Filters::ExtendedBooleanFilter do
|
|
|
30
30
|
expect(grid.disabled).to eq("NO")
|
|
31
31
|
expect(grid.assets).to include(enabled_entry)
|
|
32
32
|
expect(grid.assets).not_to include(disabled_entry)
|
|
33
|
+
end
|
|
33
34
|
|
|
35
|
+
it "should normalize true/false as YES/NO" do
|
|
36
|
+
grid = test_report do
|
|
37
|
+
scope {Entry}
|
|
38
|
+
filter(:disabled, :xboolean)
|
|
39
|
+
end
|
|
40
|
+
grid.disabled = true
|
|
41
|
+
expect(grid.disabled).to eq("YES")
|
|
42
|
+
grid.disabled = false
|
|
43
|
+
expect(grid.disabled).to eq("NO")
|
|
34
44
|
end
|
|
35
45
|
|
|
36
46
|
end
|
|
@@ -130,12 +130,14 @@ describe Datagrid::FormBuilder do
|
|
|
130
130
|
)}
|
|
131
131
|
end
|
|
132
132
|
|
|
133
|
-
context "when
|
|
133
|
+
context "when deprecated format translation specified" do
|
|
134
134
|
let(:_range) { nil }
|
|
135
135
|
around(:each) do |example|
|
|
136
|
-
I18n.load_path << File.expand_path('../../support/locale/
|
|
136
|
+
I18n.load_path << File.expand_path('../../support/locale/deprecated_range_format.yml', __FILE__)
|
|
137
137
|
I18n.reload!
|
|
138
|
-
|
|
138
|
+
silence_warnings do
|
|
139
|
+
example.run
|
|
140
|
+
end
|
|
139
141
|
I18n.load_path.pop
|
|
140
142
|
I18n.reload!
|
|
141
143
|
end
|
|
@@ -148,7 +150,9 @@ describe Datagrid::FormBuilder do
|
|
|
148
150
|
around(:each) do |example|
|
|
149
151
|
I18n.load_path << File.expand_path('../../support/locale/deprecated_range_separator.yml', __FILE__)
|
|
150
152
|
I18n.reload!
|
|
151
|
-
|
|
153
|
+
silence_warnings do
|
|
154
|
+
example.run
|
|
155
|
+
end
|
|
152
156
|
I18n.load_path.pop
|
|
153
157
|
I18n.reload!
|
|
154
158
|
|
|
@@ -290,14 +294,6 @@ describe Datagrid::FormBuilder do
|
|
|
290
294
|
<option value="second">second</option></select>'
|
|
291
295
|
)}
|
|
292
296
|
end
|
|
293
|
-
context "with checkboxes option" do
|
|
294
|
-
let(:_filter) { :category_with_prompt }
|
|
295
|
-
it { should equal_to_dom(
|
|
296
|
-
'<select class="category_with_prompt enum_filter" id="report_category_with_prompt" name="report[category_with_prompt]"><option value="">My Prompt</option>
|
|
297
|
-
<option value="first">first</option>
|
|
298
|
-
<option value="second">second</option></select>'
|
|
299
|
-
)}
|
|
300
|
-
end
|
|
301
297
|
context "with checkboxes option" do
|
|
302
298
|
let(:_grid) do
|
|
303
299
|
test_report do
|
|
@@ -3,9 +3,9 @@ require 'spec_helper'
|
|
|
3
3
|
describe Datagrid::Ordering do
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
let!(:first) { Entry.create!(:name => "aa")}
|
|
7
|
-
let!(:second) { Entry.create!(:name => "bb")}
|
|
8
6
|
let!(:third) { Entry.create!(:name => "cc")}
|
|
7
|
+
let!(:second) { Entry.create!(:name => "bb")}
|
|
8
|
+
let!(:first) { Entry.create!(:name => "aa")}
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
it "should support order" do
|
|
@@ -30,7 +30,7 @@ describe Datagrid::Ordering do
|
|
|
30
30
|
|
|
31
31
|
it "should raise error if ordered by not existing column" do
|
|
32
32
|
expect {
|
|
33
|
-
test_report(:order => :hello)
|
|
33
|
+
test_report(:order => :hello).assets
|
|
34
34
|
}.to raise_error(Datagrid::OrderUnsupported)
|
|
35
35
|
end
|
|
36
36
|
|
|
@@ -40,7 +40,7 @@ describe Datagrid::Ordering do
|
|
|
40
40
|
filter(:category, :default, :order => false) do |value|
|
|
41
41
|
self
|
|
42
42
|
end
|
|
43
|
-
end
|
|
43
|
+
end.assets
|
|
44
44
|
end.to raise_error(Datagrid::OrderUnsupported)
|
|
45
45
|
end
|
|
46
46
|
|
|
@@ -121,4 +121,30 @@ describe Datagrid::Ordering do
|
|
|
121
121
|
grid.descending = true
|
|
122
122
|
expect(grid.assets).to eq([third, second, first])
|
|
123
123
|
end
|
|
124
|
+
it "should support ordering by dynamic columns" do
|
|
125
|
+
|
|
126
|
+
report = test_report(:order => "name") do
|
|
127
|
+
scope {Entry}
|
|
128
|
+
dynamic do
|
|
129
|
+
column(:name)
|
|
130
|
+
end
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
expect(report.assets).to eq([first, second, third])
|
|
134
|
+
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
it "should support #ordered_by? method" do
|
|
138
|
+
report = test_report(:order => "name") do
|
|
139
|
+
scope {Entry}
|
|
140
|
+
column(:id)
|
|
141
|
+
column(:name)
|
|
142
|
+
end
|
|
143
|
+
expect(report).to be_ordered_by(:name)
|
|
144
|
+
expect(report).to be_ordered_by("name")
|
|
145
|
+
expect(report).to be_ordered_by(report.column_by_name(:name))
|
|
146
|
+
expect(report).to_not be_ordered_by(:id)
|
|
147
|
+
expect(report).to_not be_ordered_by("id")
|
|
148
|
+
expect(report).to_not be_ordered_by(report.column_by_name(:id))
|
|
149
|
+
end
|
|
124
150
|
end
|
|
File without changes
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: datagrid
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.3.
|
|
4
|
+
version: 1.3.7
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Bogdan Gusiev
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2015-
|
|
11
|
+
date: 2015-03-25 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rails
|
|
@@ -16,14 +16,14 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - ">="
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version:
|
|
19
|
+
version: 3.2.18
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - ">="
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version:
|
|
26
|
+
version: 3.2.18
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: bundler
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -80,20 +80,6 @@ dependencies:
|
|
|
80
80
|
- - ">="
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
82
|
version: '0'
|
|
83
|
-
- !ruby/object:Gem::Dependency
|
|
84
|
-
name: ruby-debug
|
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
|
86
|
-
requirements:
|
|
87
|
-
- - ">="
|
|
88
|
-
- !ruby/object:Gem::Version
|
|
89
|
-
version: '0'
|
|
90
|
-
type: :development
|
|
91
|
-
prerelease: false
|
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
-
requirements:
|
|
94
|
-
- - ">="
|
|
95
|
-
- !ruby/object:Gem::Version
|
|
96
|
-
version: '0'
|
|
97
83
|
- !ruby/object:Gem::Dependency
|
|
98
84
|
name: rspec
|
|
99
85
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -192,20 +178,6 @@ dependencies:
|
|
|
192
178
|
- - '='
|
|
193
179
|
- !ruby/object:Gem::Version
|
|
194
180
|
version: 1.4.0
|
|
195
|
-
- !ruby/object:Gem::Dependency
|
|
196
|
-
name: fastercsv
|
|
197
|
-
requirement: !ruby/object:Gem::Requirement
|
|
198
|
-
requirements:
|
|
199
|
-
- - ">="
|
|
200
|
-
- !ruby/object:Gem::Version
|
|
201
|
-
version: '0'
|
|
202
|
-
type: :development
|
|
203
|
-
prerelease: false
|
|
204
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
205
|
-
requirements:
|
|
206
|
-
- - ">="
|
|
207
|
-
- !ruby/object:Gem::Version
|
|
208
|
-
version: '0'
|
|
209
181
|
description: This allows you to easily build datagrid aka data tables with sortable
|
|
210
182
|
columns and filters
|
|
211
183
|
email: agresso@gmail.com
|
|
@@ -228,6 +200,7 @@ files:
|
|
|
228
200
|
- app/views/datagrid/_form.html.erb
|
|
229
201
|
- app/views/datagrid/_head.html.erb
|
|
230
202
|
- app/views/datagrid/_order_for.html.erb
|
|
203
|
+
- app/views/datagrid/_range_filter.html.erb
|
|
231
204
|
- app/views/datagrid/_row.html.erb
|
|
232
205
|
- app/views/datagrid/_table.html.erb
|
|
233
206
|
- datagrid.gemspec
|
|
@@ -263,7 +236,6 @@ files:
|
|
|
263
236
|
- lib/datagrid/filters/string_filter.rb
|
|
264
237
|
- lib/datagrid/form_builder.rb
|
|
265
238
|
- lib/datagrid/helper.rb
|
|
266
|
-
- lib/datagrid/i18n.rb
|
|
267
239
|
- lib/datagrid/locale/en.yml
|
|
268
240
|
- lib/datagrid/ordering.rb
|
|
269
241
|
- lib/datagrid/renderer.rb
|
|
@@ -299,7 +271,7 @@ files:
|
|
|
299
271
|
- spec/spec_helper.rb
|
|
300
272
|
- spec/support/active_record.rb
|
|
301
273
|
- spec/support/configuration.rb
|
|
302
|
-
- spec/support/locale/
|
|
274
|
+
- spec/support/locale/deprecated_range_format.yml
|
|
303
275
|
- spec/support/locale/deprecated_range_separator.yml
|
|
304
276
|
- spec/support/matchers.rb
|
|
305
277
|
- spec/support/mongo_mapper.rb
|
data/lib/datagrid/i18n.rb
DELETED
|
File without changes
|