datagrid 1.8.2 → 2.0.0
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/.yardopts +2 -0
- data/CHANGELOG.md +11 -1
- data/{Readme.markdown → README.md} +44 -29
- data/app/assets/stylesheets/datagrid.css +145 -0
- data/app/views/datagrid/_enum_checkboxes.html.erb +5 -3
- data/app/views/datagrid/_form.html.erb +4 -4
- data/app/views/datagrid/_head.html.erb +26 -3
- data/app/views/datagrid/_range_filter.html.erb +5 -3
- data/app/views/datagrid/_row.html.erb +12 -1
- data/app/views/datagrid/_table.html.erb +4 -4
- data/datagrid.gemspec +8 -7
- data/lib/datagrid/active_model.rb +9 -17
- data/lib/datagrid/base.rb +39 -0
- data/lib/datagrid/column_names_attribute.rb +9 -11
- data/lib/datagrid/columns/column.rb +155 -133
- data/lib/datagrid/columns.rb +325 -115
- data/lib/datagrid/configuration.rb +33 -4
- data/lib/datagrid/core.rb +89 -54
- data/lib/datagrid/deprecated_object.rb +20 -0
- data/lib/datagrid/drivers/abstract_driver.rb +12 -23
- data/lib/datagrid/drivers/active_record.rb +24 -26
- data/lib/datagrid/drivers/array.rb +22 -14
- data/lib/datagrid/drivers/mongo_mapper.rb +15 -14
- data/lib/datagrid/drivers/mongoid.rb +15 -17
- data/lib/datagrid/drivers/sequel.rb +14 -19
- data/lib/datagrid/drivers.rb +2 -1
- data/lib/datagrid/engine.rb +11 -3
- data/lib/datagrid/filters/base_filter.rb +166 -143
- data/lib/datagrid/filters/boolean_filter.rb +19 -5
- data/lib/datagrid/filters/date_filter.rb +33 -35
- data/lib/datagrid/filters/date_time_filter.rb +24 -16
- data/lib/datagrid/filters/default_filter.rb +9 -3
- data/lib/datagrid/filters/dynamic_filter.rb +151 -105
- data/lib/datagrid/filters/enum_filter.rb +43 -19
- data/lib/datagrid/filters/extended_boolean_filter.rb +39 -31
- data/lib/datagrid/filters/float_filter.rb +15 -5
- data/lib/datagrid/filters/integer_filter.rb +21 -10
- data/lib/datagrid/filters/ranged_filter.rb +66 -45
- data/lib/datagrid/filters/select_options.rb +58 -49
- data/lib/datagrid/filters/string_filter.rb +9 -4
- data/lib/datagrid/filters.rb +204 -79
- data/lib/datagrid/form_builder.rb +116 -128
- data/lib/datagrid/generators/scaffold.rb +184 -0
- data/lib/datagrid/generators/views.rb +20 -0
- data/lib/datagrid/helper.rb +436 -69
- data/lib/datagrid/ordering.rb +26 -29
- data/lib/datagrid/rspec.rb +6 -10
- data/lib/datagrid/utils.rb +37 -30
- data/lib/datagrid/version.rb +3 -1
- data/lib/datagrid.rb +8 -28
- data/templates/base.rb.erb +6 -4
- data/templates/grid.rb.erb +1 -1
- metadata +17 -17
- data/app/assets/stylesheets/datagrid.sass +0 -134
- data/lib/datagrid/filters/composite_filters.rb +0 -49
- data/lib/datagrid/renderer.rb +0 -157
- data/lib/datagrid/scaffold.rb +0 -129
- data/lib/tasks/datagrid_tasks.rake +0 -15
- data/templates/controller.rb.erb +0 -6
- data/templates/index.html.erb +0 -5
data/lib/datagrid/ordering.rb
CHANGED
@@ -1,42 +1,38 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require "datagrid/columns"
|
2
4
|
|
3
5
|
module Datagrid
|
4
6
|
# Raised when grid order value is incorrect
|
5
7
|
class OrderUnsupported < StandardError
|
6
8
|
end
|
7
|
-
module Ordering
|
8
9
|
|
10
|
+
# Module adds support for ordering by defined columns for Datagrid.
|
11
|
+
module Ordering
|
9
12
|
# @!visibility private
|
10
13
|
def self.included(base)
|
11
|
-
base.extend
|
14
|
+
base.extend ClassMethods
|
12
15
|
base.class_eval do
|
13
16
|
include Datagrid::Columns
|
14
17
|
|
15
18
|
datagrid_attribute :order do |value|
|
16
|
-
if value.present?
|
17
|
-
value.to_sym
|
18
|
-
else
|
19
|
-
nil
|
20
|
-
end
|
21
|
-
|
19
|
+
value.to_sym if value.present?
|
22
20
|
end
|
23
21
|
|
24
22
|
datagrid_attribute :descending do |value|
|
25
23
|
Datagrid::Utils.booleanize(value)
|
26
24
|
end
|
27
|
-
|
28
|
-
|
25
|
+
alias_method :descending?, :descending
|
29
26
|
end
|
30
27
|
end
|
31
28
|
|
32
29
|
# @!visibility private
|
33
30
|
module ClassMethods
|
34
31
|
def order_unsupported(name, reason)
|
35
|
-
raise Datagrid::OrderUnsupported, "Can not sort #{
|
32
|
+
raise Datagrid::OrderUnsupported, "Can not sort #{inspect} by ##{name}: #{reason}"
|
36
33
|
end
|
37
34
|
end
|
38
35
|
|
39
|
-
|
40
36
|
# @!visibility private
|
41
37
|
def assets
|
42
38
|
check_order_valid!
|
@@ -56,42 +52,42 @@ module Datagrid
|
|
56
52
|
end
|
57
53
|
|
58
54
|
# @param column [String, Datagrid::Columns::Column]
|
55
|
+
# @param desc [nil, Boolean] confirm order direction as well if specified
|
59
56
|
# @return [Boolean] true if given grid is ordered by given column.
|
60
|
-
def ordered_by?(column)
|
61
|
-
order_column == column_by_name(column)
|
57
|
+
def ordered_by?(column, desc = nil)
|
58
|
+
order_column == column_by_name(column) &&
|
59
|
+
(desc.nil? || (desc ? descending? : !descending?))
|
62
60
|
end
|
63
61
|
|
64
62
|
private
|
65
63
|
|
66
64
|
def apply_order(assets)
|
67
65
|
return assets unless order
|
66
|
+
|
68
67
|
if order_column.order_by_value?
|
69
68
|
assets = assets.sort_by do |asset|
|
70
69
|
order_column.order_by_value(asset, self)
|
71
70
|
end
|
72
71
|
descending? ? assets.reverse : assets
|
73
|
-
|
74
|
-
if
|
75
|
-
|
76
|
-
apply_asc_order(assets, order_column.order_desc)
|
77
|
-
else
|
78
|
-
apply_desc_order(assets, order_column.order)
|
79
|
-
end
|
72
|
+
elsif descending?
|
73
|
+
if order_column.order_desc
|
74
|
+
apply_asc_order(assets, order_column.order_desc)
|
80
75
|
else
|
81
|
-
|
76
|
+
apply_desc_order(assets, order_column.order)
|
82
77
|
end
|
78
|
+
else
|
79
|
+
apply_asc_order(assets, order_column.order)
|
83
80
|
end
|
84
81
|
end
|
85
82
|
|
86
83
|
def check_order_valid!
|
87
84
|
return unless order
|
85
|
+
|
88
86
|
column = column_by_name(order)
|
89
|
-
unless column
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
self.class.order_unsupported(column.name, "column don't support order" )
|
94
|
-
end
|
87
|
+
self.class.order_unsupported(order, "no column #{order} in #{self.class}") unless column
|
88
|
+
return if column.supports_order?
|
89
|
+
|
90
|
+
self.class.order_unsupported(column.name, "column don't support order")
|
95
91
|
end
|
96
92
|
|
97
93
|
def apply_asc_order(assets, order)
|
@@ -113,7 +109,8 @@ module Datagrid
|
|
113
109
|
def reverse_order(assets)
|
114
110
|
driver.reverse_order(assets)
|
115
111
|
rescue NotImplementedError
|
116
|
-
self.class.order_unsupported(order_column.name,
|
112
|
+
self.class.order_unsupported(order_column.name,
|
113
|
+
"Your ORM do not support reverse order: please specify :order_desc option manually",)
|
117
114
|
end
|
118
115
|
|
119
116
|
def apply_block_order(assets, order)
|
data/lib/datagrid/rspec.rb
CHANGED
@@ -1,16 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require "datagrid"
|
2
4
|
|
3
|
-
#TODO: refactor this experimental shit
|
5
|
+
# TODO: refactor this experimental shit
|
4
6
|
shared_examples_for "Datagrid" do
|
5
7
|
describe "as Datagrid" do
|
6
|
-
|
7
8
|
it "should have at least one entry if assets" do
|
8
9
|
subject.assets.should_not be_empty
|
9
10
|
end
|
10
11
|
|
11
|
-
described_class.columns(:
|
12
|
+
described_class.columns(data: true).each do |column|
|
12
13
|
describe "column ##{column.name}" do
|
13
|
-
|
14
14
|
it "should has value in #data_hash" do
|
15
15
|
subject.data_hash.first.should have_key(column.name)
|
16
16
|
end
|
@@ -25,14 +25,11 @@ shared_examples_for "Datagrid" do
|
|
25
25
|
subject.assets.first.should_not be_nil
|
26
26
|
end
|
27
27
|
end
|
28
|
-
|
29
28
|
end
|
30
29
|
|
31
30
|
described_class.filters.each do |filter|
|
32
31
|
describe "filter ##{filter.name}" do
|
33
|
-
|
34
32
|
let(:filter_value) do
|
35
|
-
|
36
33
|
case Datagrid::Filters::FILTER_TYPES.invert[filter.class]
|
37
34
|
when :default, :string
|
38
35
|
"text"
|
@@ -53,16 +50,15 @@ shared_examples_for "Datagrid" do
|
|
53
50
|
end
|
54
51
|
|
55
52
|
before(:each) do
|
56
|
-
subject.attributes = {filter.name => filter_value}
|
53
|
+
subject.attributes = { filter.name => filter_value }
|
57
54
|
subject.public_send(filter.name).should_not be_nil
|
58
55
|
end
|
59
56
|
|
60
57
|
it "should be supported" do
|
61
58
|
subject.assets.should_not be_nil
|
62
|
-
#TODO: better matcher.
|
59
|
+
# TODO: better matcher.
|
63
60
|
end
|
64
61
|
end
|
65
62
|
end
|
66
|
-
|
67
63
|
end
|
68
64
|
end
|
data/lib/datagrid/utils.rb
CHANGED
@@ -1,44 +1,49 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Datagrid
|
2
4
|
# @!visibility private
|
3
|
-
module Utils
|
5
|
+
module Utils
|
4
6
|
class << self
|
5
|
-
|
6
|
-
|
7
|
-
TRUTH = [true, 1, "1", "true", "yes", "on"]
|
7
|
+
TRUTH = [true, 1, "1", "true", "yes", "on"].freeze
|
8
8
|
|
9
9
|
def booleanize(value)
|
10
|
-
if value.respond_to?(:downcase)
|
11
|
-
value = value.downcase
|
12
|
-
end
|
10
|
+
value = value.downcase if value.respond_to?(:downcase)
|
13
11
|
TRUTH.include?(value)
|
14
12
|
end
|
15
13
|
|
16
14
|
def translate_from_namespace(namespace, grid_class, key)
|
17
|
-
|
18
15
|
lookups = []
|
19
16
|
namespaced_key = "#{namespace}.#{key}"
|
20
17
|
|
21
18
|
grid_class.ancestors.each do |ancestor|
|
22
|
-
if ancestor.respond_to?(:model_name)
|
23
|
-
lookups << :"datagrid.#{ancestor.model_name.i18n_key}.#{namespaced_key}"
|
24
|
-
end
|
19
|
+
lookups << :"datagrid.#{ancestor.model_name.i18n_key}.#{namespaced_key}" if ancestor.respond_to?(:model_name)
|
25
20
|
end
|
26
21
|
lookups << :"datagrid.defaults.#{namespaced_key}"
|
27
22
|
lookups << key.to_s.humanize
|
28
23
|
I18n.t(lookups.shift, default: lookups).presence
|
29
24
|
end
|
30
25
|
|
26
|
+
def deprecator
|
27
|
+
if defined?(Rails) && Rails.version >= "7.1.0"
|
28
|
+
Rails.deprecator
|
29
|
+
else
|
30
|
+
ActiveSupport::Deprecation
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
31
34
|
def warn_once(message, delay = 5)
|
32
35
|
@warnings ||= {}
|
33
36
|
timestamp = @warnings[message]
|
34
37
|
return false if timestamp && timestamp >= Time.now - delay
|
35
|
-
|
38
|
+
|
39
|
+
deprecator.warn(message)
|
36
40
|
@warnings[message] = Time.now
|
37
41
|
true
|
38
42
|
end
|
39
43
|
|
40
44
|
def add_html_classes(options, *classes)
|
41
45
|
return options if classes.empty?
|
46
|
+
|
42
47
|
options = options.clone
|
43
48
|
options[:class] ||= []
|
44
49
|
array = options[:class].is_a?(Array)
|
@@ -52,41 +57,42 @@ module Datagrid
|
|
52
57
|
end
|
53
58
|
|
54
59
|
def extract_position_from_options(array, options)
|
55
|
-
before
|
56
|
-
|
57
|
-
|
58
|
-
end
|
60
|
+
before = options[:before]
|
61
|
+
after = options[:after]
|
62
|
+
raise Datagrid::ConfigurationError, "Options :before and :after can not be used together" if before && after
|
59
63
|
# Consider as before all
|
60
64
|
return 0 if before == true
|
65
|
+
|
61
66
|
if before
|
62
67
|
before = before.to_sym
|
63
|
-
array.index {|c| c.name.to_sym == before }
|
68
|
+
array.index { |c| c.name.to_sym == before }
|
64
69
|
elsif after
|
65
70
|
after = after.to_sym
|
66
|
-
array.index {|c| c.name.to_sym == after } + 1
|
71
|
+
array.index { |c| c.name.to_sym == after } + 1
|
67
72
|
else
|
68
73
|
-1
|
69
74
|
end
|
70
75
|
end
|
71
76
|
|
72
77
|
def apply_args(*args, &block)
|
73
|
-
size = block.arity
|
78
|
+
size = block.arity.negative? ? args.size : block.arity
|
74
79
|
block.call(*args.slice(0, size))
|
75
80
|
end
|
76
81
|
|
77
82
|
def parse_date(value)
|
78
83
|
return nil if value.blank?
|
79
84
|
return value if value.is_a?(Range)
|
85
|
+
|
80
86
|
if value.is_a?(String)
|
81
87
|
Array(Datagrid.configuration.date_formats).each do |format|
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
end
|
88
|
+
return Date.strptime(value, format)
|
89
|
+
rescue ::ArgumentError
|
90
|
+
nil
|
86
91
|
end
|
87
92
|
end
|
88
93
|
return Date.parse(value) if value.is_a?(String)
|
89
94
|
return value.to_date if value.respond_to?(:to_date)
|
95
|
+
|
90
96
|
value
|
91
97
|
rescue ::ArgumentError
|
92
98
|
nil
|
@@ -95,16 +101,18 @@ module Datagrid
|
|
95
101
|
def parse_datetime(value)
|
96
102
|
return nil if value.blank?
|
97
103
|
return value if value.is_a?(Range)
|
104
|
+
return value if defined?(ActiveSupport::TimeWithZone) && value.is_a?(ActiveSupport::TimeWithZone)
|
105
|
+
|
98
106
|
if value.is_a?(String)
|
99
107
|
Array(Datagrid.configuration.datetime_formats).each do |format|
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
end
|
108
|
+
return Time.strptime(value, format)
|
109
|
+
rescue ::ArgumentError
|
110
|
+
nil
|
104
111
|
end
|
105
112
|
end
|
106
113
|
return Time.parse(value) if value.is_a?(String)
|
107
114
|
return value.to_time if value.respond_to?(:to_time)
|
115
|
+
|
108
116
|
value
|
109
117
|
rescue ::ArgumentError
|
110
118
|
nil
|
@@ -113,10 +121,8 @@ module Datagrid
|
|
113
121
|
def format_date_as_timestamp(value)
|
114
122
|
if !value
|
115
123
|
value
|
116
|
-
elsif value.is_a?(Array)
|
117
|
-
[value.first&.beginning_of_day, value.last&.end_of_day]
|
118
124
|
elsif value.is_a?(Range)
|
119
|
-
|
125
|
+
value.begin&.beginning_of_day..value.end&.end_of_day
|
120
126
|
else
|
121
127
|
value.beginning_of_day..value.end_of_day
|
122
128
|
end
|
@@ -132,6 +138,7 @@ module Datagrid
|
|
132
138
|
end
|
133
139
|
|
134
140
|
protected
|
141
|
+
|
135
142
|
def property_availability(grid, option, default)
|
136
143
|
case option
|
137
144
|
when nil
|
data/lib/datagrid/version.rb
CHANGED
data/lib/datagrid.rb
CHANGED
@@ -1,49 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require "action_view"
|
2
4
|
require "datagrid/configuration"
|
5
|
+
require "datagrid/engine"
|
3
6
|
|
4
7
|
module Datagrid
|
5
|
-
|
6
|
-
extend ActiveSupport::Autoload
|
7
|
-
|
8
|
-
autoload :Core
|
9
|
-
autoload :ActiveModel
|
10
|
-
autoload :Filters
|
11
|
-
autoload :Columns
|
12
|
-
autoload :ColumnNamesAttribute
|
13
|
-
autoload :Ordering
|
14
|
-
autoload :Configuration
|
15
|
-
|
16
|
-
autoload :Helper
|
17
|
-
ActionView::Base.send(:include, Datagrid::Helper)
|
18
|
-
|
19
|
-
autoload :FormBuilder
|
20
|
-
ActionView::Helpers::FormBuilder.send(:include, Datagrid::FormBuilder)
|
21
|
-
|
22
|
-
autoload :Renderer
|
23
|
-
|
24
|
-
autoload :Engine
|
25
|
-
|
26
8
|
# @!visibility private
|
27
9
|
def self.included(base)
|
10
|
+
Utils.warn_once("Including Datagrid is deprecated. Inherit Datagrid::Base instead.")
|
28
11
|
base.class_eval do
|
29
|
-
|
30
12
|
include ::Datagrid::Core
|
31
13
|
include ::Datagrid::ActiveModel
|
32
14
|
include ::Datagrid::Filters
|
33
15
|
include ::Datagrid::Columns
|
34
16
|
include ::Datagrid::ColumnNamesAttribute
|
35
17
|
include ::Datagrid::Ordering
|
36
|
-
|
37
18
|
end
|
38
19
|
end
|
39
20
|
|
40
21
|
class ConfigurationError < StandardError; end
|
41
22
|
class ArgumentError < ::ArgumentError; end
|
42
23
|
class ColumnUnavailableError < StandardError; end
|
43
|
-
|
44
24
|
end
|
45
25
|
|
46
|
-
require "datagrid/
|
47
|
-
|
48
|
-
|
49
|
-
|
26
|
+
require "datagrid/base"
|
27
|
+
require "datagrid/generators/scaffold"
|
28
|
+
require "datagrid/generators/views"
|
29
|
+
I18n.load_path << File.expand_path("datagrid/locale/en.yml", __dir__)
|
data/templates/base.rb.erb
CHANGED
@@ -1,7 +1,4 @@
|
|
1
|
-
class
|
2
|
-
|
3
|
-
include Datagrid
|
4
|
-
|
1
|
+
class ApplicationGrid < Datagrid::Base
|
5
2
|
self.default_column_options = {
|
6
3
|
# Uncomment to disable the default order
|
7
4
|
# order: false,
|
@@ -42,4 +39,9 @@ class BaseGrid
|
|
42
39
|
end
|
43
40
|
end
|
44
41
|
|
42
|
+
# Uncomment to shorten URL query string for all grids.
|
43
|
+
# May cause collisions if multiple grids are used on the same page.
|
44
|
+
# def param_name
|
45
|
+
# 'grid'
|
46
|
+
# end
|
45
47
|
end
|
data/templates/grid.rb.erb
CHANGED
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:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bogdan Gusiev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-11-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '7.0'
|
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: '7.0'
|
27
27
|
description: The library allows you to easily build datagrid aka data tables with
|
28
28
|
sortable columns and filters
|
29
29
|
email: agresso@gmail.com
|
@@ -31,12 +31,13 @@ executables: []
|
|
31
31
|
extensions: []
|
32
32
|
extra_rdoc_files:
|
33
33
|
- LICENSE.txt
|
34
|
-
-
|
34
|
+
- README.md
|
35
35
|
files:
|
36
|
+
- ".yardopts"
|
36
37
|
- CHANGELOG.md
|
37
38
|
- LICENSE.txt
|
38
|
-
-
|
39
|
-
- app/assets/stylesheets/datagrid.
|
39
|
+
- README.md
|
40
|
+
- app/assets/stylesheets/datagrid.css
|
40
41
|
- app/views/datagrid/_enum_checkboxes.html.erb
|
41
42
|
- app/views/datagrid/_form.html.erb
|
42
43
|
- app/views/datagrid/_head.html.erb
|
@@ -47,11 +48,13 @@ files:
|
|
47
48
|
- datagrid.gemspec
|
48
49
|
- lib/datagrid.rb
|
49
50
|
- lib/datagrid/active_model.rb
|
51
|
+
- lib/datagrid/base.rb
|
50
52
|
- lib/datagrid/column_names_attribute.rb
|
51
53
|
- lib/datagrid/columns.rb
|
52
54
|
- lib/datagrid/columns/column.rb
|
53
55
|
- lib/datagrid/configuration.rb
|
54
56
|
- lib/datagrid/core.rb
|
57
|
+
- lib/datagrid/deprecated_object.rb
|
55
58
|
- lib/datagrid/drivers.rb
|
56
59
|
- lib/datagrid/drivers/abstract_driver.rb
|
57
60
|
- lib/datagrid/drivers/active_record.rb
|
@@ -63,7 +66,6 @@ files:
|
|
63
66
|
- lib/datagrid/filters.rb
|
64
67
|
- lib/datagrid/filters/base_filter.rb
|
65
68
|
- lib/datagrid/filters/boolean_filter.rb
|
66
|
-
- lib/datagrid/filters/composite_filters.rb
|
67
69
|
- lib/datagrid/filters/date_filter.rb
|
68
70
|
- lib/datagrid/filters/date_time_filter.rb
|
69
71
|
- lib/datagrid/filters/default_filter.rb
|
@@ -76,28 +78,26 @@ files:
|
|
76
78
|
- lib/datagrid/filters/select_options.rb
|
77
79
|
- lib/datagrid/filters/string_filter.rb
|
78
80
|
- lib/datagrid/form_builder.rb
|
81
|
+
- lib/datagrid/generators/scaffold.rb
|
82
|
+
- lib/datagrid/generators/views.rb
|
79
83
|
- lib/datagrid/helper.rb
|
80
84
|
- lib/datagrid/locale/en.yml
|
81
85
|
- lib/datagrid/ordering.rb
|
82
|
-
- lib/datagrid/renderer.rb
|
83
86
|
- lib/datagrid/rspec.rb
|
84
|
-
- lib/datagrid/scaffold.rb
|
85
87
|
- lib/datagrid/utils.rb
|
86
88
|
- lib/datagrid/version.rb
|
87
|
-
- lib/tasks/datagrid_tasks.rake
|
88
89
|
- templates/base.rb.erb
|
89
|
-
- templates/controller.rb.erb
|
90
90
|
- templates/grid.rb.erb
|
91
|
-
- templates/index.html.erb
|
92
91
|
homepage: https://github.com/bogdan/datagrid
|
93
92
|
licenses:
|
94
93
|
- MIT
|
95
94
|
metadata:
|
96
95
|
homepage_uri: https://github.com/bogdan/datagrid
|
97
96
|
bug_tracker_uri: https://github.com/bogdan/datagrid/issues
|
98
|
-
documentation_uri: https://
|
99
|
-
changelog_uri: https://github.com/bogdan/datagrid/blob/
|
97
|
+
documentation_uri: https://rubydoc.info/gems/datagrid
|
98
|
+
changelog_uri: https://github.com/bogdan/datagrid/blob/main/CHANGELOG.md
|
100
99
|
source_code_uri: https://github.com/bogdan/datagrid
|
100
|
+
rubygems_mfa_required: 'true'
|
101
101
|
post_install_message:
|
102
102
|
rdoc_options: []
|
103
103
|
require_paths:
|
@@ -106,14 +106,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
106
106
|
requirements:
|
107
107
|
- - ">="
|
108
108
|
- !ruby/object:Gem::Version
|
109
|
-
version: '
|
109
|
+
version: '3.0'
|
110
110
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
111
111
|
requirements:
|
112
112
|
- - ">="
|
113
113
|
- !ruby/object:Gem::Version
|
114
114
|
version: '0'
|
115
115
|
requirements: []
|
116
|
-
rubygems_version: 3.
|
116
|
+
rubygems_version: 3.5.11
|
117
117
|
signing_key:
|
118
118
|
specification_version: 4
|
119
119
|
summary: Library that provides DSL to present table like data
|
@@ -1,134 +0,0 @@
|
|
1
|
-
$dg-form-label: 150px
|
2
|
-
|
3
|
-
= clearfix
|
4
|
-
*zoom: 1
|
5
|
-
|
6
|
-
&:before,
|
7
|
-
&:after
|
8
|
-
display: table
|
9
|
-
content: ''
|
10
|
-
|
11
|
-
&:after
|
12
|
-
clear: both
|
13
|
-
|
14
|
-
=inline-block
|
15
|
-
display: inline-block
|
16
|
-
zoom: 1
|
17
|
-
*display: inline
|
18
|
-
|
19
|
-
table.datagrid
|
20
|
-
background-color: transparent
|
21
|
-
border-collapse: collapse
|
22
|
-
max-width: 100%
|
23
|
-
|
24
|
-
th
|
25
|
-
background-color: #eee
|
26
|
-
text-align: left
|
27
|
-
|
28
|
-
td,
|
29
|
-
th
|
30
|
-
border: 1px solid #d6d6d6
|
31
|
-
padding: 5px 10px
|
32
|
-
|
33
|
-
.order
|
34
|
-
a.asc, a.desc
|
35
|
-
text-decoration: none
|
36
|
-
font-weight: normal
|
37
|
-
|
38
|
-
&.ordered
|
39
|
-
background-color: #fff7d5
|
40
|
-
|
41
|
-
&.asc
|
42
|
-
a.asc
|
43
|
-
font-weight: bold
|
44
|
-
color: #d00
|
45
|
-
|
46
|
-
&.desc
|
47
|
-
a.desc
|
48
|
-
font-weight: bold
|
49
|
-
color: #d00
|
50
|
-
.noresults
|
51
|
-
text-align: center
|
52
|
-
|
53
|
-
.datagrid-form
|
54
|
-
background-color: #f0f0f0
|
55
|
-
border-radius: 5px
|
56
|
-
padding: 20px
|
57
|
-
|
58
|
-
.datagrid-filter
|
59
|
-
margin: 10px
|
60
|
-
+clearfix
|
61
|
-
|
62
|
-
label
|
63
|
-
width: $dg-form-label
|
64
|
-
float: left
|
65
|
-
a
|
66
|
-
float: left
|
67
|
-
|
68
|
-
input[class*='filter']
|
69
|
-
border: 2px solid #ccc
|
70
|
-
border-radius: 4px
|
71
|
-
float: left
|
72
|
-
padding: 5px 12px
|
73
|
-
width: 207px
|
74
|
-
|
75
|
-
&.from, &.to
|
76
|
-
width: 83px
|
77
|
-
|
78
|
-
select
|
79
|
-
float: left
|
80
|
-
width: 235px
|
81
|
-
|
82
|
-
&[multiple]
|
83
|
-
border: 2px solid #ccc
|
84
|
-
border-radius: 5px
|
85
|
-
height: 100px
|
86
|
-
&.dynamic_filter
|
87
|
-
&.field
|
88
|
-
width: 178px
|
89
|
-
&.operation
|
90
|
-
margin-left: 7px
|
91
|
-
width: 50px
|
92
|
-
input.dynamic_filter.value
|
93
|
-
margin: 10px 0 0 $dg-form-label
|
94
|
-
clear: both
|
95
|
-
|
96
|
-
.separator
|
97
|
-
float: left
|
98
|
-
margin: 6px 4px 0
|
99
|
-
.enum_filter.checkboxes
|
100
|
-
float: none
|
101
|
-
display: block
|
102
|
-
input
|
103
|
-
margin: 7px
|
104
|
-
margin-left: 150px
|
105
|
-
|
106
|
-
|
107
|
-
.datagrid-actions
|
108
|
-
padding-left: $dg-form-label + 10
|
109
|
-
|
110
|
-
input[type='submit']
|
111
|
-
background-color: #555
|
112
|
-
border: none
|
113
|
-
border-radius: 5px
|
114
|
-
color: white
|
115
|
-
cursor: pointer
|
116
|
-
font-size: 14px
|
117
|
-
font-weight: bold
|
118
|
-
line-height: normal
|
119
|
-
padding: 7px 15px
|
120
|
-
vertical-align: middle
|
121
|
-
+inline-block
|
122
|
-
|
123
|
-
&:hover,
|
124
|
-
&:focus
|
125
|
-
background-color: #333
|
126
|
-
|
127
|
-
&:active
|
128
|
-
background-color: #000
|
129
|
-
|
130
|
-
> a
|
131
|
-
font-size: 14px
|
132
|
-
padding: 7px 15px
|
133
|
-
vertical-align: middle
|
134
|
-
+inline-block
|