/** * @author zhixin wen * extensions: https://github.com/kayalshri/tableExport.jquery.plugin */ (function($) { "use strict"; var TYPE_NAME = { json: "JSON", xml: "XML", png: "PNG", csv: "CSV", txt: "TXT", sql: "SQL", doc: "MS-Word", excel: "MS-Excel", powerpoint: "MS-Powerpoint", pdf: "PDF", }; $.extend($.fn.bootstrapTable.defaults, { showExport: false, exportDataType: "basic", // basic, all, selected // 'json', 'xml', 'png', 'csv', 'txt', 'sql', 'doc', 'excel', 'powerpoint', 'pdf' exportTypes: ["json", "xml", "csv", "txt", "sql", "excel"], exportOptions: {}, }); var BootstrapTable = $.fn.bootstrapTable.Constructor, _initToolbar = BootstrapTable.prototype.initToolbar; BootstrapTable.prototype.initToolbar = function() { this.showToolbar = this.options.showExport; _initToolbar.apply(this, Array.prototype.slice.apply(arguments)); if (this.options.showExport) { var that = this, $btnGroup = this.$toolbar.find(">.btn-group"), $export = $btnGroup.find("div.export"); if (!$export.length) { $export = $( [ '
', '", '", "
", ].join("") ).appendTo($btnGroup); var $menu = $export.find(".dropdown-menu"), exportTypes = this.options.exportTypes; if (typeof this.options.exportTypes === "string") { var types = this.options.exportTypes .slice(1, -1) .replace(/ /g, "") .split(","); exportTypes = []; $.each(types, function(i, value) { exportTypes.push(value.slice(1, -1)); }); } $.each(exportTypes, function(i, type) { if (TYPE_NAME.hasOwnProperty(type)) { $menu.append( [ '
  • ', '', TYPE_NAME[type], "", "
  • ", ].join("") ); } }); $menu.find("li").click(function() { var type = $(this).data("type"), doExport = function() { that.$el.tableExport( $.extend({}, that.options.exportOptions, { type: type, escape: false, }) ); }; if ( that.options.exportDataType === "all" && that.options.pagination ) { that.$el.one( "load-success.bs.table page-change.bs.table", function() { doExport(); that.togglePagination(); } ); that.togglePagination(); } else if (that.options.exportDataType === "selected") { var data = that.getData(), selectedData = that.getAllSelections(); that.load(selectedData); doExport(); that.load(data); } else { doExport(); } }); } } }; })(jQuery);