From 0d3a1338e82bc0d6cce785869932ce4d24c49f85 Mon Sep 17 00:00:00 2001
From: gnaegi <none@none>
Date: Thu, 27 Aug 2015 13:29:42 +0200
Subject: [PATCH] OO-1658 support help page anchors. Of course confluence has
 it's own anchor style...

---
 .../services/help/spi/ConfluenceLinkSPI.java       | 14 +++++++++++++-
 .../olat/gui/demo/guidemo/GuiDemoFlexiForm.java    |  2 +-
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/olat/core/commons/services/help/spi/ConfluenceLinkSPI.java b/src/main/java/org/olat/core/commons/services/help/spi/ConfluenceLinkSPI.java
index 662ff8975fc..4b5754ba5a6 100644
--- a/src/main/java/org/olat/core/commons/services/help/spi/ConfluenceLinkSPI.java
+++ b/src/main/java/org/olat/core/commons/services/help/spi/ConfluenceLinkSPI.java
@@ -55,7 +55,19 @@ public class ConfluenceLinkSPI implements HelpLinkSPI {
 		String version = Settings.getVersion();
 		sb.append(generateSpace(version, locale));
 		if (page != null) {
-			sb.append(page.replace(" ", "%20"));			
+			int anchorPos = page.indexOf("#");
+			if (anchorPos != -1) {
+				// page with anchor
+				String realPage = page.substring(0,anchorPos);
+				String anchor = page.substring(anchorPos+1);
+				// confluence has some super-fancy way to addressing pages with anchors 
+				sb.append(realPage.replace(" ", "%20"));			
+				sb.append("#").append(realPage.replace(" ", "")).append("-").append(anchor);
+				
+			} else {
+				// page without anchor
+				sb.append(page.replace(" ", "%20"));			
+			}
 		}
 		return sb.toString();
 	}
diff --git a/src/main/java/org/olat/gui/demo/guidemo/GuiDemoFlexiForm.java b/src/main/java/org/olat/gui/demo/guidemo/GuiDemoFlexiForm.java
index 05559e46c6e..2ad181a358f 100644
--- a/src/main/java/org/olat/gui/demo/guidemo/GuiDemoFlexiForm.java
+++ b/src/main/java/org/olat/gui/demo/guidemo/GuiDemoFlexiForm.java
@@ -142,7 +142,7 @@ public class GuiDemoFlexiForm extends FormBasicController {
 		firstName.setEnabled(inputMode);
 		firstName.setPlaceholderText("Hans");
 		firstName.setHelpText("If you have a middle name, add it to the first name input field");
-		firstName.setHelpUrlForManualPage("Personal menu");
+		firstName.setHelpUrlForManualPage("Configuration#Profile");
 
 		lastName = uifactory.addTextElement("lastname", "guidemo.flexi.form.lastname", 256, personData.getLastName(), formLayout);
 		lastName.setDisplaySize(defaultDisplaySize);
-- 
GitLab