| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- /* Default class modification */
- $.extend($.fn.dataTableExt.oStdClasses, {
- "sSortAsc" : "header headerSortDown",
- "sSortDesc" : "header headerSortUp",
- "sSortable" : "header"
- });
- /* API method to get paging information */
- $.fn.dataTableExt.oApi.fnPagingInfo = function(oSettings) {
- return {
- "iStart" : oSettings._iDisplayStart,
- "iEnd" : oSettings.fnDisplayEnd(),
- "iLength" : oSettings._iDisplayLength,
- "iTotal" : oSettings.fnRecordsTotal(),
- "iFilteredTotal" : oSettings.fnRecordsDisplay(),
- "iPage" : Math.ceil(oSettings._iDisplayStart
- / oSettings._iDisplayLength),
- "iTotalPages" : Math.ceil(oSettings.fnRecordsDisplay()
- / oSettings._iDisplayLength)
- };
- };
- /* Bootstrap style pagination control */
- $.extend(
- $.fn.dataTableExt.oPagination,
- {
- "bootstrap" : {
- "fnInit" : function(oSettings, nPaging, fnDraw) {
- var oLang = oSettings.oLanguage.oPaginate;
- var fnClickHandler = function(e) {
- e.preventDefault();
- if (oSettings.oApi._fnPageChange(oSettings,
- e.data.action)) {
- fnDraw(oSettings);
- }
- };
- $(nPaging)
- .addClass('pagination')
- .append(
- '<ul>'
- + '<li class="prev disabled"><a href="#">← '
- + oLang.sPrevious
- + '</a></li>'
- + '<li class="next disabled"><a href="#">'
- + oLang.sNext
- + ' → </a></li>'
- + '</ul>');
- var els = $('a', nPaging);
- $(els[0]).bind('click.DT', {
- action : "previous"
- }, fnClickHandler);
- $(els[1]).bind('click.DT', {
- action : "next"
- }, fnClickHandler);
- },
- "fnUpdate" : function(oSettings, fnDraw) {
- var iListLength = 5;
- var oPaging = oSettings.oInstance.fnPagingInfo();
- var an = oSettings.aanFeatures.p;
- var i, j, sClass, iStart, iEnd, iHalf = Math
- .floor(iListLength / 2);
- if (oPaging.iTotalPages < iListLength) {
- iStart = 1;
- iEnd = oPaging.iTotalPages;
- } else if (oPaging.iPage <= iHalf) {
- iStart = 1;
- iEnd = iListLength;
- } else if (oPaging.iPage >= (oPaging.iTotalPages - iHalf)) {
- iStart = oPaging.iTotalPages - iListLength + 1;
- iEnd = oPaging.iTotalPages;
- } else {
- iStart = oPaging.iPage - iHalf + 1;
- iEnd = iStart + iListLength - 1;
- }
- for (i = 0, iLen = an.length; i < iLen; i++) {
- // Remove the middle elements
- $('li:gt(0)', an[i]).filter(':not(:last)')
- .remove();
- // Add the new list items and their event
- // handlers
- for (j = iStart; j <= iEnd; j++) {
- sClass = (j == oPaging.iPage + 1) ? 'class="active"'
- : '';
- $(
- '<li ' + sClass + '><a href="#">'
- + j + '</a></li>')
- .insertBefore(
- $('li:last', an[i])[0])
- .bind(
- 'click',
- function(e) {
- e.preventDefault();
- oSettings._iDisplayStart = (parseInt(
- $('a', this)
- .text(),
- 10) - 1)
- * oPaging.iLength;
- fnDraw(oSettings);
- });
- }
- // Add / remove disabled classes from the static
- // elements
- if (oPaging.iPage === 0) {
- $('li:first', an[i]).addClass('disabled');
- } else {
- $('li:first', an[i])
- .removeClass('disabled');
- }
- if (oPaging.iPage === oPaging.iTotalPages - 1
- || oPaging.iTotalPages === 0) {
- $('li:last', an[i]).addClass('disabled');
- } else {
- $('li:last', an[i]).removeClass('disabled');
- }
- }
- }
- }
- });
|