This is an automated email from the ASF dual-hosted git repository.

jamesyong pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 10fbedb  Fixed: Open FTL File from browser (OFBIZ-12018)
10fbedb is described below

commit 10fbedbce0dff5afab729f07e19fd40756a61b43
Author: James Yong <jamesy...@apache.org>
AuthorDate: Fri Oct 2 20:33:44 2020 +0800

    Fixed: Open FTL File from browser (OFBIZ-12018)
    
    Not able to open source file when clicking on named border in ecomseo 
landing page
    
    Thanks Jacques for reporting
---
 .../src/main/java/org/apache/ofbiz/widget/model/HtmlWidget.java  | 6 ++++--
 .../apache/ofbiz/widget/renderer/html/HtmlWidgetRenderer.java    | 9 +++++++--
 themes/common-theme/webapp/common/js/util/OfbizUtil.js           | 5 +++--
 3 files changed, 14 insertions(+), 6 deletions(-)

diff --git 
a/framework/widget/src/main/java/org/apache/ofbiz/widget/model/HtmlWidget.java 
b/framework/widget/src/main/java/org/apache/ofbiz/widget/model/HtmlWidget.java
index fb70871..708a84b 100644
--- 
a/framework/widget/src/main/java/org/apache/ofbiz/widget/model/HtmlWidget.java
+++ 
b/framework/widget/src/main/java/org/apache/ofbiz/widget/model/HtmlWidget.java
@@ -176,8 +176,10 @@ public class HtmlWidget extends ModelScreenWidget {
                         insertWidgetNamedBorder = true;
                     }
                 }
+                String contextPath = "";
                 if (insertWidgetNamedBorder) {
-                    writer.append(HtmlWidgetRenderer.buildNamedBorder("Begin", 
"Template", location, namedBorderType));
+                    contextPath = ((HttpServletRequest) 
context.get("request")).getContextPath();
+                    writer.append(HtmlWidgetRenderer.buildNamedBorder("Begin", 
"Template", location, namedBorderType, contextPath));
                 }
 
                 Template template = null;
@@ -189,7 +191,7 @@ public class HtmlWidget extends ModelScreenWidget {
                 FreeMarkerWorker.renderTemplate(template, context, writer);
 
                 if (insertWidgetNamedBorder) {
-                    writer.append(HtmlWidgetRenderer.buildNamedBorder("End", 
"Template", location, namedBorderType));
+                    writer.append(HtmlWidgetRenderer.buildNamedBorder("End", 
"Template", location, namedBorderType, contextPath));
                 }
                 if (insertWidgetBoundaryComments) {
                     
writer.append(HtmlWidgetRenderer.buildBoundaryComment("End", "Template", 
location));
diff --git 
a/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/html/HtmlWidgetRenderer.java
 
b/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/html/HtmlWidgetRenderer.java
index 99ee553..950c6f2 100644
--- 
a/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/html/HtmlWidgetRenderer.java
+++ 
b/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/html/HtmlWidgetRenderer.java
@@ -23,6 +23,7 @@ import java.util.List;
 
 import org.apache.ofbiz.base.util.UtilHtml;
 import org.apache.ofbiz.base.util.UtilHttp;
+import org.apache.ofbiz.product.category.SeoConfigUtil;
 import org.apache.ofbiz.widget.model.ModelWidget;
 
 /**
@@ -74,7 +75,8 @@ public class HtmlWidgetRenderer {
         return "<!-- " + boundaryType + " " + widgetType + " " + widgetName + 
" -->" + WHITE_SPACE;
     }
 
-    public static String buildNamedBorder(String boundaryType, String 
widgetType, String widgetName, ModelWidget.NamedBorderType namedBorderType) {
+    public static String buildNamedBorder(String boundaryType, String 
widgetType, String widgetName,
+                                          ModelWidget.NamedBorderType 
namedBorderType, String contextPath) {
         List<String> themeBasePathsToExempt = 
UtilHtml.getVisualThemeFolderNamesToExempt();
         if (!themeBasePathsToExempt.stream().anyMatch(widgetName::contains)) {
             // add additional visual label for non-theme ftl
@@ -82,7 +84,10 @@ public class HtmlWidgetRenderer {
                 String fileName = 
widgetName.substring(widgetName.lastIndexOf("/") + 1);
                 switch (namedBorderType) {
                 case SOURCE:
-                    return "<div class='info-container'><span 
class='info-overlay-item info-cursor-none' data-source='" + widgetName + "'>"
+                    return "<div class='info-container'><span 
class='info-overlay-item info-cursor-none' data-source='"
+                            + widgetName + "' data-target='" + contextPath
+                            + (SeoConfigUtil.isCategoryUrlEnabled(contextPath) 
? "" : "/control")
+                            + "/openSourceFile'>"
                             + fileName
                             + "</span>";
                 case LABEL:
diff --git a/themes/common-theme/webapp/common/js/util/OfbizUtil.js 
b/themes/common-theme/webapp/common/js/util/OfbizUtil.js
index 90a1a93..a81f9a2 100644
--- a/themes/common-theme/webapp/common/js/util/OfbizUtil.js
+++ b/themes/common-theme/webapp/common/js/util/OfbizUtil.js
@@ -48,10 +48,11 @@ $(document).ready(function() {
         selectList.each(function(){
             const $this = $(this);
             $this.removeClass("info-cursor-none");
-            var sourceLocaton = $this.data("source");
+            let sourceLocaton = $this.data("source");
+            let target = $this.data("target");
             $this.addClass("info-cursor").click(function(){
                 jQuery.ajax({
-                    url: 'openSourceFile',
+                    url: target,
                     type: "POST",
                     data: {sourceLocation:sourceLocaton},
                     success: function(data) {

Reply via email to