tableling-rails 0.0.7 → 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/tableling-rails/model.rb +1 -1
- data/lib/tableling-rails/version.rb +1 -1
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/development.log +25 -7250
- data/spec/dummy/log/test.log +3 -60
- data/spec/models/book_spec.rb +1 -0
- data/vendor/assets/javascripts/tableling.backbone.js +1980 -1489
- data/vendor/assets/javascripts/tableling.js +83 -53
- data/vendor/assets/javascripts/tableling.world.js +9734 -9102
- metadata +2 -202
- data/spec/dummy/tmp/cache/assets/BF1/770/sprockets%2F8228a53c539c582499241527570aa216 +0 -0
- data/spec/dummy/tmp/cache/assets/C18/6A0/sprockets%2F1e7024441489753901b45a24af2942e3 +0 -0
- data/spec/dummy/tmp/cache/assets/C20/C20/sprockets%2F932e86665765e61017be1015b249d270 +0 -0
- data/spec/dummy/tmp/cache/assets/C3F/0C0/sprockets%2F4643701467ac62c314510c8dd021916f +0 -0
- data/spec/dummy/tmp/cache/assets/C53/AD0/sprockets%2F712078516a81502575c831cb0a8e898e +0 -0
- data/spec/dummy/tmp/cache/assets/C59/0F0/sprockets%2F099f4e84a443568245ff0674030f6e05 +0 -0
- data/spec/dummy/tmp/cache/assets/C60/CF0/sprockets%2F32a45292ee67867d8715952f3072ad84 +0 -0
- data/spec/dummy/tmp/cache/assets/C6F/0E0/sprockets%2F82372776487d948ef7666d304d6fb345 +0 -0
- data/spec/dummy/tmp/cache/assets/C80/840/sprockets%2F562c2d168da585f80579347d10790a0a +0 -0
- data/spec/dummy/tmp/cache/assets/C82/F20/sprockets%2F117015d65237e3682f5b21c87d58ab95 +0 -0
- data/spec/dummy/tmp/cache/assets/C86/280/sprockets%2F1345c9947753f018f45371ec5083fa2d +0 -0
- data/spec/dummy/tmp/cache/assets/C91/350/sprockets%2F6864c49a10954375948d9f306db308fb +0 -0
- data/spec/dummy/tmp/cache/assets/C98/B70/sprockets%2F64db420a3a172209bf0b734312a4888a +0 -0
- data/spec/dummy/tmp/cache/assets/C9A/900/sprockets%2Fc1b5b7611d7c10e124512724f29f241d +0 -0
- data/spec/dummy/tmp/cache/assets/CAE/5B0/sprockets%2F046918545d85d144c4aa32d3e19625cf +0 -0
- data/spec/dummy/tmp/cache/assets/CAF/540/sprockets%2F8f42e689b84f0b25c0180046467adf31 +0 -0
- data/spec/dummy/tmp/cache/assets/CB1/9A0/sprockets%2F57805dfa396248a9665cb4a0c85116d0 +0 -0
- data/spec/dummy/tmp/cache/assets/CC1/4E0/sprockets%2F6ef77414c793c84a437244d7d965ba90 +0 -0
- data/spec/dummy/tmp/cache/assets/CC1/B50/sprockets%2F13559b77aaaf524896e427719ef5d354 +0 -0
- data/spec/dummy/tmp/cache/assets/CC3/B10/sprockets%2F0a2c59284c7a5d99581883a9763b5ad8 +0 -0
- data/spec/dummy/tmp/cache/assets/CC9/940/sprockets%2F8128c279185cf97dba7914278ce838b4 +0 -0
- data/spec/dummy/tmp/cache/assets/CCA/0C0/sprockets%2F6c3e053393afe303432ca73f1b41490b +0 -0
- data/spec/dummy/tmp/cache/assets/CD4/420/sprockets%2F19b3d492932dc6a59093dfb1aa852101 +0 -0
- data/spec/dummy/tmp/cache/assets/CD5/2C0/sprockets%2F166c056119ebdfb8b7104c97b424b423 +0 -0
- data/spec/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
- data/spec/dummy/tmp/cache/assets/CD8/520/sprockets%2F89128ce416ae74c4148c5c1f281e111c +0 -0
- data/spec/dummy/tmp/cache/assets/CDA/600/sprockets%2F98ab7e75433ba5d503533fb00b488c80 +0 -0
- data/spec/dummy/tmp/cache/assets/CDB/610/sprockets%2F7adf20860b018477a95cdb8321b49d16 +0 -0
- data/spec/dummy/tmp/cache/assets/CDD/F50/sprockets%2F7353f31f80f1139aade47728a62af336 +0 -0
- data/spec/dummy/tmp/cache/assets/CE1/0F0/sprockets%2F92d30845fe3923e231cfe7e056a654b4 +0 -0
- data/spec/dummy/tmp/cache/assets/CE2/E70/sprockets%2Fd569808c7b411447dec0137e4d1ee707 +0 -0
- data/spec/dummy/tmp/cache/assets/CE9/760/sprockets%2F5ae7fab601683996918936cad21fc244 +0 -0
- data/spec/dummy/tmp/cache/assets/CE9/B90/sprockets%2Fea2eb066933b1d8b5949972c3c79353a +0 -0
- data/spec/dummy/tmp/cache/assets/CF1/AF0/sprockets%2F14dc9633b61024231ebec0c1a4a0259f +0 -0
- data/spec/dummy/tmp/cache/assets/D02/340/sprockets%2Fae58ed66f72137a594b0912bab600e03 +0 -0
- data/spec/dummy/tmp/cache/assets/D0A/780/sprockets%2F3d727e58c55c30009bbaf1462e466d4d +0 -0
- data/spec/dummy/tmp/cache/assets/D0A/AC0/sprockets%2Fc154991d0a7564e15c0fb4a555c5c73d +0 -0
- data/spec/dummy/tmp/cache/assets/D0B/190/sprockets%2F68cb0d1054ca546fc473274c4ac8737c +0 -0
- data/spec/dummy/tmp/cache/assets/D11/530/sprockets%2F13bc8c66140adef2e97648630866aae3 +0 -0
- data/spec/dummy/tmp/cache/assets/D16/AA0/sprockets%2Ff181e659a47e2cf9c257f32d80452bd3 +0 -0
- data/spec/dummy/tmp/cache/assets/D18/840/sprockets%2F50c1885539f61359c48af74fcae1df31 +0 -0
- data/spec/dummy/tmp/cache/assets/D1B/940/sprockets%2F7c4819d1dd9b64a22941d8c7bd1e6954 +0 -0
- data/spec/dummy/tmp/cache/assets/D21/890/sprockets%2F73f9cd97cac4382d565e7b835709a2e3 +0 -0
- data/spec/dummy/tmp/cache/assets/D2B/1F0/sprockets%2F6a4c116e8316d082bb0ffae02e94b107 +0 -0
- data/spec/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/spec/dummy/tmp/cache/assets/D3A/720/sprockets%2F0e2516c1cac22716289bfc87d5ea9a26 +0 -0
- data/spec/dummy/tmp/cache/assets/D3C/E20/sprockets%2Ffc6c44ec250bc532c55649e5292b5c1f +0 -0
- data/spec/dummy/tmp/cache/assets/D4B/BF0/sprockets%2Fdf124de0072e308f8e157eae77b85d88 +0 -0
- data/spec/dummy/tmp/cache/assets/D4B/C30/sprockets%2Fe8aa746e637d69ff0ac1e71e528c5292 +0 -0
- data/spec/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/spec/dummy/tmp/cache/assets/D54/910/sprockets%2F787b6a4c2386b5edf98f90508b85cc3d +0 -0
- data/spec/dummy/tmp/cache/assets/D5A/E20/sprockets%2Febf23d670481ba70b341aa2eb6e37b08 +0 -0
- data/spec/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/spec/dummy/tmp/cache/assets/D5C/1F0/sprockets%2F2d3f2cfd98bf787168fb59f84ab24784 +0 -0
- data/spec/dummy/tmp/cache/assets/D5D/C60/sprockets%2Ffa0336b42d01aa9173d9d4c12fc4e82d +0 -0
- data/spec/dummy/tmp/cache/assets/D63/170/sprockets%2Fb5b73c3b0862ee59b701a6819b2aa4cd +0 -0
- data/spec/dummy/tmp/cache/assets/D65/DD0/sprockets%2Fed4503679ef66f0e597bfc738bc9e698 +0 -0
- data/spec/dummy/tmp/cache/assets/D66/580/sprockets%2Ffe6bb9bb5ef9c54f501650b1365c1b05 +0 -0
- data/spec/dummy/tmp/cache/assets/D68/930/sprockets%2F5a15e52e84502f9fceb7ea04020f65fc +0 -0
- data/spec/dummy/tmp/cache/assets/D6A/F40/sprockets%2F53fdbea64f1803eebb72f426f74110d8 +0 -0
- data/spec/dummy/tmp/cache/assets/D6B/D30/sprockets%2Faeb25572f539ffdbb122e9de1218572a +0 -0
- data/spec/dummy/tmp/cache/assets/D6F/110/sprockets%2F2c8c9177efb7e5be1a7055bb0d44792a +0 -0
- data/spec/dummy/tmp/cache/assets/D76/3F0/sprockets%2Fbb569c97f9cc01af670906b40c6be9e2 +0 -0
- data/spec/dummy/tmp/cache/assets/D81/510/sprockets%2F3e6bd5a2d6d0d88f61f5b616f7d879b5 +0 -0
- data/spec/dummy/tmp/cache/assets/D82/940/sprockets%2F29cd0ae31066baa6f2cb92b5c6305aa2 +0 -0
- data/spec/dummy/tmp/cache/assets/D85/D20/sprockets%2F7f7f398c298ca8a1e812b6c9832bcf6e +0 -0
- data/spec/dummy/tmp/cache/assets/D8C/140/sprockets%2F2afdbb3902a1be5d2f045cfc837903a3 +0 -0
- data/spec/dummy/tmp/cache/assets/D8E/660/sprockets%2F3a3eed926bdf64000ccacb36022f78d4 +0 -0
- data/spec/dummy/tmp/cache/assets/D95/690/sprockets%2Fe4d19a04705ee5d72c7fa64dc2070ddb +0 -0
- data/spec/dummy/tmp/cache/assets/D97/230/sprockets%2F0f46cb65e018de57d2c8b480a0ec5dd3 +0 -0
- data/spec/dummy/tmp/cache/assets/DA1/F00/sprockets%2F7b23e35dd61e9d734a59179e2d2aebea +0 -0
- data/spec/dummy/tmp/cache/assets/DA3/950/sprockets%2F38737f6fa54dbda0dfe3ce4c51710e79 +0 -0
- data/spec/dummy/tmp/cache/assets/DA4/EC0/sprockets%2F8da2289e16c1d0cac94aa825ee18d99d +0 -0
- data/spec/dummy/tmp/cache/assets/DA6/120/sprockets%2Fc5880aca76ccbb51f9388362e8afc1e6 +0 -0
- data/spec/dummy/tmp/cache/assets/DA7/390/sprockets%2F25e744cd1b6f8f7ce1d52c1e86a8f19a +0 -0
- data/spec/dummy/tmp/cache/assets/DAB/3E0/sprockets%2F63d2fa621beec4fe878f9eb2884426ab +0 -0
- data/spec/dummy/tmp/cache/assets/DAB/660/sprockets%2F9a8c36769afcc7027b4b6ee0c3e77ce5 +0 -0
- data/spec/dummy/tmp/cache/assets/DB4/7A0/sprockets%2F900105aaabba7938ce23f1e0aade71e5 +0 -0
- data/spec/dummy/tmp/cache/assets/DB4/F90/sprockets%2Fcf5e68e329cedb58b84f445f2b8e37b5 +0 -0
- data/spec/dummy/tmp/cache/assets/DBF/EB0/sprockets%2F2afcec323c8ba12a2b7c852f23aa589e +0 -0
- data/spec/dummy/tmp/cache/assets/DCE/9F0/sprockets%2F8fa8c08ea8da97c06cd6c32fe3e613b0 +0 -0
- data/spec/dummy/tmp/cache/assets/DCF/E50/sprockets%2Fc39ff2ed4e1fb4269c39d415acf0d90b +0 -0
- data/spec/dummy/tmp/cache/assets/DD8/0A0/sprockets%2Fb2c3097effcd6084ec75e1f745d1d7dd +0 -0
- data/spec/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/spec/dummy/tmp/cache/assets/DE2/6D0/sprockets%2Fdcaa7d2b2814413aa75d3ba6ada3c6b5 +0 -0
- data/spec/dummy/tmp/cache/assets/DF0/040/sprockets%2F04bbbe1ee5ca914173cd90cf6e8a4e0b +0 -0
- data/spec/dummy/tmp/cache/assets/DF0/D60/sprockets%2F5a54a1ecc1db271edfc0727bfcb8d912 +0 -0
- data/spec/dummy/tmp/cache/assets/DF7/C80/sprockets%2Ff503b3666caf04beb7cfe54cbdb0575e +0 -0
- data/spec/dummy/tmp/cache/assets/DFA/B70/sprockets%2F262fb95d3f7cfc16febb0f0128ac38ce +0 -0
- data/spec/dummy/tmp/cache/assets/DFE/E10/sprockets%2F9a19dfdd7eb0bf5262919a0207ecfdbf +0 -0
- data/spec/dummy/tmp/cache/assets/E03/260/sprockets%2Fd1fcfea59ff53c32557ffcd93016cb2e +0 -0
- data/spec/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/spec/dummy/tmp/cache/assets/E0A/510/sprockets%2F8efee416ba436e75bea85d4d367faea7 +0 -0
- data/spec/dummy/tmp/cache/assets/E33/8F0/sprockets%2F4933e07f8ef2da7eb5bee9a6fcac3d41 +0 -0
- data/spec/dummy/tmp/cache/assets/E3C/2D0/sprockets%2Fef329f0cde3de3e956c8a8feb7b814cc +0 -0
- data/spec/dummy/tmp/cache/assets/E43/810/sprockets%2F79b0ef75ceb26a9c8fca797db3efba96 +0 -0
- data/spec/dummy/tmp/cache/assets/E67/730/sprockets%2Fadd4efdfa7661cc60e8ea63cef1f0f98 +0 -0
- data/spec/dummy/tmp/cache/assets/E96/1B0/sprockets%2F6d5fe51f9c1a3d2f898becd0bcddef3e +0 -0
- data/spec/dummy/tmp/cache/assets/ED4/410/sprockets%2F082adbb8e2abd8a21c8b34aebbbfbfad +0 -0
- data/spec/dummy/tmp/pids/server.pid +0 -1
@@ -1,13 +1,13 @@
|
|
1
1
|
/*!
|
2
|
-
* Tableling v0.0.
|
3
|
-
* Copyright (c) 2012 Simon Oulevay (Alpha Hydrae) <hydrae.alpha@gmail.com>
|
2
|
+
* Tableling v0.0.12
|
3
|
+
* Copyright (c) 2012-2013 Simon Oulevay (Alpha Hydrae) <hydrae.alpha@gmail.com>
|
4
4
|
* Distributed under MIT license
|
5
5
|
* https://github.com/AlphaHydrae/tableling
|
6
6
|
*/
|
7
7
|
Backbone.Tableling = Tableling = (function(Backbone, _, $){
|
8
8
|
|
9
9
|
var Tableling = {
|
10
|
-
version : "0.0.
|
10
|
+
version : "0.0.12"
|
11
11
|
};
|
12
12
|
|
13
13
|
// Tableling
|
@@ -20,7 +20,7 @@ Backbone.Tableling = Tableling = (function(Backbone, _, $){
|
|
20
20
|
className: 'tableling',
|
21
21
|
|
22
22
|
// Default table options can be overriden by subclasses.
|
23
|
-
|
23
|
+
config : {
|
24
24
|
page : 1
|
25
25
|
},
|
26
26
|
|
@@ -28,13 +28,13 @@ Backbone.Tableling = Tableling = (function(Backbone, _, $){
|
|
28
28
|
options = options || {};
|
29
29
|
|
30
30
|
// Table options can also be overriden for each instance at construction.
|
31
|
-
this.
|
31
|
+
this.config = _.extend(_.clone(this.config || {}), _.result(options, 'config') || {});
|
32
32
|
|
33
33
|
// We use an event aggregator to manage the layout and its components.
|
34
34
|
// You can use your own by passing a `vent` option.
|
35
|
-
this.vent = options.vent || new Backbone.
|
35
|
+
this.vent = options.vent || new Backbone.Wreqr.EventAggregator();
|
36
36
|
|
37
|
-
this.fetchOptions = _.extend(_.clone(this.fetchOptions || {}), options
|
37
|
+
this.fetchOptions = _.extend(_.clone(this.fetchOptions || {}), _.result(options, 'fetchOptions') || {});
|
38
38
|
|
39
39
|
// Components should trigger the `table:update` event to update
|
40
40
|
// the table (e.g. change page size, sort) and fetch the new data.
|
@@ -45,7 +45,7 @@ Backbone.Tableling = Tableling = (function(Backbone, _, $){
|
|
45
45
|
|
46
46
|
// Called once rendering is complete. By default, it updates the table.
|
47
47
|
setup : function() {
|
48
|
-
this.ventTrigger('table:setup', this.
|
48
|
+
this.ventTrigger('table:setup', this.config);
|
49
49
|
this.ventTrigger('table:update');
|
50
50
|
},
|
51
51
|
|
@@ -57,7 +57,7 @@ Backbone.Tableling = Tableling = (function(Backbone, _, $){
|
|
57
57
|
// ### Refreshing the table
|
58
58
|
update : function(config, options) {
|
59
59
|
|
60
|
-
_.each(
|
60
|
+
_.each(config || {}, _.bind(this.updateValue, this));
|
61
61
|
|
62
62
|
// Set the `refresh` option to false to update the table configuration
|
63
63
|
// without refreshing.
|
@@ -68,10 +68,10 @@ Backbone.Tableling = Tableling = (function(Backbone, _, $){
|
|
68
68
|
|
69
69
|
updateValue : function(value, key) {
|
70
70
|
if (value && value.toString().length) {
|
71
|
-
this.
|
71
|
+
this.config[key] = value;
|
72
72
|
} else {
|
73
73
|
// Blank values are deleted to avoid sending them in ajax requests.
|
74
|
-
delete this.
|
74
|
+
delete this.config[key];
|
75
75
|
}
|
76
76
|
},
|
77
77
|
|
@@ -105,35 +105,24 @@ Backbone.Tableling = Tableling = (function(Backbone, _, $){
|
|
105
105
|
|
106
106
|
// ### Request
|
107
107
|
requestData : function() {
|
108
|
-
return this.
|
108
|
+
return this.config;
|
109
109
|
},
|
110
110
|
|
111
111
|
// ### Response
|
112
112
|
processResponse : function(collection, response) {
|
113
113
|
|
114
|
-
this.
|
114
|
+
this.config.length = collection.length;
|
115
115
|
|
116
116
|
// Tableling expects the response from a fetch to have a `total` property
|
117
117
|
// which is the total number of items (not just in the current page).
|
118
|
-
this.
|
118
|
+
this.config.total = response.total;
|
119
119
|
|
120
120
|
// `tableling:refreshed` is triggered after every refresh. The first argument
|
121
121
|
// is the current table configuration with the following additional meta data:
|
122
122
|
//
|
123
123
|
// * `total` - the total number of items
|
124
124
|
// * `length` - the number of items in the current page
|
125
|
-
this.ventTrigger('table:refreshed', this.
|
126
|
-
},
|
127
|
-
|
128
|
-
// ### Utilities
|
129
|
-
// Whitelists the given configuration to contain only table configuration properties.
|
130
|
-
// Pass `true` as the second argument to include meta data (i.e. total & length).
|
131
|
-
filterConfig : function(config, all) {
|
132
|
-
if (all) {
|
133
|
-
return _.pick(config, 'page', 'pageSize', 'quickSearch', 'sort', 'length', 'total');
|
134
|
-
} else {
|
135
|
-
return _.pick(config, 'page', 'pageSize', 'quickSearch', 'sort');
|
136
|
-
}
|
125
|
+
this.ventTrigger('table:refreshed', this.config);
|
137
126
|
},
|
138
127
|
|
139
128
|
// Triggers an event in the event aggregator. If `Tableling.debug` is set, it also
|
@@ -367,6 +356,7 @@ Backbone.Tableling = Tableling = (function(Backbone, _, $){
|
|
367
356
|
// TODO: add auto-sort
|
368
357
|
this.vent = options.vent;
|
369
358
|
this.sort = [];
|
359
|
+
this.vent.on('table:setup', this.setSort, this);
|
370
360
|
},
|
371
361
|
|
372
362
|
updateSort : function(ev) {
|
@@ -380,33 +370,61 @@ Backbone.Tableling = Tableling = (function(Backbone, _, $){
|
|
380
370
|
|
381
371
|
if (ev.shiftKey || this.sort.length == 1) {
|
382
372
|
|
383
|
-
var
|
384
|
-
|
373
|
+
var index = -1;
|
374
|
+
_.find(this.sort, function(item, i) {
|
375
|
+
if (item.split(' ')[0] == field) {
|
376
|
+
index = i;
|
377
|
+
}
|
385
378
|
});
|
386
379
|
|
387
|
-
if (
|
388
|
-
|
389
|
-
|
390
|
-
|
380
|
+
if (index >= 0) {
|
381
|
+
|
382
|
+
var parts = this.sort[index].split(' ');
|
383
|
+
this.sort[index] = parts[0] + ' ' + (parts[1] == 'asc' ? 'desc' : 'asc');
|
384
|
+
this.showSort();
|
391
385
|
return this.vent.trigger('table:update', this.config());
|
392
386
|
}
|
393
387
|
}
|
394
388
|
|
395
389
|
if (!ev.shiftKey) {
|
396
390
|
this.sort.length = 0;
|
397
|
-
this.$el.find('thead th').removeClass('sorting sorting-asc sorting-desc').addClass('sorting');
|
398
391
|
}
|
399
392
|
|
400
|
-
this.sort.push(
|
401
|
-
field: field,
|
402
|
-
direction: 'asc'
|
403
|
-
});
|
393
|
+
this.sort.push(field + ' asc');
|
404
394
|
|
405
|
-
|
395
|
+
this.showSort();
|
406
396
|
|
407
397
|
this.vent.trigger('table:update', this.config());
|
408
398
|
},
|
409
399
|
|
400
|
+
setSort : function(config) {
|
401
|
+
if (config && config.sort) {
|
402
|
+
this.sort = config.sort.slice(0);
|
403
|
+
this.showSort();
|
404
|
+
}
|
405
|
+
},
|
406
|
+
|
407
|
+
showSort : function() {
|
408
|
+
|
409
|
+
this.$el.find('thead th').removeClass('sorting sorting-asc sorting-desc').addClass('sorting');
|
410
|
+
|
411
|
+
for (var i = 0; i < this.sort.length; i++) {
|
412
|
+
|
413
|
+
var parts = this.sort[i].split(' ');
|
414
|
+
var name = parts[0];
|
415
|
+
var direction = parts[1];
|
416
|
+
|
417
|
+
field = this.$el.find('thead [data-field="' + name + '"]');
|
418
|
+
if (!field.length) {
|
419
|
+
field = this.$el.find('thead th:contains("' + name + '")');
|
420
|
+
}
|
421
|
+
|
422
|
+
if (field.length) {
|
423
|
+
field.removeClass('sorting').addClass(direction == 'desc' ? 'sorting-desc' : 'sorting-asc');
|
424
|
+
}
|
425
|
+
}
|
426
|
+
},
|
427
|
+
|
410
428
|
config : function() {
|
411
429
|
return {
|
412
430
|
page : 1,
|
@@ -415,16 +433,11 @@ Backbone.Tableling = Tableling = (function(Backbone, _, $){
|
|
415
433
|
},
|
416
434
|
|
417
435
|
sortConfig : function() {
|
418
|
-
|
419
|
-
return null;
|
420
|
-
}
|
421
|
-
return _.map(this.sort, function(item) {
|
422
|
-
return item.field + ' ' + item.direction;
|
423
|
-
});
|
436
|
+
return this.sort.length ? this.sort : null;
|
424
437
|
},
|
425
438
|
|
426
439
|
fieldName : function(el) {
|
427
|
-
return el.data('field') || el.text()
|
440
|
+
return el.data('field') || el.text();
|
428
441
|
}
|
429
442
|
});
|
430
443
|
|
@@ -450,12 +463,25 @@ Backbone.Tableling = Tableling = (function(Backbone, _, $){
|
|
450
463
|
|
451
464
|
addSize : function(size) {
|
452
465
|
$('<option />').text(size).appendTo(this.ui.field);
|
466
|
+
},
|
467
|
+
|
468
|
+
config : function() {
|
469
|
+
var config = Tableling.FieldModule.prototype.config.call(this);
|
470
|
+
config.page = 1;
|
471
|
+
return config;
|
453
472
|
}
|
454
473
|
});
|
455
474
|
|
456
475
|
Tableling.Plain.QuickSearchView = Tableling.Plain.Table.prototype.quickSearchView = Tableling.FieldModule.extend({
|
476
|
+
|
457
477
|
name : 'quickSearch',
|
458
|
-
template : _.template('<input type="text" name="quickSearch" placeholder="Quick search..." />')
|
478
|
+
template : _.template('<input type="text" name="quickSearch" placeholder="Quick search..." />'),
|
479
|
+
|
480
|
+
config : function() {
|
481
|
+
var config = Tableling.FieldModule.prototype.config.call(this);
|
482
|
+
config.page = 1;
|
483
|
+
return config;
|
484
|
+
}
|
459
485
|
});
|
460
486
|
|
461
487
|
Tableling.Plain.InfoView = Tableling.Plain.Table.prototype.infoView = Tableling.Module.extend({
|
@@ -477,7 +503,7 @@ Backbone.Tableling = Tableling = (function(Backbone, _, $){
|
|
477
503
|
},
|
478
504
|
|
479
505
|
firstRecord : function(data) {
|
480
|
-
return data.length ? (data.page - 1) * data.pageSize + 1 : 0;
|
506
|
+
return data.length ? ((data.page || 1) - 1) * data.pageSize + 1 : 0;
|
481
507
|
},
|
482
508
|
|
483
509
|
lastRecord : function(data) {
|
@@ -511,10 +537,10 @@ Backbone.Tableling = Tableling = (function(Backbone, _, $){
|
|
511
537
|
this.ui.last.addClass('disabled');
|
512
538
|
} else {
|
513
539
|
this.data = data;
|
514
|
-
this.enable(this.ui.first, data
|
515
|
-
this.enable(this.ui.previous, data
|
516
|
-
this.enable(this.ui.next, data
|
517
|
-
this.enable(this.ui.last, data
|
540
|
+
this.enable(this.ui.first, this.getPage(data) > 1);
|
541
|
+
this.enable(this.ui.previous, this.getPage(data) > 1);
|
542
|
+
this.enable(this.ui.next, this.getPage(data) < this.numberOfPages(data));
|
543
|
+
this.enable(this.ui.last, this.getPage(data) < this.numberOfPages(data));
|
518
544
|
}
|
519
545
|
},
|
520
546
|
|
@@ -534,11 +560,11 @@ Backbone.Tableling = Tableling = (function(Backbone, _, $){
|
|
534
560
|
},
|
535
561
|
|
536
562
|
goToPreviousPage : function() {
|
537
|
-
this.goToPage(this.data
|
563
|
+
this.goToPage(this.getPage(this.data) - 1);
|
538
564
|
},
|
539
565
|
|
540
566
|
goToNextPage : function() {
|
541
|
-
this.goToPage(this.data
|
567
|
+
this.goToPage(this.getPage(this.data) + 1);
|
542
568
|
},
|
543
569
|
|
544
570
|
goToLastPage : function() {
|
@@ -547,6 +573,10 @@ Backbone.Tableling = Tableling = (function(Backbone, _, $){
|
|
547
573
|
|
548
574
|
goToPage : function(n) {
|
549
575
|
this.vent.trigger('table:update', { page : n });
|
576
|
+
},
|
577
|
+
|
578
|
+
getPage : function(data) {
|
579
|
+
return data.page || 1;
|
550
580
|
}
|
551
581
|
});
|
552
582
|
|