first commit
This commit is contained in:
83
public/bower_components/filament-tablesaw/src/tables.modeswitch.js
vendored
Executable file
83
public/bower_components/filament-tablesaw/src/tables.modeswitch.js
vendored
Executable file
@@ -0,0 +1,83 @@
|
||||
/*
|
||||
* tablesaw: A set of plugins for responsive tables
|
||||
* Mode Switch: UI element to allow the user to change table modes: stack/swipe/columntoggle
|
||||
* Copyright (c) 2013 Filament Group, Inc.
|
||||
* MIT License
|
||||
*/
|
||||
|
||||
;(function( win, $ ) {
|
||||
|
||||
var S = {
|
||||
selectors: {
|
||||
init: 'table[data-tablesaw-mode-switch]'
|
||||
},
|
||||
attributes: {
|
||||
excludeMode: 'data-tablesaw-mode-exclude'
|
||||
},
|
||||
classes: {
|
||||
main: 'tablesaw-modeswitch',
|
||||
toolbar: 'tablesaw-toolbar'
|
||||
},
|
||||
modes: [ 'stack', 'swipe', 'columntoggle' ],
|
||||
init: function( table ) {
|
||||
var $table = $( table ),
|
||||
ignoreMode = $table.attr( S.attributes.excludeMode ),
|
||||
$toolbar = $table.prev().filter( '.tablesaw-bar' ),
|
||||
modeVal = '',
|
||||
$switcher = $( '<div>' ).addClass( S.classes.main + ' ' + S.classes.toolbar ).html(function() {
|
||||
var html = [ '<label>' + Tablesaw.i18n.columns + ':' ],
|
||||
dataMode = $table.attr( 'data-tablesaw-mode' ),
|
||||
isSelected;
|
||||
|
||||
html.push( '<span class="btn btn-small"> <select>' );
|
||||
for( var j=0, k = S.modes.length; j<k; j++ ) {
|
||||
if( ignoreMode && ignoreMode.toLowerCase() === S.modes[ j ] ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
isSelected = dataMode === S.modes[ j ];
|
||||
|
||||
if( isSelected ) {
|
||||
modeVal = S.modes[ j ];
|
||||
}
|
||||
|
||||
html.push( '<option' +
|
||||
( isSelected ? ' selected' : '' ) +
|
||||
' value="' + S.modes[ j ] + '">' + Tablesaw.i18n.modes[ j ] + '</option>' );
|
||||
}
|
||||
html.push( '</select></span></label>' );
|
||||
|
||||
return html.join('');
|
||||
});
|
||||
|
||||
var $otherToolbarItems = $toolbar.find( '.tablesaw-advance' ).eq( 0 );
|
||||
if( $otherToolbarItems.length ) {
|
||||
$switcher.insertBefore( $otherToolbarItems );
|
||||
} else {
|
||||
$switcher.appendTo( $toolbar );
|
||||
}
|
||||
|
||||
$switcher.find( '.btn' ).tablesawbtn();
|
||||
$switcher.find( 'select' ).bind( 'change', S.onModeChange );
|
||||
},
|
||||
onModeChange: function() {
|
||||
var $t = $( this ),
|
||||
$switcher = $t.closest( '.' + S.classes.main ),
|
||||
$table = $t.closest( '.tablesaw-bar' ).nextUntil( $table ).eq( 0 ),
|
||||
val = $t.val();
|
||||
|
||||
$switcher.remove();
|
||||
$table.data( 'table' ).destroy();
|
||||
|
||||
$table.attr( 'data-tablesaw-mode', val );
|
||||
$table.table();
|
||||
}
|
||||
};
|
||||
|
||||
$( win.document ).on( "tablesawcreate", function( e, Tablesaw ) {
|
||||
if( Tablesaw.$table.is( S.selectors.init ) ) {
|
||||
S.init( Tablesaw.table );
|
||||
}
|
||||
});
|
||||
|
||||
})( this, jQuery );
|
||||
Reference in New Issue
Block a user