/**
* @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);