From 140d3417f1bb8078ff3065ef32c4df3a1528c697 Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Fri, 8 Jul 2016 10:27:03 +0200
Subject: [PATCH] OO-2097: remove double // in meta info of files, remove
 _blank target for internal links

---
 .../olat/core/commons/modules/bc/commands/CmdEditMeta.java  | 5 ++++-
 .../wiki/gui/components/wikiToHtml/WikiMarkupRenderer.java  | 4 +++-
 src/main/webapp/static/js/openolat/wiki.js                  | 6 ++++--
 3 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/src/main/java/org/olat/core/commons/modules/bc/commands/CmdEditMeta.java b/src/main/java/org/olat/core/commons/modules/bc/commands/CmdEditMeta.java
index 35995dea582..771060e62d6 100644
--- a/src/main/java/org/olat/core/commons/modules/bc/commands/CmdEditMeta.java
+++ b/src/main/java/org/olat/core/commons/modules/bc/commands/CmdEditMeta.java
@@ -119,7 +119,10 @@ public class CmdEditMeta extends BasicController implements FolderCommand {
 	private String getResourceURL(WindowControl wControl) {
 		String path = "path=" + folderComponent.getCurrentContainerPath();
 		if(currentItem != null) {
-			path += "/" + currentItem.getName();
+			if(path.charAt(path.length() - 1) != '/') {
+				path += currentItem.getName();
+			}
+			path += currentItem.getName();
 		}
 		OLATResourceable ores = OresHelper.createOLATResourceableTypeWithoutCheck(path);
 		WindowControl bwControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ores, null, wControl);
diff --git a/src/main/java/org/olat/modules/wiki/gui/components/wikiToHtml/WikiMarkupRenderer.java b/src/main/java/org/olat/modules/wiki/gui/components/wikiToHtml/WikiMarkupRenderer.java
index 2db789b8f2d..2b78d36222d 100644
--- a/src/main/java/org/olat/modules/wiki/gui/components/wikiToHtml/WikiMarkupRenderer.java
+++ b/src/main/java/org/olat/modules/wiki/gui/components/wikiToHtml/WikiMarkupRenderer.java
@@ -40,6 +40,7 @@ import org.olat.core.gui.render.Renderer;
 import org.olat.core.gui.render.StringOutput;
 import org.olat.core.gui.render.URLBuilder;
 import org.olat.core.gui.translator.Translator;
+import org.olat.core.helpers.Settings;
 import org.olat.core.logging.OLATRuntimeException;
 import org.olat.core.util.Formatter;
 
@@ -112,7 +113,8 @@ public class WikiMarkupRenderer extends DefaultComponentRenderer {
 		sb.append("</div>");
 		//set targets of media, image and external links to target "_blank" 
 		sb.append("<script type=\"text/javascript\">/* <![CDATA[ */ ");
-		sb.append("changeAnchorTargets('").append(uniqueId).append("');");
+		String instanceUrl = Settings.getServerContextPathURI();
+		sb.append("changeAnchorTargets('").append(uniqueId).append("','").append(instanceUrl).append("');");
 		sb.append("/* ]]> */</script>");
 	}
 }
diff --git a/src/main/webapp/static/js/openolat/wiki.js b/src/main/webapp/static/js/openolat/wiki.js
index 43383f118c8..d4c3c1d3161 100644
--- a/src/main/webapp/static/js/openolat/wiki.js
+++ b/src/main/webapp/static/js/openolat/wiki.js
@@ -9,7 +9,7 @@ if (clientPC.indexOf('opera') != -1) {
 	var is_opera_seven = (window.opera && document.childNodes);
 }
 
-function changeAnchorTargets(id) {
+function changeAnchorTargets(id, hostUrl) {
 	jQuery('a', jQuery('#' + id)).each(function(index, el) {
 		var anchor = jQuery(el);
 		var openInNewWindow = false;
@@ -28,7 +28,9 @@ function changeAnchorTargets(id) {
 		//open media links in new window, but only if file exists
 		if (anchor.attr("title")) {
 			var href = anchor.attr("href");
-			if (!anchor.attr("class") && anchor.attr("title").indexOf("Media:") != -1) { //normal media link file found
+			if(href.indexOf(hostUrl) == 0) {
+				openInNewWindow = false;
+			} else if (!anchor.attr("class") && anchor.attr("title").indexOf("Media:") != -1) { //normal media link file found
 				openInNewWindow = true;
 				//modify link to non ajax mode as opening in new window with ajax mode on fails
 				if (href.indexOf(":1/") != -1) {
-- 
GitLab