From 2d328ab1e4d3dd8ade654eb6b9cd313e573cd574 Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Thu, 24 Nov 2016 10:43:51 +0100
Subject: [PATCH] OO-2368: standard popup to ersae the drawing

---
 .../qti21/ui/_i18n/LocalStrings_de.properties |  4 +-
 .../qti21/ui/_i18n/LocalStrings_en.properties |  3 ++
 .../_content/drawingInteraction.html          |  2 -
 .../static/js/jquery/openolat/jquery.paint.js | 40 +++++++++++++++++--
 4 files changed, 42 insertions(+), 7 deletions(-)

diff --git a/src/main/java/org/olat/ims/qti21/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/ims/qti21/ui/_i18n/LocalStrings_de.properties
index 47a86a0174b..1ff89885545 100644
--- a/src/main/java/org/olat/ims/qti21/ui/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/ims/qti21/ui/_i18n/LocalStrings_de.properties
@@ -42,6 +42,7 @@ assessment.test.questionMenu=Menu-Navigation Test
 assessment.test.suspended=Der Test wurde abgebrochen.
 assessment.testpart.config=Test part
 attemptsleft=$org.olat.modules.iq\:attemptsleft
+cancel=Abbrechen
 cancel.test=$org.olat.modules.iq\:cancelAssess
 command.openassessment=Bewertungswerkzeug
 command.openteststatistic=Test statistics
@@ -91,11 +92,12 @@ math.extension=QtiWorks Math extension
 math.extension.text=Braucht Maxima auf dem Server
 menu.reset.title=Testdaten zur\u00FCcksetzen
 menu.retrieve.tests.title=$org.olat.ims.qti.statistics.ui\:menu.pull.tests.title
+paint.erase=L\u00F6schen
+paint.erase.hint=Wollen Sie den Bild l\u00F6schen?
 passed.no=$org.olat.course.nodes.iq\:passed.no
 passed.yes=$org.olat.course.nodes.iq\:passed.yes
 passed.yourpassed=$org.olat.course.nodes.iq\:passed.yourpassed
 pull=Ziehen
-drx=dy
 qti.form.allow.anonym=$org.olat.course.nodes.iq\:qti.form.allow.anonym
 qti.form.allow.anonym.hint=Anonyme Benutzer oder Gäste können den Test durchführen. Der Test kann auch als Lernressource zur Verfügung gestellt werden, ohne in einem Kurs angehängt zu sein.
 qti.form.attempts=$org.olat.course.nodes.iq\:qti.form.attempts
diff --git a/src/main/java/org/olat/ims/qti21/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/ims/qti21/ui/_i18n/LocalStrings_en.properties
index ec315f89ce0..629e2a82055 100644
--- a/src/main/java/org/olat/ims/qti21/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/ims/qti21/ui/_i18n/LocalStrings_en.properties
@@ -42,6 +42,7 @@ assessment.test.questionMenu=Test question menu
 assessment.test.suspended=The test has been suspended.
 assessment.testpart.config=Test part
 attemptsleft=$org.olat.modules.iq\:attemptsleft
+cancel=Cancel
 cancel.test=$org.olat.modules.iq\:cancelAssess
 command.openassessment=Assessment tool
 command.openteststatistic=Test statistics
@@ -91,6 +92,8 @@ math.extension=QtiWorks Math extension
 math.extension.text=Need Maxima installed on the server
 menu.reset.title=Reset data of test
 menu.retrieve.tests.title=$org.olat.ims.qti.statistics.ui\:menu.pull.tests.title
+paint.erase=Erase
+paint.erase=Do you want to erase your drawing?
 passed.no=$org.olat.course.nodes.iq\:passed.no
 passed.yes=$org.olat.course.nodes.iq\:passed.yes
 passed.yourpassed=$org.olat.course.nodes.iq\:passed.yourpassed
diff --git a/src/main/java/org/olat/ims/qti21/ui/components/_content/drawingInteraction.html b/src/main/java/org/olat/ims/qti21/ui/components/_content/drawingInteraction.html
index e16a0d87d43..a35bbf8292d 100644
--- a/src/main/java/org/olat/ims/qti21/ui/components/_content/drawingInteraction.html
+++ b/src/main/java/org/olat/ims/qti21/ui/components/_content/drawingInteraction.html
@@ -31,8 +31,6 @@
 			<a href="javascript:;" class="purple btn btn-default" id='#800080'><i class="o_icon o_icon_circle_color"> </i></a> 
 		</div>
 		<div class="btn-group">
-			<a href="javascript:;" id="undo" class="btn btn-default"><i class="o_icon o_icon_undo"> </i></a>
-			<a href="javascript:;" id="redo" class="btn btn-default"><i class="o_icon o_icon_redo"> </i></a>
 			<a href="javascript:;" id="clear" class="btn btn-default"><i class="o_icon o_icon_clear_all"> </i></a>
 		</div> 
 	</div>
diff --git a/src/main/webapp/static/js/jquery/openolat/jquery.paint.js b/src/main/webapp/static/js/jquery/openolat/jquery.paint.js
index af3824b64a2..35d4fa3f457 100644
--- a/src/main/webapp/static/js/jquery/openolat/jquery.paint.js
+++ b/src/main/webapp/static/js/jquery/openolat/jquery.paint.js
@@ -171,7 +171,7 @@
 			undo_count = 0; //NEWTHING
 		}
 
-		//NEWTHING
+		/*
 		document.getElementById("undo").addEventListener("click", function(){
 			if( undo_arr.length > 1 ) {
 				if ( undo_count + 1 < undo_arr.length ) {
@@ -199,6 +199,7 @@
 				UndoFunc(undo_count);
 			}
 		});
+		*/
 		
 		jQuery("#width_range").on("input change", function() {
 			tmp_ctx.lineWidth = document.getElementById("width_range").value / 2;
@@ -211,10 +212,41 @@
 		});
 	
 		//NEWTHING
-		document.getElementById("clear").addEventListener("click", function(){
-			if (confirm("Do you really want CLEAR the canvas?")) {
-				ctx.clearRect(0, 0, tmp_canvas.width, tmp_canvas.height);
+		document.getElementById("clear").addEventListener("click", function() {
+			var mainWin = o_getMainWin();
+			var cachedTrans;
+			if (mainWin) {
+				cachedTrans = jQuery(document).ooTranslator().getTranslator(mainWin.o_info.locale, 'org.olat.ims.qti21.ui');
+			} else {
+				cachedTrans = {	translate : function(key) { return key; } }
 			}
+			
+			var cancel = cachedTrans.translate('cancel');
+			var erase = cachedTrans.translate('paint.erase');
+			var eraseHint = cachedTrans.translate('paint.erase.hint');
+			
+			var modal = '';
+			modal += '<div id="paintModal" class="modal fade" tabindex="-1" role="dialog">';
+			modal += '  <div class="modal-dialog" role="document">';
+			modal += '    <div class="modal-content">';
+			modal += '      <div class="modal-body">';
+			modal += '        <p>' + eraseHint + '</p>';
+			modal += '      </div>';
+			modal += '      <div class="modal-footer">';
+			modal += '        <button type="button" class="btn btn-default" data-dismiss="modal">' + cancel + '</button>';
+			modal += '        <button type="button" class="btn btn-primary" data-dismiss="modal">' + erase + '</button>';
+			modal += '      </div>';
+			modal += '    </div>';
+			modal += '  </div>';
+			modal += '</div>';
+			jQuery("body").append(modal);
+			$('#paintModal').modal('show');
+			$('#paintModal button.btn-primary').on('click', function() {
+				ctx.clearRect(0, 0, tmp_canvas.width, tmp_canvas.height);
+			});
+			$('#paintModal').on('hidden.bs.modal', function (event) {
+				jQuery("#paintModal").remove();
+			});
 		});
 	
 		var onPaintCircle = function() {
-- 
GitLab