| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 | /** * @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);
 |