/pack-rat/003_pack_rat/pack-rat/node_modules/bootstrap-table/src/extensions/multi-column-toggle/bootstrap-table-multi-toggle.js |
@@ -0,0 +1,88 @@ |
/** |
* @author Homer Glascock <HopGlascock@gmail.com> |
* @version: v1.0.0 |
*/ |
|
!function ($) { |
"use strict"; |
|
var sprintf = $.fn.bootstrapTable.utils.sprintf; |
|
var reInit = function (self) { |
self.initHeader(); |
self.initSearch(); |
self.initPagination(); |
self.initBody(); |
}; |
|
$.extend($.fn.bootstrapTable.defaults, { |
showToggleBtn: false, |
multiToggleDefaults: [], //column names go here |
}); |
|
$.fn.bootstrapTable.methods.push('hideAllColumns', 'showAllColumns'); |
|
var BootstrapTable = $.fn.bootstrapTable.Constructor, |
_initToolbar = BootstrapTable.prototype.initToolbar; |
|
BootstrapTable.prototype.initToolbar = function () { |
|
_initToolbar.apply(this, Array.prototype.slice.apply(arguments)); |
|
var that = this, |
$btnGroup = this.$toolbar.find('>.btn-group'); |
|
if (typeof this.options.multiToggleDefaults === 'string') { |
this.options.multiToggleDefaults = JSON.parse(this.options.multiToggleDefaults); |
} |
|
if (this.options.showToggleBtn && this.options.showColumns) { |
var showbtn = "<button class='btn btn-default hidden' id='showAllBtn'><span class='glyphicon glyphicon-resize-full icon-zoom-in'></span></button>", |
hidebtn = "<button class='btn btn-default' id='hideAllBtn'><span class='glyphicon glyphicon-resize-small icon-zoom-out'></span></button>"; |
|
$btnGroup.append(showbtn + hidebtn); |
|
$btnGroup.find('#showAllBtn').click(function () { that.showAllColumns(); |
$btnGroup.find('#hideAllBtn').toggleClass('hidden'); |
$btnGroup.find('#showAllBtn').toggleClass('hidden'); |
}); |
$btnGroup.find('#hideAllBtn').click(function () { that.hideAllColumns(); |
$btnGroup.find('#hideAllBtn').toggleClass('hidden'); |
$btnGroup.find('#showAllBtn').toggleClass('hidden'); |
}); |
} |
}; |
|
BootstrapTable.prototype.hideAllColumns = function () { |
var that = this, |
defaults = that.options.multiToggleDefaults; |
|
$.each(this.columns, function (index, column) { |
//if its one of the defaults dont touch it |
if (defaults.indexOf(column.field) == -1 && column.switchable) { |
column.visible = false; |
var $items = that.$toolbar.find('.keep-open input').prop('disabled', false); |
$items.filter(sprintf('[value="%s"]', index)).prop('checked', false); |
} |
}); |
|
reInit(that); |
}; |
|
BootstrapTable.prototype.showAllColumns = function () { |
var that = this; |
$.each(this.columns, function (index, column) { |
if (column.switchable) { |
column.visible = true; |
} |
|
var $items = that.$toolbar.find('.keep-open input').prop('disabled', false); |
$items.filter(sprintf('[value="%s"]', index)).prop('checked', true); |
}); |
|
reInit(that); |
|
that.toggleColumn(0, that.columns[0].visible, false); |
}; |
|
}(jQuery); |