From af9e047b6e55d2a2c54bcb6a9fa51a9c377a55a1 Mon Sep 17 00:00:00 2001
From: srosse <stephane.rosse@frentix.com>
Date: Mon, 20 Jan 2020 16:02:52 +0100
Subject: [PATCH] OO-4480: adjust tool to jump from a course element to the
 other

---
 .../org/olat/core/gui/components/link/Link.java   | 15 +++++++++++++++
 .../core/gui/components/link/LinkRenderer.java    |  6 +++++-
 .../tool/AssessmentIdentityCourseController.java  |  9 ++++++---
 .../ui/tool/_i18n/LocalStrings_de.properties      |  2 ++
 .../ui/tool/_i18n/LocalStrings_en.properties      |  2 ++
 .../ui/tool/_i18n/LocalStrings_fr.properties      |  2 ++
 6 files changed, 32 insertions(+), 4 deletions(-)

diff --git a/src/main/java/org/olat/core/gui/components/link/Link.java b/src/main/java/org/olat/core/gui/components/link/Link.java
index 43beaa31378..830bb29db61 100644
--- a/src/main/java/org/olat/core/gui/components/link/Link.java
+++ b/src/main/java/org/olat/core/gui/components/link/Link.java
@@ -91,6 +91,7 @@ public class Link extends AbstractComponent {
 	private String customDisabledLinkCSS;
 	private String iconLeftCSS;
 	private String iconRightCSS;
+	private String labelCSS;
 	private String target;
 	private FormLink flexiLink;
 	private Object userObject;
@@ -632,6 +633,20 @@ public class Link extends AbstractComponent {
 		return iconRightCSS;
 	}
 
+	/**
+	 * @return The label (span tag) CSS classes or NULL 
+	 */
+	public String getLabelCSS() {
+		return labelCSS;
+	}
+
+	/**
+	 * @param labelCSS The CSS classes used for the label (span tag)
+	 */
+	public void setLabelCSS(String labelCSS) {
+		this.labelCSS = labelCSS;
+	}
+
 	/**
 	 * Compare also with isEnabled();
 	 * @return true if the link is active (only a rendering issue); false if link not active
diff --git a/src/main/java/org/olat/core/gui/components/link/LinkRenderer.java b/src/main/java/org/olat/core/gui/components/link/LinkRenderer.java
index 86fc40b65bd..5d96cb0135a 100644
--- a/src/main/java/org/olat/core/gui/components/link/LinkRenderer.java
+++ b/src/main/java/org/olat/core/gui/components/link/LinkRenderer.java
@@ -243,7 +243,11 @@ public class LinkRenderer extends DefaultComponentRenderer {
 				sb.append("<i class='o_icon o_icon_back'> </i> "); // one space needed				
 			}
 			
-			sb.append("<span>"); // inner wrapper for layouting
+			sb.append("<span"); // inner wrapper for layouting
+			if(StringHelper.containsNonWhitespace(link.getLabelCSS())) {
+				sb.append(" class='").append(link.getLabelCSS()).append("'");
+			}
+			sb.append(">");
 			if (customDisplayText != null) {
 				//link is not translated but has custom text
 				sb.append(customDisplayText);
diff --git a/src/main/java/org/olat/course/assessment/ui/tool/AssessmentIdentityCourseController.java b/src/main/java/org/olat/course/assessment/ui/tool/AssessmentIdentityCourseController.java
index 46cfe08a34a..084029854b4 100644
--- a/src/main/java/org/olat/course/assessment/ui/tool/AssessmentIdentityCourseController.java
+++ b/src/main/java/org/olat/course/assessment/ui/tool/AssessmentIdentityCourseController.java
@@ -71,8 +71,10 @@ public class AssessmentIdentityCourseController extends BasicController
 
 	private final TooledStackedPanel stackPanel;
 	private final VelocityContainer identityAssessmentVC;
-	private Link nextLink, previousLink, courseNodeSelectionLink;
 	private Link pdfLink;
+	private Link nextLink;
+	private Link previousLink;
+	private Link courseNodeSelectionLink;
 	
 	private IdentityCertificatesController certificateCtrl;
 	private AssessedIdentityLargeInfosController infosController;
@@ -288,7 +290,7 @@ public class AssessmentIdentityCourseController extends BasicController
 		stackPanel.pushController(courseNode.getShortTitle(), currentNodeCtrl);
 		
 		previousLink = LinkFactory.createToolLink("previouselement", translate("previous"), this, "o_icon_previous");
-		previousLink.setTitle(translate("command.previous"));
+		previousLink.setTitle(translate("command.previous.node"));
 		previousLink.setEnabled(hasPrevious(courseNode));
 		stackPanel.addTool(previousLink, Align.rightEdge, false);
 
@@ -298,10 +300,11 @@ public class AssessmentIdentityCourseController extends BasicController
 		courseNodeSelectionLink.setElementCssClass("dropdown-toggle ");
 		courseNodeSelectionLink.setIconLeftCSS("o_icon " + courseNodeCssClass);
 		courseNodeSelectionLink.setIconRightCSS("o_icon o_icon_caret");
+		courseNodeSelectionLink.setLabelCSS("o_label");
 		stackPanel.addTool(courseNodeSelectionLink, Align.rightEdge, false, "o_tool_dropdown dropdown");
 		
 		nextLink = LinkFactory.createToolLink("nextelement", translate("next"), this, "o_icon_next");
-		nextLink.setTitle(translate("command.next"));
+		nextLink.setTitle(translate("command.next.node"));
 		CourseNode nextNode = treeOverviewCtrl.getNextNode(courseNode);
 		boolean hasNext = (nextNode != null && nextNode.getParent() != null);
 		nextLink.setEnabled(hasNext);
diff --git a/src/main/java/org/olat/course/assessment/ui/tool/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/assessment/ui/tool/_i18n/LocalStrings_de.properties
index 2e18293ad3b..1435b98c36a 100644
--- a/src/main/java/org/olat/course/assessment/ui/tool/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/course/assessment/ui/tool/_i18n/LocalStrings_de.properties
@@ -23,7 +23,9 @@ certificates.wizard.title=$org.olat.course.certificate.ui\:certificates.wizard.t
 change.visibility=Sichtbarkeit \u00E4ndern
 change.visibility.title=Sichtbarkeit vom Ergebnis \u00E4ndern
 command.next=Weiter zu n\u00E4chste Benutzer
+command.next.node=Weiter zum n\u00E4chsten Kursbaustein
 command.previous=Zur\u00FCck zum letzten Benutzer
+command.previous.node=Zur\u00FCck zum letzten Kursbaustein
 confirm.certificate.deleted=$org.olat.course.certificate.ui\:confirm.certificate.deleted
 confirm.delete.certificate.text=$org.olat.course.certificate.ui\:confirm.delete.certificate.text
 confirm.delete.certificate.title=$org.olat.course.certificate.ui\:confirm.delete.certificate.title
diff --git a/src/main/java/org/olat/course/assessment/ui/tool/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/assessment/ui/tool/_i18n/LocalStrings_en.properties
index 7e61cacb0af..99a16b9f07f 100644
--- a/src/main/java/org/olat/course/assessment/ui/tool/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/course/assessment/ui/tool/_i18n/LocalStrings_en.properties
@@ -23,7 +23,9 @@ certificates.wizard.title=$org.olat.course.certificate.ui\:certificates.wizard.t
 change.visibility=Change visibility
 change.visibility.title=Change the visibility of results
 command.next=To the next user
+command.next.node=To the next course element
 command.previous=Back to previous user
+command.previous.node=Back to previous course element
 confirm.certificate.deleted=$org.olat.course.certificate.ui\:confirm.certificate.deleted
 confirm.delete.certificate.text=$org.olat.course.certificate.ui\:confirm.delete.certificate.text
 confirm.delete.certificate.title=$org.olat.course.certificate.ui\:confirm.delete.certificate.title
diff --git a/src/main/java/org/olat/course/assessment/ui/tool/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/course/assessment/ui/tool/_i18n/LocalStrings_fr.properties
index f95f4577ebc..345ec32b6a0 100644
--- a/src/main/java/org/olat/course/assessment/ui/tool/_i18n/LocalStrings_fr.properties
+++ b/src/main/java/org/olat/course/assessment/ui/tool/_i18n/LocalStrings_fr.properties
@@ -24,7 +24,9 @@ certificates.wizard.title=$org.olat.course.certificate.ui\:certificates.wizard.t
 change.visibility=Modifier la visibilit\u00E9
 change.visibility.title=Changer la visibilit\u00E9 des r\u00E9sultats
 command.next=Utilisateur suivant
+command.next.node=El\u00E9ment de cours suivant
 command.previous=Utilisateur pr\u00E9c\u00E9dent
+command.previous.node=El\u00E9ment de cours pr\u00E9c\u00E9dent
 confirm.certificate.deleted=$org.olat.course.certificate.ui\:confirm.certificate.deleted
 confirm.delete.certificate.text=$org.olat.course.certificate.ui\:confirm.delete.certificate.text
 confirm.delete.certificate.title=$org.olat.course.certificate.ui\:confirm.delete.certificate.title
-- 
GitLab