diff --git a/platform/features/plot/res/templates/plot.html b/platform/features/plot/res/templates/plot.html index 192fbaab2e..dc230bcfa9 100644 --- a/platform/features/plot/res/templates/plot.html +++ b/platform/features/plot/res/templates/plot.html @@ -21,7 +21,7 @@ --> - + diff --git a/platform/features/plot/src/PlotController.js b/platform/features/plot/src/PlotController.js index 3183d3d82f..89b650b086 100644 --- a/platform/features/plot/src/PlotController.js +++ b/platform/features/plot/src/PlotController.js @@ -373,21 +373,33 @@ define( * Export the plot to PDF */ PlotController.prototype.exportPDF = function () { - this.ExportImageService.exportPDF(this.$element[0], "plot.pdf"); + var self = this; + self.hideExportButtons = true; + self.ExportImageService.exportPDF(self.$element[0], "plot.pdf", function() { + self.hideExportButtons = false; + }); }; /** * Export the plot to PNG */ PlotController.prototype.exportPNG = function () { - this.ExportImageService.exportPNG(this.$element[0], "plot.png"); + var self = this; + self.hideExportButtons = true; + self.ExportImageService.exportPNG(self.$element[0], "plot.png", function() { + self.hideExportButtons = false; + }); }; /** * Export the plot to JPG */ PlotController.prototype.exportJPG = function () { - this.ExportImageService.exportJPG(this.$element[0], "plot.jpg"); + var self = this; + self.hideExportButtons = true; + self.ExportImageService.exportJPG(self.$element[0], "plot.jpg", function() { + self.hideExportButtons = false; + }); }; return PlotController; diff --git a/platform/features/plot/src/services/ExportImageService.js b/platform/features/plot/src/services/ExportImageService.js index e05dfe47db..d07f40c97f 100644 --- a/platform/features/plot/src/services/ExportImageService.js +++ b/platform/features/plot/src/services/ExportImageService.js @@ -71,23 +71,32 @@ define( }); } - ExportImageService.prototype.exportPDF = function (element, filename) { + ExportImageService.prototype.exportPDF = function (element, filename, callback) { + callback = typeof callback === "function" ? callback : function () {}; + renderElement(element, function (img) { var pdf = new jsPDF("l", "px", [element.offsetHeight, element.offsetWidth]); pdf.addImage(img, "JPEG", 0, 0, element.offsetWidth, element.offsetHeight); pdf.save(filename); + callback(); }, "jpeg"); }; - ExportImageService.prototype.exportJPG = function (element, filename) { + ExportImageService.prototype.exportJPG = function (element, filename, callback) { + callback = typeof callback === "function" ? callback : function () {}; + renderElement(element, function (img) { saveAs(img, filename); + callback(); }, "blob"); }; - ExportImageService.prototype.exportPNG = function (element, filename) { + ExportImageService.prototype.exportPNG = function (element, filename, callback) { + callback = typeof callback === "function" ? callback : function () {}; + renderElement(element, function (img) { saveAs(img, filename); + callback(); }, "blob"); };