jquery-tablesorter 1.19.1 → 1.19.2

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.
@@ -1,11 +1,11 @@
1
- /*! Widget: sort2Hash (BETA) - updated 11/2/2015 (v2.24.1) */
1
+ /*! Widget: sort2Hash (BETA) - updated 11/10/2015 (v2.24.4) */
2
2
  /* Requires tablesorter v2.8+ and jQuery 1.7+
3
3
  * by Rob Garrison
4
4
  */
5
5
  ;( function( $ ) {
6
6
  'use strict';
7
7
  var ts = $.tablesorter || {},
8
- s2h = {
8
+ s2h = ts.sort2Hash = {
9
9
  init : function( c, wo ) {
10
10
  var filter, temp, page, size,
11
11
  table = c.table,
@@ -17,7 +17,7 @@
17
17
  }
18
18
  if ( ts.hasWidget( c.table, 'pager' ) ) {
19
19
  temp = parseInt( s2h.decodeHash( c, wo, 'page' ), 10 );
20
- page = pager.page = ( temp < 0 ? 0 : ( temp > pager.totalPages ? pager.totalPages - 1 : temp ) ) + 1;
20
+ page = pager.page = ( temp < 0 ? 0 : ( temp > pager.totalPages ? pager.totalPages - 1 : temp ) );
21
21
  size = pager.size = parseInt( s2h.decodeHash( c, wo, 'size' ), 10 );
22
22
  }
23
23
  if ( ts.hasWidget( table, 'filter' ) ) {
@@ -33,9 +33,13 @@
33
33
  }, 100 );
34
34
  });
35
35
  }
36
- } else {
37
- c.$table.trigger( 'pageAndSize', [ page, size ] );
38
36
  }
37
+ if ( !filter ) {
38
+ c.$table.one( 'tablesorter-ready', function() {
39
+ c.$table.trigger( 'pageAndSize', [ page, size ] );
40
+ });
41
+ }
42
+
39
43
  c.$table.on( 'sortEnd.sort2hash filterEnd.sort2hash pagerComplete.sort2Hash', function() {
40
44
  if ( this.hasInitialized ) {
41
45
  s2h.setHash( this.config, this.config.widgetOptions );
@@ -125,6 +129,33 @@
125
129
  return sort.join( wo.sort2Hash_separator );
126
130
  },
127
131
 
132
+ // Get URL Parameters (getParam)
133
+ // modified from http://www.netlobo.com/url_query_string_javascript.html
134
+ getParam : function ( name, hash, returnRegex ) {
135
+ if ( !hash ) { hash = window.location.hash; }
136
+ var regex = new RegExp( '[\\?&]' + s2h.regexEscape( name ) + '=([^&#]*)' ),
137
+ match = regex.exec( hash );
138
+ if ( returnRegex ) { return regex; }
139
+ return match === null ? '' : decodeURIComponent( match[ 1 ] );
140
+ },
141
+
142
+ // remove parameter from hash
143
+ removeParam : function( name, hash ) {
144
+ if ( !hash ) { hash = window.location.hash; }
145
+ var index,
146
+ regex = s2h.getParam( name, hash, true ),
147
+ result = [],
148
+ parts = hash.split( '&' ),
149
+ len = parts.length;
150
+ for ( index = 0; index < len; index++ ) {
151
+ // regex expects a leading '&'...
152
+ if ( !regex.test( '&' + parts[ index ] ) ) {
153
+ result.push( parts[ index ] );
154
+ }
155
+ }
156
+ return result.length ? result.join( '&' ) : '';
157
+ },
158
+
128
159
  encodeHash : function( c, wo, component, value, rawValue ) {
129
160
  var result = false,
130
161
  tableId = s2h.getTableId( c, wo );
@@ -138,39 +169,30 @@
138
169
  },
139
170
 
140
171
  decodeHash : function( c, wo, component ) {
141
- var regex,
142
- result = false,
172
+ var result = false,
143
173
  tableId = s2h.getTableId( c, wo );
144
174
  if ( typeof wo.sort2Hash_decodeHash === 'function' ) {
175
+ // return a string
145
176
  result = wo.sort2Hash_decodeHash( c, tableId, component );
146
177
  }
147
178
  if ( result === false ) {
148
- regex = new RegExp( '[\\#&]' + component + '\\[' + s2h.regexEscape( tableId ) + '\\]=([^&]*)' ),
149
- /*jshint -W030 */
150
- result = regex.exec( window.location.hash );
179
+ result = s2h.getParam( component + '[' + tableId + ']' );
151
180
  }
152
- return result ? decodeURIComponent( result[ 1 ] ) : '';
181
+ return result || '';
153
182
  },
154
183
 
155
184
  cleanHash : function( c, wo, component, hash ) {
156
- var index, len, parts, regex,
157
- result = false,
185
+ var result = false,
158
186
  tableId = s2h.getTableId( c, wo );
159
187
  if ( typeof wo.sort2Hash_cleanHash === 'function' ) {
188
+ // can return an array or string
160
189
  result = wo.sort2Hash_cleanHash( c, tableId, component, hash );
161
190
  }
162
191
  if ( result === false ) {
163
- result = [];
164
- parts = ( hash || '' ).slice(1).split( '&' );
165
- len = parts.length;
166
- regex = new RegExp( component + '\\[' + s2h.regexEscape( tableId ) + '\\]=([^&]*)' );
167
- for ( index = 0; index < len; index++ ) {
168
- if ( !regex.test( parts[ index ] ) ) {
169
- result.push( parts[ index ] );
170
- }
171
- }
192
+ // parameter example: 'sort[table0]=0,0'
193
+ result = s2h.removeParam( component + '[' + tableId + ']', hash );
172
194
  }
173
- return result.length ? '#' + result.join( '&' ) : '';
195
+ return result || '';
174
196
  },
175
197
 
176
198
  setHash : function( c, wo ) {
@@ -0,0 +1,81 @@
1
+ /*! tablesorter enable/disable sort & filter (BETA) - 11/10/2015 (v2.24.4)
2
+ * Requires tablesorter v2.24.4+ & jQuery 1.7+
3
+ * by Rob Garrison
4
+ */
5
+ ;( function( $ ) {
6
+ 'use strict';
7
+ var ts = $.tablesorter,
8
+
9
+ tst = ts.toggleTS = {
10
+
11
+ init : function( c, wo ) {
12
+ wo.toggleTS_isEnabled = true; // enabled
13
+ wo.toggleTS_areDisabled = {
14
+ headers : [],
15
+ filters : []
16
+ };
17
+ c.$table.on('enable.toggleTS disable.toggleTS', function( event ) {
18
+ tst.toggle( this.config, this.config.widgetOptions, event.type === 'enable' );
19
+ });
20
+ },
21
+ toggle : function( c, wo, isEnabled ) {
22
+ if ( wo.toggleTS_isEnabled !== isEnabled ) {
23
+ wo.toggleTS_isEnabled = isEnabled;
24
+ var indx, $el,
25
+ len = c.$headers.length;
26
+
27
+ // table headers
28
+ for ( indx = 0; indx < len; indx++ ) {
29
+ $el = c.$headers.eq( indx );
30
+ // function added in v2.24.4
31
+ ts.setColumnSort( c, $el, !isEnabled );
32
+ // function added in v2.24.4; passing "isEnabled" allows removal of "next sort" labels
33
+ ts.setColumnAriaLabel( c, $el, isEnabled );
34
+ }
35
+ if ( wo.toggleTS_hideFilterRow ) {
36
+ c.$table.find( '.' + ts.css.filterRow ).toggle( isEnabled );
37
+ } else if ( ts.hasWidget( c.$table, 'filter' ) ) {
38
+ // c.$filters points to filter CELL
39
+ len = c.$filters.length;
40
+ for ( indx = 0; indx < len; indx++ ) {
41
+ if ( isEnabled && !wo.toggleTS_areDisabled.filters[ indx ] ) {
42
+ c.$filters.eq( indx ).find( 'input, select' )
43
+ .removeClass( ts.css.filterDisabled )
44
+ .prop( 'disabled', false );
45
+ } else if ( !isEnabled ) {
46
+ $el = c.$filters.eq( indx ).find( 'input, select' );
47
+ if ( $el.hasClass( ts.css.filterDisabled ) ) {
48
+ wo.toggleTS_areDisabled.filters[ indx ] = true;
49
+ }
50
+ $el
51
+ .addClass( ts.css.filterDisabled )
52
+ .prop( 'disabled', true );
53
+ }
54
+ }
55
+ }
56
+ // include external filters
57
+ wo.filter_$externalFilters
58
+ .toggleClass( ts.css.filterDisabled, isEnabled )
59
+ .prop( 'disabled', !isEnabled );
60
+ }
61
+ if ( typeof wo.toggleTS_callback === 'function' ) {
62
+ wo.toggleTS_callback( c, isEnabled );
63
+ }
64
+ }
65
+ };
66
+
67
+ ts.addWidget({
68
+ id: 'toggle-ts',
69
+ options: {
70
+ toggleTS_hideFilterRow : false,
71
+ toggleTS_callback : null
72
+ },
73
+ init : function( table, thisWidget, c, wo ) {
74
+ tst.init( c, wo );
75
+ },
76
+ remove : function( table, c ) {
77
+ c.$table.off( 'enable.toggleTS disable.toggleTS' );
78
+ }
79
+ });
80
+
81
+ })( jQuery );
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jquery-tablesorter
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.19.1
4
+ version: 1.19.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jun Lin
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-11-05 00:00:00.000000000 Z
12
+ date: 2015-11-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: railties
@@ -134,6 +134,7 @@ files:
134
134
  - vendor/assets/javascripts/jquery-tablesorter/widgets/widget-staticRow.js
135
135
  - vendor/assets/javascripts/jquery-tablesorter/widgets/widget-stickyHeaders.js
136
136
  - vendor/assets/javascripts/jquery-tablesorter/widgets/widget-storage.js
137
+ - vendor/assets/javascripts/jquery-tablesorter/widgets/widget-toggle.js
137
138
  - vendor/assets/javascripts/jquery-tablesorter/widgets/widget-uitheme.js
138
139
  - vendor/assets/javascripts/jquery-tablesorter/widgets/widget-view.js
139
140
  - vendor/assets/stylesheets/jquery-tablesorter/addons/pager/jquery.tablesorter.pager.css