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);
|