From b43516b3871880122845a7c99d11ebb6fd678806 Mon Sep 17 00:00:00 2001
From: srosse <stephane.rosse@frentix.com>
Date: Thu, 27 Jun 2019 15:26:15 +0200
Subject: [PATCH] OO-4068: negate the configuration check, add big convert
 button

---
 .../java/org/olat/ims/qti/QTI12EditorController.java     | 2 +-
 .../modules/qpool/ui/QuestionItemDetailsController.java  | 6 +++++-
 .../org/olat/modules/qpool/ui/_content/item_details.html | 9 +++++++++
 .../modules/qpool/ui/_i18n/LocalStrings_de.properties    | 2 ++
 .../modules/qpool/ui/_i18n/LocalStrings_en.properties    | 2 ++
 .../modules/qpool/ui/_i18n/LocalStrings_fr.properties    | 2 ++
 6 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/olat/ims/qti/QTI12EditorController.java b/src/main/java/org/olat/ims/qti/QTI12EditorController.java
index 79c74fef617..c8e209b820d 100644
--- a/src/main/java/org/olat/ims/qti/QTI12EditorController.java
+++ b/src/main/java/org/olat/ims/qti/QTI12EditorController.java
@@ -81,7 +81,7 @@ public class QTI12EditorController extends BasicController implements QPoolItemE
 				QTIDocument doc = new QTIDocument();
 				QTIEditorPackage qtiPackage = new QTI12ItemEditorPackage(item, doc, mapperUrl, leaf, directory, this);
 				editorsCtrl = new ItemNodeTabbedFormController(item, qtiPackage, ureq, getWindowControl(),
-						false, qtiModule.isEditResourcesEnabled());
+						false, !qtiModule.isEditResourcesEnabled());
 				editorsCtrl.addTabs(mainPanel);
 				listenTo(editorsCtrl);
 			}
diff --git a/src/main/java/org/olat/modules/qpool/ui/QuestionItemDetailsController.java b/src/main/java/org/olat/modules/qpool/ui/QuestionItemDetailsController.java
index a26e14d1b22..58229966c92 100644
--- a/src/main/java/org/olat/modules/qpool/ui/QuestionItemDetailsController.java
+++ b/src/main/java/org/olat/modules/qpool/ui/QuestionItemDetailsController.java
@@ -106,6 +106,7 @@ public class QuestionItemDetailsController extends BasicController implements To
 	private Link exportItemLink;
 	private Link copyItemLink;
 	private Link convertItemLink;
+	private Link convertItemButton;
 
 	private final VelocityContainer mainVC;
 	private final TooledStackedPanel stackPanel;
@@ -250,6 +251,9 @@ public class QuestionItemDetailsController extends BasicController implements To
 			convertItemLink = LinkFactory.createToolLink("convert", translate("convert.item"), this);
 			convertItemLink.setIconLeftCSS("o_icon o_icon-fw o_icon_qitem_convert");
 			commandDropdown.addComponent(convertItemLink);
+			
+			convertItemButton = LinkFactory.createButton("convert.item.long", mainVC, this);
+			convertItemButton.setIconLeftCSS("o_icon o_icon-fw o_FileResource-IMSQTI21_icon");
 		}
 		
 		if (qItemSecurityCallback.canDelete()) {
@@ -436,7 +440,7 @@ public class QuestionItemDetailsController extends BasicController implements To
 			doExport(ureq, metadatasCtrl.getItem());
 		} else if(source == copyItemLink) {
 			doConfirmCopy(ureq, metadatasCtrl.getItem());
-		} else if(source == convertItemLink) {
+		} else if(source == convertItemLink || source == convertItemButton) {
 			doConfirmConversion(ureq, metadatasCtrl.getItem());
 		} else if(source == exportLogLink) {
 			doExportLog(ureq, metadatasCtrl.getItem());
diff --git a/src/main/java/org/olat/modules/qpool/ui/_content/item_details.html b/src/main/java/org/olat/modules/qpool/ui/_content/item_details.html
index 7efaa85fa2e..91228600d8f 100644
--- a/src/main/java/org/olat/modules/qpool/ui/_content/item_details.html
+++ b/src/main/java/org/olat/modules/qpool/ui/_content/item_details.html
@@ -1,6 +1,15 @@
+
 <div class="clearfix">
 	$r.render("review")
 </div>
+#if($r.available("convert.item.long"))
+<div class="o_error">
+	$r.translate("error.qti.deprecated")
+	<div class="o_button_group">
+		$r.render("convert.item.long")
+	</div>
+</div>
+#end
 <div class="row">
 	#if($metadataSwitch)
 		<div class="col-md-8">
diff --git a/src/main/java/org/olat/modules/qpool/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/modules/qpool/ui/_i18n/LocalStrings_de.properties
index 12c4b406574..9005112fcd0 100644
--- a/src/main/java/org/olat/modules/qpool/ui/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/modules/qpool/ui/_i18n/LocalStrings_de.properties
@@ -31,6 +31,7 @@ confirm.unshare=Wollen Sie wirklich diese Frage von "{0}" entfernen?
 convert.editable=Andere Benutzer d\u00FCrfen die Frage bearbeiten
 convert.format=Format
 convert.item=Konvertieren
+convert.item.long=In QTI 2.1 konvertieren
 convert.item.msg=Wollen sie diese {0} Fragen in das folgende Format konvertieren?
 convert.item.not.possible=Sie haben keine Frage gew\u00E4hlt dass Sie konvertieren k\u00F6nnen.
 convert.item.successful={0} Frage(n) wurde erfolgreich konvertiert.
@@ -60,6 +61,7 @@ educational.learningTime.hour=h
 educational.learningTime.minute=m
 educational.learningTime.second=s
 error.input.toolong=Leider ist Ihr gerade eingegebener Text mit {1} Zeichen zu lang. Bitte beschr\u00E4nken Sie sich auf maximal {0} Zeichen.
+error.qti.deprecated=Diese Version von QTI ist deprecated. Bitte auf dem neuen QTI 2.1 konvertieren.
 error.select.one=Sie m\u00FCssen mindestens eine Frage w\u00E4hlen.
 error.select.one.author=Sie m\u00FCssen mindestens eine Frage w\u00E4hlen, bei welcher Sie die Autoren bearbeiten k\u00F6nnen.
 error.select.one.convert=Sie m\u00FCssen mindestens eine Frage w\u00E4hlen, welche Sie konvertieren k\u00F6nnen.
diff --git a/src/main/java/org/olat/modules/qpool/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/modules/qpool/ui/_i18n/LocalStrings_en.properties
index 6379c28c98a..d6d37af6fb3 100644
--- a/src/main/java/org/olat/modules/qpool/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/modules/qpool/ui/_i18n/LocalStrings_en.properties
@@ -31,6 +31,7 @@ confirm.unshare=Do your really want to remove this question "{0}"?
 convert.editable=Allow other users to edit the question
 convert.format=Format
 convert.item=Convert
+convert.item.long=Convert to QTI 2.1
 convert.item.msg=Do you want to convert the {0} question(s) in the following format?
 convert.item.not.possible=You haven't selected any question you can convert.
 convert.item.successful={0} question(s) successfully converted.
@@ -60,6 +61,7 @@ educational.learningTime.hour=h
 educational.learningTime.minute=m
 educational.learningTime.second=s
 error.input.toolong=The text you entered is to long ({1} characters). Only {1} characters are allowed.
+error.qti.deprecated=This version of QTI is deprecated. Please consider to convert your test to QTI 2.1.
 error.select.one=You need to select at least one question.
 error.select.one.author=You need to select at least one question, for which you can change the authors.
 error.select.one.convert=You need to select at least one question, which you can convert.
diff --git a/src/main/java/org/olat/modules/qpool/ui/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/modules/qpool/ui/_i18n/LocalStrings_fr.properties
index 5d6c45ff06d..59d82737cd9 100644
--- a/src/main/java/org/olat/modules/qpool/ui/_i18n/LocalStrings_fr.properties
+++ b/src/main/java/org/olat/modules/qpool/ui/_i18n/LocalStrings_fr.properties
@@ -31,6 +31,7 @@ confirm.unshare=Voulez-vous vraiment enlever cette question de "{0}"?
 convert.editable=D'autres utilisateurs peuvent \u00E9diter la question.
 convert.format=Format
 convert.item=Convertir
+convert.item.long=Convertir vers QTI 2.1
 convert.item.msg=D\u00E9sirez-vous convertir la ou les questions "{0}" au format suivant?
 convert.item.not.possible=Vous n'avez pas s\u00E9lectionn\u00E9 de questions qui puissent \u00EAtre converties.
 convert.item.successful={0} question(s) ont \u00E9t\u00E9 converties avec succ\u00E8s.
@@ -60,6 +61,7 @@ educational.learningTime.hour=h
 educational.learningTime.minute=m
 educational.learningTime.second=s
 error.input.toolong=Le texte que vous avez entr\u00E9 est trop long ({1} caract\u00E8res). Limitez-vous s'il vous pla\u00EEt \u00E0 {1} caract\u00E8res.
+error.qti.deprecated=Cette version de QTI est obsol\u00E8te. Pensez s'il vous pla\u00EEt \u00E0 convertir votre test au format QTI 2.1.
 error.select.one=Vous devez s\u00E9lectionner au moins une question.
 error.select.one.author=Vous devez s\u00E9lectionner au moins une question qu'auteur peut \u00E9diter.
 error.select.one.convert=Vous devez s\u00E9lectionner au moins une question qui puisse \u00EAtre convertie dans un autre format.
-- 
GitLab