Prevent that content of upload box is lost on fast pasting many images
Change-Id: I41369e8fde03111143102eb04fee4fbc65aae7f0
Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
diff --git a/src/main/java/com/googlesource/gerrit/plugins/imagare/client/UploadByDropOrPastePanel.java b/src/main/java/com/googlesource/gerrit/plugins/imagare/client/UploadByDropOrPastePanel.java
index 7e559a6..a34d0ec 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/imagare/client/UploadByDropOrPastePanel.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/imagare/client/UploadByDropOrPastePanel.java
@@ -47,8 +47,12 @@
}
}
+ var imagareSavedContent;
+
$wnd.imagarePasteHandler = function handlePaste(elem, e) {
- var savedContent = elem.innerHTML;
+ if (!imagareSavedContent) {
+ imagareSavedContent = elem.innerHTML;
+ }
var clipboardData = e.clipboardData || e.originalEvent.clipboardData;
var items = clipboardData.items;
@@ -83,34 +87,33 @@
elem.innerHTML = "";
}
- waitOnPaste(10, elem, savedContent);
+ waitOnPaste(10, elem);
} else {
// other browser
elem.innerHTML = "";
- waitOnPaste(10, elem, savedContent);
+ waitOnPaste(10, elem);
}
}
- function waitOnPaste(max, elem, savedContent) {
+ function waitOnPaste(max, elem) {
if (elem.childNodes && elem.childNodes.length > 0) {
- stageImage(elem, savedContent);
+ stageImage(elem);
} else if (max > 0) {
that = {
m: max - 1,
e: elem,
- s: savedContent
}
that.callself = function () {
- waitOnPaste(that.m, that.e, that.s)
+ waitOnPaste(that.m, that.e)
}
setTimeout(that.callself, 20);
}
}
- function stageImage(elem, savedContent) {
+ function stageImage(elem) {
var imageData = elem.childNodes[0].getAttribute("src");
- elem.innerHTML = savedContent;
+ elem.innerHTML = imagareSavedContent;
@com.googlesource.gerrit.plugins.imagare.client.ImageUploader::stageImage(Ljava/lang/String;)(imageData);
}
@@ -118,12 +121,14 @@
if (window.chrome) {
event.preventDefault();
}
- var savedContent = elem.innerHTML;
+ if (!imagareSavedContent) {
+ imagareSavedContent = elem.innerHTML;
+ }
var f = event.dataTransfer.files[0];
if (f) {
var r = new FileReader();
r.onload = function(e) {
- elem.innerHTML = savedContent;
+ elem.innerHTML = imagareSavedContent;
if (f.type.match('image/.*')) {
@com.googlesource.gerrit.plugins.imagare.client.ImageUploader::stageImage(Ljava/lang/String;Ljava/lang/String;)(e.target.result, f.name);
} else {