grid_table 1.4.1 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
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