/*! 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 jQuery UI. See http://datatables.net/manual/styling/jqueryui * for further information. */ (function (factory) { if (typeof define === "function" && define.amd) { // AMD define(["jquery", "datatables.net"], function ($) { return factory($, window, document); }); } else if (typeof exports === "object") { // CommonJS module.exports = function (root, $) { if (!root) { root = window; } if (!$ || !$.fn.dataTable) { $ = require("datatables.net")(root, $).$; } return factory($, root, root.document); }; } else { // Browser factory(jQuery, window, document); } })(function ($, window, document, undefined) { "use strict"; var DataTable = $.fn.dataTable; 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 + "caret-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 + "caret-1-n"; } else if (!asc && desc) { noSortAppliedClass = sort_prefix + "caret-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, ctx, sorting, columns) { if (settings !== ctx) { return; } 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 + "caret-2-n-s" + " " + sort_prefix + "caret-1-n" + " " + sort_prefix + "caret-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", }, }); } return DataTable; });