123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- (function (global, factory) {
- if (typeof define === "function" && define.amd) {
- define([], factory);
- } else if (typeof exports !== "undefined") {
- factory();
- } else {
- var mod = {
- exports: {}
- };
- factory();
- global.bootstrapTableMultiToggle = mod.exports;
- }
- })(this, function () {
- 'use strict';
- /**
- * @author Homer Glascock <HopGlascock@gmail.com>
- * @version: v1.0.0
- */
- !function ($) {
- "use strict";
- var sprintf = $.fn.bootstrapTable.utils.sprintf;
- var reInit = function reInit(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);
- });
|