| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 | /** * @author: Dennis Hernández * @webSite: http://djhvscf.github.io/Blog * @version: v1.1.0 */!function ($) {    'use strict';    var showHideColumns = function (that, checked) {        if (that.options.columnsHidden.length > 0 ) {            $.each(that.columns, function (i, column) {                if (that.options.columnsHidden.indexOf(column.field) !== -1) {                    if (column.visible !== checked) {                        that.toggleColumn($.fn.bootstrapTable.utils.getFieldIndex(that.columns, column.field), checked, true);                    }                }            });        }    };    var resetView = function (that) {        if (that.options.height || that.options.showFooter) {            setTimeout(function(){                that.resetView.call(that);            }, 1);        }    };    var changeView = function (that, width, height) {        if (that.options.minHeight) {            if ((width <= that.options.minWidth) && (height <= that.options.minHeight)) {                conditionCardView(that);            } else if ((width > that.options.minWidth) && (height > that.options.minHeight)) {                conditionFullView(that);            }        } else {            if (width <= that.options.minWidth) {                conditionCardView(that);            } else if (width > that.options.minWidth) {                conditionFullView(that);            }        }        resetView(that);    };    var conditionCardView = function (that) {        changeTableView(that, false);        showHideColumns(that, false);    };    var conditionFullView = function (that) {        changeTableView(that, true);        showHideColumns(that, true);    };    var changeTableView = function (that, cardViewState) {        that.options.cardView = cardViewState;        that.toggleView();    };    var debounce = function(func,wait) {        var timeout;        return function() {            var context = this,                args = arguments;            var later = function() {                timeout = null;                func.apply(context,args);            };            clearTimeout(timeout);            timeout = setTimeout(later, wait);        };    };    $.extend($.fn.bootstrapTable.defaults, {        mobileResponsive: false,        minWidth: 562,        minHeight: undefined,        heightThreshold: 100, // just slightly larger than mobile chrome's auto-hiding toolbar        checkOnInit: true,        columnsHidden: []    });    var BootstrapTable = $.fn.bootstrapTable.Constructor,        _init = BootstrapTable.prototype.init;    BootstrapTable.prototype.init = function () {        _init.apply(this, Array.prototype.slice.apply(arguments));        if (!this.options.mobileResponsive) {            return;        }        if (!this.options.minWidth) {            return;        }        if (this.options.minWidth < 100 && this.options.resizable) {            console.log("The minWidth when the resizable extension is active should be greater or equal than 100");            this.options.minWidth = 100;        }        var that = this,            old = {                width: $(window).width(),                height: $(window).height()            };        $(window).on('resize orientationchange',debounce(function (evt) {            // reset view if height has only changed by at least the threshold.            var height = $(this).height(),                width = $(this).width();            if (Math.abs(old.height - height) > that.options.heightThreshold || old.width != width) {                changeView(that, width, height);                old = {                    width: width,                    height: height                };            }        },200));        if (this.options.checkOnInit) {            var height = $(window).height(),                width = $(window).width();            changeView(this, width, height);            old = {                width: width,                height: height            };        }    };}(jQuery);
 |