Skip to content

Commit

Permalink
Merge pull request #492 from apache/WW-5123-labelposition
Browse files Browse the repository at this point in the history
[WW-5132] [WW-5123] labelposition - cherry-pick
  • Loading branch information
yasserzamani committed Jul 1, 2021
2 parents 1567f76 + 9e1d482 commit ae85f51
Show file tree
Hide file tree
Showing 72 changed files with 13,121 additions and 111 deletions.
2 changes: 1 addition & 1 deletion .mvn/wrapper/maven-wrapper.properties
@@ -1,2 +1,2 @@
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.1/apache-maven-3.8.1-bin.zip
wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar
Expand Up @@ -33,17 +33,17 @@
</td><#lt/>
</tr>
</#if>
<#if !parameters.labelposition?? && (parameters.form.labelposition)??>
<#assign labelpos = parameters.form.labelposition/>
<#elseif parameters.labelposition??>
<#assign labelpos = parameters.labelposition/>
<#if !parameters.labelPosition?? && (parameters.form.labelPosition)??>
<#assign labelPos = parameters.form.labelPosition/>
<#elseif parameters.labelPosition??>
<#assign labelpos = parameters.labelPosition/>
</#if>
<#--
if the label position is top,
then give the label it's own row in the table
-->
<tr>
<#if (labelpos!"") == 'top'>
<#if (labelPos!"") == 'top'>
<td class="tdLabelTop" colspan="2"><#rt/>
<#else>
<td class="tdLabel"><#rt/>
Expand Down Expand Up @@ -72,7 +72,7 @@ ${parameters.labelseparator!":"}<#t/>
</#if>
</td><#lt/>
<#-- add the extra row -->
<#if (labelpos!"") == 'top'>
<#if (labelPos!"") == 'top'>
</tr>
<tr>
</#if>
18 changes: 18 additions & 0 deletions core/src/main/java/org/apache/struts2/components/Checkbox.java
Expand Up @@ -94,4 +94,22 @@ public void setFieldValue(String fieldValue) {
public void setSubmitUnchecked(String submitUnchecked) {
this.submitUnchecked = submitUnchecked;
}

/**
* Deprecated since 2.5.27
* @deprecated use {@link #setLabelPosition(String)} instead
*/
@Deprecated
@Override
@StrutsTagAttribute(description="(Deprecated) Define label position of form element (top/left), also 'right' is supported when using 'xhtml' theme")
public void setLabelposition(String labelPosition) {
super.setLabelPosition(labelPosition);
}

@Override
@StrutsTagAttribute(description="Define label position of form element (top/left), also 'right' is supported when using 'xhtml' theme")
public void setLabelPosition(String labelPosition) {
super.setLabelPosition(labelPosition);
}

}
22 changes: 17 additions & 5 deletions core/src/main/java/org/apache/struts2/components/UIBean.java
Expand Up @@ -645,7 +645,7 @@ public String getTheme() {
public void evaluateParams() {
String templateDir = getTemplateDir();
String theme = getTheme();

addParameter("templateDir", templateDir);
addParameter("theme", theme);
addParameter("template", template != null ? findString(template) : getDefaultTemplate());
Expand Down Expand Up @@ -689,7 +689,9 @@ public void evaluateParams() {
}

if (labelPosition != null) {
addParameter("labelposition", findString(labelPosition));
String labelPosition = findString(this.labelPosition);
addParameter("labelposition", labelPosition);
addParameter("labelPosition", labelPosition);
}

if (requiredPosition != null) {
Expand All @@ -699,7 +701,7 @@ public void evaluateParams() {
if (errorPosition != null) {
addParameter("errorposition", findString(errorPosition));
}

if (requiredLabel != null) {
addParameter("required", findValue(requiredLabel, Boolean.class));
}
Expand Down Expand Up @@ -1114,11 +1116,21 @@ public void setLabelSeparator(String labelseparator) {
this.labelSeparator = labelseparator;
}

@StrutsTagAttribute(description="Define label position of form element (top/left)")
/**
* Deprecated since 2.5.27
* @deprecated use {@link #setLabelPosition(String)} instead
*/
@StrutsTagAttribute(description="(Deprecated) Define label position of form element (top/left)")
@Deprecated
public void setLabelposition(String labelPosition) {
this.labelPosition = labelPosition;
}

@StrutsTagAttribute(description="Define label position of form element (top/left)")
public void setLabelPosition(String labelPosition) {
this.labelPosition = labelPosition;
}

@StrutsTagAttribute(description="Define required position of required form element (left|right)")
public void setRequiredPosition(String requiredPosition) {
this.requiredPosition = requiredPosition;
Expand All @@ -1128,7 +1140,7 @@ public void setRequiredPosition(String requiredPosition) {
public void setErrorPosition(String errorPosition) {
this.errorPosition = errorPosition;
}

@StrutsTagAttribute(description="The name to set for element")
public void setName(String name) {
this.name = name;
Expand Down
Expand Up @@ -18,9 +18,7 @@
*/
package org.apache.struts2.views.jsp.ui;

import org.apache.commons.lang3.ObjectUtils;
import org.apache.struts2.components.UIBean;
import org.apache.struts2.util.ComponentUtils;
import org.apache.struts2.views.jsp.ComponentTagSupport;

import javax.servlet.jsp.JspException;
Expand All @@ -40,7 +38,7 @@ public abstract class AbstractUITag extends ComponentTagSupport implements Dynam
protected String disabled;
protected String label;
protected String labelSeparator;
protected String labelposition;
protected String labelPosition;
protected String requiredPosition;
protected String errorPosition;
protected String name;
Expand Down Expand Up @@ -92,7 +90,7 @@ protected void populateParams() {
uiBean.setDisabled(disabled);
uiBean.setLabel(label);
uiBean.setLabelSeparator(labelSeparator);
uiBean.setLabelposition(labelposition);
uiBean.setLabelPosition(labelPosition);
uiBean.setRequiredPosition(requiredPosition);
uiBean.setErrorPosition(errorPosition);
uiBean.setName(name);
Expand Down Expand Up @@ -169,8 +167,17 @@ public void setLabel(String label) {
this.label = label;
}

/**
* Deprecated since 2.5.27
* @deprecated use {@link #setLabelPosition(String)} instead
*/
@Deprecated
public void setLabelposition(String labelPosition) {
this.labelposition = labelPosition;
this.labelPosition = labelPosition;
}

public void setLabelPosition(String labelPosition) {
this.labelPosition = labelPosition;
}

public void setRequiredPosition(String requiredPosition) {
Expand Down
Expand Up @@ -18,13 +18,12 @@
*/
package org.apache.struts2.views.jsp.ui;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.opensymphony.xwork2.util.ValueStack;
import org.apache.struts2.components.Checkbox;
import org.apache.struts2.components.Component;

import com.opensymphony.xwork2.util.ValueStack;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
* @see Checkbox
Expand Down
47 changes: 47 additions & 0 deletions core/src/main/resources/template/archive/xhtml/controlheader.vm
@@ -0,0 +1,47 @@
#*
* $Id$
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*#
## Only show message if errors are available.
## This will be done if ActionSupport is used.
#if( $fieldErrors.get($parameters.name) )
#set ($hasFieldErrors = $fieldErrors.get($parameters.name))
#foreach ($error in $fieldErrors.get($parameters.name))
<tr errorFor="$parameters.id">
#if ($parameters.labelPosition == 'top')<td align="left" valign="top" colspan="2">#else<td align="center" valign="top" colspan="2">#end<span class="errorMessage">$!struts.htmlEncode($error)</span></td>
</tr>
#end
#end
## if the label position is top,
## then give the label it's own row in the table
<tr>
#if ($parameters.labelPosition && $parameters.labelPosition == 'top')<td align="left" valign="top" colspan="2">#else<td align="right" valign="top">#end#if ($parameters.label)<label #if ($parameters.id) for="$!struts.htmlEncode($parameters.id)"#end#if ($hasFieldErrors) class="errorLabel"#else class="label"#end>#if ($parameters.required)<span class="required">*</span>#end$!struts.htmlEncode($parameters.label):</label>#end</td>
## add the extra row
#if ($parameters.labelPosition && $parameters.labelPosition == 'top')
</tr>
<tr>
#end
#if ($parameters.form.validate && $parameters.form.validate == true)
#if ($parameters.onblur)
#set ($parameters.onblur = "validate(this);${parameters.onblur}")
#else
#set ($parameters.onblur = "validate(this)")
#end
#end
<td>
20 changes: 10 additions & 10 deletions core/src/main/resources/template/css_xhtml/checkbox.ftl
Expand Up @@ -39,12 +39,12 @@ lables
</#list>
</div><#t/>
</#if>
<#if !parameters.labelposition?? && (parameters.form.labelposition)??>
<#assign labelpos = parameters.form.labelposition/>
<#elseif parameters.labelposition??>
<#assign labelpos = parameters.labelposition/>
<#if !parameters.labelPosition?? && (parameters.form.labelPosition)??>
<#assign labelPos = parameters.form.labelPosition/>
<#elseif parameters.labelPosition??>
<#assign labelPos = parameters.labelPosition/>
</#if>
<#if (labelpos!"") == 'left'>
<#if (labelPos!"") == 'left'>
<span <#rt/>
<#if parameters.id??>id="wwlbl_${parameters.id}"<#rt/></#if> class="wwlbl">
<label<#t/>
Expand All @@ -60,7 +60,7 @@ lables
</span>
</#if>

<#if (labelpos!"top") == 'top'>
<#if (labelPos!"top") == 'top'>
<div <#rt/>
<#else>
<span <#rt/>
Expand All @@ -72,14 +72,14 @@ lables
</#if>

<#include "/${parameters.templateDir}/simple/checkbox.ftl" />
<#if (labelpos!"") != 'left'>
<#if (labelpos!"top") == 'top'>
<#if (labelPos!"") != 'left'>
<#if (labelPos!"top") == 'top'>
</div> <#rt/>
<#else>
</span> <#rt/>
</#if>
<#if parameters.label??>
<#if (labelpos!"top") == 'top'>
<#if (labelPos!"top") == 'top'>
<div <#rt/>
<#else>
<span <#rt/>
Expand All @@ -98,7 +98,7 @@ lables
</#if>
</#if>
<#if parameters.label??>
<#if (labelpos!"top") == 'top'>
<#if (labelPos!"top") == 'top'>
</div> <#rt/>
<#else>
</span> <#rt/>
Expand Down
12 changes: 6 additions & 6 deletions core/src/main/resources/template/css_xhtml/controlfooter.ftl
Expand Up @@ -20,12 +20,12 @@
-->
${parameters.after!}<#t/>
<#lt/>
<#if !parameters.labelposition?? && (parameters.form.labelposition)??>
<#assign labelpos = parameters.form.labelposition/>
<#elseif parameters.labelposition??>
<#assign labelpos = parameters.labelposition/>
<#if !parameters.labelPosition?? && (parameters.form.labelPosition)??>
<#assign labelPos = parameters.form.labelPosition/>
<#elseif parameters.labelPosition??>
<#assign labelPos = parameters.labelPosition/>
</#if>
<#if (labelpos!"top") == 'top'>
<#if (labelPos!"top") == 'top'>
</div> <#rt/>
<#else>
</span> <#rt/>
Expand All @@ -46,4 +46,4 @@ ${parameters.after!}<#t/>
</div><#t/>
</#if>
</#if>
</div>
</div>
Expand Up @@ -24,7 +24,7 @@
-->
<#assign hasFieldErrors = parameters.name?? && fieldErrors?? && fieldErrors.get(parameters.name)??/>
<div <#rt/><#if parameters.id??>id="wwgrp_${parameters.id}"<#rt/></#if> class="wwgrp">

<#if (parameters.errorposition!"top") == 'top'>
<#if hasFieldErrors>
<div <#rt/><#if parameters.id??>id="wwerr_${parameters.id}"<#rt/></#if> class="wwerr">
Expand All @@ -41,13 +41,13 @@
</#if>
</#if>

<#if !parameters.labelposition?? && (parameters.form.labelposition)??>
<#assign labelpos = parameters.form.labelposition/>
<#elseif parameters.labelposition??>
<#assign labelpos = parameters.labelposition/>
<#if !parameters.labelPosition?? && (parameters.form.labelPosition)??>
<#assign labelPos = parameters.form.labelPosition/>
<#elseif parameters.labelPosition??>
<#assign labelPos = parameters.labelPosition/>
</#if>
<#if parameters.label??>
<#if (labelpos!"top") == 'top'>
<#if (labelPos!"top") == 'top'>
<div <#rt/>
<#else>
<span <#rt/>
Expand All @@ -69,7 +69,7 @@
${parameters.label}${parameters.labelseparator!":"}
<#include "/${parameters.templateDir}/xhtml/tooltip.ftl" />
</label><#t/>
<#if (labelpos!"top") == 'top'>
<#if (labelPos!"top") == 'top'>
</div> <br /><#rt/>
<#else>
</span> <#rt/>
Expand Down
11 changes: 5 additions & 6 deletions core/src/main/resources/template/css_xhtml/controlheader.ftl
Expand Up @@ -19,15 +19,14 @@
*/
-->
<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlheader-core.ftl">
<#if !parameters.labelposition?? && (parameters.form.labelposition)??>
<#assign labelpos = parameters.form.labelposition/>
<#elseif parameters.labelposition??>
<#assign labelpos = parameters.labelposition/>
<#if !parameters.labelPosition?? && (parameters.form.labelPosition)??>
<#assign labelPos = parameters.form.labelPosition/>
<#elseif parameters.labelPosition??>
<#assign labelPos = parameters.labelPosition/>
</#if>
<#if (labelpos!"top") == 'top'>
<#if (labelPos!"top") == 'top'>
<div <#rt/>
<#else>
<span <#rt/>
</#if>
<#if parameters.id??>id="wwctrl_${parameters.id}"<#rt/></#if> class="wwctrl">

12 changes: 6 additions & 6 deletions core/src/main/resources/template/css_xhtml/reset.ftl
Expand Up @@ -18,12 +18,12 @@
* under the License.
*/
-->
<#if !parameters.labelposition?? && (parameters.form.labelposition)??>
<#assign labelpos = parameters.form.labelposition/>
<#elseif parameters.labelposition??>
<#assign labelpos = parameters.labelposition/>
<#if !parameters.labelPosition?? && (parameters.form.labelPosition)??>
<#assign labelPos = parameters.form.labelPosition/>
<#elseif parameters.labelPosition??>
<#assign labelPos = parameters.labelPosition/>
</#if>
<#if (labelpos!"top") == 'top'>
<#if (labelPos!"top") == 'top'>
<div <#rt/>
<#else>
<span <#rt/>
Expand All @@ -34,7 +34,7 @@
</#if>
><#t/>
<#include "/${parameters.templateDir}/simple/reset.ftl" />
<#if (labelpos!"top") == 'top'>
<#if (labelPos!"top") == 'top'>
</div> <#t/>
<#else>
</span> <#t/>
Expand Down

0 comments on commit ae85f51

Please sign in to comment.