diff --git a/media/src/api/api.columns.js b/media/src/api/api.columns.js index c47372bc..0f362456 100644 --- a/media/src/api/api.columns.js +++ b/media/src/api/api.columns.js @@ -66,5 +66,76 @@ _api.register( 'columns().data()', function () { } ); + + +_api.register( 'columns().visible()', function ( vis ) { + return this.iterator( 'column', function ( settings, column ) { + var + cols = settings.aoColumns, + col = cols[ column ], + data = settings.aoData, + row, cells, i, ien, tr; + + // Get + if ( vis === undefined ) { + return col.bVisible; + } + + // Set + // No change + if ( col.bVisible === vis ) { + return; + } + + if ( vis ) { + // Insert column + // Need to decide if we should use appendChild or insertBefore + var insertBefore = $.inArray( true, _pluck(cols, 'bVisible'), column+1 ); + + for ( i=0, ien=data.length ; i