/*! DataTables jQuery UI integration * ©2011-2014 SpryMedia Ltd - datatables.net/license */ /** * DataTables integration for jQuery UI. This requires jQuery UI and * DataTables 1.10 or newer. * * This file sets the defaults and adds options to DataTables to style its * controls using Bootstrap. See http://datatables.net/manual/styling/jqueryui * for further information. */ (function(window, document, undefined){ var factory = function( $, DataTable ) { "use strict"; var sort_prefix = 'css_right ui-icon ui-icon-'; var toolbar_prefix = 'fg-toolbar ui-toolbar ui-widget-header ui-helper-clearfix ui-corner-'; /* Set the defaults for DataTables initialisation */ $.extend( true, DataTable.defaults, { dom: '<"'+toolbar_prefix+'tl ui-corner-tr"lfr>'+ 't'+ '<"'+toolbar_prefix+'bl ui-corner-br"ip>', renderer: 'jqueryui' } ); $.extend( DataTable.ext.classes, { "sWrapper": "dataTables_wrapper dt-jqueryui", /* Full numbers paging buttons */ "sPageButton": "fg-button ui-button ui-state-default", "sPageButtonActive": "ui-state-disabled", "sPageButtonDisabled": "ui-state-disabled", /* Features */ "sPaging": "dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi "+ "ui-buttonset-multi paging_", /* Note that the type is postfixed */ /* Sorting */ "sSortAsc": "ui-state-default sorting_asc", "sSortDesc": "ui-state-default sorting_desc", "sSortable": "ui-state-default sorting", "sSortableAsc": "ui-state-default sorting_asc_disabled", "sSortableDesc": "ui-state-default sorting_desc_disabled", "sSortableNone": "ui-state-default sorting_disabled", "sSortIcon": "DataTables_sort_icon", /* Scrolling */ "sScrollHead": "dataTables_scrollHead "+"ui-state-default", "sScrollFoot": "dataTables_scrollFoot "+"ui-state-default", /* Misc */ "sHeaderTH": "ui-state-default", "sFooterTH": "ui-state-default", } ); DataTable.ext.renderer.header.jqueryui = function ( settings, cell, column, classes ) { // Calculate what the unsorted class should be var noSortAppliedClass = sort_prefix+'carat-2-n-s'; var asc = $.inArray('asc', column.asSorting) !== -1; var desc = $.inArray('desc', column.asSorting) !== -1; if ( !column.bSortable || (!asc && !desc) ) { noSortAppliedClass = ''; } else if ( asc && !desc ) { noSortAppliedClass = sort_prefix+'carat-1-n'; } else if ( !asc && desc ) { noSortAppliedClass = sort_prefix+'carat-1-s'; } // Setup the DOM structure $('
') .addClass( 'DataTables_sort_wrapper' ) .append( cell.contents() ) .append( $('') .addClass( classes.sSortIcon+' '+noSortAppliedClass ) ) .appendTo( cell ); // Attach a sort listener to update on sort $(settings.nTable).on( 'order.dt', function ( e, settings, sorting, columns ) { var colIdx = column.idx; cell .removeClass( classes.sSortAsc +" "+classes.sSortDesc ) .addClass( columns[ colIdx ] == 'asc' ? classes.sSortAsc : columns[ colIdx ] == 'desc' ? classes.sSortDesc : column.sSortingClass ); cell .find( 'span.'+classes.sSortIcon ) .removeClass( sort_prefix+'triangle-1-n' +" "+ sort_prefix+'triangle-1-s' +" "+ sort_prefix+'carat-2-n-s' +" "+ sort_prefix+'carat-1-n' +" "+ sort_prefix+'carat-1-s' ) .addClass( columns[ colIdx ] == 'asc' ? sort_prefix+'triangle-1-n' : columns[ colIdx ] == 'desc' ? sort_prefix+'triangle-1-s' : noSortAppliedClass ); } ); }; /* * TableTools jQuery UI compatibility * Required TableTools 2.1+ */ if ( DataTable.TableTools ) { $.extend( true, DataTable.TableTools.classes, { "container": "DTTT_container ui-buttonset ui-buttonset-multi", "buttons": { "normal": "DTTT_button ui-button ui-state-default" }, "collection": { "container": "DTTT_collection ui-buttonset ui-buttonset-multi" } } ); } }; // /factory // Define as an AMD module if possible if ( typeof define === 'function' && define.amd ) { define( ['jquery', 'datatables'], factory ); } else if ( typeof exports === 'object' ) { // Node/CommonJS factory( require('jquery'), require('datatables') ); } else if ( jQuery ) { // Otherwise simply initialise as normal, stopping multiple evaluation factory( jQuery, jQuery.fn.dataTable ); } })(window, document);