datagrid 1.3.1 → 1.3.2
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/Gemfile +1 -1
- data/VERSION +1 -1
- data/app/views/datagrid/_head.html.erb +1 -1
- data/datagrid.gemspec +6 -6
- data/lib/datagrid/columns/column.rb +1 -1
- data/lib/datagrid/drivers/mongo_mapper.rb +1 -1
- data/lib/datagrid/filters/float_filter.rb +3 -0
- data/lib/datagrid/form_builder.rb +12 -5
- data/lib/datagrid/locale/en.yml +3 -0
- data/lib/datagrid/scaffold.rb +7 -9
- data/spec/datagrid/drivers/mongo_mapper_spec.rb +2 -0
- data/spec/datagrid/filters/date_time_filter_spec.rb +1 -1
- data/spec/datagrid/form_builder_spec.rb +27 -1
- data/spec/datagrid/helper_spec.rb +24 -0
- data/spec/datagrid/scaffold_spec.rb +2 -2
- data/spec/spec_helper.rb +11 -5
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bd9359f7f58b34ec6625249fc8d7d13cbb405316
|
4
|
+
data.tar.gz: 6dbf5745b7f3135743ef3ed1b23fe630dc100b5b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 77117b5608b994d9d67eace4a2b0e05ae9b1c02fa4786f7d21ca7ad748c1c0048a2ae98867570e7cabb2e2b32071b7b07cfb3d4948e7d13d5a5eb931e78c2f90
|
7
|
+
data.tar.gz: a3cd49749291d88682cb943e738a30ff525f700d49a15cd8364c3dcadf8325043b2f94b44c61dc612bb3daddaaa344dd2f84c29119d45a76e62127162d50a042
|
data/Gemfile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.3.
|
1
|
+
1.3.2
|
@@ -2,7 +2,7 @@
|
|
2
2
|
<% grid.html_columns(*options[:columns]).each do |column| %>
|
3
3
|
<th class="<%= datagrid_column_classes(grid, column) %>">
|
4
4
|
<%= column.header %>
|
5
|
-
<%= datagrid_order_for(grid, column, options) if column.
|
5
|
+
<%= datagrid_order_for(grid, column, options) if column.supports_order? && options[:order]%>
|
6
6
|
</th>
|
7
7
|
<% end %>
|
8
8
|
</tr>
|
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.2 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.2"
|
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 = "2014-
|
14
|
+
s.date = "2014-10-27"
|
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 = [
|
@@ -135,7 +135,7 @@ Gem::Specification.new do |s|
|
|
135
135
|
s.add_development_dependency(%q<rspec>, [">= 3"])
|
136
136
|
s.add_development_dependency(%q<nokogiri>, [">= 0"])
|
137
137
|
s.add_development_dependency(%q<sqlite3>, [">= 0"])
|
138
|
-
s.add_development_dependency(%q<mongoid>, ["=
|
138
|
+
s.add_development_dependency(%q<mongoid>, ["= 3.1.6"])
|
139
139
|
s.add_development_dependency(%q<mongo_mapper>, [">= 0.11.0"])
|
140
140
|
s.add_development_dependency(%q<bson>, ["= 1.4.0"])
|
141
141
|
s.add_development_dependency(%q<bson_ext>, ["= 1.4.0"])
|
@@ -150,7 +150,7 @@ Gem::Specification.new do |s|
|
|
150
150
|
s.add_dependency(%q<rspec>, [">= 3"])
|
151
151
|
s.add_dependency(%q<nokogiri>, [">= 0"])
|
152
152
|
s.add_dependency(%q<sqlite3>, [">= 0"])
|
153
|
-
s.add_dependency(%q<mongoid>, ["=
|
153
|
+
s.add_dependency(%q<mongoid>, ["= 3.1.6"])
|
154
154
|
s.add_dependency(%q<mongo_mapper>, [">= 0.11.0"])
|
155
155
|
s.add_dependency(%q<bson>, ["= 1.4.0"])
|
156
156
|
s.add_dependency(%q<bson_ext>, ["= 1.4.0"])
|
@@ -166,7 +166,7 @@ Gem::Specification.new do |s|
|
|
166
166
|
s.add_dependency(%q<rspec>, [">= 3"])
|
167
167
|
s.add_dependency(%q<nokogiri>, [">= 0"])
|
168
168
|
s.add_dependency(%q<sqlite3>, [">= 0"])
|
169
|
-
s.add_dependency(%q<mongoid>, ["=
|
169
|
+
s.add_dependency(%q<mongoid>, ["= 3.1.6"])
|
170
170
|
s.add_dependency(%q<mongo_mapper>, [">= 0.11.0"])
|
171
171
|
s.add_dependency(%q<bson>, ["= 1.4.0"])
|
172
172
|
s.add_dependency(%q<bson_ext>, ["= 1.4.0"])
|
@@ -4,10 +4,10 @@ module Datagrid
|
|
4
4
|
module FormBuilder
|
5
5
|
|
6
6
|
# Returns a form input html for the corresponding filter name
|
7
|
-
def datagrid_filter(filter_or_attribute, options = {})
|
7
|
+
def datagrid_filter(filter_or_attribute, options = {}, &block)
|
8
8
|
filter = datagrid_get_filter(filter_or_attribute)
|
9
9
|
options = add_html_classes(options, filter.name, datagrid_filter_html_class(filter))
|
10
|
-
self.send(filter.form_builder_helper_name, filter, options)
|
10
|
+
self.send(filter.form_builder_helper_name, filter, options, &block)
|
11
11
|
end
|
12
12
|
|
13
13
|
# Returns a form label html for the corresponding filter name
|
@@ -43,7 +43,7 @@ module Datagrid
|
|
43
43
|
text_field filter.name, options.reverse_merge(:value => object.filter_value_as_string(filter))
|
44
44
|
end
|
45
45
|
|
46
|
-
def datagrid_enum_filter(attribute_or_filter, options = {})
|
46
|
+
def datagrid_enum_filter(attribute_or_filter, options = {}, &block)
|
47
47
|
filter = datagrid_get_filter(attribute_or_filter)
|
48
48
|
if filter.checkboxes?
|
49
49
|
options = add_html_classes(options, 'checkboxes')
|
@@ -60,7 +60,14 @@ module Datagrid
|
|
60
60
|
if !options.has_key?(:multiple) && filter.multiple?
|
61
61
|
options[:multiple] = true
|
62
62
|
end
|
63
|
-
select
|
63
|
+
select(
|
64
|
+
filter.name,
|
65
|
+
filter.select(object) || [],
|
66
|
+
{:include_blank => filter.include_blank,
|
67
|
+
:prompt => filter.prompt,
|
68
|
+
:include_hidden => false},
|
69
|
+
options, &block
|
70
|
+
)
|
64
71
|
end
|
65
72
|
end
|
66
73
|
|
@@ -155,7 +162,7 @@ module Datagrid
|
|
155
162
|
end
|
156
163
|
|
157
164
|
def datagrid_float_filter(attribute_or_filter, options = {})
|
158
|
-
|
165
|
+
datagrid_range_filter(:float, attribute_or_filter, options)
|
159
166
|
end
|
160
167
|
|
161
168
|
def datagrid_get_attribute(attribute_or_filter)
|
data/lib/datagrid/locale/en.yml
CHANGED
data/lib/datagrid/scaffold.rb
CHANGED
@@ -8,6 +8,9 @@ class Datagrid::Scaffold < Rails::Generators::NamedBase
|
|
8
8
|
template "controller.rb.erb", "app/controllers/#{grid_controller_name.underscore}.rb"
|
9
9
|
template "index.html.erb", "app/views/#{grid_controller_short_name}/index.html.erb"
|
10
10
|
route("resources :#{grid_controller_short_name}")
|
11
|
+
unless defined?(::Kaminari) || defined?(::WillPaginate)
|
12
|
+
gem 'kaminari'
|
13
|
+
end
|
11
14
|
in_root do
|
12
15
|
{
|
13
16
|
"css" => " *= require datagrid",
|
@@ -43,20 +46,15 @@ class Datagrid::Scaffold < Rails::Generators::NamedBase
|
|
43
46
|
end
|
44
47
|
|
45
48
|
def paginate_code
|
46
|
-
|
47
|
-
"page(params[:page])"
|
48
|
-
else
|
49
|
-
"paginate_somehow"
|
50
|
-
end
|
49
|
+
"page(params[:page])"
|
51
50
|
end
|
52
51
|
|
53
52
|
def pagination_helper_code
|
54
|
-
if defined?(::
|
55
|
-
"paginate(@grid.assets)"
|
56
|
-
elsif defined?(::WillPaginate)
|
53
|
+
if defined?(::WillPaginate)
|
57
54
|
"will_paginate(@grid.assets)"
|
58
55
|
else
|
59
|
-
|
56
|
+
# Kaminari is default
|
57
|
+
"paginate(@grid.assets)"
|
60
58
|
end
|
61
59
|
|
62
60
|
end
|
@@ -27,7 +27,7 @@ describe Datagrid::Filters::DateTimeFilter do
|
|
27
27
|
let(:_created_at) { [DateTime.now.beginning_of_day, DateTime.now.end_of_day] }
|
28
28
|
it { should include(entry_dated(1.second.ago))}
|
29
29
|
it { should include(entry_dated(Date.today.to_datetime))}
|
30
|
-
it { should include(entry_dated(
|
30
|
+
it { should include(entry_dated(DateTime.now.end_of_day.to_datetime))}
|
31
31
|
it { should_not include(entry_dated(Date.yesterday.end_of_day))}
|
32
32
|
it { should_not include(entry_dated(Date.tomorrow.beginning_of_day))}
|
33
33
|
end
|
@@ -25,10 +25,11 @@ describe Datagrid::FormBuilder do
|
|
25
25
|
end
|
26
26
|
|
27
27
|
subject do
|
28
|
-
view.datagrid_filter(_filter, _filter_options)
|
28
|
+
view.datagrid_filter(_filter, _filter_options, &_filter_block)
|
29
29
|
end
|
30
30
|
|
31
31
|
let(:_filter_options) { {} }
|
32
|
+
let(:_filter_block) { nil }
|
32
33
|
context "with default filter type" do
|
33
34
|
let(:_grid) {
|
34
35
|
test_report do
|
@@ -152,6 +153,21 @@ describe Datagrid::FormBuilder do
|
|
152
153
|
)}
|
153
154
|
end
|
154
155
|
end
|
156
|
+
context "with float filter type and range option" do
|
157
|
+
let(:_filter) { :rating }
|
158
|
+
let(:_grid) {
|
159
|
+
test_report(:rating => _range) do
|
160
|
+
scope {Group}
|
161
|
+
filter(:rating, :float, :range => true)
|
162
|
+
end
|
163
|
+
}
|
164
|
+
let(:_range) { [1.5,2.5]}
|
165
|
+
it { should equal_to_dom(
|
166
|
+
'<input class="rating float_filter from" multiple name="report[rating][]" size="30" type="text" value="1.5"/>' +
|
167
|
+
'<span class="separator float"> - </span>' +
|
168
|
+
'<input class="rating float_filter to" multiple name="report[rating][]" size="30" type="text" value="2.5"/>'
|
169
|
+
)}
|
170
|
+
end
|
155
171
|
|
156
172
|
|
157
173
|
context "with date filter type and range option" do
|
@@ -233,6 +249,16 @@ describe Datagrid::FormBuilder do
|
|
233
249
|
<option value="first">first</option>
|
234
250
|
<option value="second">second</option></select>'
|
235
251
|
)}
|
252
|
+
|
253
|
+
context "when block is given" do
|
254
|
+
before(:each) do
|
255
|
+
pending("not supported by rails < 4.1") if Rails.version < '4.1'
|
256
|
+
end
|
257
|
+
let(:_filter_block ) { proc { template.content_tag(:option, 'block option', :value => 'block_value') }}
|
258
|
+
it { should equal_to_dom(
|
259
|
+
'<select class="category enum_filter" id="report_category" name="report[category]"><option value=\"block_value\">block option</option></select>'
|
260
|
+
)}
|
261
|
+
end
|
236
262
|
context "when first option is selected" do
|
237
263
|
before(:each) do
|
238
264
|
_grid.category = "first"
|
@@ -382,6 +382,7 @@ describe Datagrid::Helper do
|
|
382
382
|
</div>
|
383
383
|
HTML
|
384
384
|
end
|
385
|
+
|
385
386
|
end
|
386
387
|
describe ".datagrid_form_for" do
|
387
388
|
it 'returns namespaced partial if partials options is passed' do
|
@@ -517,5 +518,28 @@ describe Datagrid::Helper do
|
|
517
518
|
expect(data_row.random2).to_not eq(html_row.random2)
|
518
519
|
expect(data_row.random2).to_not eq(html_row.random1)
|
519
520
|
end
|
521
|
+
|
522
|
+
end
|
523
|
+
|
524
|
+
describe ".datagrid_header" do
|
525
|
+
|
526
|
+
it "should support order_by_value colums" do
|
527
|
+
grid = test_report(:order => "category") do
|
528
|
+
scope { Entry }
|
529
|
+
column(:category, :order => false, :order_by_value => true)
|
530
|
+
|
531
|
+
def param_name
|
532
|
+
'grid'
|
533
|
+
end
|
534
|
+
end
|
535
|
+
expect(subject.datagrid_header(grid)).to equal_to_dom(<<HTML)
|
536
|
+
<tr><th class="category ordered asc">Category<div class="order">
|
537
|
+
<a href="/location?grid%5Bdescending%5D=false&grid%5Border%5D=category" class="asc">↑</a><a href="/location?grid%5Bdescending%5D=true&grid%5Border%5D=category" class="desc">↓</a>
|
538
|
+
</div>
|
539
|
+
</th></tr>
|
540
|
+
HTML
|
541
|
+
end
|
520
542
|
end
|
543
|
+
|
521
544
|
end
|
545
|
+
|
@@ -5,13 +5,13 @@ describe Datagrid::Scaffold do
|
|
5
5
|
|
6
6
|
describe '.paginate_code' do
|
7
7
|
it 'should fall through options successfully' do
|
8
|
-
expect(subject.paginate_code).to eql('
|
8
|
+
expect(subject.paginate_code).to eql('page(params[:page])')
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
12
|
describe '.pagination_helper_code' do
|
13
13
|
it 'should fall through options successfully' do
|
14
|
-
expect(subject.pagination_helper_code).to eql('
|
14
|
+
expect(subject.pagination_helper_code).to eql('paginate(@grid.assets)')
|
15
15
|
end
|
16
16
|
|
17
17
|
context "when Kaminari exists" do
|
data/spec/spec_helper.rb
CHANGED
@@ -42,11 +42,17 @@ TEST_LOGGER = Logger.new('spec.log')
|
|
42
42
|
NO_MONGO = ENV['NO_MONGO']
|
43
43
|
|
44
44
|
begin
|
45
|
-
Mongoid.
|
46
|
-
"
|
47
|
-
|
48
|
-
|
49
|
-
|
45
|
+
Mongoid.load_configuration({
|
46
|
+
"sessions" =>
|
47
|
+
{
|
48
|
+
"default" =>
|
49
|
+
{
|
50
|
+
"hosts" => ["localhost:27017"],
|
51
|
+
"database" =>"datagrid_mongoid",
|
52
|
+
"autocreate_indexes" => true,
|
53
|
+
"logger" => nil,
|
54
|
+
}
|
55
|
+
}
|
50
56
|
})
|
51
57
|
MongoMapper.connection = Mongo::Connection.new('localhost', 27017)
|
52
58
|
MongoMapper.database = "datagrid_mongo_mapper"
|
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.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bogdan Gusiev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-10-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -142,14 +142,14 @@ dependencies:
|
|
142
142
|
requirements:
|
143
143
|
- - '='
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version:
|
145
|
+
version: 3.1.6
|
146
146
|
type: :development
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
150
|
- - '='
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version:
|
152
|
+
version: 3.1.6
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
154
|
name: mongo_mapper
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|