/** * @author: Alec Fenichel * @webSite: https://fenichelar.com * @version: v1.0.0 */ (function ($) { 'use strict'; $.extend($.fn.bootstrapTable.defaults, { autoRefresh: false, autoRefreshInterval: 60, autoRefreshSilent: true, autoRefreshStatus: true, autoRefreshFunction: null }); $.extend($.fn.bootstrapTable.defaults.icons, { autoRefresh: 'glyphicon-time icon-time' }); $.extend($.fn.bootstrapTable.locales, { formatAutoRefresh: function() { return 'Auto Refresh'; } }); $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales); var BootstrapTable = $.fn.bootstrapTable.Constructor; var _init = BootstrapTable.prototype.init; var _initToolbar = BootstrapTable.prototype.initToolbar; var sprintf = $.fn.bootstrapTable.utils.sprintf; BootstrapTable.prototype.init = function () { _init.apply(this, Array.prototype.slice.apply(arguments)); if (this.options.autoRefresh && this.options.autoRefreshStatus) { var that = this; this.options.autoRefreshFunction = setInterval(function () { that.refresh({silent: that.options.autoRefreshSilent}); }, this.options.autoRefreshInterval*1000); } }; BootstrapTable.prototype.initToolbar = function() { _initToolbar.apply(this, Array.prototype.slice.apply(arguments)); if (this.options.autoRefresh) { var $btnGroup = this.$toolbar.find('>.btn-group'); var $btnAutoRefresh = $btnGroup.find('.auto-refresh'); if (!$btnAutoRefresh.length) { $btnAutoRefresh = $([ sprintf('' ].join('')).appendTo($btnGroup); $btnAutoRefresh.on('click', $.proxy(this.toggleAutoRefresh, this)); } } }; BootstrapTable.prototype.toggleAutoRefresh = function() { if (this.options.autoRefresh) { if (this.options.autoRefreshStatus) { clearInterval(this.options.autoRefreshFunction); this.$toolbar.find('>.btn-group').find('.auto-refresh').removeClass('enabled'); } else { var that = this; this.options.autoRefreshFunction = setInterval(function () { that.refresh({silent: that.options.autoRefreshSilent}); }, this.options.autoRefreshInterval*1000); this.$toolbar.find('>.btn-group').find('.auto-refresh').addClass('enabled'); } this.options.autoRefreshStatus = !this.options.autoRefreshStatus; } }; })(jQuery);