Spaces:
Running
Running
/*! 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 ) { | |
; | |
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 | |
$('<div/>') | |
.addClass( 'DataTables_sort_wrapper' ) | |
.append( cell.contents() ) | |
.append( $('<span/>') | |
.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; | |
})); | |