117 lines
2.5 KiB
JavaScript
117 lines
2.5 KiB
JavaScript
|
/*! Foundation integration for DataTables' Buttons
|
||
|
* ©2016 SpryMedia Ltd - datatables.net/license
|
||
|
*/
|
||
|
|
||
|
(function( factory ){
|
||
|
if ( typeof define === 'function' && define.amd ) {
|
||
|
// AMD
|
||
|
define( ['jquery', 'datatables.net-zf', 'datatables.net-buttons'], 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-zf')(root, $).$;
|
||
|
}
|
||
|
|
||
|
if ( ! $.fn.dataTable.Buttons ) {
|
||
|
require('datatables.net-buttons')(root, $);
|
||
|
}
|
||
|
|
||
|
return factory( $, root, root.document );
|
||
|
};
|
||
|
}
|
||
|
else {
|
||
|
// Browser
|
||
|
factory( jQuery, window, document );
|
||
|
}
|
||
|
}(function( $, window, document, undefined ) {
|
||
|
'use strict';
|
||
|
var DataTable = $.fn.dataTable;
|
||
|
|
||
|
|
||
|
// F6 has different requirements for the dropdown button set. We can use the
|
||
|
// Foundation version found by DataTables in order to support both F5 and F6 in
|
||
|
// the same file, but not that this requires DataTables 1.10.11+ for F6 support.
|
||
|
var collection = DataTable.ext.foundationVersion === 6 ?
|
||
|
{
|
||
|
tag: 'div',
|
||
|
className: 'dropdown-pane is-open button-group stacked'
|
||
|
} :
|
||
|
{
|
||
|
tag: 'ul',
|
||
|
className: 'f-dropdown open dropdown-pane is-open',
|
||
|
closeButton: false,
|
||
|
button: {
|
||
|
tag: 'li',
|
||
|
className: 'small',
|
||
|
active: 'active',
|
||
|
disabled: 'disabled'
|
||
|
},
|
||
|
buttonLiner: {
|
||
|
tag: 'a'
|
||
|
}
|
||
|
};
|
||
|
|
||
|
$.extend( true, DataTable.Buttons.defaults, {
|
||
|
dom: {
|
||
|
container: {
|
||
|
tag: 'div',
|
||
|
className: 'dt-buttons button-group'
|
||
|
},
|
||
|
buttonContainer: {
|
||
|
tag: null,
|
||
|
className: ''
|
||
|
},
|
||
|
button: {
|
||
|
tag: 'a',
|
||
|
className: 'dt-button button small',
|
||
|
active: 'secondary'
|
||
|
},
|
||
|
buttonLiner: {
|
||
|
tag: null
|
||
|
},
|
||
|
collection: collection,
|
||
|
splitWrapper: {
|
||
|
tag: 'div',
|
||
|
className: 'dt-btn-split-wrapper button-group',
|
||
|
closeButton: false,
|
||
|
},
|
||
|
splitDropdown: {
|
||
|
tag: 'button',
|
||
|
text: '',
|
||
|
className: 'button dt-btn-split-drop dropdown arrow-only',
|
||
|
closeButton: false,
|
||
|
},
|
||
|
splitDropdownButton: {
|
||
|
tag: 'button',
|
||
|
className: 'dt-btn-split-drop-button button small',
|
||
|
closeButton: false
|
||
|
}
|
||
|
}
|
||
|
} );
|
||
|
|
||
|
|
||
|
DataTable.ext.buttons.collection.className = 'dropdown';
|
||
|
|
||
|
$(document).on('buttons-popover.dt', function () {
|
||
|
var notButton = false;
|
||
|
$('.dtsp-panesContainer').each(function() {
|
||
|
if(!$(this).is('button')){
|
||
|
notButton = true;
|
||
|
}
|
||
|
});
|
||
|
if(notButton){
|
||
|
$('.dtsp-panesContainer').removeClass('button-group stacked')
|
||
|
}
|
||
|
});
|
||
|
|
||
|
return DataTable.Buttons;
|
||
|
}));
|