jquery-tablesorter 1.22.3 → 1.22.4

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: 7587e910fb30ba6d5b0e3508c6d5da2ca340adb2
4
- data.tar.gz: f3c1144fe98d449548ebbbe79d52fce9ea518dc1
3
+ metadata.gz: 007bfb37837f29552a1fe96dae494796008dfc75
4
+ data.tar.gz: b83b347cb8192ec99001c4300e48c5929602dc03
5
5
  SHA512:
6
- metadata.gz: ba1d32c39e8056a70d06d873eab3b91a64be4a3bdc7970e2f1084744eebbf8048dd028808c0cae96b095fac709b90e054b954528a580e48454c32f286687d68e
7
- data.tar.gz: ad055e80e1c5e99542b23a167ec5f3a3165247a3f41923d526fb2527b2c7d5c0ec62e73bc098549f709bf19d1d3be2687f4d6171b46df1ebfa7adc33c0353b37
6
+ metadata.gz: 099f0aad67d2b14274c36439ab14f6e7ecf29aabe02c0e0f8d063c216dd6e699f6b892ee7792a961c148918323e66303e1bfb3ff0225fcb1ad4bc189173447c3
7
+ data.tar.gz: 29bf9c7067fcac6b6ba85c5f96ac481106f13d75beb61965a1e37a3897386ae67f1b82fede0fd1c9148899a3e25a3032b967c551f05edae72569d063027b90e3
data/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  Simple integration of jquery-tablesorter into the asset pipeline.
6
6
 
7
- Current tablesorter version: 2.27.5 (8/22/2016), [documentation]
7
+ Current tablesorter version: 2.27.6 (9/1/2016), [documentation]
8
8
 
9
9
  Any issue associated with the js/css files, please report to [Mottie's fork].
10
10
 
@@ -1,7 +1,7 @@
1
1
  module JqueryTablesorter
2
2
  MAJOR = 1
3
3
  MINOR = 22
4
- TINY = 3
4
+ TINY = 4
5
5
 
6
6
  VERSION = [MAJOR, MINOR, TINY].compact.join('.')
7
7
  end
@@ -4,7 +4,7 @@
4
4
  ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██▀▀ ▀▀▀██
5
5
  █████▀ ▀████▀ ██ ██ ▀████▀ ██ ██ ██ ██ ▀████▀ █████▀ ██ ██ █████▀
6
6
  */
7
- /*! tablesorter (FORK) - updated 08-22-2016 (v2.27.5)*/
7
+ /*! tablesorter (FORK) - updated 09-01-2016 (v2.27.6)*/
8
8
  /* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
9
9
  (function(factory) {
10
10
  if (typeof define === 'function' && define.amd) {
@@ -16,7 +16,7 @@
16
16
  }
17
17
  }(function(jQuery) {
18
18
 
19
- /*! TableSorter (FORK) v2.27.5 *//*
19
+ /*! TableSorter (FORK) v2.27.6 *//*
20
20
  * Client-side table sorting with ease!
21
21
  * @requires jQuery v1.2.6+
22
22
  *
@@ -40,7 +40,7 @@
40
40
  'use strict';
41
41
  var ts = $.tablesorter = {
42
42
 
43
- version : '2.27.5',
43
+ version : '2.27.6',
44
44
 
45
45
  parsers : [],
46
46
  widgets : [],
@@ -1639,8 +1639,9 @@
1639
1639
 
1640
1640
  // sort multiple columns
1641
1641
  multisort : function( c ) { /*jshint loopfunc:true */
1642
- var tbodyIndex, sortTime, colMax, rows,
1642
+ var tbodyIndex, sortTime, colMax, rows, tmp,
1643
1643
  table = c.table,
1644
+ sorter = [],
1644
1645
  dir = 0,
1645
1646
  textSorter = c.textSorter || '',
1646
1647
  sortList = c.sortList,
@@ -1651,6 +1652,16 @@
1651
1652
  return;
1652
1653
  }
1653
1654
  if ( c.debug ) { sortTime = new Date(); }
1655
+ // cache textSorter to optimize speed
1656
+ if ( typeof textSorter === 'object' ) {
1657
+ colMax = c.columns;
1658
+ while ( colMax-- ) {
1659
+ tmp = ts.getColumnData( table, textSorter, colMax );
1660
+ if ( typeof tmp === 'function' ) {
1661
+ sorter[ colMax ] = tmp;
1662
+ }
1663
+ }
1664
+ }
1654
1665
  for ( tbodyIndex = 0; tbodyIndex < len; tbodyIndex++ ) {
1655
1666
  colMax = c.cache[ tbodyIndex ].colMax;
1656
1667
  rows = c.cache[ tbodyIndex ].normalized;
@@ -1689,9 +1700,9 @@
1689
1700
  if ( typeof textSorter === 'function' ) {
1690
1701
  // custom OVERALL text sorter
1691
1702
  sort = textSorter( x[ col ], y[ col ], dir, col, table );
1692
- } else if ( typeof textSorter === 'object' && textSorter.hasOwnProperty( col ) ) {
1703
+ } else if ( typeof sorter[ col ] === 'function' ) {
1693
1704
  // custom text sorter for a SPECIFIC COLUMN
1694
- sort = textSorter[ col ]( x[ col ], y[ col ], dir, col, table );
1705
+ sort = sorter[ col ]( x[ col ], y[ col ], dir, col, table );
1695
1706
  } else {
1696
1707
  // fall back to natural sort
1697
1708
  sort = ts[ 'sortNatural' + ( dir ? 'Asc' : 'Desc' ) ]( a[ col ], b[ col ], col, c );
@@ -1,4 +1,4 @@
1
- /*! TableSorter (FORK) v2.27.5 *//*
1
+ /*! TableSorter (FORK) v2.27.6 *//*
2
2
  * Client-side table sorting with ease!
3
3
  * @requires jQuery v1.2.6+
4
4
  *
@@ -22,7 +22,7 @@
22
22
  'use strict';
23
23
  var ts = $.tablesorter = {
24
24
 
25
- version : '2.27.5',
25
+ version : '2.27.6',
26
26
 
27
27
  parsers : [],
28
28
  widgets : [],
@@ -1621,8 +1621,9 @@
1621
1621
 
1622
1622
  // sort multiple columns
1623
1623
  multisort : function( c ) { /*jshint loopfunc:true */
1624
- var tbodyIndex, sortTime, colMax, rows,
1624
+ var tbodyIndex, sortTime, colMax, rows, tmp,
1625
1625
  table = c.table,
1626
+ sorter = [],
1626
1627
  dir = 0,
1627
1628
  textSorter = c.textSorter || '',
1628
1629
  sortList = c.sortList,
@@ -1633,6 +1634,16 @@
1633
1634
  return;
1634
1635
  }
1635
1636
  if ( c.debug ) { sortTime = new Date(); }
1637
+ // cache textSorter to optimize speed
1638
+ if ( typeof textSorter === 'object' ) {
1639
+ colMax = c.columns;
1640
+ while ( colMax-- ) {
1641
+ tmp = ts.getColumnData( table, textSorter, colMax );
1642
+ if ( typeof tmp === 'function' ) {
1643
+ sorter[ colMax ] = tmp;
1644
+ }
1645
+ }
1646
+ }
1636
1647
  for ( tbodyIndex = 0; tbodyIndex < len; tbodyIndex++ ) {
1637
1648
  colMax = c.cache[ tbodyIndex ].colMax;
1638
1649
  rows = c.cache[ tbodyIndex ].normalized;
@@ -1671,9 +1682,9 @@
1671
1682
  if ( typeof textSorter === 'function' ) {
1672
1683
  // custom OVERALL text sorter
1673
1684
  sort = textSorter( x[ col ], y[ col ], dir, col, table );
1674
- } else if ( typeof textSorter === 'object' && textSorter.hasOwnProperty( col ) ) {
1685
+ } else if ( typeof sorter[ col ] === 'function' ) {
1675
1686
  // custom text sorter for a SPECIFIC COLUMN
1676
- sort = textSorter[ col ]( x[ col ], y[ col ], dir, col, table );
1687
+ sort = sorter[ col ]( x[ col ], y[ col ], dir, col, table );
1677
1688
  } else {
1678
1689
  // fall back to natural sort
1679
1690
  sort = ts[ 'sortNatural' + ( dir ? 'Asc' : 'Desc' ) ]( a[ col ], b[ col ], col, c );
@@ -4,7 +4,7 @@
4
4
  ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██▀▀ ▀▀▀██
5
5
  █████▀ ▀████▀ ██ ██ ▀████▀ ██ ██ ██ ██ ▀████▀ █████▀ ██ ██ █████▀
6
6
  */
7
- /*! tablesorter (FORK) - updated 08-22-2016 (v2.27.5)*/
7
+ /*! tablesorter (FORK) - updated 09-01-2016 (v2.27.6)*/
8
8
  /* Includes widgets ( storage,uitheme,columns,filter,stickyHeaders,resizable,saveSort ) */
9
9
  (function(factory) {
10
10
  if (typeof define === 'function' && define.amd) {
@@ -1,4 +1,4 @@
1
- /*! Parser: input & select - updated 4/29/2016 (v2.25.9) *//*
1
+ /*! Parser: input & select - updated 9/1/2016 (v2.27.6) *//*
2
2
  * for jQuery 1.7+ & tablesorter 2.7.11+
3
3
  * Demo: http://mottie.github.com/tablesorter/docs/example-widget-grouping.html
4
4
  */
@@ -135,7 +135,7 @@
135
135
  $table.children( 'thead' ).find( 'input[type="checkbox"]' ).each( function() {
136
136
  var column = $( this ).closest( 'td, th' ).attr( 'data-column' ),
137
137
  vis = $rows.filter( '.' + checkboxClass + '-' + column ).length,
138
- allChecked = vis === len;
138
+ allChecked = vis === len && len > 0;
139
139
  if ( vis === 0 || allChecked ) {
140
140
  this.checked = allChecked;
141
141
  this.indeterminate = false;
@@ -1,4 +1,4 @@
1
- /*! Widget: grouping - updated 7/31/2016 (v2.27.0) *//*
1
+ /*! Widget: grouping - updated 9/1/2016 (v2.27.6) *//*
2
2
  * Requires tablesorter v2.8+ and jQuery 1.7+
3
3
  * by Rob Garrison
4
4
  */
@@ -57,6 +57,7 @@
57
57
  part === 'day' ? month + ' ' + time.getDate() :
58
58
  part === 'week' ? tsg.findWeek( wo, time.getDay() ) :
59
59
  part === 'time' ? tsg.findTime( wo, time ) :
60
+ part === 'hour' ? tsg.findTime( wo, time, 'hour' ) :
60
61
  wo.group_dateString( time, c, $column );
61
62
  } else {
62
63
  return wo.group_dateInvalid;
@@ -78,7 +79,7 @@
78
79
  return wo.group_week[ cldrWeek[ day ] ];
79
80
  }
80
81
  },
81
- findTime : function( wo, time ) {
82
+ findTime : function( wo, time, part ) {
82
83
  var suffix,
83
84
  // CLDR returns { am: "AM", pm: "PM", ... }
84
85
  isObj = wo.group_time.am && wo.group_time.pm,
@@ -89,6 +90,9 @@
89
90
  hours = ( '00' + p24 ).slice(-2),
90
91
  min = ( '00' + time.getMinutes() ).slice(-2);
91
92
  suffix = wo.group_time[ isObj ? [ 'am', 'pm' ][ period ] : period ];
93
+ if ( part === 'hour' ) {
94
+ return hours;
95
+ }
92
96
  return hours + ':' + min + ( wo.group_time24Hour ? '' : ' ' + ( suffix || '' ) );
93
97
  },
94
98
 
@@ -1,4 +1,4 @@
1
- /*! Widget: mark.js - updated 8/1/2016 (v2.27.2) *//*
1
+ /*! Widget: mark.js - updated 9/1/2016 (v2.27.6) *//*
2
2
  * Requires tablesorter v2.8+ and jQuery 1.7+
3
3
  * by Rob Garrison
4
4
  */
@@ -11,9 +11,10 @@
11
11
  if ( typeof $.fn.mark === 'function' ) {
12
12
  var tmp,
13
13
  update = c.widgetOptions.mark_tsUpdate;
14
- c.$table.on( 'filterEnd.tsmark' + ( update ? ' ' + update : '' ), function( e, filters ) {
14
+ c.$table.on( 'filterEnd.tsmark pagerComplete.tsmark' +
15
+ ( update ? ' ' + update : '' ), function( e, filters ) {
15
16
  // filterEnd passes "config" as the param
16
- ts.mark.update( c, e.type === 'filterEnd' ? '' : filters );
17
+ ts.mark.update( c, e.type === update ? filters : '' );
17
18
  });
18
19
  // Regex to split up a query
19
20
  tmp = '(?:<|=|>|\\||\"|' + "\\'|" +
@@ -33,7 +34,8 @@
33
34
  },
34
35
  checkRegex : function( regex ) {
35
36
  if ( regex instanceof RegExp ) {
36
- // prevent lock up of mark.js (see https://github.com/julmot/mark.js/issues/55)
37
+ // prevent lock up of mark.js
38
+ // (see https://github.com/julmot/mark.js/issues/55)
37
39
  var result = '\u0001\u0002\u0003\u0004\u0005'.match( regex );
38
40
  return result === null || result.length < 5;
39
41
  }
@@ -49,10 +51,27 @@
49
51
  }
50
52
  return results;
51
53
  },
54
+ // used when "any" match is performed
55
+ ignoreColumns : function( c ) {
56
+ var wo = c.widgetOptions,
57
+ len = c.columns,
58
+ cols = [];
59
+ while (len--) {
60
+ if (wo.mark_tsIgnore[len] ||
61
+ $( c.$headerIndexed[len] ).hasClass( 'mark-ignore' ) ) {
62
+ cols[cols.length] = ':nth-child(' + (len + 1) + ')';
63
+ }
64
+ }
65
+ if (cols.length) {
66
+ return ':not(' + cols.join(',') + ')';
67
+ }
68
+ return '';
69
+ },
52
70
  update : function( c, filters ) {
53
71
  var options = {},
54
72
  wo = c.widgetOptions,
55
- setIgnoreCase = typeof wo.filter_ignoreCase === 'undefined' ? true : wo.filter_ignoreCase,
73
+ setIgnoreCase = typeof wo.filter_ignoreCase === 'undefined' ? true :
74
+ wo.filter_ignoreCase,
56
75
  regex = ts.mark.regex,
57
76
  $rows = c.$table
58
77
  .find( 'tbody tr' )
@@ -68,11 +87,16 @@
68
87
  }
69
88
  });
70
89
  $.each( filters, function( indx, filter ) {
71
- if ( filter ) {
90
+ if ( filter &&
91
+ !( $(c.$headerIndexed[indx]).hasClass('mark-ignore') ||
92
+ wo.mark_tsIgnore[indx]
93
+ ) ) {
72
94
  var testRegex = null,
73
95
  matches = filter,
74
96
  useRegex = false,
75
- col = indx === c.columns ? '' : ':nth-child(' + ( indx + 1 ) + ')';
97
+ col = indx === c.columns ?
98
+ ts.mark.ignoreColumns( c ) :
99
+ ':nth-child(' + ( indx + 1 ) + ')';
76
100
  // regular expression entered
77
101
  if ( regex.pure.test( filter ) ) {
78
102
  matches = regex.pure.exec( filter );
@@ -122,7 +146,10 @@
122
146
  }
123
147
  } else {
124
148
  // pass an array of matches
125
- $rows.children( col ).mark( ts.mark.cleanMatches( matches ), options );
149
+ $rows.children( col ).mark(
150
+ ts.mark.cleanMatches( matches ),
151
+ options
152
+ );
126
153
  }
127
154
  }
128
155
  });
@@ -132,14 +159,16 @@
132
159
  ts.addWidget({
133
160
  id: 'mark',
134
161
  options: {
135
- mark_tsUpdate : 'markUpdate'
162
+ mark_tsUpdate : 'markUpdate',
163
+ mark_tsIgnore : {}
136
164
  },
137
165
  init : function( table, thisWidget, c, wo ) {
138
166
  ts.mark.init( c, wo );
139
167
  },
140
168
  remove : function( table, c ) {
141
169
  var update = c.widgetOptions.mark_tsUpdate;
142
- c.$table.off( 'filterEnd.tsmark' + ( update ? ' ' + update : '' ) );
170
+ c.$table.off( 'filterEnd.tsmark pagerComplete.tsmark' +
171
+ ( update ? ' ' + update : '' ) );
143
172
  }
144
173
  });
145
174
 
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.22.3
4
+ version: 1.22.4
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: 2016-08-22 00:00:00.000000000 Z
12
+ date: 2016-09-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: railties