2012-02-21 00:14:25 +00:00
/* TableSorter 2.0 Widgets - updated 2/20/2012 */
2011-12-06 15:25:51 +00:00
2011-12-16 00:17:57 +00:00
( function ( b ) {
2012-02-02 00:02:19 +00:00
b . tablesorter . addWidget ( { id : "uitheme" , format : function ( e ) { var g , a , d , f , h , c = e . config , i = b ( e ) , j = [ "ui-icon-arrowthick-2-n-s" , "ui-icon-arrowthick-1-s" , "ui-icon-arrowthick-1-n" ] ; c . widgetUitheme && c . widgetUitheme . hasOwnProperty ( "css" ) && ( j = c . widgetUitheme . css || j ) ; d = j . join ( " " ) ; c . debug && ( g = new Date ) ; i . is ( ".ui-theme" ) || ( i . addClass ( "ui-widget ui-widget-content ui-corner-all ui-theme" ) , b . each ( c . headerList , function ( ) { b ( this ) . addClass ( "ui-widget-header ui-corner-all" ) . append ( '<span class="ui-icon"/>' ) . wrapInner ( '<div class="inner"/>' ) . hover ( function ( ) { b ( this ) . addClass ( "ui-state-hover" ) } , function ( ) { b ( this ) . removeClass ( "ui-state-hover" ) } ) } ) ) ; b . each ( c . headerList , function ( e ) { f = b ( this ) ; this . sortDisabled ? f . find ( "span.ui-icon" ) . removeClass ( d + " ui-icon" ) : ( a = f . hasClass ( c . cssAsc ) ? j [ 1 ] : f . hasClass ( c . cssDesc ) ? j [ 2 ] : f . hasClass ( c . cssHeader ) ? j [ 0 ] : "" , h = i . hasClass ( "hasStickyHeaders" ) ? i . find ( "tr.stickyHeader" ) . find ( "th" ) . eq ( e ) . add ( f ) : f , h [ a === j [ 0 ] ? "removeClass" : "addClass" ] ( "ui-state-active" ) . find ( "span.ui-icon" ) . removeClass ( d ) . addClass ( a ) ) } ) ; c . debug && b . tablesorter . benchmark ( "Applying uitheme widget" , g ) } } ) ;
b . tablesorter . addWidget ( { id : "columns" , format : function ( e ) { var g , a , d , f , h = e . config , c = h . sortList , i = c . length , j = [ "primary" , "secondary" , "tertiary" ] ; h . widgetColumns && h . widgetColumns . hasOwnProperty ( "css" ) && ( j = h . widgetColumns . css || j ) ; d = j . length - 1 ; f = j . join ( " " ) ; h . debug && ( a = new Date ) ; c && c [ 0 ] && b ( "tr:visible" , e . tBodies [ 0 ] ) . each ( function ( a ) { g = b ( this ) . children ( ) . removeClass ( f ) ; g . eq ( c [ 0 ] [ 0 ] ) . addClass ( j [ 0 ] ) ; if ( 1 < i ) for ( a = 1 ; a < i ; a ++ ) g . eq ( c [ a ] [ 0 ] ) . addClass ( j [ a ] || j [ d ] ) } ) ; h . debug && b . tablesorter . benchmark ( "Applying Columns widget" , a ) } } ) ;
2012-02-21 00:47:08 +00:00
b . tablesorter . addWidget ( { id : "filter" , format : function ( e ) { if ( ! e . config . filtering ) { var g , a , d , f , h , c , i = e . config , j = i . headerList . length , k = b ( e ) , e = '<tr class="filters">' , l ; i . debug && ( l = new Date ) ; for ( g = 0 ; g < j ; g ++ ) e += '<td><input type="text" data-col="' + g + '" class="filter' , e += i . headers [ g ] && "filter" in i . headers [ g ] && ! 1 === i . headers [ g ] . filter || b ( i . headerList [ g ] ) . is ( ".filter-false" ) ? ' disabled" disabled' : '"' , e += "></td>" ; k . find ( "thead" ) . append ( e += "</tr>" ) . find ( ".filter" ) . bind ( "keyup" , function ( ) { a = k . find ( ".filter" ) . map ( function ( ) { return ( b ( this ) . val ( ) || "" ) . toLowerCase ( ) } ) . get ( ) ; "" === a . join ( "" ) ? k . find ( "tr" ) . show ( ) : k . find ( "tbody" ) . find ( "tr:not(.expand-child)" ) . each ( function ( ) { d = ! 0 ; h = b ( this ) . nextUntil ( "tr:not(.expand-child)" ) ; f = h . length && ( "undefined" !== typeof i . widgetFilterChildRows ? i . widgetFilterChildRows : 1 ) ? h . text ( ) : "" ; c = b ( this ) . find ( "td" ) ; for ( g = 0 ; g < j ; g ++ ) "" !== a [ g ] && 0 <= ( c . eq ( g ) . text ( ) + f ) . toLowerCase ( ) . indexOf ( a [ g ] ) ? d = d ? ! 0 : ! 1 : "" !== a [ g ] && ( d = ! 1 ) ; b ( this ) [ d ? "show" : "hide" ] ( ) ; if ( h . length ) h [ d ? "show" : "hide" ] ( ) } ) ; k . trigger ( "applyWidgets" ) } ) ; i . filtering = ! 0 ; i . debug && b . tablesorter . benchmark ( "Applying Filter widget" , l ) } } } ) ;
2012-02-02 00:02:19 +00:00
b . tablesorter . addWidget ( { id : "stickyHeaders" , format : function ( e ) { if ( ! b ( e ) . hasClass ( "hasStickyHeaders" ) ) { var g = b ( e ) . addClass ( "hasStickyHeaders" ) , a = b ( window ) , d = b ( e ) . find ( "thead" ) , f = d . find ( "tr" ) . children ( ) , h = f . eq ( 0 ) , c = parseInt ( f . eq ( 0 ) . css ( "border-left-width" ) , 10 ) , i = d . find ( "tr:not(.filters)" ) . clone ( ) . addClass ( "stickyHeader" ) . css ( { width : d . outerWidth ( ) + 2 * c , position : "fixed" , left : h . offset ( ) . left , marginLeft : - c , top : 0 , visibility : "hidden" , zIndex : 10 } ) , j = i . children ( ) , k ; g . bind ( "sortEnd" , function ( a , c ) { var d = b ( c ) . find ( "thead tr" ) , e = d . filter ( ".stickyHeader" ) . children ( ) ; d . filter ( ":not(.stickyHeader)" ) . children ( ) . each ( function ( a ) { e . eq ( a ) . attr ( "class" , b ( this ) . attr ( "class" ) ) } ) } ) . bind ( "pagerComplete" , function ( ) { a . resize ( ) } ) ; f . each ( function ( a ) { var c = b ( this ) ; j . eq ( a ) . width ( c . width ( ) ) . bind ( "click" , function ( a ) { c . trigger ( a ) } ) . bind ( "mousedown" , function ( ) { this . onselectstart = function ( ) { return ! 1 } ; return ! 1 } ) } ) ; d . prepend ( i ) ; a . scroll ( function ( ) { var c = h . offset ( ) , b = a . scrollTop ( ) , b = b > c . top && b < c . top + g . find ( "tbody" ) . height ( ) ? "visible" : "hidden" ; i . css ( { left : c . left - a . scrollLeft ( ) , visibility : b } ) ; b !== k && ( a . resize ( ) , k = b ) } ) . resize ( function ( ) { i . css ( { left : h . offset ( ) . left - a . scrollLeft ( ) , width : d . outerWidth ( ) + 2 * c } ) ; j . each ( function ( a ) { b ( this ) . width ( f . eq ( a ) . width ( ) ) } ) } ) } } } ) ;
b . tablesorter . addWidget ( { id : "resizable" , format : function ( e ) { if ( ! e . config . resizable ) { var g , a = e . config , d = a . headerList , f = d . length , h = function ( ) { a . resizable _position = 0 ; a . resizable _target = null ; b ( window ) . trigger ( "resize" ) } ; a . resizable _target = null ; a . resizable _position = 0 ; for ( g = 1 ; g < f ; g ++ ) b ( d [ g ] ) . append ( '<div class="resizer" style="cursor:w-resize;position:absolute;height:100%;width:20px;left:-20px;top:0;z-index:1;"></div>' ) . wrapInner ( '<div style="position:relative;height:100%;width:100%"></div>' ) . find ( ".resizer" ) . bind ( "mousedown" , function ( c ) { a . resizable _target = b ( c . target ) . closest ( "th" ) ; a . resizable _position = c . pageX } ) . end ( ) . bind ( "mousemove" , function ( c ) { if ( ! ( 0 === a . resizable _position || null === typeof a . resizable _target ) ) { var b = c . pageX - a . resizable _position , d = a . resizable _target . closest ( "th" ) . prev ( ) ; a . resizable _target . width ( ) < - b || d && d . width ( ) <= b || ( d . width ( d . width ( ) + b ) , a . resizable _position = c . pageX ) } } ) . bind ( "mouseup" , function ( ) { h ( ) ; return ! 1 } ) ; b ( e ) . find ( "thead" ) . bind ( "mouseup mouseleave" , function ( ) { h ( ) } ) ; a . resizable = ! 0 } } } ) ;
2012-02-21 00:14:25 +00:00
b . tablesorter . addWidget ( { id : "saveSort" , init : function ( b , g , a ) { a . format ( b , ! 0 ) } , format : function ( e , g ) { var a , d , f , h , c = e . config ; f = '{"sortList":' + JSON . stringify ( c . sortList ) + "}" ; c . debug && ( h = new Date ) ; if ( c . widgetsavesort ) e . hasInitialized && ( a = "tablesorter" + ( c . tableIndex || 0 ) + e . id , c . hasLocalStorage ? localStorage [ a ] = f : ( d = new Date , d . setTime ( d . getTime ( ) + 31536E6 ) , document . cookie = a + "=" + f + "; expires=" + d . toGMTString ( ) + "; path=/" ) , c . debug && b . tablesorter . benchmark ( 'saveSort: Saving sort to "' + a + '" in ' + ( c . hasLocalStorage ? "local storage" : "a cookie" ) , h ) ) ; else { c . widgetsavesort = ! 0 ; c . hasLocalStorage = ! 1 ; try { localStorage . getItem && ( c . hasLocalStorage = ! 0 ) } catch ( i ) { } c . tableIndex = b ( ".tablesorter" ) . index ( b ( e ) ) ; a = "tablesorter" + ( c . tableIndex || 0 ) + e . id ; c . hasLocalStorage ? d = localStorage [ a ] : ( f = document . cookie . split ( /[;\s|=]/ ) , d = b . inArray ( a , f ) + 1 , d = 0 !== d ? f [ d ] : "" ) ; try { d = b . parseJSON ( d ) } catch ( j ) { d = "" } f = d && d . hasOwnProperty ( "sortList" ) && b . isArray ( d . sortList ) ? d . sortList : "" ; c . debug && b . tablesorter . benchmark ( 'saveSort: Last sort for "' + a + '" obtained from ' + ( c . hasLocalStorage ? "local storage" : "a cookie" ) , h ) ; g && f && 0 < f . length ? c . sortList = f : e . hasInitialized && f && 0 < f . length && b ( e ) . trigger ( "sorton" , [ f ] ) } } } )
2012-01-27 20:03:41 +00:00
} ) ( jQuery ) ;