This is an automated email from the ASF dual-hosted git repository.
nmalin pushed a commit to branch release18.12
in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git
The following commit(s) were added to refs/heads/release18.12 by this push:
new 076c1e2 Fixed: Link request-confirmation not generated on menus
(OFBIZ-12278)
076c1e2 is described below
commit 076c1e254cd6afdce6e642c04faf30aa8e0e8aed
Author: Nicolas Malin <[email protected]>
AuthorDate: Fri Jul 9 20:31:56 2021 +0200
Fixed: Link request-confirmation not generated on menus (OFBIZ-12278)
Menus link with request-confirmation and confirmation message do not
generate the script that open confirmation
When you activate the following menu item :
<menu-item name="statusToCancelled"
title="${uiLabelMap.AccountingPaymentTabStatusToCancelled}">
<link target="setPaymentStatus" request-confirmation="true"
confirmation-message="You want to cancel this payment number
${payment.paymentId}?">
....
</link>
</menu-item>
OFBiz to not generate the js code link to the request-confirmation
attribute because this functionality has been never implemented on java code
for MenuRenderer
Thanks to Leila Mekika for raised this issue and solved it
---
.../apache/ofbiz/widget/renderer/macro/MacroMenuRenderer.java | 11 +++++++++++
themes/common-theme/template/macro/HtmlMenuMacroLibrary.ftl | 4 ++--
themes/rainbowstone/template/macro/HtmlMenuMacroLibrary.ftl | 4 ++--
3 files changed, 15 insertions(+), 4 deletions(-)
diff --git
a/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroMenuRenderer.java
b/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroMenuRenderer.java
index 089f167..81cbd3b 100644
---
a/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroMenuRenderer.java
+++
b/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroMenuRenderer.java
@@ -35,7 +35,9 @@ import org.apache.ofbiz.base.util.Debug;
import org.apache.ofbiz.base.util.StringUtil;
import org.apache.ofbiz.base.util.UtilCodec;
import org.apache.ofbiz.base.util.UtilMisc;
+import org.apache.ofbiz.base.util.UtilProperties;
import org.apache.ofbiz.base.util.UtilValidate;
+import org.apache.ofbiz.base.util.string.FlexibleStringExpander;
import org.apache.ofbiz.base.util.template.FreeMarkerWorker;
import org.apache.ofbiz.webapp.control.RequestHandler;
import org.apache.ofbiz.webapp.taglib.ContentUrlTag;
@@ -233,6 +235,15 @@ public class MacroMenuRenderer implements
MenuStringRenderer {
String linkUrl = "";
String actionUrl = "";
StringBuilder targetParameters = new StringBuilder();
+
+ String confirmationMessage =
link.getLink().getConfirmationMsg(context);
+ if (link.getLink().getRequestConfirmation() &&
UtilValidate.isEmpty(confirmationMessage)) {
+ String defaultMessage = UtilProperties.getPropertyValue("general",
"default.confirmation.message",
+ "${uiLabelMap.CommonConfirm}");
+ confirmationMessage =
FlexibleStringExpander.expandString(defaultMessage, context);
+ }
+ parameters.put("confirmation", confirmationMessage);
+
if ("hidden-form".equals(linkType) ||
"layered-modal".equals(linkType)) {
StringBuilder sb = new StringBuilder();
WidgetWorker.buildHyperlinkUrl(sb, target, link.getUrlMode(),
null, link.getPrefix(context), link.getFullPath(), link.getSecure(),
link.getEncode(), request, response, context);
diff --git a/themes/common-theme/template/macro/HtmlMenuMacroLibrary.ftl
b/themes/common-theme/template/macro/HtmlMenuMacroLibrary.ftl
index a440739..d61fa73 100644
--- a/themes/common-theme/template/macro/HtmlMenuMacroLibrary.ftl
+++ b/themes/common-theme/template/macro/HtmlMenuMacroLibrary.ftl
@@ -46,7 +46,7 @@ under the License.
<img src="${src}"<#if id?has_content> id="${id}"</#if><#if style?has_content>
class="${style}"</#if><#if width?has_content> width="${width}"</#if><#if
height?has_content> height="${height}"</#if><#if border?has_content>
border="${border}"</#if> />
</#macro>
-<#macro renderLink linkUrl parameterList targetWindow uniqueItemName actionUrl
linkType="" id="" style="" name="" height="600" width="800" text="" imgStr="">
+<#macro renderLink linkUrl parameterList targetWindow uniqueItemName actionUrl
confirmation="" linkType="" id="" style="" name="" height="600" width="800"
text="" imgStr="">
<#if linkType?has_content && "hidden-form" == linkType>
<form method="post" action="${actionUrl}"<#if targetWindow?has_content>
target="${targetWindow}"</#if>
onsubmit="javascript:submitFormDisableSubmits(this)"
name="${uniqueItemName}"><#rt/>
<#list parameterList as parameter>
@@ -72,7 +72,7 @@ under the License.
<#if text?has_content>${text}</#if></a>
<#else>
<#if (linkType?has_content && "hidden-form" == linkType) ||
linkUrl?has_content>
-<a<#if id?has_content> id="${id}"</#if><#if style?has_content>
class="${style}"</#if><#if name?has_content> name="${name}"</#if><#if
targetWindow?has_content> target="${targetWindow}"</#if> href="<#if
"hidden-form"==linkType>javascript:document.${uniqueItemName}.submit()<#else>${linkUrl}</#if>"><#rt/>
+<a<#if id?has_content> id="${id}"</#if><#if style?has_content>
class="${style}"</#if><#if name?has_content> name="${name}"</#if><#if
confirmation?has_content> onclick="return
confirm('${confirmation?js_string}');"</#if><#if targetWindow?has_content>
target="${targetWindow}"</#if> href="<#if
"hidden-form"==linkType>javascript:document.${uniqueItemName}.submit()<#else>${linkUrl}</#if>"><#rt/>
</#if>
<#if imgStr?has_content>${imgStr}</#if> <#if
text?has_content>${text}</#if><#rt/>
<#if (linkType?has_content && "hidden-form" == linkType) ||
linkUrl?has_content></a><#rt/></#if>
diff --git a/themes/rainbowstone/template/macro/HtmlMenuMacroLibrary.ftl
b/themes/rainbowstone/template/macro/HtmlMenuMacroLibrary.ftl
index d0233fc..038ddfe 100644
--- a/themes/rainbowstone/template/macro/HtmlMenuMacroLibrary.ftl
+++ b/themes/rainbowstone/template/macro/HtmlMenuMacroLibrary.ftl
@@ -19,7 +19,7 @@ under the License.
<#include "component://common-theme/template/macro/HtmlMenuMacroLibrary.ftl"/>
-<#macro renderLink linkUrl parameterList targetWindow uniqueItemName actionUrl
linkType="" id="" style="" name="" height="600" width="800" text="" imgStr="">
+<#macro renderLink linkUrl parameterList targetWindow uniqueItemName actionUrl
confirmation="" linkType="" id="" style="" name="" height="600" width="800"
text="" imgStr="">
<#if linkType?has_content && "hidden-form" == linkType>
<form method="post" action="${actionUrl}"<#if targetWindow?has_content>
target="${targetWindow}"</#if>
onsubmit="javascript:submitFormDisableSubmits(this)"
name="${uniqueItemName}"><#rt/>
<#list parameterList as parameter>
@@ -45,7 +45,7 @@ under the License.
<#if text?has_content>${text}</#if></a>
<#else>
<#if (linkType?has_content && "hidden-form" == linkType) ||
linkUrl?has_content>
- <a<#if id?has_content> id="${id}"</#if><#if style?has_content>
class="${style}"</#if><#if name?has_content> name="${name}"</#if><#if
targetWindow?has_content> target="${targetWindow}"</#if> href="<#if
"hidden-form"==linkType>javascript:document.${uniqueItemName}.submit()<#else>${linkUrl}</#if>"><#rt/>
+ <a<#if id?has_content> id="${id}"</#if><#if style?has_content>
class="${style}"</#if><#if name?has_content> name="${name}"</#if><#if
confirmation?has_content> onclick="return
confirm('${confirmation?js_string}');"</#if><#if targetWindow?has_content>
target="${targetWindow}"</#if> href="<#if
"hidden-form"==linkType>javascript:document.${uniqueItemName}.submit()<#else>${linkUrl}</#if>"><#rt/>
</#if>
<#if imgStr?has_content>${imgStr}</#if><#if
text?has_content>${text}</#if><#rt/>
<#if (linkType?has_content && "hidden-form" == linkType) ||
linkUrl?has_content></a><#rt/></#if>