grid_table 1.4.1 → 1.5.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d6037e9f180243d42182c4eb6a5739fc457d256d
4
- data.tar.gz: 34ddfabfae33383f69c46f4f4d1920d78d1ab495
3
+ metadata.gz: 1b27c4be55d74d0ccf12bd427010198b701bdca0
4
+ data.tar.gz: 8e36d295b387aabfde419f540831d6ffc9bcac17
5
5
  SHA512:
6
- metadata.gz: 9b74ed307fb917880bad85c2f519f962c6370cc9fdf1f9515a1b0ba4ed828a1f37f28ed65fd8f525d3d7ff21753796bf91c13e41c8250f0482c1d6560b469e5f
7
- data.tar.gz: 83537aac94772bf820c8650a246eccc7171c51eecac5215b91b1b4053e36db27b455faf288f32b2d0b09913853194fa3ef82b21c64321186dae180aaeb54b1f5
6
+ metadata.gz: 4aeac716e13fd0351d22ef03e0513b38c93441ab804456f3d899ae0e2452fa564ad7202835d0b5bdb05cca0af2c1cf7dd534eb3cac747c286dbc346d969f2d0e
7
+ data.tar.gz: fbf43395823247b8ac48b06d44619ff8d952f284c19a8be0c3e570d14ebf8c1644f4547cf47a310ce2e4fcc5c2b7d986c7e42c301e668d36e812663ed6c3f27c
data/.rubocop.yml CHANGED
@@ -1,4 +1,5 @@
1
1
  AllCops:
2
+ TargetRubyVersion: 2.4
2
3
  Include:
3
4
  - Rakefile
4
5
  - '**/Gemfile'
@@ -70,10 +70,14 @@ class GridTable::Control
70
70
  records
71
71
  end
72
72
  else
73
- prepared_records(records).order("#{table_with_column} #{sort_order}")
73
+ prepared_records(records).order("#{column} #{sort_order}")
74
74
  end
75
75
  end
76
76
 
77
+ def select
78
+ "#{table_with_column} as #{column}"
79
+ end
80
+
77
81
  def url_param
78
82
  @attribute
79
83
  end
@@ -25,6 +25,7 @@ class GridTable::Table
25
25
  @params = params.to_h.with_indifferent_access
26
26
  @records = resource
27
27
 
28
+ select
28
29
  filter! unless params[:skip_filtering]
29
30
  @total_rows = @records.length
30
31
  sort! unless params[:skip_sorting]
@@ -61,6 +62,10 @@ class GridTable::Table
61
62
  end
62
63
  end
63
64
 
65
+ def select
66
+ @records = @records.select(@controls.map(&:select).join(','))
67
+ end
68
+
64
69
  def sort!
65
70
  control = GridTable::Control.find_by_param(@params[:sort], @controls)
66
71
 
@@ -1,3 +1,3 @@
1
1
  module GridTable
2
- VERSION = '1.4.1'.freeze
2
+ VERSION = '1.5.0'.freeze
3
3
  end
@@ -80,13 +80,9 @@ GridTable = (function() {
80
80
  };
81
81
 
82
82
  GridTable.prototype.gridTableParams = null;
83
-
84
83
  GridTable.prototype.gridTableDOM = null;
85
-
86
84
  GridTable.prototype.loadDataCompleteCallback = null;
87
-
88
85
  GridTable.prototype.loadDataStartCallback = null;
89
-
90
86
  GridTable.prototype.loadDataErrorCallback = null;
91
87
 
92
88
  function GridTable(params) {
@@ -139,22 +135,28 @@ GridTable = (function() {
139
135
  });
140
136
  };
141
137
  })(this));
142
- this.gridTableDOM.find('.grid-pager #pagesize').each((function(_this) {
138
+ this.gridTableDOM.find('#pagesize, .pagesize').each((function(_this) {
143
139
  return function(index, elem) {
144
140
  var pageSizeSelect, size, _i, _len, _ref;
145
- pageSizeSelect = '<select id="page-size-select">';
146
- _ref = _this.gridTableParams.pageSizeOptions;
147
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
148
- size = _ref[_i];
149
- if (size === _this.gridTableParams.pageSize) {
150
- pageSizeSelect += "<option selected value=\"" + size + "\">" + size + "</option>";
151
- } else {
152
- pageSizeSelect += "<option value=\"" + size + "\">" + size + "</option>";
141
+
142
+ pageSizeSelect = $(elem).find(".page-size-select");
143
+
144
+ if (pageSizeSelect == null) {
145
+ pageSizeSelect = '<select class="page-size-select">';
146
+ _ref = _this.gridTableParams.pageSizeOptions;
147
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
148
+ size = _ref[_i];
149
+ if (size === _this.gridTableParams.pageSize) {
150
+ pageSizeSelect += "<option selected value=\"" + size + "\">" + size + "</option>";
151
+ } else {
152
+ pageSizeSelect += "<option value=\"" + size + "\">" + size + "</option>";
153
+ }
153
154
  }
155
+ pageSizeSelect += '</select>';
156
+ $(elem).append(pageSizeSelect);
154
157
  }
155
- pageSizeSelect += '</select>';
156
- $(elem).append(pageSizeSelect);
157
- return $(elem).find('#page-size-select').on("change", function(event) {
158
+
159
+ return $(elem).find('.page-size-select').on("change", function(event) {
158
160
  return _this.setPageSize($(event.currentTarget).val());
159
161
  });
160
162
  };
@@ -234,8 +236,10 @@ GridTable = (function() {
234
236
  };
235
237
 
236
238
  GridTable.prototype.loadData = function(params) {
237
- if ($('li#pagedisplay').data('initial-page') != null) {
238
- this.gridTableParams.page = $('li#pagedisplay').data('initial-page');
239
+ var page_display = this.gridTableDOM.find('#pagedisplay, .pagedisplay');
240
+
241
+ if (page_display.data('initial-page') != null) {
242
+ this.gridTableParams.page = page_display.data('initial-page');
239
243
  }
240
244
  if (params == null) {
241
245
  params = {};
@@ -285,8 +289,10 @@ GridTable = (function() {
285
289
  };
286
290
 
287
291
  GridTable.prototype.clearInitialValues = function() {
288
- $('li#pagedisplay').data('initial-page', null);
289
- $('li#pagedisplay').data('initial-id', null);
292
+ var page_display = this.gridTableDOM.find('#pagedisplay, .pagedisplay');
293
+
294
+ page_display.data('initial-page', null);
295
+ page_display.data('initial-id', null);
290
296
  }
291
297
 
292
298
  GridTable.prototype.exportData = function() {
@@ -303,11 +309,11 @@ GridTable = (function() {
303
309
  GridTable.prototype.updatePagerDisplay = function(total_rows) {
304
310
  var back_enabled, display, first, forward_enabled, last, last_page, next, pager, previous;
305
311
  pager = this.gridTableDOM.find('.grid-pager');
306
- first = $(pager).find('#first');
307
- previous = $(pager).find('#previous');
308
- next = $(pager).find('#next');
309
- last = $(pager).find('#last');
310
- display = $(pager).find('#pagedisplay');
312
+ first = $(pager).find('#first, .first');
313
+ previous = $(pager).find('#previous, .previous');
314
+ next = $(pager).find('#next, .next');
315
+ last = $(pager).find('#last, .last');
316
+ display = $(pager).find('#pagedisplay, .pagedisplay');
311
317
  $(first).off('click');
312
318
  $(previous).off('click');
313
319
  $(next).off('click');
@@ -389,19 +395,12 @@ GridTable = (function() {
389
395
 
390
396
  GridTableParams = (function() {
391
397
  GridTableParams.prototype.id = null;
392
-
393
398
  GridTableParams.prototype.url = null;
394
-
395
399
  GridTableParams.prototype.sortCol = '';
396
-
397
400
  GridTableParams.prototype.sortOrder = '';
398
-
399
401
  GridTableParams.prototype.filter = {};
400
-
401
402
  GridTableParams.prototype.page = 0;
402
-
403
403
  GridTableParams.prototype.pageSize = 10;
404
-
405
404
  GridTableParams.prototype.pageSizeOptions = [5, 10, 25, 50, 100, 200];
406
405
 
407
406
  function GridTableParams(params) {
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grid_table
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.1
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jon Principe
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-08-29 00:00:00.000000000 Z
12
+ date: 2017-08-31 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler