Skip to content

Commit

Permalink
Pass to V2 version
Browse files Browse the repository at this point in the history
Add function to get first letters when use bServerSide
  • Loading branch information
DukeAstar committed Oct 20, 2013
1 parent 3747167 commit 7e58d99
Showing 1 changed file with 119 additions and 0 deletions.
119 changes: 119 additions & 0 deletions media/js/jquery.dataTables.listnav.2.js
@@ -0,0 +1,119 @@

(function($) {

var dt_abcdaire = function ( oDTSettings)
{
var defaults = {
iIndex: 1,
sIdList: null,
sWrapperClass : null,
fRetreiveFirstLetters : null,
sAllWord : 'All',
sLetterClass : "btn abcdaire",
sLetterDisabledClass : "btn abcdaire disabled"
};

$.extend(defaults,oDTSettings.oInit.oListNav);

var me = this;
var oDTTable = oDTSettings.oInstance;
me.$container = $('<div class="btn-group"></div>');

if(defaults.sIdList)
me.$container.attr('id',defaults.sIdList);

if(defaults.sWrapperClass)
me.$container.addClass(defaults.sWrapperClass);

var charCodeRange = {
start: 65,
end: 90
}

me.$container.append('<button data-letter="all" class="' + defaults.sLetterClass + '">'+ defaults.sAllWord +'</button>');
me.$container.append('<button data-letter="_" class="' + defaults.sLetterDisabledClass + '">0-9</button>');

for (var cc = charCodeRange.start; cc <= charCodeRange.end; cc++) {
var letter=String.fromCharCode(cc);
me.$container.append('<button data-letter='+letter+' class="' + defaults.sLetterDisabledClass + '">'+letter+'</button>');
}

oDTSettings.aoInitComplete.push( {

"fn": function () {

if(oDTSettings.oFeatures.bServerSide == false)
{
var anNodes = oDTTable.oApi._fnGetTrNodes( oDTSettings );
$("td:nth-child("+(defaults.iIndex+1) + ")",anNodes).each(function(){
var l =$(this).text()[0].toUpperCase();
if(isNaN(l))
$('button[data-letter='+l+']',me.$container).removeClass('disabled');
else
$('button[data-letter="_"]',me.$container).removeClass('disabled');
});
}
else if(typeof defaults.fRetreiveFirstLetters == "function" )
{
$.each(defaults.fRetreiveFirstLetters(),function(){
var l =this[0].toUpperCase();
if(isNaN(l))
$('button[data-letter="'+l+'"]',me.$container).removeClass('disabled');
else
$('button[data-letter="_"]',me.$container).removeClass('disabled');
});
}
},
"sName": "ListNav"
} );

$('button',me.$container).bind('click.DT',function(e){
var me = $(this);
me.addClass("active").siblings().removeClass("active");
var letter = $(this).data('letter');

switch (letter)
{
case "all":
oDTTable.fnFilter("",defaults.iIndex,true,false);
break;
case "_":
oDTTable.fnFilter("^[0-9]",defaults.iIndex,true,false);
break;
default:
oDTTable.fnFilter("^"+letter,defaults.iIndex,true,false);
}
return false;
});

}

dt_abcdaire.prototype.getContainer = function() {
return this.$container.get( 0 );
}


/*
* Register a new feature with DataTables
*/
if ( typeof $.fn.dataTable == "function" &&
typeof $.fn.dataTableExt.fnVersionCheck == "function" &&
$.fn.dataTableExt.fnVersionCheck('1.9.0') )
{
$.fn.dataTableExt.aoFeatures.push(
{
"fnInit": function( oDTSettings ) {
var oWidgets = new dt_abcdaire( oDTSettings );
return oWidgets.getContainer();
},

"cFeature": "Z",
"sFeature": "dt_abcdaire"
} );
}
else
{
alert( "Warning: Additionals Plugins requires DataTables 1.9.0 or greater - www.datatables.net/download");
}

}(jQuery));

0 comments on commit 7e58d99

Please sign in to comment.