foo_table-rails 2.0.1.4 → 2.0.1.5
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/lib/foo_table-rails/version.rb +1 -1
- data/vendor/assets/javascripts/footable.all.min.js +4 -4
- data/vendor/assets/javascripts/footable.bookmarkable.js +170 -0
- data/vendor/assets/javascripts/footable.bookmarkable.min.js +1 -0
- data/vendor/assets/javascripts/footable.core.js +6 -4
- data/vendor/assets/javascripts/footable.core.min.js +4 -4
- data/vendor/assets/javascripts/footable.grid.js +373 -0
- data/vendor/assets/javascripts/footable.memory.js +429 -0
- data/vendor/assets/javascripts/footable.paginate.js +2 -1
- data/vendor/assets/javascripts/footable.paginate.min.js +1 -1
- data/vendor/assets/javascripts/footable.striping.min.js +1 -0
- data/vendor/assets/stylesheets/footable.core.css +15 -15
- metadata +6 -1
@@ -0,0 +1,429 @@
|
|
1
|
+
/**
|
2
|
+
* Footable Memory
|
3
|
+
*
|
4
|
+
* Version 1.1.0
|
5
|
+
*
|
6
|
+
* Requires browser support for localStorage. Fallback to cookies using
|
7
|
+
* jQuery Cookie (https://github.com/carhartl/jquery-cookie)
|
8
|
+
*
|
9
|
+
* Stores table state in a cookie and reloads state when page is refreshed.
|
10
|
+
*
|
11
|
+
* Supports common FooTable features:
|
12
|
+
* - Pagination
|
13
|
+
* - Sorting
|
14
|
+
* - Filtering
|
15
|
+
* - Expansion
|
16
|
+
*
|
17
|
+
* Written to be compatible with multiple FooTables per page and with
|
18
|
+
* JavaScript libraries like AngularJS and Ember that use hash based URLs.
|
19
|
+
*
|
20
|
+
* Disabled by default, to enable add the following section to the footable
|
21
|
+
* options:
|
22
|
+
*
|
23
|
+
* $('#table').footable({
|
24
|
+
* memory: {
|
25
|
+
* enabled: true
|
26
|
+
* }
|
27
|
+
* });
|
28
|
+
*
|
29
|
+
* Based on FooTable Plugin Bookmarkable by Amy Farrell (https://github.com/akf)
|
30
|
+
*
|
31
|
+
* Created by Chris Laskey (https://github.com/chrislaskey)
|
32
|
+
*/
|
33
|
+
|
34
|
+
(function ($, w, undefined) {
|
35
|
+
|
36
|
+
if (w.footable === undefined || w.foobox === null) {
|
37
|
+
throw new Error('Please check and make sure footable.js is included in the page and is loaded prior to this script.');
|
38
|
+
}
|
39
|
+
|
40
|
+
var defaults = {
|
41
|
+
memory: {
|
42
|
+
enabled: false
|
43
|
+
}
|
44
|
+
};
|
45
|
+
|
46
|
+
var storage;
|
47
|
+
|
48
|
+
var storage_engines = {};
|
49
|
+
|
50
|
+
storage_engines.local_storage = (function($){
|
51
|
+
|
52
|
+
'use strict';
|
53
|
+
|
54
|
+
var path_page = function(){
|
55
|
+
return location.pathname;
|
56
|
+
};
|
57
|
+
|
58
|
+
var path_subpage = function(){
|
59
|
+
return location.hash || 'root';
|
60
|
+
};
|
61
|
+
|
62
|
+
var storage_key = function(index){
|
63
|
+
return path_page() + '/' + path_subpage() + '/index-' + index;
|
64
|
+
};
|
65
|
+
|
66
|
+
var get = function(index){
|
67
|
+
var key = storage_key(index),
|
68
|
+
as_string = localStorage.getItem(key);
|
69
|
+
|
70
|
+
return as_string ? JSON.parse(as_string) : {};
|
71
|
+
};
|
72
|
+
|
73
|
+
var set = function(index, item){
|
74
|
+
var key = storage_key(index),
|
75
|
+
as_string = JSON.stringify(item);
|
76
|
+
|
77
|
+
localStorage.setItem(key, as_string);
|
78
|
+
};
|
79
|
+
|
80
|
+
return {
|
81
|
+
get: function(index){
|
82
|
+
return get(index);
|
83
|
+
},
|
84
|
+
set: function(index, item){
|
85
|
+
set(index, item);
|
86
|
+
}
|
87
|
+
};
|
88
|
+
|
89
|
+
})($);
|
90
|
+
|
91
|
+
storage_engines.cookie = (function($){
|
92
|
+
|
93
|
+
'use strict';
|
94
|
+
|
95
|
+
/**
|
96
|
+
* Stores footable bookmarkable data in a cookie
|
97
|
+
*
|
98
|
+
* By default will store each page in its own cookie.
|
99
|
+
* Supports multiple FooTables per page.
|
100
|
+
* Supports JS frameworks that use hashmap URLs (AngularJS, Ember, etc).
|
101
|
+
*
|
102
|
+
* For example take an example application:
|
103
|
+
*
|
104
|
+
* http://example.com/application-data (2 FooTables on this page)
|
105
|
+
* http://example.com/application-data/#/details (1 FooTable on this page)
|
106
|
+
* http://example.com/other-data (1 FooTable on this page)
|
107
|
+
*
|
108
|
+
* Would be stored like this:
|
109
|
+
*
|
110
|
+
* cookie['/application-data'] = {
|
111
|
+
* '/': {
|
112
|
+
* 1: {
|
113
|
+
* key1: value1,
|
114
|
+
* key2: value2
|
115
|
+
* },
|
116
|
+
* 2: {
|
117
|
+
* key1: value1,
|
118
|
+
* key2: value2
|
119
|
+
* }
|
120
|
+
* },
|
121
|
+
* '#/details': {
|
122
|
+
* 1: {
|
123
|
+
* key1: value1,
|
124
|
+
* key2: value2
|
125
|
+
* }
|
126
|
+
* }
|
127
|
+
* };
|
128
|
+
*
|
129
|
+
* cookie['/other-data'] = {
|
130
|
+
* '/': {
|
131
|
+
* 1: {
|
132
|
+
* key1: value1,
|
133
|
+
* key2: value2
|
134
|
+
* },
|
135
|
+
* }
|
136
|
+
* }
|
137
|
+
*
|
138
|
+
*/
|
139
|
+
|
140
|
+
if( $.cookie ){
|
141
|
+
$.cookie.json = true;
|
142
|
+
}
|
143
|
+
|
144
|
+
var days_to_keep_data = 7;
|
145
|
+
|
146
|
+
var path_page = function(){
|
147
|
+
return location.pathname;
|
148
|
+
};
|
149
|
+
|
150
|
+
var path_subpage = function(){
|
151
|
+
return location.hash || '/';
|
152
|
+
};
|
153
|
+
|
154
|
+
var get_data = function(){
|
155
|
+
var page = path_page(),
|
156
|
+
data = $.cookie(page);
|
157
|
+
|
158
|
+
return data || {};
|
159
|
+
};
|
160
|
+
|
161
|
+
var get_table = function(index){
|
162
|
+
var subpage = path_subpage(),
|
163
|
+
data = get_data();
|
164
|
+
|
165
|
+
if( data[subpage] && data[subpage][index] ){
|
166
|
+
return data[subpage][index];
|
167
|
+
} else {
|
168
|
+
return {};
|
169
|
+
}
|
170
|
+
};
|
171
|
+
|
172
|
+
var set = function(index, item){
|
173
|
+
var page = path_page(),
|
174
|
+
subpage = path_subpage(),
|
175
|
+
data = get_data(),
|
176
|
+
options;
|
177
|
+
|
178
|
+
if( !data[subpage] ){
|
179
|
+
data[subpage] = {};
|
180
|
+
}
|
181
|
+
|
182
|
+
data[subpage][index] = item;
|
183
|
+
|
184
|
+
options = {
|
185
|
+
path: page,
|
186
|
+
expires: days_to_keep_data
|
187
|
+
};
|
188
|
+
|
189
|
+
$.cookie(page, data, options);
|
190
|
+
};
|
191
|
+
|
192
|
+
return {
|
193
|
+
get: function(index){
|
194
|
+
return get_table(index);
|
195
|
+
},
|
196
|
+
set: function(index, item){
|
197
|
+
set(index, item);
|
198
|
+
}
|
199
|
+
};
|
200
|
+
|
201
|
+
})($);
|
202
|
+
|
203
|
+
var set_storage_engine = (function(){
|
204
|
+
var test = 'footable-memory-plugin-storage-test';
|
205
|
+
|
206
|
+
try {
|
207
|
+
localStorage.setItem(test, test);
|
208
|
+
localStorage.removeItem(test);
|
209
|
+
storage = storage_engines.local_storage;
|
210
|
+
} catch(e) {
|
211
|
+
try {
|
212
|
+
$.cookie(test, test);
|
213
|
+
storage = storage_engines.cookie;
|
214
|
+
} catch(e) {
|
215
|
+
throw new Error('FooTable Memory requires either localStorage or cookie support via jQuery $.cookie plugin (https://github.com/carhartl/jquery-cookie)');
|
216
|
+
}
|
217
|
+
}
|
218
|
+
})($);
|
219
|
+
|
220
|
+
var state = (function($){
|
221
|
+
|
222
|
+
'use strict';
|
223
|
+
|
224
|
+
/**
|
225
|
+
* Gets and sets current table state
|
226
|
+
*/
|
227
|
+
|
228
|
+
var vars = {};
|
229
|
+
|
230
|
+
var get = {};
|
231
|
+
|
232
|
+
var set = {};
|
233
|
+
|
234
|
+
set.vars = function(ft){
|
235
|
+
vars.ft = ft;
|
236
|
+
vars.table = $(ft.table);
|
237
|
+
};
|
238
|
+
|
239
|
+
get.descending = function(){
|
240
|
+
var descending = false;
|
241
|
+
$.each(vars.table.find('th'), function(index){
|
242
|
+
if( $(this).hasClass('footable-sorted-desc') ){
|
243
|
+
descending = true;
|
244
|
+
}
|
245
|
+
});
|
246
|
+
return descending;
|
247
|
+
};
|
248
|
+
|
249
|
+
get.expanded = function(){
|
250
|
+
var indexes = [];
|
251
|
+
$.each(vars.ft.table.rows, function(index, value){
|
252
|
+
if( $(this).hasClass('footable-detail-show') ){
|
253
|
+
indexes.push(index);
|
254
|
+
}
|
255
|
+
});
|
256
|
+
return indexes;
|
257
|
+
};
|
258
|
+
|
259
|
+
set.expanded = function(data){
|
260
|
+
if( data.expanded ){
|
261
|
+
$.each(data.expanded, function(index, value){
|
262
|
+
// var row = $(vars.ft.table.rows[value]);
|
263
|
+
// row.find('> td:first').trigger('footable_toggle_row');
|
264
|
+
|
265
|
+
// Trying to execute the lines above, but the expanded row
|
266
|
+
// shows raw AngularJS template (with {{ values }}) instead
|
267
|
+
// of the fully rendered result.
|
268
|
+
//
|
269
|
+
// Best guess is some things happen after
|
270
|
+
// 'footable_initialized' event and row expanding can not
|
271
|
+
// occur until after those fire.
|
272
|
+
//
|
273
|
+
// A hack to get around this is to wait an interval before
|
274
|
+
// executing the intended commands. Wrapped in an
|
275
|
+
// immediately executing function to ensure ft is the
|
276
|
+
// current value.
|
277
|
+
|
278
|
+
(function(ft){
|
279
|
+
setTimeout(function(){
|
280
|
+
var row = $(ft.table.rows[value]);
|
281
|
+
row.find('> td:first').trigger('footable_toggle_row');
|
282
|
+
}, 150);
|
283
|
+
})(vars.ft);
|
284
|
+
});
|
285
|
+
}
|
286
|
+
};
|
287
|
+
|
288
|
+
get.filter = function(){
|
289
|
+
return vars.table.data('filter') ? $(vars.table.data('filter')).val() : '';
|
290
|
+
};
|
291
|
+
|
292
|
+
set.filter = function(data){
|
293
|
+
if( data.filter ){
|
294
|
+
$(vars.table.data('filter'))
|
295
|
+
.val(data.filter)
|
296
|
+
.trigger('keyup');
|
297
|
+
}
|
298
|
+
};
|
299
|
+
|
300
|
+
get.page = function(){
|
301
|
+
return vars.ft.pageInfo && vars.ft.pageInfo.currentPage !== undefined ? vars.ft.pageInfo.currentPage : 0;
|
302
|
+
};
|
303
|
+
|
304
|
+
set.page = function(data){
|
305
|
+
if( data.page ){
|
306
|
+
vars.table.data('currentPage', data.page);
|
307
|
+
// Delay triggering table until sort is updated, since both effect
|
308
|
+
// pagination.
|
309
|
+
}
|
310
|
+
};
|
311
|
+
|
312
|
+
get.shown = function(){
|
313
|
+
return vars.table
|
314
|
+
.find('tbody')
|
315
|
+
.find('tr:not(.footable-row-detail)')
|
316
|
+
.filter(':visible').length;
|
317
|
+
};
|
318
|
+
|
319
|
+
get.sorted = function(){
|
320
|
+
if( vars.table.data('sorted') !== undefined ){
|
321
|
+
return vars.table.data('sorted');
|
322
|
+
} else {
|
323
|
+
return -1;
|
324
|
+
}
|
325
|
+
};
|
326
|
+
|
327
|
+
set.sorted = function(data){
|
328
|
+
if( data.sorted >= 0 ) {
|
329
|
+
// vars.table.data('footable-sort').doSort(data.sorted, !data.descending);
|
330
|
+
|
331
|
+
// Trying to execute the line above, but only sort icon on the
|
332
|
+
// <th> element gets set. The rows themselves do not get sorted.
|
333
|
+
//
|
334
|
+
// Best guess is some things happen after 'footable_initialized' event
|
335
|
+
// and sorting can not occur until after those fire.
|
336
|
+
//
|
337
|
+
// A hack to get around this is to wait an interval before executing
|
338
|
+
// the intended commands. Wrapped in an immediately executing
|
339
|
+
// function to ensure ft is the current value.
|
340
|
+
|
341
|
+
(function(ft){
|
342
|
+
setTimeout(function(){
|
343
|
+
$(ft.table).data('footable-sort').doSort(data.sorted, !data.descending);
|
344
|
+
}, 150);
|
345
|
+
})(vars.ft);
|
346
|
+
} else {
|
347
|
+
vars.table.trigger('footable_setup_paging');
|
348
|
+
}
|
349
|
+
};
|
350
|
+
|
351
|
+
get.total = function(){
|
352
|
+
return vars.table
|
353
|
+
.find('tbody')
|
354
|
+
.find('tr:not(.footable-row-detail, .footable-filtered)').length;
|
355
|
+
};
|
356
|
+
|
357
|
+
var get_state = function(){
|
358
|
+
return {
|
359
|
+
descending: get.descending(),
|
360
|
+
expanded: get.expanded(),
|
361
|
+
filter: get.filter(),
|
362
|
+
page: get.page(),
|
363
|
+
shown: get.shown(),
|
364
|
+
sorted: get.sorted(),
|
365
|
+
total: get.total()
|
366
|
+
};
|
367
|
+
};
|
368
|
+
|
369
|
+
var set_state = function(data){
|
370
|
+
set.filter(data);
|
371
|
+
set.page(data);
|
372
|
+
set.sorted(data);
|
373
|
+
set.expanded(data);
|
374
|
+
};
|
375
|
+
|
376
|
+
return {
|
377
|
+
get: function(ft){
|
378
|
+
set.vars(ft);
|
379
|
+
return get_state();
|
380
|
+
},
|
381
|
+
set: function(ft, data){
|
382
|
+
set.vars(ft);
|
383
|
+
return set_state(data);
|
384
|
+
}
|
385
|
+
};
|
386
|
+
|
387
|
+
})($);
|
388
|
+
|
389
|
+
var is_enabled = function(ft){
|
390
|
+
return ft.options.memory.enabled;
|
391
|
+
};
|
392
|
+
|
393
|
+
var update = function(ft, event) {
|
394
|
+
var index = ft.id,
|
395
|
+
data = state.get(ft);
|
396
|
+
|
397
|
+
storage.set(index, data);
|
398
|
+
};
|
399
|
+
|
400
|
+
var load = function(ft){
|
401
|
+
var index = ft.id,
|
402
|
+
data = storage.get(index);
|
403
|
+
|
404
|
+
state.set(ft, data);
|
405
|
+
ft.memory_plugin_loaded = true;
|
406
|
+
};
|
407
|
+
|
408
|
+
function Memory() {
|
409
|
+
var p = this;
|
410
|
+
p.name = 'Footable Memory';
|
411
|
+
p.init = function(ft) {
|
412
|
+
if (is_enabled(ft)) {
|
413
|
+
$(ft.table).bind({
|
414
|
+
'footable_initialized': function(){
|
415
|
+
load(ft);
|
416
|
+
},
|
417
|
+
'footable_page_filled footable_redrawn footable_filtered footable_sorted footable_row_expanded footable_row_collapsed': function(e) {
|
418
|
+
if (ft.memory_plugin_loaded) {
|
419
|
+
update(ft, e);
|
420
|
+
}
|
421
|
+
}
|
422
|
+
});
|
423
|
+
}
|
424
|
+
};
|
425
|
+
}
|
426
|
+
|
427
|
+
w.footable.plugins.register(Memory, defaults);
|
428
|
+
|
429
|
+
})(jQuery, window);
|
@@ -224,6 +224,7 @@
|
|
224
224
|
$(ft.pageInfo.pages[pageNumber]).each(function () {
|
225
225
|
p.showRow(this, ft);
|
226
226
|
});
|
227
|
+
ft.raise('footable_page_filled');
|
227
228
|
};
|
228
229
|
|
229
230
|
p.showRow = function (row, ft) {
|
@@ -238,4 +239,4 @@
|
|
238
239
|
|
239
240
|
w.footable.plugins.register(Paginate, defaults);
|
240
241
|
|
241
|
-
})(jQuery, window);
|
242
|
+
})(jQuery, window);
|
@@ -1 +1 @@
|
|
1
|
-
(function(e,t,undefined){function a(t){var a=e(t.table),i=a.data();this.pageNavigation=i.pageNavigation||t.options.pageNavigation,this.pageSize=i.pageSize||t.options.pageSize,this.firstText=i.firstText||t.options.firstText,this.previousText=i.previousText||t.options.previousText,this.nextText=i.nextText||t.options.nextText,this.lastText=i.lastText||t.options.lastText,this.limitNavigation=parseInt(i.limitNavigation||t.options.limitNavigation||o.limitNavigation,10),this.limitPreviousText=i.limitPreviousText||t.options.limitPreviousText,this.limitNextText=i.limitNextText||t.options.limitNextText,this.limit=this.limitNavigation>0,this.currentPage=0,this.pages=[],this.control=!1}function i(){var t=this;t.name="Footable Paginate",t.init=function(a){if(a.options.paginate===!0){if(e(a.table).data("page")===!1)return;t.footable=a,e(a.table).unbind(".paging").bind({"footable_initialized.paging footable_row_removed.paging footable_redrawn.paging footable_sorted.paging footable_filtered.paging":function(){t.setupPaging()}}).data("footable-paging",t)}},t.setupPaging=function(){var i=t.footable,o=e(i.table).find("> tbody");i.pageInfo=new a(i),t.createPages(i,o),t.createNavigation(i,o),t.fillPage(i,o,i.pageInfo.currentPage)},t.createPages=function(t,a){var i=1,o=t.pageInfo,n=i*o.pageSize,l=[],r=[];o.pages=[];var d=a.find("> tr:not(.footable-filtered,.footable-row-detail)");d.each(function(e,t){l.push(t),e===n-1?(o.pages.push(l),i++,n=i*o.pageSize,l=[]):e>=d.length-d.length%o.pageSize&&r.push(t)}),r.length>0&&o.pages.push(r),o.currentPage>=o.pages.length&&(o.currentPage=o.pages.length-1),0>o.currentPage&&(o.currentPage=0),1===o.pages.length?e(t.table).addClass("no-paging"):e(t.table).removeClass("no-paging")},t.createNavigation=function(a){var i=e(a.table).find(a.pageInfo.pageNavigation);if(0===i.length){if(i=e(a.pageInfo.pageNavigation),i.parents("table:first").length>0&&i.parents("table:first")!==e(a.table))return;i.length>1&&a.options.debug===!0&&console.error("More than one pagination control was found!")}if(0!==i.length){i.is("ul")||(0===i.find("ul:first").length&&i.append("<ul />"),i=i.find("ul")),i.find("li").remove();var o=a.pageInfo;o.control=i,o.pages.length>0&&(i.append('<li class="footable-page-arrow"><a data-page="first" href="#first">'+a.pageInfo.firstText+"</a>"),i.append('<li class="footable-page-arrow"><a data-page="prev" href="#prev">'+a.pageInfo.previousText+"</a></li>"),o.limit&&i.append('<li class="footable-page-arrow"><a data-page="limit-prev" href="#limit-prev">'+a.pageInfo.limitPreviousText+"</a></li>"),o.limit||e.each(o.pages,function(e,t){t.length>0&&i.append('<li class="footable-page"><a data-page="'+e+'" href="#">'+(e+1)+"</a></li>")}),o.limit&&(i.append('<li class="footable-page-arrow"><a data-page="limit-next" href="#limit-next">'+a.pageInfo.limitNextText+"</a></li>"),t.createLimited(i,o,0)),i.append('<li class="footable-page-arrow"><a data-page="next" href="#next">'+a.pageInfo.nextText+"</a></li>"),i.append('<li class="footable-page-arrow"><a data-page="last" href="#last">'+a.pageInfo.lastText+"</a></li>")),i.off("click","a[data-page]").on("click","a[data-page]",function(n){n.preventDefault();var l=e(this).data("page"),r=o.currentPage;if("first"===l)r=0;else if("prev"===l)r>0&&r--;else if("next"===l)o.pages.length-1>r&&r++;else if("last"===l)r=o.pages.length-1;else if("limit-prev"===l){r=-1;var d=i.find(".footable-page:first a").data("page");t.createLimited(i,o,d-o.limitNavigation),t.setPagingClasses(i,o.currentPage,o.pages.length)}else if("limit-next"===l){r=-1;var s=i.find(".footable-page:last a").data("page");t.createLimited(i,o,s+1),t.setPagingClasses(i,o.currentPage,o.pages.length)}else r=l;if(r>=0){if(o.limit&&o.currentPage!=r){for(var f=r;0!==f%o.limitNavigation;)f-=1;t.createLimited(i,o,f)}t.paginate(a,r)}}),t.setPagingClasses(i,o.currentPage,o.pages.length)}},t.createLimited=function(e,t,a){a=a||0,e.find("li.footable-page").remove();var i,o,n=e.find('li.footable-page-arrow > a[data-page="limit-prev"]').parent(),l=e.find('li.footable-page-arrow > a[data-page="limit-next"]').parent();for(i=t.pages.length-1;i>=0;i--)o=t.pages[i],i>=a&&a+t.limitNavigation>i&&o.length>0&&n.after('<li class="footable-page"><a data-page="'+i+'" href="#">'+(i+1)+"</a></li>");0===a?n.hide():n.show(),a+t.limitNavigation>=t.pages.length?l.hide():l.show()},t.paginate=function(a,i){var o=a.pageInfo;if(o.currentPage!==i){var n=e(a.table).find("> tbody"),l=a.raise("footable_paging",{page:i,size:o.pageSize});if(l&&l.result===!1)return;t.fillPage(a,n,i),o.control.find("li").removeClass("active disabled"),t.setPagingClasses(o.control,o.currentPage,o.pages.length)}},t.setPagingClasses=function(e,t,a){e.find("li.footable-page > a[data-page="+t+"]").parent().addClass("active"),t>=a-1&&(e.find('li.footable-page-arrow > a[data-page="next"]').parent().addClass("disabled"),e.find('li.footable-page-arrow > a[data-page="last"]').parent().addClass("disabled")),1>t&&(e.find('li.footable-page-arrow > a[data-page="first"]').parent().addClass("disabled"),e.find('li.footable-page-arrow > a[data-page="prev"]').parent().addClass("disabled"))},t.fillPage=function(a,i,o){a.pageInfo.currentPage=o,i.find("> tr").hide(),e(a.pageInfo.pages[o]).each(function(){t.showRow(this,a)})},t.showRow=function(t,a){var i=e(t),o=i.next(),n=e(a.table);n.hasClass("breakpoint")&&i.hasClass("footable-detail-show")&&o.hasClass("footable-row-detail")?(i.add(o).show(),a.createOrUpdateDetailRow(t)):i.show()}}if(t.footable===undefined||null===t.footable)throw Error("Please check and make sure footable.js is included in the page and is loaded prior to this script.");var o={paginate:!0,pageSize:10,pageNavigation:".pagination",firstText:"«",previousText:"‹",nextText:"›",lastText:"»",limitNavigation:0,limitPreviousText:"...",limitNextText:"..."};t.footable.plugins.register(i,o)})(jQuery,window);
|
1
|
+
(function(e,t,undefined){function a(t){var a=e(t.table),i=a.data();this.pageNavigation=i.pageNavigation||t.options.pageNavigation,this.pageSize=i.pageSize||t.options.pageSize,this.firstText=i.firstText||t.options.firstText,this.previousText=i.previousText||t.options.previousText,this.nextText=i.nextText||t.options.nextText,this.lastText=i.lastText||t.options.lastText,this.limitNavigation=parseInt(i.limitNavigation||t.options.limitNavigation||o.limitNavigation,10),this.limitPreviousText=i.limitPreviousText||t.options.limitPreviousText,this.limitNextText=i.limitNextText||t.options.limitNextText,this.limit=this.limitNavigation>0,this.currentPage=i.currentPage||0,this.pages=[],this.control=!1}function i(){var t=this;t.name="Footable Paginate",t.init=function(a){if(a.options.paginate===!0){if(e(a.table).data("page")===!1)return;t.footable=a,e(a.table).unbind(".paging").bind({"footable_initialized.paging footable_row_removed.paging footable_redrawn.paging footable_sorted.paging footable_filtered.paging":function(){t.setupPaging()}}).data("footable-paging",t)}},t.setupPaging=function(){var i=t.footable,o=e(i.table).find("> tbody");i.pageInfo=new a(i),t.createPages(i,o),t.createNavigation(i,o),t.fillPage(i,o,i.pageInfo.currentPage)},t.createPages=function(t,a){var i=1,o=t.pageInfo,n=i*o.pageSize,l=[],r=[];o.pages=[];var d=a.find("> tr:not(.footable-filtered,.footable-row-detail)");d.each(function(e,t){l.push(t),e===n-1?(o.pages.push(l),i++,n=i*o.pageSize,l=[]):e>=d.length-d.length%o.pageSize&&r.push(t)}),r.length>0&&o.pages.push(r),o.currentPage>=o.pages.length&&(o.currentPage=o.pages.length-1),0>o.currentPage&&(o.currentPage=0),1===o.pages.length?e(t.table).addClass("no-paging"):e(t.table).removeClass("no-paging")},t.createNavigation=function(a){var i=e(a.table).find(a.pageInfo.pageNavigation);if(0===i.length){if(i=e(a.pageInfo.pageNavigation),i.parents("table:first").length>0&&i.parents("table:first")!==e(a.table))return;i.length>1&&a.options.debug===!0&&console.error("More than one pagination control was found!")}if(0!==i.length){i.is("ul")||(0===i.find("ul:first").length&&i.append("<ul />"),i=i.find("ul")),i.find("li").remove();var o=a.pageInfo;o.control=i,o.pages.length>0&&(i.append('<li class="footable-page-arrow"><a data-page="first" href="#first">'+a.pageInfo.firstText+"</a>"),i.append('<li class="footable-page-arrow"><a data-page="prev" href="#prev">'+a.pageInfo.previousText+"</a></li>"),o.limit&&i.append('<li class="footable-page-arrow"><a data-page="limit-prev" href="#limit-prev">'+a.pageInfo.limitPreviousText+"</a></li>"),o.limit||e.each(o.pages,function(e,t){t.length>0&&i.append('<li class="footable-page"><a data-page="'+e+'" href="#">'+(e+1)+"</a></li>")}),o.limit&&(i.append('<li class="footable-page-arrow"><a data-page="limit-next" href="#limit-next">'+a.pageInfo.limitNextText+"</a></li>"),t.createLimited(i,o,0)),i.append('<li class="footable-page-arrow"><a data-page="next" href="#next">'+a.pageInfo.nextText+"</a></li>"),i.append('<li class="footable-page-arrow"><a data-page="last" href="#last">'+a.pageInfo.lastText+"</a></li>")),i.off("click","a[data-page]").on("click","a[data-page]",function(n){n.preventDefault();var l=e(this).data("page"),r=o.currentPage;if("first"===l)r=0;else if("prev"===l)r>0&&r--;else if("next"===l)o.pages.length-1>r&&r++;else if("last"===l)r=o.pages.length-1;else if("limit-prev"===l){r=-1;var d=i.find(".footable-page:first a").data("page");t.createLimited(i,o,d-o.limitNavigation),t.setPagingClasses(i,o.currentPage,o.pages.length)}else if("limit-next"===l){r=-1;var s=i.find(".footable-page:last a").data("page");t.createLimited(i,o,s+1),t.setPagingClasses(i,o.currentPage,o.pages.length)}else r=l;if(r>=0){if(o.limit&&o.currentPage!=r){for(var f=r;0!==f%o.limitNavigation;)f-=1;t.createLimited(i,o,f)}t.paginate(a,r)}}),t.setPagingClasses(i,o.currentPage,o.pages.length)}},t.createLimited=function(e,t,a){a=a||0,e.find("li.footable-page").remove();var i,o,n=e.find('li.footable-page-arrow > a[data-page="limit-prev"]').parent(),l=e.find('li.footable-page-arrow > a[data-page="limit-next"]').parent();for(i=t.pages.length-1;i>=0;i--)o=t.pages[i],i>=a&&a+t.limitNavigation>i&&o.length>0&&n.after('<li class="footable-page"><a data-page="'+i+'" href="#">'+(i+1)+"</a></li>");0===a?n.hide():n.show(),a+t.limitNavigation>=t.pages.length?l.hide():l.show()},t.paginate=function(a,i){var o=a.pageInfo;if(o.currentPage!==i){var n=e(a.table).find("> tbody"),l=a.raise("footable_paging",{page:i,size:o.pageSize});if(l&&l.result===!1)return;t.fillPage(a,n,i),o.control.find("li").removeClass("active disabled"),t.setPagingClasses(o.control,o.currentPage,o.pages.length)}},t.setPagingClasses=function(e,t,a){e.find("li.footable-page > a[data-page="+t+"]").parent().addClass("active"),t>=a-1&&(e.find('li.footable-page-arrow > a[data-page="next"]').parent().addClass("disabled"),e.find('li.footable-page-arrow > a[data-page="last"]').parent().addClass("disabled")),1>t&&(e.find('li.footable-page-arrow > a[data-page="first"]').parent().addClass("disabled"),e.find('li.footable-page-arrow > a[data-page="prev"]').parent().addClass("disabled"))},t.fillPage=function(a,i,o){a.pageInfo.currentPage=o,e(a.table).data("currentPage",o),i.find("> tr").hide(),e(a.pageInfo.pages[o]).each(function(){t.showRow(this,a)}),a.raise("footable_page_filled")},t.showRow=function(t,a){var i=e(t),o=i.next(),n=e(a.table);n.hasClass("breakpoint")&&i.hasClass("footable-detail-show")&&o.hasClass("footable-row-detail")?(i.add(o).show(),a.createOrUpdateDetailRow(t)):i.show()}}if(t.footable===undefined||null===t.footable)throw Error("Please check and make sure footable.js is included in the page and is loaded prior to this script.");var o={paginate:!0,pageSize:10,pageNavigation:".pagination",firstText:"«",previousText:"‹",nextText:"›",lastText:"»",limitNavigation:0,limitPreviousText:"...",limitNextText:"..."};t.footable.plugins.register(i,o)})(jQuery,window);
|
@@ -0,0 +1 @@
|
|
1
|
+
(function(e,t,undefined){function a(){var t=this;t.name="Footable Striping",t.init=function(a){t.footable=a,e(a.table).unbind("striping").bind({"footable_initialized.striping footable_row_removed.striping footable_redrawn.striping footable_sorted.striping footable_filtered.striping":function(){e(this).data("striping")!==!1&&t.setupStriping(a)}})},t.setupStriping=function(t){var a=0;e(t.table).find("> tbody > tr:not(.footable-row-detail)").each(function(){var i=e(this);i.removeClass(t.options.classes.striping.even).removeClass(t.options.classes.striping.odd),0===a%2?i.addClass(t.options.classes.striping.even):i.addClass(t.options.classes.striping.odd),a++})}}if(t.footable===undefined||null===t.foobox)throw Error("Please check and make sure footable.js is included in the page and is loaded prior to this script.");var i={striping:{enabled:!0},classes:{striping:{odd:"footable-odd",even:"footable-even"}}};t.footable.plugins.register(a,i)})(jQuery,window);
|
@@ -23,7 +23,7 @@
|
|
23
23
|
.footable.breakpoint > tbody > tr.footable-detail-show > td {
|
24
24
|
border-bottom: none;
|
25
25
|
}
|
26
|
-
.footable.breakpoint > tbody > tr.footable-detail-show
|
26
|
+
.footable.breakpoint > tbody > tr.footable-detail-show span.footable-toggle:before {
|
27
27
|
content: "\e001";
|
28
28
|
}
|
29
29
|
.footable.breakpoint > tbody > tr:hover:not(.footable-row-detail) {
|
@@ -33,7 +33,7 @@
|
|
33
33
|
background: #eee;
|
34
34
|
border-top: none;
|
35
35
|
}
|
36
|
-
.footable.breakpoint > tbody > tr
|
36
|
+
.footable.breakpoint > tbody > tr span.footable-toggle {
|
37
37
|
display: inline-block;
|
38
38
|
font-family: 'footable';
|
39
39
|
speak: none;
|
@@ -46,73 +46,73 @@
|
|
46
46
|
font-size: 14px;
|
47
47
|
color: #888888;
|
48
48
|
}
|
49
|
-
.footable.breakpoint > tbody > tr
|
49
|
+
.footable.breakpoint > tbody > tr span.footable-toggle:before {
|
50
50
|
content: "\e000";
|
51
51
|
}
|
52
52
|
.footable.breakpoint.toggle-circle > tbody > tr.footable-detail-show > td > span.footable-toggle:before {
|
53
53
|
content: "\e005";
|
54
54
|
}
|
55
|
-
.footable.breakpoint.toggle-circle > tbody > tr
|
55
|
+
.footable.breakpoint.toggle-circle > tbody > tr span.footable-toggle:before {
|
56
56
|
content: "\e004";
|
57
57
|
}
|
58
58
|
.footable.breakpoint.toggle-circle-filled > tbody > tr.footable-detail-show > td > span.footable-toggle:before {
|
59
59
|
content: "\e003";
|
60
60
|
}
|
61
|
-
.footable.breakpoint.toggle-circle-filled > tbody > tr
|
61
|
+
.footable.breakpoint.toggle-circle-filled > tbody > tr span.footable-toggle:before {
|
62
62
|
content: "\e002";
|
63
63
|
}
|
64
64
|
.footable.breakpoint.toggle-square > tbody > tr.footable-detail-show > td > span.footable-toggle:before {
|
65
65
|
content: "\e007";
|
66
66
|
}
|
67
|
-
.footable.breakpoint.toggle-square > tbody > tr
|
67
|
+
.footable.breakpoint.toggle-square > tbody > tr span.footable-toggle:before {
|
68
68
|
content: "\e006";
|
69
69
|
}
|
70
70
|
.footable.breakpoint.toggle-square-filled > tbody > tr.footable-detail-show > td > span.footable-toggle:before {
|
71
71
|
content: "\e009";
|
72
72
|
}
|
73
|
-
.footable.breakpoint.toggle-square-filled > tbody > tr
|
73
|
+
.footable.breakpoint.toggle-square-filled > tbody > tr span.footable-toggle:before {
|
74
74
|
content: "\e008";
|
75
75
|
}
|
76
76
|
.footable.breakpoint.toggle-arrow > tbody > tr.footable-detail-show > td > span.footable-toggle:before {
|
77
77
|
content: "\e00f";
|
78
78
|
}
|
79
|
-
.footable.breakpoint.toggle-arrow > tbody > tr
|
79
|
+
.footable.breakpoint.toggle-arrow > tbody > tr span.footable-toggle:before {
|
80
80
|
content: "\e011";
|
81
81
|
}
|
82
82
|
.footable.breakpoint.toggle-arrow-small > tbody > tr.footable-detail-show > td > span.footable-toggle:before {
|
83
83
|
content: "\e013";
|
84
84
|
}
|
85
|
-
.footable.breakpoint.toggle-arrow-small > tbody > tr
|
85
|
+
.footable.breakpoint.toggle-arrow-small > tbody > tr span.footable-toggle:before {
|
86
86
|
content: "\e015";
|
87
87
|
}
|
88
88
|
.footable.breakpoint.toggle-arrow-circle > tbody > tr.footable-detail-show > td > span.footable-toggle:before {
|
89
89
|
content: "\e01b";
|
90
90
|
}
|
91
|
-
.footable.breakpoint.toggle-arrow-circle > tbody > tr
|
91
|
+
.footable.breakpoint.toggle-arrow-circle > tbody > tr span.footable-toggle:before {
|
92
92
|
content: "\e01d";
|
93
93
|
}
|
94
94
|
.footable.breakpoint.toggle-arrow-circle-filled > tbody > tr.footable-detail-show > td > span.footable-toggle:before {
|
95
95
|
content: "\e00b";
|
96
96
|
}
|
97
|
-
.footable.breakpoint.toggle-arrow-circle-filled > tbody > tr
|
97
|
+
.footable.breakpoint.toggle-arrow-circle-filled > tbody > tr span.footable-toggle:before {
|
98
98
|
content: "\e00d";
|
99
99
|
}
|
100
100
|
.footable.breakpoint.toggle-arrow-tiny > tbody > tr.footable-detail-show > td > span.footable-toggle:before {
|
101
101
|
content: "\e01f";
|
102
102
|
}
|
103
|
-
.footable.breakpoint.toggle-arrow-tiny > tbody > tr
|
103
|
+
.footable.breakpoint.toggle-arrow-tiny > tbody > tr span.footable-toggle:before {
|
104
104
|
content: "\e021";
|
105
105
|
}
|
106
106
|
.footable.breakpoint.toggle-arrow-alt > tbody > tr.footable-detail-show > td > span.footable-toggle:before {
|
107
107
|
content: "\e017";
|
108
108
|
}
|
109
|
-
.footable.breakpoint.toggle-arrow-alt > tbody > tr
|
109
|
+
.footable.breakpoint.toggle-arrow-alt > tbody > tr span.footable-toggle:before {
|
110
110
|
content: "\e019";
|
111
111
|
}
|
112
|
-
.footable.breakpoint.toggle-medium > tbody > tr
|
112
|
+
.footable.breakpoint.toggle-medium > tbody > tr span.footable-toggle {
|
113
113
|
font-size: 18px;
|
114
114
|
}
|
115
|
-
.footable.breakpoint.toggle-large > tbody > tr
|
115
|
+
.footable.breakpoint.toggle-large > tbody > tr span.footable-toggle {
|
116
116
|
font-size: 24px;
|
117
117
|
}
|
118
118
|
.footable > thead > tr > th {
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: foo_table-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.1.
|
4
|
+
version: 2.0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dale Stevens
|
@@ -72,15 +72,20 @@ files:
|
|
72
72
|
- vendor/assets/images/foo_table/sorting_sprite.png
|
73
73
|
- vendor/assets/images/foo_table/up.png
|
74
74
|
- vendor/assets/javascripts/footable.all.min.js
|
75
|
+
- vendor/assets/javascripts/footable.bookmarkable.js
|
76
|
+
- vendor/assets/javascripts/footable.bookmarkable.min.js
|
75
77
|
- vendor/assets/javascripts/footable.core.js
|
76
78
|
- vendor/assets/javascripts/footable.core.min.js
|
77
79
|
- vendor/assets/javascripts/footable.filter.js
|
78
80
|
- vendor/assets/javascripts/footable.filter.min.js
|
81
|
+
- vendor/assets/javascripts/footable.grid.js
|
82
|
+
- vendor/assets/javascripts/footable.memory.js
|
79
83
|
- vendor/assets/javascripts/footable.paginate.js
|
80
84
|
- vendor/assets/javascripts/footable.paginate.min.js
|
81
85
|
- vendor/assets/javascripts/footable.sort.js
|
82
86
|
- vendor/assets/javascripts/footable.sort.min.js
|
83
87
|
- vendor/assets/javascripts/footable.striping.js
|
88
|
+
- vendor/assets/javascripts/footable.striping.min.js
|
84
89
|
- vendor/assets/stylesheets/fonts/footable.eot
|
85
90
|
- vendor/assets/stylesheets/fonts/footable.svg
|
86
91
|
- vendor/assets/stylesheets/fonts/footable.ttf
|