181 // Remove the middle elements |
186 // Remove the middle elements |
182 $('li:gt(0)', an[i]).filter(':not(:last)').remove(); |
187 $('li:gt(0)', an[i]).filter(':not(:last)').remove(); |
183 |
188 |
184 // Add the new list items and their event handlers |
189 // Add the new list items and their event handlers |
185 for (j=iStart ; j<=iEnd ; j++) { |
190 for (j=iStart ; j<=iEnd ; j++) { |
186 sClass = (j==oPaging.iPage+1) ? 'class="active"' : ''; |
191 sClass = (j === oPaging.iPage+1) ? 'class="active"' : ''; |
187 $('<li '+sClass+'><a href="#">'+j+'</a></li>') |
192 $('<li '+sClass+'><a href="#">'+j+'</a></li>') |
188 .insertBefore( $('li:last', an[i])[0] ) |
193 .insertBefore( $('li:last', an[i])[0] ) |
189 .on('click', function (e) { |
194 .on('click', function (e) { |
190 e.preventDefault(); |
195 e.preventDefault(); |
191 oSettings._iDisplayStart = (parseInt($('a', this).text(),10)-1) * oPaging.iLength; |
196 oSettings._iDisplayStart = (parseInt($('a', this).text(),10)-1) * oPaging.iLength; |
192 fnDraw( oSettings ); |
197 fnDraw( oSettings ); |
193 }); |
198 }); |
194 } |
199 } |
195 |
200 |
196 // Add / remove disabled classes from the static elements |
201 // Add / remove disabled classes from the static elements |
197 if (oPaging.iPage === 0) |
202 if (oPaging.iPage === 0) { |
198 $('li:first', an[i]).addClass('disabled'); |
203 $('li:first', an[i]).addClass('disabled'); |
199 else |
204 } else { |
200 $('li:first', an[i]).removeClass('disabled'); |
205 $('li:first', an[i]).removeClass('disabled'); |
201 |
206 } |
202 if (oPaging.iPage === oPaging.iTotalPages-1 || oPaging.iTotalPages === 0) |
207 |
|
208 if (oPaging.iPage === oPaging.iTotalPages-1 || oPaging.iTotalPages === 0) { |
203 $('li:last', an[i]).addClass('disabled'); |
209 $('li:last', an[i]).addClass('disabled'); |
204 else |
210 } else { |
205 $('li:last', an[i]).removeClass('disabled'); |
211 $('li:last', an[i]).removeClass('disabled'); |
|
212 } |
206 } |
213 } |
207 } |
214 } |
208 } |
215 } |
209 }); |
216 }); |
210 |
217 |
267 // Remove the middle elements |
275 // Remove the middle elements |
268 $('li', an[i]).filter(":not(.first)").filter(":not(.last)").filter(":not(.prev)").filter(":not(.next)").remove(); |
276 $('li', an[i]).filter(":not(.first)").filter(":not(.last)").filter(":not(.prev)").filter(":not(.next)").remove(); |
269 |
277 |
270 // Add the new list items and their event handlers |
278 // Add the new list items and their event handlers |
271 for (j=iStart ; j<=iEnd ; j++) { |
279 for (j=iStart ; j<=iEnd ; j++) { |
272 sClass = (j==oPaging.iPage+1) ? 'class="active"' : ''; |
280 sClass = (j === oPaging.iPage+1) ? 'class="active"' : ''; |
273 $('<li '+sClass+'><a href="#">'+j+'</a></li>') |
281 $('<li '+sClass+'><a href="#">'+j+'</a></li>') |
274 .insertBefore( $('li.next', an[i])[0] ) |
282 .insertBefore( $('li.next', an[i])[0] ) |
275 .on('click', function (e) { |
283 .on('click', function (e) { |
276 e.preventDefault(); |
284 e.preventDefault(); |
277 oSettings._iDisplayStart = (parseInt($('a', this).text(),10)-1) * oPaging.iLength; |
285 oSettings._iDisplayStart = (parseInt($('a', this).text(),10)-1) * oPaging.iLength; |
278 fnDraw( oSettings ); |
286 fnDraw( oSettings ); |
279 } ); |
287 }); |
280 } |
288 } |
281 |
289 |
282 // Add / remove disabled classes from the static elements |
290 // Add / remove disabled classes from the static elements |
283 if (oPaging.iPage === 0) { |
291 if (oPaging.iPage === 0) { |
284 $('li.first', an[i]).addClass('disabled'); |
292 $('li.first', an[i]).addClass('disabled'); |
469 }, |
483 }, |
470 |
484 |
471 _fnConstruct: function(init) { |
485 _fnConstruct: function(init) { |
472 var self = this; |
486 var self = this; |
473 var dt = self.s.dt; |
487 var dt = self.s.dt; |
474 if (dt.oScroll.bInfinite) |
488 if (dt.oScroll.bInfinite) { |
475 return; |
489 return; |
|
490 } |
476 var sName = dt.sTableId + '_length'; |
491 var sName = dt.sTableId + '_length'; |
477 var sMenu = $('<select size="1"></select>').attr('name', sName); |
492 var sMenu = $('<select size="1"></select>').attr('name', sName); |
478 var i, iLen; |
493 var i, iLen; |
479 var aLengthMenu = dt.aLengthMenu; |
494 var aLengthMenu = dt.aLengthMenu; |
480 if (aLengthMenu.length == 2 && typeof(aLengthMenu[0]) == 'object' && typeof(aLengthMenu[1]) == 'object') { |
495 if (aLengthMenu.length === 2 && |
481 for (i=0, iLen=aLengthMenu[0].length; i < iLen; i++) |
496 typeof(aLengthMenu[0]) === 'object' && |
|
497 typeof(aLengthMenu[1]) === 'object') { |
|
498 for (i=0, iLen=aLengthMenu[0].length; i < iLen; i++) { |
482 $('<option />').attr('value', aLengthMenu[0][i]) |
499 $('<option />').attr('value', aLengthMenu[0][i]) |
483 .text(aLengthMenu[1][i]) |
500 .text(aLengthMenu[1][i]) |
484 .appendTo(sMenu); |
501 .appendTo(sMenu); |
|
502 } |
485 } else { |
503 } else { |
486 for (i=0, iLen=aLengthMenu.length; i < iLen; i++) |
504 for (i=0, iLen=aLengthMenu.length; i < iLen; i++) { |
487 $('<option />').attr('value', aLengthMenu[i]) |
505 $('<option />').attr('value', aLengthMenu[i]) |
488 .text(aLengthMenu[i]) |
506 .text(aLengthMenu[i]) |
489 .appendTo(sMenu); |
507 .appendTo(sMenu); |
|
508 } |
490 } |
509 } |
491 var nLength = $('<div>').addClass(dt.oClasses.sLength) |
510 var nLength = $('<div>').addClass(dt.oClasses.sLength) |
492 .append($('<span></span>').addClass('ams-form') |
511 .append($('<span></span>').addClass('ams-form') |
493 .append($('<label></label>').addClass('select') |
512 .append($('<label></label>').addClass('select') |
494 .css('width', 60) |
513 .css('width', 60) |
495 .append(sMenu) |
514 .append(sMenu) |
496 .append($('<i></i>')))); |
515 .append($('<i></i>')))); |
497 if (!dt.aanFeatures.L) |
516 if (!dt.aanFeatures.L) { |
498 nLength.attr('id', dt.sTableId + '_length'); |
517 nLength.attr('id', dt.sTableId + '_length'); |
|
518 } |
499 this.dom.wrapper = nLength.get(0); |
519 this.dom.wrapper = nLength.get(0); |
500 |
520 |
501 $('select option[value="' + dt._iDisplayLength + '"]', nLength).attr("selected", true); |
521 $('select option[value="' + dt._iDisplayLength + '"]', nLength).attr("selected", true); |
502 $("select", nLength).on('change.DT', function(e) { |
522 $("select", nLength).on('change.DT', function(e) { |
503 var iVal = $(this).val(); |
523 var iVal = $(this).val(); |
504 var n = dt.aanFeatures.L; |
524 var n = dt.aanFeatures.L; |
505 for (i = 0, iLen = n.length; i < iLen; i++) { |
525 for (i = 0, iLen = n.length; i < iLen; i++) { |
506 if (n[i] != this.parentNode) |
526 if (n[i] !== this.parentNode) { |
507 $("select", n[i]).val(iVal); |
527 $("select", n[i]).val(iVal); |
|
528 } |
508 } |
529 } |
509 dt._iDisplayLength = parseInt(iVal, 10); |
530 dt._iDisplayLength = parseInt(iVal, 10); |
510 dt.oInstance._fnCalculateEnd(dt); |
531 dt.oInstance._fnCalculateEnd(dt); |
511 if (dt.fnDisplayEnd() == dt.fnRecordsDisplay()) { |
532 if (dt.fnDisplayEnd() === dt.fnRecordsDisplay()) { |
512 dt._iDisplayStart = dt.fnDisplayEnd() - dt._iDisplayLength; |
533 dt._iDisplayStart = dt.fnDisplayEnd() - dt._iDisplayLength; |
513 if (dt._iDisplayStart < 0) |
534 if (dt._iDisplayStart < 0) { |
514 dt._iDisplayStart = 0; |
535 dt._iDisplayStart = 0; |
515 } |
536 } |
516 if (dt._iDisplayLength == -1) |
537 } |
|
538 if (dt._iDisplayLength === -1) { |
517 dt._iDisplayStart = 0; |
539 dt._iDisplayStart = 0; |
|
540 } |
518 dt.oInstance._fnDraw(); |
541 dt.oInstance._fnDraw(); |
519 }); |
542 }); |
520 $("select", nLength).attr("aria-controls", dt.sTableId); |
543 $("select", nLength).attr("aria-controls", dt.sTableId); |
521 } |
544 } |
522 }; |
545 }; |
528 BootstrapLength.prototype.CLASS = 'BootstrapLength'; |
551 BootstrapLength.prototype.CLASS = 'BootstrapLength'; |
529 |
552 |
530 BootstrapLength.VERSION = '1.0.0'; |
553 BootstrapLength.VERSION = '1.0.0'; |
531 BootstrapLength.prototype.VERSION = BootstrapLength.VERSION; |
554 BootstrapLength.prototype.VERSION = BootstrapLength.VERSION; |
532 |
555 |
533 if ((typeof($.fn.dataTable) == 'function') && |
556 if ((typeof($.fn.dataTable) === 'function') && |
534 (typeof($.fn.dataTableExt.fnVersionCheck) == 'function') && |
557 (typeof($.fn.dataTableExt.fnVersionCheck) === 'function') && |
535 $.fn.dataTableExt.fnVersionCheck('1.7.0')) { |
558 $.fn.dataTableExt.fnVersionCheck('1.7.0')) { |
536 $.fn.dataTableExt.aoFeatures.push({ |
559 $.fn.dataTableExt.aoFeatures.push({ |
537 fnInit: function(oSettings) { |
560 fnInit: function(oSettings) { |
538 var init = oSettings.oInit; |
561 var init = oSettings.oInit; |
539 var Length = new BootstrapLength(oSettings, init.bootstrapLength || init.oBootstrapLength || {}); |
562 var Length = new BootstrapLength(oSettings, init.bootstrapLength || init.oBootstrapLength || {}); |
625 .attr('aria-control', dt.sTableId) |
655 .attr('aria-control', dt.sTableId) |
626 .on('keyup.DT', function(e) { |
656 .on('keyup.DT', function(e) { |
627 var n = dt.aanFeatures.F; |
657 var n = dt.aanFeatures.F; |
628 var val = $(this).val(); |
658 var val = $(this).val(); |
629 for (var i = 0, iLen = n.length; i < iLen; i++) { |
659 for (var i = 0, iLen = n.length; i < iLen; i++) { |
630 if (n[i] != $(this).parents("div.dataTables_filter")[0]) |
660 if (n[i] !== $(this).parents("div.dataTables_filter")[0]) { |
631 $(n[i]).data('DT_Input').val(val); |
661 $(n[i]).data('DT_Input').val(val); |
|
662 } |
632 } |
663 } |
633 if (val != oPreviousSearch.sSearch) { |
664 if (val !== oPreviousSearch.sSearch) { |
634 dt.oInstance._fnFilterComplete({ |
665 dt.oInstance._fnFilterComplete({ |
635 sSearch: val, |
666 sSearch: val, |
636 bRegex: oPreviousSearch.bRegex, |
667 bRegex: oPreviousSearch.bRegex, |
637 bSmart: oPreviousSearch.bSmart, |
668 bSmart: oPreviousSearch.bSmart, |
638 bCaseInsensitive: oPreviousSearch.bCaseInsensitive |
669 bCaseInsensitive: oPreviousSearch.bCaseInsensitive |
639 }); |
670 }); |
640 } |
671 } |
641 }) |
672 }) |
642 .on('keypress.DT', function(e) { |
673 .on('keypress.DT', function(e) { |
643 if (e.keyCode == 13) { |
674 if (e.keyCode === 13) { |
644 return false; |
675 return false; |
645 } |
676 } |
646 }); |
677 }); |
647 } |
678 } |
648 }; |
679 }; |
654 BootstrapFilter.prototype.CLASS = 'BootstrapFilter'; |
685 BootstrapFilter.prototype.CLASS = 'BootstrapFilter'; |
655 |
686 |
656 BootstrapFilter.VERSION = '1.0.0'; |
687 BootstrapFilter.VERSION = '1.0.0'; |
657 BootstrapFilter.prototype.VERSION = BootstrapFilter.VERSION; |
688 BootstrapFilter.prototype.VERSION = BootstrapFilter.VERSION; |
658 |
689 |
659 if ((typeof($.fn.dataTable) == 'function') && |
690 if ((typeof($.fn.dataTable) === 'function') && |
660 (typeof($.fn.dataTableExt.fnVersionCheck) == 'function') && |
691 (typeof($.fn.dataTableExt.fnVersionCheck) === 'function') && |
661 $.fn.dataTableExt.fnVersionCheck('1.7.0')) { |
692 $.fn.dataTableExt.fnVersionCheck('1.7.0')) { |
662 $.fn.dataTableExt.aoFeatures.push({ |
693 $.fn.dataTableExt.aoFeatures.push({ |
663 fnInit: function(oSettings) { |
694 fnInit: function(oSettings) { |
664 var init = oSettings.oInit; |
695 var init = oSettings.oInit; |
665 var filter = new BootstrapFilter(oSettings, init.bootstrapFilter || init.oBootstrapFilter || {}); |
696 var filter = new BootstrapFilter(oSettings, init.bootstrapFilter || init.oBootstrapFilter || {}); |