You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2017/12/12 11:12:23 UTC

openmeetings git commit: [OPENMEETINGS-1784] download as image is fixed in IE

Repository: openmeetings
Updated Branches:
  refs/heads/4.0.x 34f0d7352 -> 4b30d2398


[OPENMEETINGS-1784] download as image is fixed in IE


Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo
Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/4b30d239
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/4b30d239
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/4b30d239

Branch: refs/heads/4.0.x
Commit: 4b30d2398255d5ae62ecc853669362d567f98246
Parents: 34f0d73
Author: Maxim Solodovnik <so...@gmail.com>
Authored: Tue Dec 12 18:12:10 2017 +0700
Committer: Maxim Solodovnik <so...@gmail.com>
Committed: Tue Dec 12 18:12:10 2017 +0700

----------------------------------------------------------------------
 .../apache/openmeetings/web/room/wb/wb-area.js  | 23 +++++++++++++++-----
 1 file changed, 18 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/4b30d239/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb-area.js
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb-area.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb-area.js
index 7dadc57..4539086 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb-area.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb-area.js
@@ -302,11 +302,24 @@ var DrawWbArea = function() {
 			}));
 		} else {
 			const cnv = wb.getCanvas()
-				, a = document.createElement('a');
-			a.setAttribute('target', '_blank')
-			a.setAttribute('download', wb.name + '.' + fmt);
-			a.setAttribute('href', _getImage(cnv, fmt));
-			a.dispatchEvent(new MouseEvent('click', {view: window, bubbles: false, cancelable: true}));
+				, dataUri = _getImage(cnv, fmt)
+				, fName = wb.name + '.' + fmt;
+			if (typeof window.navigator.msSaveOrOpenBlob !== 'undefined') {
+				const byteStr = atob(dataUri.split(',')[1])
+					, mime = dataUri.split(',')[0].split(':')[1].split(';')[0]
+					, ab = new ArrayBuffer(byteStr.length)
+					, ia = new Uint8Array(ab);
+				for (let i = 0; i < byteStr.length; ++i) {
+					ia[i] = byteStr.charCodeAt(i);
+				}
+				window.navigator.msSaveOrOpenBlob(new Blob([ab], {type: mime}), fName);
+			} else {
+				const a = document.createElement('a');
+				a.setAttribute('target', '_blank')
+				a.setAttribute('download', fName);
+				a.setAttribute('href', dataUri);
+				a.dispatchEvent(new MouseEvent('click', {view: window, bubbles: false, cancelable: true}));
+			}
 		}
 	}
 	self.videoStatus = _videoStatus;