From e6833eca6a133d3fb678f5f24b1a15bc226802d5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20G=C3=A4rtner?= <andreas.gaertner@mni.thm.de>
Date: Mon, 26 Sep 2016 19:30:33 +0200
Subject: [PATCH] Add questionDetailsPanel ui changes for flashcard variant

---
 .../webapp/app/view/QuestionStatusButton.js   | 17 ++++++++--
 .../app/view/speaker/QuestionDetailsPanel.js  | 31 ++++++++++++++++---
 2 files changed, 41 insertions(+), 7 deletions(-)

diff --git a/src/main/webapp/app/view/QuestionStatusButton.js b/src/main/webapp/app/view/QuestionStatusButton.js
index 2ed2c1785..6ef56ec99 100644
--- a/src/main/webapp/app/view/QuestionStatusButton.js
+++ b/src/main/webapp/app/view/QuestionStatusButton.js
@@ -27,6 +27,11 @@ Ext.define('ARSnova.view.QuestionStatusButton', {
 		},
 		slideWording: {
 			release: Messages.RELEASE_SLIDE
+		},
+		flashcardWording: {
+			release: Messages.RELEASE_FLASHCARD,
+			confirm: Messages.CONFIRM_CLOSE_FLASHCARD,
+			confirmMessage: Messages.CONFIRM_CLOSE_FLASHCARD_MESSAGE
 		}
 	},
 
@@ -43,8 +48,16 @@ Ext.define('ARSnova.view.QuestionStatusButton', {
 		this.parentPanel = args.parentPanel;
 
 		this.isOpen = this.questionObj && this.questionObj.active;
-		var label = this.questionObj && this.questionObj.questionType === 'slide' ?
-			this.getSlideWording().release : this.getWording().release;
+		var label = this.getWording().release;
+
+		if (this.questionObj) {
+			if (this.questionObj.questionType === 'slide') {
+				label = this.getSlideWording().release;
+			} else if (this.questionObj.questionType === 'flashcard') {
+				label = this.getFlashcardWording().release;
+				this.setWording(this.getFlashcardWording());
+			}
+		}
 
 		this.button = Ext.create('ARSnova.view.MatrixButton', {
 			buttonConfig: 'togglefield',
diff --git a/src/main/webapp/app/view/speaker/QuestionDetailsPanel.js b/src/main/webapp/app/view/speaker/QuestionDetailsPanel.js
index 68b3e06a5..30464927d 100644
--- a/src/main/webapp/app/view/speaker/QuestionDetailsPanel.js
+++ b/src/main/webapp/app/view/speaker/QuestionDetailsPanel.js
@@ -539,6 +539,7 @@ Ext.define('ARSnova.view.speaker.QuestionDetailsPanel', {
 							field.setDisabled(false);
 							break;
 						case Messages.QUESTION:
+						case Messages.FLASHCARD_FRONT_PAGE:
 							field.setDisabled(false);
 							break;
 						case Messages.DURATION:
@@ -561,6 +562,7 @@ Ext.define('ARSnova.view.speaker.QuestionDetailsPanel', {
 							field.setDisabled(true);
 							break;
 						case Messages.QUESTION:
+						case Messages.FLASHCARD_FRONT_PAGE:
 							field.setDisabled(true);
 							break;
 						case Messages.DURATION:
@@ -585,7 +587,7 @@ Ext.define('ARSnova.view.speaker.QuestionDetailsPanel', {
 		});
 
 		this.toolbar = Ext.create('Ext.Toolbar', {
-			title: this.isSlide ? Messages.SLIDE : this.getType() + '-' + Messages.QUESTION,
+			title: this.getType() + '-' + Messages.QUESTION,
 			cls: 'speakerTitleText',
 			docked: 'top',
 			ui: 'light',
@@ -609,7 +611,7 @@ Ext.define('ARSnova.view.speaker.QuestionDetailsPanel', {
 		this.releaseStatisticButton = Ext.create('ARSnova.view.MatrixButton', {
 			buttonConfig: 'togglefield',
 			cls: actionButtonCls,
-			text: this.isSlide ? Messages.RELEASE_COMMENTS : Messages.RELEASE_STATISTIC,
+			text: Messages.RELEASE_STATISTIC,
 			toggleConfig: {
 				scope: this,
 				label: false,
@@ -698,7 +700,7 @@ Ext.define('ARSnova.view.speaker.QuestionDetailsPanel', {
 			hidden: this.isFlashcard,
 			buttonConfig: 'icon',
 			cls: actionButtonCls,
-			text: this.isSlide ? Messages.DELETE_COMMENTS : Messages.DELETE_ANSWERS,
+			text: Messages.DELETE_ANSWERS,
 			imageCls: 'icon-close warningIconColor',
 			scope: this,
 			handler: function () {
@@ -720,7 +722,7 @@ Ext.define('ARSnova.view.speaker.QuestionDetailsPanel', {
 		});
 
 		this.statisticButton = Ext.create('ARSnova.view.MatrixButton', {
-			text: this.isSlide ? Messages.SHOW_COMMENTS : Messages.SHOW_STATISTIC,
+			text: Messages.SHOW_STATISTIC,
 			buttonConfig: 'icon',
 			imageCls: this.questionObj.questionType === 'slide' ? 'icon-comment' : 'icon-chart',
 			cls: actionButtonCls,
@@ -735,7 +737,7 @@ Ext.define('ARSnova.view.speaker.QuestionDetailsPanel', {
 			xtype: 'button',
 			cls: actionButtonCls,
 			buttonConfig: 'icon',
-			text: this.isSlide ? Messages.DELETE_SLIDE : Messages.DELETE_QUESTION,
+			text: Messages.DELETE_QUESTION,
 			imageCls: 'icon-close',
 			scope: this,
 			handler: function () {
@@ -1046,12 +1048,15 @@ Ext.define('ARSnova.view.speaker.QuestionDetailsPanel', {
 		this.possibleAnswers = {};
 
 		if (this.questionObj.questionType === 'flashcard') {
+			this.textarea.setLabel(Messages.FLASHCARD_FRONT_PAGE);
 			this.answerListPanel = Ext.create('ARSnova.view.MathJaxMarkDownPanel', {
 				style: 'word-wrap: break-word;',
 				cls: ''
 			});
 		}
 
+		this.applyUIChanges();
+
 		/* END QUESTION DETAILS */
 
 		this.add([
@@ -1558,5 +1563,21 @@ Ext.define('ARSnova.view.speaker.QuestionDetailsPanel', {
 			this.grid.setEditable(false);
 			this.grid.setGridIsHidden(true);
 		}
+	},
+
+	applyUIChanges: function () {
+		if (this.isSlide) {
+			this.toolbar.setTitle(Messages.SLIDE);
+			this.statisticButton.setButtonText(Messages.SHOW_COMMENTS);
+			this.deleteAnswersButton.setButtonText(Messages.DELETE_COMMENTS);
+			this.deleteQuestionButton.setButtonText(Messages.DELETE_SLIDE);
+			this.releaseStatisticButton.setButtonText(Messages.RELEASE_COMMENTS);
+		}
+
+		if (this.isFlashcard) {
+			this.toolbar.setTitle(Messages.FLASHCARD);
+			this.deleteQuestionButton.setButtonText(Messages.DELETE_FLASHCARD);
+			this.deleteAnswersButton.setButtonText(Messages.DELETE_FLASHCARD_VIEWS);
+		}
 	}
 });
-- 
GitLab