widget_list 1.3.7 → 2.0.1

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.
Files changed (35) hide show
  1. checksums.yaml +5 -13
  2. data/README.md +143 -696
  3. data/app/views/widget_list/administration/_button_row.html.erb +2 -2
  4. data/app/views/widget_list/administration/_field_row.html.erb +2 -2
  5. data/app/views/widget_list/administration/_output.html.erb +89 -55
  6. data/checkin_gem.sh +10 -10
  7. data/docs/legacy-readme.md +757 -0
  8. data/docs/screenshots/admin1.jpg +0 -0
  9. data/docs/screenshots/admin2.jpg +0 -0
  10. data/docs/screenshots/admin3.jpg +0 -0
  11. data/docs/screenshots/admin4.jpg +0 -0
  12. data/docs/screenshots/admin5.png +0 -0
  13. data/docs/screenshots/admin6.png +0 -0
  14. data/docs/screenshots/filtered.png +0 -0
  15. data/docs/screenshots/main.png +0 -0
  16. data/docs/screenshots/ransack1.png +0 -0
  17. data/docs/screenshots/ransack2.png +0 -0
  18. data/docs/screenshots/ransack3.png +0 -0
  19. data/docs/screenshots/search.png +0 -0
  20. data/docs/screenshots/theme_blue_sky_basin.png +0 -0
  21. data/docs/widget-list-demo-thumbnail.png +0 -0
  22. data/lib/extensions/action_controller_base.rb +22 -29
  23. data/lib/widget_list/engine.rb +1 -4
  24. data/lib/widget_list/railtie.rb +10 -33
  25. data/lib/widget_list/request_context.rb +5 -0
  26. data/lib/widget_list/sequel.rb +17 -41
  27. data/lib/widget_list/utils.rb +7 -7
  28. data/lib/widget_list/version.rb +1 -1
  29. data/lib/widget_list/widgets.rb +1 -2
  30. data/lib/widget_list.rb +267 -269
  31. data/publish_gem.sh +14 -35
  32. data/vendor/assets/stylesheets/{widget_list.css → widget_list.css.erb} +21 -21
  33. data/vendor/assets/stylesheets/{widgets.css → widgets.css.erb} +9 -9
  34. data/widget_list.gemspec +8 -10
  35. metadata +58 -32
data/publish_gem.sh CHANGED
@@ -1,37 +1,16 @@
1
- #these scripts will create a new gem, mount a vendor folder and publish the gem
2
-
3
- CAMELCASE=WidgetList
4
- GEMNAME=widget_list
5
-
6
- rvm gemset create $GEMNAME
7
- rvm gemset use $GEMNAME
8
- gem install bundler
9
- bundle gem $GEMNAME
10
- #chown wcapp:wcapp -R $GEMNAME/*
11
- cd $GEMNAME/
12
- mkdir -p vendor/assets/{images,javascripts,stylesheets}
13
- touch vendor/assets/javascripts/$GEMNAME.js
14
- touch vendor/assets/stylesheets/$GEMNAME.css
15
- touch lib/$GEMNAME/engine.rb
16
- echo 'Add require "'$GEMNAME'/engine" to lib/'$GEMNAME'.rb'
17
- echo 'Next Add //= require '$GEMNAME' to application.js in your rails application'
18
- echo 'Next Add *= require '$GEMNAME' to application.css in your rails application'
19
- echo 'module '$CAMELCASE > lib/$GEMNAME/engine.rb
20
- echo ' class Engine < Rails::Engine' >> lib/$GEMNAME/engine.rb
21
- echo ' # auto wire' >> lib/$GEMNAME/engine.rb
22
- echo " initializer '""$GEMNAME"".load_static_assets' do |app|" >> lib/$GEMNAME/engine.rb
23
- echo ' app.middleware.use ::ActionDispatch::Static, "#{root}/vendor"' >> lib/$GEMNAME/engine.rb
24
- echo ' end' >> lib/$GEMNAME/engine.rb
25
- echo ' end' >> lib/$GEMNAME/engine.rb
26
- echo 'end' >> lib/$GEMNAME/engine.rb
27
-
28
- #to publish it
29
- #curl -u incubus158 https://rubygems.org/api/v1/api_key.yaml > ~/.gem/credentials
30
-
31
- #first edit version.rb and increment it to your new version, then run this
32
- gem build *gemspec | awk 'NR==4{print $2}' > tmpfile.txt
33
- GEMBUILD=`cat tmpfile.txt`
34
- gem push $GEMBUILD
35
- rm tmpfile.txt $GEMBUILD
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
36
3
 
4
+ cd "$(dirname "$0")"
5
+ if [[ "$(git branch --show-current)" != main ]]; then
6
+ echo 'Publish from the main branch.' >&2
7
+ exit 1
8
+ fi
9
+ if [[ -n "$(git status --porcelain)" ]]; then
10
+ echo 'Commit changes before publishing.' >&2
11
+ exit 1
12
+ fi
37
13
 
14
+ version=$(ruby -Ilib -rwidget_list/version -e 'print WidgetList::VERSION')
15
+ gem build widget_list.gemspec --output "widget_list-${version}.gem"
16
+ gem push "widget_list-${version}.gem"
@@ -27,7 +27,7 @@ table.widget_list tbody tr td span
27
27
  div.btn_outer
28
28
  {
29
29
  position:relative;
30
- background: transparent url('../assets/images/buttons/regular/green/rightside-regular-btn.png') no-repeat scroll top right;
30
+ background: transparent url('<%= asset_url('buttons/regular/green/rightside-regular-btn.png') %>') no-repeat scroll top right;
31
31
  display: inline;
32
32
  float: left;
33
33
  font: normal 12px arial, sans-serif;
@@ -40,7 +40,7 @@ div.btn_outer
40
40
 
41
41
  div.btn_outer div.btn_inner
42
42
  {
43
- background: transparent url('../assets/images/buttons/regular/green/leftside-regular-btn.png') no-repeat;
43
+ background: transparent url('<%= asset_url('buttons/regular/green/leftside-regular-btn.png') %>') no-repeat;
44
44
  display: block;
45
45
  line-height: 14px;
46
46
  padding: 5px 0 0px 12px;
@@ -89,7 +89,7 @@ div.btn_outer div.btn_inner div.textShadow
89
89
  div.btn_sml_outer
90
90
  {
91
91
  position:relative;
92
- background: transparent url('../assets/images/buttons/small/green/rightside-small-btn.png') no-repeat scroll top right;
92
+ background: transparent url('<%= asset_url('buttons/small/green/rightside-small-btn.png') %>') no-repeat scroll top right;
93
93
  display: inline;
94
94
  float: left;
95
95
  font: normal 12px arial, sans-serif;
@@ -102,7 +102,7 @@ div.btn_sml_outer
102
102
 
103
103
  div.btn_sml_outer div.btn_sml_inner
104
104
  {
105
- background: transparent url('../assets/images/buttons/small/green/leftside-small-btn.png') no-repeat;
105
+ background: transparent url('<%= asset_url('buttons/small/green/leftside-small-btn.png') %>') no-repeat;
106
106
  display: block;
107
107
  line-height: 8px;
108
108
  padding: 5px 0 0px 8px;
@@ -172,7 +172,7 @@ div.required
172
172
 
173
173
  .buttonArea
174
174
  {
175
- /*background: url("../assets/images/grad.png") repeat-x scroll 0 0 transparent;*/
175
+ /*background: url("<%= asset_url('grad.png') %>") repeat-x scroll 0 0 transparent;*/
176
176
  background-color:#ececec ;
177
177
  height:50px;
178
178
  text-align:right;
@@ -192,7 +192,7 @@ div.required
192
192
 
193
193
  .summary .header
194
194
  {
195
- background: url("../assets/images/head-gradient.gif") repeat-x scroll 0 0 transparent;
195
+ background: url("<%= asset_url('head-gradient.gif') %>") repeat-x scroll 0 0 transparent;
196
196
  height:23px;
197
197
  font-size:14px;
198
198
  font-weight:800;
@@ -200,7 +200,7 @@ div.required
200
200
 
201
201
  .goback
202
202
  {
203
- background: url('../assets/images/gobblecons/teal/share-arrows-24-left.png') no-repeat;
203
+ background: url('<%= asset_url('gobblecons/teal/share-arrows-24-left.png') %>') no-repeat;
204
204
  margin-right: 15px;
205
205
  width: 24px;
206
206
  height: 19px;
@@ -275,7 +275,7 @@ ul#pagination li div.active
275
275
  font-size:13px;
276
276
  font-weight:bold;
277
277
  height:40px;
278
- /*background: transparent url('../assets/images/catbar-bg.png') repeat-x bottom;*/
278
+ /*background: transparent url('<%= asset_url('catbar-bg.png') %>') repeat-x bottom;*/
279
279
  }
280
280
 
281
281
  .listContainer table.widget_list td, .listContainerPassive table.widget_list td
@@ -312,7 +312,7 @@ div#noListResults
312
312
 
313
313
  .ajaxLoad
314
314
  {
315
- background: #737373 url('../assets/images/list-loader.gif') no-repeat;
315
+ background: #737373 url('<%= asset_url('list-loader.gif') %>') no-repeat;
316
316
  background-position:50% 50%;
317
317
  position:absolute;
318
318
  width:100%;
@@ -333,7 +333,7 @@ div#noListResults
333
333
 
334
334
  .listContainerPassive table.widget_list tr.widget_list_header
335
335
  {
336
- /*background: url("../assets/images/th_header.gif") repeat-x scroll left center transparent; */
336
+ /*background: url("<%= asset_url('th_header.gif') %>") repeat-x scroll left center transparent; */
337
337
  padding: 4px;
338
338
  text-align: center;
339
339
  vertical-align: middle;
@@ -594,7 +594,7 @@ button.wl-btn::-moz-focus-inner, input[type=submit].wl-btn::-moz-focus-inner
594
594
  div.inputOuter
595
595
  {
596
596
  position:relative;
597
- background: transparent url('../assets/images/input_text_right.png') no-repeat scroll top right;
597
+ background: transparent url('<%= asset_url('input_text_right.png') %>') no-repeat scroll top right;
598
598
  display: inline-block;
599
599
  height: 27px;
600
600
  line-height: 27px;
@@ -603,7 +603,7 @@ div.inputOuter
603
603
  }
604
604
 
605
605
 
606
- div.inputOuter .inputInner {position:relative;background: transparent url('../assets/images/input_text_left.png') no-repeat scroll top left;border: none;height: 27px;line-height: 27px;padding-left: 6px;width: auto;padding-right: 7px;}
606
+ div.inputOuter .inputInner {position:relative;background: transparent url('<%= asset_url('input_text_left.png') %>') no-repeat scroll top left;border: none;height: 27px;line-height: 27px;padding-left: 6px;width: auto;padding-right: 7px;}
607
607
  div.inputOuter .inputInner input { border:none;background:transparent;width:100%}
608
608
  div.inputOuter .inputInner input.search-ahead {width:97%}
609
609
 
@@ -622,14 +622,14 @@ div.inputOuter .inputInner input.search-ahead {width:97%}
622
622
  /**
623
623
  * Advanced Search Down Arrow
624
624
  */
625
- .widget-search-arrow {background: url('../assets/images/gobblecons/mid-gray/arrow-16.png') no-repeat scroll 0px 0px transparent;float:right;margin:8px;position: relative;right:-23px;top:-30px;cursor:pointer;border:0px solid red;height:20px;width:20px;display:none}
626
- .widget-search-arrow:hover {background: url('../assets/images/gobblecons/mid-gray/arrow-16.png') no-repeat scroll 0px 0px transparent;}
625
+ .widget-search-arrow {background: url('<%= asset_url('gobblecons/mid-gray/arrow-16.png') %>') no-repeat scroll 0px 0px transparent;float:right;margin:8px;position: relative;right:-23px;top:-30px;cursor:pointer;border:0px solid red;height:20px;width:20px;display:none}
626
+ .widget-search-arrow:hover {background: url('<%= asset_url('gobblecons/mid-gray/arrow-16.png') %>') no-repeat scroll 0px 0px transparent;}
627
627
 
628
628
  /**
629
629
  * Search Ahead Magifier Glass
630
630
  */
631
- .widget-search-magnifier {background: url('../assets/images/gobblecons/mid-gray/search-16.png') no-repeat scroll 0px 0px transparent;float:right;margin:7px;position: relative;right:-13px;top:-30px;cursor:pointer;border:0px solid red;height:20px;width:20px}
632
- .widget-search-magnifier:hover {background: url('../assets/images/gobblecons/mid-gray/search-16.png') no-repeat scroll 0px 0px transparent}
631
+ .widget-search-magnifier {background: url('<%= asset_url('gobblecons/mid-gray/search-16.png') %>') no-repeat scroll 0px 0px transparent;float:right;margin:7px;position: relative;right:-13px;top:-30px;cursor:pointer;border:0px solid red;height:20px;width:20px}
632
+ .widget-search-magnifier:hover {background: url('<%= asset_url('gobblecons/mid-gray/search-16.png') %>') no-repeat scroll 0px 0px transparent}
633
633
 
634
634
  /**
635
635
  * Advanced Search Close Button
@@ -805,28 +805,28 @@ div#advanced-search-container ul.advanced-search-container-inline input.info-inp
805
805
  */
806
806
  .page_legacy {width:600px; left:0; margin-left:0;}
807
807
  *+html ul#pagination li div {display:inline}
808
- *+html ul#pagination li div.select-outer {background: url("../assets/images/input_text_right.png") no-repeat scroll right 2px transparent;}
808
+ *+html ul#pagination li div.select-outer {background: url("<%= asset_url('input_text_right.png') %>") no-repeat scroll right 2px transparent;}
809
809
  *+html ul#pagination li div.select-outer div.select-inner select {margin-top: -4px !important;}
810
810
 
811
811
 
812
812
  .next-active {
813
813
  cursor:pointer;
814
- background: transparent url("../assets/images/page-next.gif") no-repeat;
814
+ background: transparent url("<%= asset_url('page-next.gif') %>") no-repeat;
815
815
  }
816
816
 
817
817
  .next-disabled {
818
818
  opacity:0.4;
819
819
  filter:alpha(opacity=40);
820
- background: transparent url("../assets/images/page-next.gif") no-repeat;
820
+ background: transparent url("<%= asset_url('page-next.gif') %>") no-repeat;
821
821
  }
822
822
 
823
823
  .previous-active {
824
824
  cursor:pointer;
825
- background: transparent url("../assets/images/page-back.gif") no-repeat;
825
+ background: transparent url("<%= asset_url('page-back.gif') %>") no-repeat;
826
826
  }
827
827
 
828
828
  .previous-disabled {
829
829
  opacity:0.4;
830
830
  filter:alpha(opacity=40);
831
- background: transparent url("../assets/images/page-back.gif") no-repeat;
831
+ background: transparent url("<%= asset_url('page-back.gif') %>") no-repeat;
832
832
  }
@@ -17,28 +17,28 @@ select.inputLong, select.inputLarge, select.inputSmall
17
17
 
18
18
  .inputLong
19
19
  {
20
- background: url("../assets/images/long-text.jpg") no-repeat scroll 0px 2px transparent;
20
+ background: url("<%= asset_url('long-text.jpg') %>") no-repeat scroll 0px 2px transparent;
21
21
  width: 301px;
22
22
  }
23
23
 
24
24
  .inputLarge
25
25
  {
26
- background: url("../assets/images/text-field.gif") no-repeat scroll 0px 2px transparent;
26
+ background: url("<%= asset_url('text-field.gif') %>") no-repeat scroll 0px 2px transparent;
27
27
  }
28
28
 
29
29
  .inputSmall
30
30
  {
31
- background: url("../assets/images/text-field-small.gif") no-repeat scroll 0px 2px transparent;
31
+ background: url("<%= asset_url('text-field-small.gif') %>") no-repeat scroll 0px 2px transparent;
32
32
  }
33
33
 
34
34
  .inputMeniumTiny
35
35
  {
36
- background: url("../assets/images/text-field-medium-tiny.gif") no-repeat scroll 0px 2px transparent;
36
+ background: url("<%= asset_url('text-field-medium-tiny.gif') %>") no-repeat scroll 0px 2px transparent;
37
37
  }
38
38
 
39
39
  .inputTiny
40
40
  {
41
- background: url("../assets/images/text-field-tiny.gif") no-repeat scroll 0px 2px transparent;
41
+ background: url("<%= asset_url('text-field-tiny.gif') %>") no-repeat scroll 0px 2px transparent;
42
42
  }
43
43
 
44
44
  .inputLarge
@@ -74,7 +74,7 @@ select.inputLarge
74
74
  div.select-outer
75
75
  {
76
76
  position:relative;
77
- background: transparent url('../assets/images/input_text_right.png') no-repeat scroll top right;
77
+ background: transparent url('<%= asset_url('input_text_right.png') %>') no-repeat scroll top right;
78
78
  display: inline-block;
79
79
  height: 27px;
80
80
  line-height: 27px;
@@ -82,7 +82,7 @@ div.select-outer
82
82
  text-decoration: none;
83
83
  }
84
84
 
85
- div.select-outer .select-inner {position:relative;background: transparent url('../assets/images/input_text_left.png') no-repeat scroll top left;border: none;height: 27px;line-height: 27px;padding-left: 6px;width: auto;padding-right: 7px; margin-right:-6px}
85
+ div.select-outer .select-inner {position:relative;background: transparent url('<%= asset_url('input_text_left.png') %>') no-repeat scroll top left;border: none;height: 27px;line-height: 27px;padding-left: 6px;width: auto;padding-right: 7px; margin-right:-6px}
86
86
 
87
87
  div.select-outer div.select-inner select {padding:0px !important; margin:5px 0px 0px 0px !important; border:0px solid red !important;background:transparent !important; width:100% !important}
88
88
 
@@ -92,7 +92,7 @@ div.select-outer div.select-inner select {padding:0px !important; margin:5px 0px
92
92
  div.select-outer-multiple
93
93
  {
94
94
  position:relative;
95
- background: transparent url('../assets/images/select-multiple-right.png') no-repeat scroll top right;
95
+ background: transparent url('<%= asset_url('select-multiple-right.png') %>') no-repeat scroll top right;
96
96
  display: inline-block;
97
97
  height: 140px;
98
98
  padding-right: 13px;
@@ -112,6 +112,6 @@ div.select-outer-multiple
112
112
  font-weight: bold;
113
113
  }
114
114
 
115
- div.select-outer-multiple .select-inner-multiple {position:relative;background: transparent url('../assets/images/select-multiple-left.png') no-repeat scroll top left;border: none;height: 138px;padding-left: 6px;width: auto;padding-right: 7px; margin-right:-10px}
115
+ div.select-outer-multiple .select-inner-multiple {position:relative;background: transparent url('<%= asset_url('select-multiple-left.png') %>') no-repeat scroll top left;border: none;height: 138px;padding-left: 6px;width: auto;padding-right: 7px; margin-right:-10px}
116
116
 
117
117
  div.select-outer-multiple div.select-inner-multiple select {padding:7px 0px !important;margin:0px !important;border:0px solid red !important;background:transparent !important; position:relative; top:4px; height:126px; width:100% !important}
data/widget_list.gemspec CHANGED
@@ -13,21 +13,19 @@ Gem::Specification.new do |gem|
13
13
 
14
14
  gem.authors = ["David Renne"]
15
15
 
16
- gem.email = ["widgetlist@davidrenne.com"]
16
+ gem.email = ["dnxglya4@duck.com"]
17
17
 
18
- gem.description = %q{An Advanced and flexible ajax data grid. Supports several databases where data is pulled from either using Sequel ORM (optional even though is a dependency), Active Record Models or Raw SQL.}
18
+ gem.description = %q{Build interactive data tables in Rails from Sequel SQL queries or Active Record relations. widget_list handles sorting, search, pagination, Ajax updates, and CSV export. Configure columns in Ruby and add advanced filters with Ransack.}
19
19
 
20
- gem.summary = %q{In rails you have will_paginate and other gems like it using the ActiveRecord approach, but widget_list adds some awesome treats to standard boring pagers}
20
+ gem.summary = %q{Rails data grids with Ajax search, sorting, pagination, and CSV export}
21
+ gem.required_ruby_version = '>= 3.2'
21
22
 
22
23
  gem.homepage = "https://github.com/davidrenne/widget_list"
23
24
 
24
- #
25
- # SEQUEL IS NOW OPTIONAL!! I am sure most people will be using ActiveRecord ORM
26
- # I am including it as a dependency just because it is easier to pull it down and have it available
27
- #
28
- gem.add_dependency('sequel', '~> 3.42')
29
-
30
- gem.add_dependency('ransack', '~> 0.7')
25
+ gem.add_dependency('sequel', '5.109.0')
26
+ gem.add_dependency('ransack', '5.0.2')
27
+ gem.add_dependency('csv', '~> 3.3')
28
+ gem.metadata['rubygems_mfa_required'] = 'true'
31
29
 
32
30
  gem.files = `git ls-files`.split($/)
33
31
 
metadata CHANGED
@@ -1,57 +1,70 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: widget_list
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.7
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Renne
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2014-10-28 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: sequel
15
14
  requirement: !ruby/object:Gem::Requirement
16
15
  requirements:
17
- - - ~>
16
+ - - '='
18
17
  - !ruby/object:Gem::Version
19
- version: '3.42'
18
+ version: 5.109.0
20
19
  type: :runtime
21
20
  prerelease: false
22
21
  version_requirements: !ruby/object:Gem::Requirement
23
22
  requirements:
24
- - - ~>
23
+ - - '='
25
24
  - !ruby/object:Gem::Version
26
- version: '3.42'
25
+ version: 5.109.0
27
26
  - !ruby/object:Gem::Dependency
28
27
  name: ransack
29
28
  requirement: !ruby/object:Gem::Requirement
30
29
  requirements:
31
- - - ~>
30
+ - - '='
32
31
  - !ruby/object:Gem::Version
33
- version: '0.7'
32
+ version: 5.0.2
34
33
  type: :runtime
35
34
  prerelease: false
36
35
  version_requirements: !ruby/object:Gem::Requirement
37
36
  requirements:
38
- - - ~>
37
+ - - '='
39
38
  - !ruby/object:Gem::Version
40
- version: '0.7'
41
- description: An Advanced and flexible ajax data grid. Supports several databases where
42
- data is pulled from either using Sequel ORM (optional even though is a dependency),
43
- Active Record Models or Raw SQL.
39
+ version: 5.0.2
40
+ - !ruby/object:Gem::Dependency
41
+ name: csv
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '3.3'
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '3.3'
54
+ description: Build interactive data tables in Rails from Sequel SQL queries or Active
55
+ Record relations. widget_list handles sorting, search, pagination, Ajax updates,
56
+ and CSV export. Configure columns in Ruby and add advanced filters with Ransack.
44
57
  email:
45
- - widgetlist@davidrenne.com
58
+ - dnxglya4@duck.com
46
59
  executables: []
47
60
  extensions: []
48
61
  extra_rdoc_files: []
49
62
  files:
50
- - .gitignore
51
- - .idea/.name
52
- - .idea/encodings.xml
53
- - .idea/scopes/scope_settings.xml
54
- - .idea/vcs.xml
63
+ - ".gitignore"
64
+ - ".idea/.name"
65
+ - ".idea/encodings.xml"
66
+ - ".idea/scopes/scope_settings.xml"
67
+ - ".idea/vcs.xml"
55
68
  - Gemfile
56
69
  - LICENSE.txt
57
70
  - README.md
@@ -79,12 +92,28 @@ files:
79
92
  - app/views/widget_list/list_partials/_sequence.html.erb
80
93
  - app/views/widget_list/list_partials/_sort_column.html.erb
81
94
  - checkin_gem.sh
95
+ - docs/legacy-readme.md
96
+ - docs/screenshots/admin1.jpg
97
+ - docs/screenshots/admin2.jpg
98
+ - docs/screenshots/admin3.jpg
99
+ - docs/screenshots/admin4.jpg
100
+ - docs/screenshots/admin5.png
101
+ - docs/screenshots/admin6.png
102
+ - docs/screenshots/filtered.png
103
+ - docs/screenshots/main.png
104
+ - docs/screenshots/ransack1.png
105
+ - docs/screenshots/ransack2.png
106
+ - docs/screenshots/ransack3.png
107
+ - docs/screenshots/search.png
108
+ - docs/screenshots/theme_blue_sky_basin.png
109
+ - docs/widget-list-demo-thumbnail.png
82
110
  - lib/extensions/action_controller_base.rb
83
111
  - lib/widget_list.rb
84
112
  - lib/widget_list/engine.rb
85
113
  - lib/widget_list/hash.rb
86
114
  - lib/widget_list/md5.rb
87
115
  - lib/widget_list/railtie.rb
116
+ - lib/widget_list/request_context.rb
88
117
  - lib/widget_list/sequel.rb
89
118
  - lib/widget_list/string.rb
90
119
  - lib/widget_list/tpl.rb
@@ -315,32 +344,29 @@ files:
315
344
  - vendor/assets/images/text-field.gif
316
345
  - vendor/assets/images/th_header.gif
317
346
  - vendor/assets/javascripts/widget_list.js
318
- - vendor/assets/stylesheets/widget_list.css
319
- - vendor/assets/stylesheets/widgets.css
347
+ - vendor/assets/stylesheets/widget_list.css.erb
348
+ - vendor/assets/stylesheets/widgets.css.erb
320
349
  - widget_list.gemspec
321
350
  homepage: https://github.com/davidrenne/widget_list
322
351
  licenses:
323
352
  - MIT
324
- metadata: {}
325
- post_install_message:
353
+ metadata:
354
+ rubygems_mfa_required: 'true'
326
355
  rdoc_options: []
327
356
  require_paths:
328
357
  - lib
329
358
  required_ruby_version: !ruby/object:Gem::Requirement
330
359
  requirements:
331
- - - ! '>='
360
+ - - ">="
332
361
  - !ruby/object:Gem::Version
333
- version: '0'
362
+ version: '3.2'
334
363
  required_rubygems_version: !ruby/object:Gem::Requirement
335
364
  requirements:
336
- - - ! '>='
365
+ - - ">="
337
366
  - !ruby/object:Gem::Version
338
367
  version: '0'
339
368
  requirements: []
340
- rubyforge_project:
341
- rubygems_version: 2.2.2
342
- signing_key:
369
+ rubygems_version: 3.6.9
343
370
  specification_version: 4
344
- summary: In rails you have will_paginate and other gems like it using the ActiveRecord
345
- approach, but widget_list adds some awesome treats to standard boring pagers
371
+ summary: Rails data grids with Ajax search, sorting, pagination, and CSV export
346
372
  test_files: []