You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
2.2 KiB
JavaScript
86 lines
2.2 KiB
JavaScript
(function (global, factory) {
|
|
if (typeof define === "function" && define.amd) {
|
|
define([], factory);
|
|
} else if (typeof exports !== "undefined") {
|
|
factory();
|
|
} else {
|
|
var mod = {
|
|
exports: {}
|
|
};
|
|
factory();
|
|
global.bootstrapTableResizable = mod.exports;
|
|
}
|
|
})(this, function () {
|
|
"use strict";
|
|
|
|
/**
|
|
* @author: Dennis Hernández
|
|
* @webSite: http://djhvscf.github.io/Blog
|
|
* @version: v2.0.0
|
|
*/
|
|
|
|
(function ($) {
|
|
"use strict";
|
|
|
|
var initResizable = function initResizable(that) {
|
|
if (that.options.resizable && !that.options.cardView && !isInit(that)) {
|
|
that.$el.resizableColumns();
|
|
}
|
|
};
|
|
|
|
var reInitResizable = function reInitResizable(that) {
|
|
destroy(that);
|
|
initResizable(that);
|
|
};
|
|
|
|
var destroy = function destroy(that) {
|
|
if (isInit(that)) {
|
|
that.$el.data("resizableColumns").destroy();
|
|
}
|
|
};
|
|
|
|
var isInit = function isInit(that) {
|
|
return that.$el.data("resizableColumns") !== undefined;
|
|
};
|
|
|
|
$.extend($.fn.bootstrapTable.defaults, {
|
|
resizable: false
|
|
});
|
|
|
|
var BootstrapTable = $.fn.bootstrapTable.Constructor,
|
|
_initBody = BootstrapTable.prototype.initBody,
|
|
_toggleView = BootstrapTable.prototype.toggleView,
|
|
_resetView = BootstrapTable.prototype.resetView;
|
|
|
|
BootstrapTable.prototype.initBody = function () {
|
|
var that = this;
|
|
_initBody.apply(this, Array.prototype.slice.apply(arguments));
|
|
|
|
that.$el.off("column-switch.bs.table, page-change.bs.table").on("column-switch.bs.table, page-change.bs.table", function () {
|
|
reInitResizable(that);
|
|
});
|
|
};
|
|
|
|
BootstrapTable.prototype.toggleView = function () {
|
|
_toggleView.apply(this, Array.prototype.slice.apply(arguments));
|
|
|
|
if (this.options.resizable && this.options.cardView) {
|
|
//Destroy the plugin
|
|
destroy(this);
|
|
}
|
|
};
|
|
|
|
BootstrapTable.prototype.resetView = function () {
|
|
var that = this;
|
|
|
|
_resetView.apply(this, Array.prototype.slice.apply(arguments));
|
|
|
|
if (this.options.resizable) {
|
|
// because in fitHeader function, we use setTimeout(func, 100);
|
|
setTimeout(function () {
|
|
initResizable(that);
|
|
}, 100);
|
|
}
|
|
};
|
|
})(jQuery);
|
|
}); |