Вход Регистрация
Файл: Main Website Files/assets/bower_components/datatables-plugins/features/alphabetSearch/dataTables.alphabetSearch.js
Строк: 142
<?php
/*! AlphabetSearch for DataTables v1.0.0
 * 2014 SpryMedia Ltd - datatables.net/license
 */

/**
 * @summary     AlphabetSearch
 * @description Show an set of alphabet buttons alongside a table providing
 *     search input options
 * @version     1.0.0
 * @file        dataTables.alphabetSearch.js
 * @author      SpryMedia Ltd (www.sprymedia.co.uk)
 * @contact     www.sprymedia.co.uk/contact
 * @copyright   Copyright 2014 SpryMedia Ltd.
 * 
 * License      MIT - http://datatables.net/license/mit
 *
 * For more detailed information please see:
 *     http://datatables.net/blog/2014-09-22
 */
(function(){


// Search function
$.fn.dataTable.Api.register'alphabetSearch()', function ( searchTerm ) {
    
this.iterator'table', function ( context ) {
        
context.alphabetSearch searchTerm;
    } );

    return 
this;
} );

// Recalculate the alphabet display for updated data
$.fn.dataTable.Api.register'alphabetSearch.recalc()', function ( searchTerm ) {
    
this.iterator'table', function ( context ) {
        
draw(
            new $.fn.
dataTable.Apicontext ),
            $(
'div.alphabet'this.table().container())
        );
    } );

    return 
this;
} );


// Search plug-in
$.fn.dataTable.ext.search.push( function ( contextsearchData ) {
    
// Ensure that there is a search applied to this table before running it
    
if ( ! context.alphabetSearch ) {
        return 
true;
    }

    if ( 
searchData[0].charAt(0) === context.alphabetSearch ) {
        return 
true;
    }

    return 
false;
} );


// Private support methods
function bin data ) {
    var 
letterbins = {};

    for ( var 
i=0ien=data.length i<ien i++ ) {
        
letter data[i].charAt(0).toUpperCase();

        if ( 
bins[letter] ) {
            
bins[letter]++;
        }
        else {
            
bins[letter] = 1;
        }
    }

    return 
bins;
}

function 
draw tablealphabet )
{
    
alphabet.empty();
    
alphabet.append'Search: ' );

    var 
columnData table.column(0).data();
    var 
bins bincolumnData );

    $(
'<span class="clear active"/>')
        .
data'letter''' )
        .
data'match-count'columnData.length )
        .
html'None' )
        .
appendToalphabet );

    for ( var 
i=i<26 i++ ) {
        var 
letter String.fromCharCode65 );

        $(
'<span/>')
            .
data'letter'letter )
            .
data'match-count'bins[letter] || )
            .
addClass( ! bins[letter] ? 'empty' '' )
            .
htmlletter )
            .
appendToalphabet );
    }

    $(
'<div class="alphabetInfo"></div>')
        .
appendToalphabet );
}


$.fn.
dataTable.AlphabetSearch = function ( context ) {
    var 
table = new $.fn.dataTable.Apicontext );
    var 
alphabet = $('<div class="alphabet"/>');

    
drawtablealphabet );

    
// Trigger a search
    
alphabet.on'click''span', function () {
        
alphabet.find'.active' ).removeClass'active' );
        $(
this).addClass'active' );

        
table
            
.alphabetSearch( $(this).data('letter') )
            .
draw();
    } );

    
// Mouse events to show helper information
    
alphabet
        
.on'mouseenter''span', function () {
            
alphabet
                
.find('div.alphabetInfo')
                .
css( {
                    
opacity1,
                    
left: $(this).position().left,
                    
width: $(this).width()
                } )
                .
html( $(this).data('match-count') );
        } )
        .
on'mouseleave''span', function () {
            
alphabet
                
.find('div.alphabetInfo')
                .
css('opacity'0);
        } );

    
// API method to get the alphabet container node
    
this.node = function () {
        return 
alphabet;
    };
};

$.fn.
DataTable.AlphabetSearch = $.fn.dataTable.AlphabetSearch;


// Register a search plug-in
$.fn.dataTable.ext.feature.push( {
    
fnInit: function ( settings ) {
        var 
search = new $.fn.dataTable.AlphabetSearchsettings );
        return 
search.node();
    },
    
cFeature'A'
} );


}());
?>
Онлайн: 1
Реклама