WW-4972 Uses built-in auto escaping instead of escaping each parameter

This commit is contained in:
Lukasz Lenart
2018-12-23 17:44:12 +01:00
parent c3f3d3de19
commit 3d20e80950
56 changed files with 374 additions and 370 deletions
@@ -23,21 +23,21 @@
-->
<ul<#rt/>
<#if parameters.id??>
id="${parameters.id?html}"<#rt/>
id="${parameters.id}"<#rt/>
</#if>
<#if parameters.cssClass??>
class="${parameters.cssClass?html}"<#rt/>
class="${parameters.cssClass}"<#rt/>
<#else>
class="errorMessage"<#rt/>
</#if>
<#if parameters.cssStyle??>
style="${parameters.cssStyle?html}"<#rt/>
style="${parameters.cssStyle}"<#rt/>
</#if>
>
<#if (actionErrors?? && actionErrors?size > 0)>
<#list actionErrors as error>
<#if error??>
<li><span><#if parameters.escape>${error!?html}<#else>${error!}</#if></span><#rt/></li><#rt/>
<li><span><#if parameters.escape>${error!}<#else>${error!}</#if></span><#rt/></li><#rt/>
</#if>
</#list>
</#if>
@@ -28,7 +28,7 @@ ${parameters.after!}<#t/>
<td class="tdErrorMessage" colspan="2"><#rt/>
<#if hasFieldErrors>
<#list fieldErrors[parameters.name] as error>
<div class="errorMessage">${error?html}</div><#t/>
<div class="errorMessage">${error}</div><#t/>
</#list>
</#if>
</td><#lt/>
@@ -27,7 +27,7 @@
<td class="tdErrorMessage" colspan="2" data-error-for-fieldname="${parameters.name}"><#rt/>
<#if hasFieldErrors>
<#list fieldErrors[parameters.name] as error>
<div class="errorMessage">${error?html}</div><#t/>
<div class="errorMessage">${error}</div><#t/>
</#list>
</#if>
</td><#lt/>
@@ -51,7 +51,7 @@
<#if parameters.label??>
<label <#t/>
<#if parameters.id??>
for="${parameters.id?html}" <#t/>
for="${parameters.id}" <#t/>
</#if>
<#if hasFieldErrors>
class="errorLabel"<#t/>
@@ -62,11 +62,11 @@
<#if parameters.required!false && parameters.requiredPosition!"right" != 'right'>
<span class="required">*</span><#t/>
</#if>
${parameters.label?html}<#t/>
${parameters.label}<#t/>
<#if parameters.required!false && parameters.requiredPosition!"right" == 'right'>
<span class="required">*</span><#t/>
</#if>
${parameters.labelseparator!":"?html}<#t/>
${parameters.labelseparator!":"}<#t/>
<#include "/${parameters.templateDir}/${parameters.expandTheme}/tooltip.ftl" />
</label><#t/>
</#if>
@@ -51,9 +51,9 @@
</tr>
<#list people as person>
<tr>
<td>${person.id?html}</td>
<td>${person.name?html}</td>
<td>${person.lastName?html}</td>
<td>${person.id}</td>
<td>${person.name}</td>
<td>${person.lastName}</td>
</tr>
</#list>
</table>
@@ -33,7 +33,7 @@
<p>You have come to this page because you used an <strong>action</strong> prefix.<p/>
<p>The text you've entered is ${text!''?html}<p/>
<p>The text you've entered is ${text!''}<p/>
<@s.a href="javascript:history.back();" cssClass="btn btn-info"><i class="icon icon-arrow-left"></i> Back</@s.a>
</div>
@@ -33,7 +33,7 @@
<p>You have come to this page because you used an <strong>method</strong> prefix.<p/>
<p>The text you've enter is ${text!''?html}<p/>
<p>The text you've enter is ${text!''}<p/>
<@s.a href="javascript:history.back();" cssClass="btn btn-info"><i class="icon icon-arrow-left"></i> Back</@s.a>
</div>
@@ -36,7 +36,7 @@
<p>Because this is a <strong>redirect-action</strong>, the text will be lost, due to a redirection
implies a new request being issued from the client.<p/>
The text you've enter is ${text!''?html}<p/>
The text you've enter is ${text!''}<p/>
<@s.a href="javascript:history.back();" cssClass="btn btn-info"><i class="icon icon-arrow-left"></i> Back</@s.a>
</div>
@@ -887,7 +887,7 @@ public abstract class UIBean extends Component {
protected String escape(String name) {
// escape any possible values that can make the ID painful to work with in JavaScript
if (name != null) {
return name.replaceAll("[\\/\\.\\[\\]]", "_");
return name.replaceAll("[\\/\\.\\[\\]\'\"]", "_");
} else {
return null;
}
@@ -1002,7 +1002,7 @@ public abstract class UIBean extends Component {
} else {
tryId = generatedId;
}
//fix for https://issues.apache.org/jira/browse/WW-4299
//do not assign value to id if tryId is null
if (tryId != null) {
@@ -25,6 +25,8 @@ import com.opensymphony.xwork2.inject.Inject;
import com.opensymphony.xwork2.util.ClassLoaderUtil;
import com.opensymphony.xwork2.util.ValueStack;
import freemarker.cache.*;
import freemarker.core.HTMLOutputFormat;
import freemarker.core.OutputFormat;
import freemarker.core.TemplateClassResolver;
import freemarker.ext.jsp.TaglibFactory;
import freemarker.ext.servlet.HttpRequestHashModel;
@@ -334,6 +336,9 @@ public class FreemarkerManager {
configuration.setWhitespaceStripping(true);
LOG.debug("Sets NewBuiltinClassResolver to TemplateClassResolver.SAFER_RESOLVER");
configuration.setNewBuiltinClassResolver(TemplateClassResolver.SAFER_RESOLVER);
LOG.debug("Sets HTML as an output format and escaping policy");
configuration.setAutoEscapingPolicy(Configuration.ENABLE_IF_DEFAULT_AUTO_ESCAPING_POLICY);
configuration.setOutputFormat(HTMLOutputFormat.INSTANCE);
return configuration;
}
@@ -63,17 +63,17 @@
<ol>
<#list msgs as msg>
<#if (msg?is_method)>
<li>${msg[0]?html}</li>
<li>${msg[0]}</li>
<#else>
<li>${msg?html}</li>
<li>${msg}</li>
</#if>
</#list>
</ol>
<#elseif (msgs?size == 1)>
<#if (msgs[0]?is_method)>
<li>${msgs[0][0]?html}</li>
<li>${msgs[0][0]}</li>
<#else>
<li>${msgs[0]?html}</li>
<li>${msgs[0]}</li>
</#if>
</#if>
</td>
@@ -107,12 +107,12 @@
<#list snippet as line>
<#if (line_index == 2)>
<#if (rootloc.columnNumber >= 3)>
<pre style="background:yellow">${(line[0..(rootloc.columnNumber-3)]?html)}<span style="background:red">${(line[(rootloc.columnNumber-2)]?html)}</span><#if ((rootloc.columnNumber)<line.length())>${(line[(rootloc.columnNumber-1)..]?html)}</#if></pre>
<pre style="background:yellow">${(line[0..(rootloc.columnNumber-3)])}<span style="background:red">${(line[(rootloc.columnNumber-2)])}</span><#if ((rootloc.columnNumber)<line.length())>${(line[(rootloc.columnNumber-1)..])}</#if></pre>
<#else>
<pre style="background:yellow">${line?html}</pre>
<pre style="background:yellow">${line}</pre>
</#if>
<#else>
<pre>${line?html}</pre>
<pre>${line}</pre>
</#if>
</#list>
</div>
@@ -124,11 +124,11 @@
<h3>Stacktraces</h3>
<#list chain as ex>
<div class="stacktrace" style="padding-left: ${ex_index * 2}em">
<strong>${ex?html}</strong>
<strong>${ex}</strong>
<div>
<pre>
<#list ex.stackTrace as frame>
${frame?html}
${frame}
</#list>
</pre>
</div>
@@ -34,7 +34,7 @@ lables
errorFor="${parameters.id}"<#rt/>
</#if>
class="errorMessage">
${error?html}
${error}
</div><#t/>
</#list>
</div><#t/>
@@ -49,14 +49,14 @@ lables
<#if parameters.id??>id="wwlbl_${parameters.id}"<#rt/></#if> class="wwlbl">
<label<#t/>
<#if parameters.id??>
for="${parameters.id?html}"<#rt/>
for="${parameters.id}"<#rt/>
</#if>
<#if hasFieldErrors>
class="checkboxErrorLabel"<#rt/>
<#else>
class="label"<#rt/>
</#if>
>${parameters.label?html}</label><#rt/>
>${parameters.label}</label><#rt/>
</span>
</#if>
@@ -87,14 +87,14 @@ lables
<#if parameters.id??>id="wwlbl_${parameters.id}"<#rt/></#if> class="wwlbl">
<label<#t/>
<#if parameters.id??>
for="${parameters.id?html}"<#rt/>
for="${parameters.id}"<#rt/>
</#if>
<#if hasFieldErrors>
class="checkboxErrorLabel"<#rt/>
<#else>
class="checkboxLabel"<#rt/>
</#if>
>${parameters.label?html}</label><#rt/>
>${parameters.label}</label><#rt/>
</#if>
</#if>
<#if parameters.label??>
@@ -40,7 +40,7 @@ ${parameters.after!}<#t/>
errorFor="${parameters.id}"<#rt/>
</#if>
class="errorMessage">
${error?html}
${error}
</div><#t/>
</#list>
</div><#t/>
@@ -34,7 +34,7 @@
errorFor="${parameters.id}"<#rt/>
</#if>
class="errorMessage">
${error?html}
${error}
</div><#t/>
</#list>
</div><#t/>
@@ -55,7 +55,7 @@
<#if parameters.id??>id="wwlbl_${parameters.id}"<#rt/></#if> class="wwlbl">
<label <#t/>
<#if parameters.id??>
for="${parameters.id?html}" <#t/>
for="${parameters.id}" <#t/>
</#if>
<#if hasFieldErrors>
class="errorLabel"<#t/>
@@ -66,7 +66,7 @@
<#if parameters.required!false>
<span class="required">*</span><#t/>
</#if>
${parameters.label?html}${parameters.labelseparator!":"?html}
${parameters.label}${parameters.labelseparator!":"}
<#include "/${parameters.templateDir}/xhtml/tooltip.ftl" />
</label><#t/>
<#if (labelpos!"top") == 'top'>
@@ -22,19 +22,19 @@
<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlheader.ftl" />
<label<#rt/>
<#if parameters.id??>
id="${parameters.id?html}"<#rt/>
id="${parameters.id}"<#rt/>
</#if>
<#if parameters.cssClass??>
class="${parameters.cssClass?html}"<#rt/>
class="${parameters.cssClass}"<#rt/>
</#if>
<#if parameters.cssStyle??>
style="${parameters.cssStyle?html}"<#rt/>
style="${parameters.cssStyle}"<#rt/>
</#if>
<#if parameters.cssClass??>
class="${parameters.cssClass?html}"<#rt/>
class="${parameters.cssClass}"<#rt/>
</#if>
<#if parameters.for??>
for="${parameters.for?html}"<#rt/>
for="${parameters.for}"<#rt/>
</#if>
><#rt/>
<#if parameters.nameValue??>
@@ -20,22 +20,22 @@
-->
<a<#rt/>
<#if parameters.id??>
id="${parameters.id?html}"<#rt/>
id="${parameters.id}"<#rt/>
</#if>
<#if parameters.href??>
href="${parameters.href}"<#rt/>
href="${parameters.href?no_esc}"<#rt/>
</#if>
<#if parameters.tabindex??>
tabindex="${parameters.tabindex?html}"<#rt/>
tabindex="${parameters.tabindex}"<#rt/>
</#if>
<#if parameters.cssClass??>
class="${parameters.cssClass?html}"<#rt/>
class="${parameters.cssClass}"<#rt/>
</#if>
<#if parameters.cssStyle??>
style="${parameters.cssStyle?html}"<#rt/>
style="${parameters.cssStyle}"<#rt/>
</#if>
<#if parameters.title??>
title="${parameters.title?html}"<#rt/>
title="${parameters.title}"<#rt/>
</#if>
<#include "/${parameters.templateDir}/${parameters.expandTheme}/scripting-events.ftl" />
<#include "/${parameters.templateDir}/${parameters.expandTheme}/common-attributes.ftl" />
@@ -21,20 +21,20 @@
<#if (actionErrors?? && actionErrors?size > 0)>
<ul<#rt/>
<#if parameters.id??>
id="${parameters.id?html}"<#rt/>
id="${parameters.id}"<#rt/>
</#if>
<#if parameters.cssClass??>
class="${parameters.cssClass?html}"<#rt/>
class="${parameters.cssClass}"<#rt/>
<#else>
class="errorMessage"<#rt/>
</#if>
<#if parameters.cssStyle??>
style="${parameters.cssStyle?html}"<#rt/>
style="${parameters.cssStyle}"<#rt/>
</#if>
>
<#list actionErrors as error>
<#if error??>
<li><span><#if parameters.escape>${error!?html}<#else>${error!}</#if></span><#rt/></li><#rt/>
<li><span><#if parameters.escape>${error!}<#else>${error!?no_esc}</#if></span><#rt/></li><#rt/>
</#if>
</#list>
</ul>
@@ -21,20 +21,20 @@
<#if (actionMessages?? && actionMessages?size > 0 && !parameters.isEmptyList)>
<ul<#rt/>
<#if parameters.id??>
id="${parameters.id?html}"<#rt/>
id="${parameters.id}"<#rt/>
</#if>
<#if parameters.cssClass??>
class="${parameters.cssClass?html}"<#rt/>
class="${parameters.cssClass}"<#rt/>
<#else>
class="actionMessage"<#rt/>
</#if>
<#if parameters.cssStyle??>
style="${parameters.cssStyle?html}"<#rt/>
style="${parameters.cssStyle}"<#rt/>
</#if>
>
<#list actionMessages as message>
<#if message??>
<li><span><#if parameters.escape>${message!?html}<#else>${message!}</#if></span></li>
<li><span><#if parameters.escape>${message!}<#else>${message!?no_esc}</#if></span></li>
</#if>
</#list>
</ul>
@@ -18,7 +18,7 @@
* under the License.
*/
-->
<input type="checkbox" name="${parameters.name?html}" value="${parameters.fieldValue?html}"<#rt/>
<input type="checkbox" name="${parameters.name}" value="${parameters.fieldValue}"<#rt/>
<#if parameters.nameValue?? && parameters.nameValue>
checked="checked"<#rt/>
</#if>
@@ -26,21 +26,21 @@
disabled="disabled"<#rt/>
</#if>
<#if parameters.tabindex?has_content>
tabindex="${parameters.tabindex?html}"<#rt/>
tabindex="${parameters.tabindex}"<#rt/>
</#if>
<#if parameters.id?has_content>
id="${parameters.id?html}"<#rt/>
id="${parameters.id}"<#rt/>
</#if>
<#include "/${parameters.templateDir}/${parameters.expandTheme}/css.ftl" />
<#if parameters.title?has_content>
title="${parameters.title?html}"<#rt/>
title="${parameters.title}"<#rt/>
</#if>
<#include "/${parameters.templateDir}/${parameters.expandTheme}/scripting-events.ftl" />
<#include "/${parameters.templateDir}/${parameters.expandTheme}/common-attributes.ftl" />
<#include "/${parameters.templateDir}/${parameters.expandTheme}/dynamic-attributes.ftl" />
/>
<#if parameters.submitUnchecked!false>
<input type="hidden" id="__checkbox_${parameters.id?html}" name="__checkbox_${parameters.name?html}" value="${parameters.fieldValue?html}"<#rt/>
<input type="hidden" id="__checkbox_${parameters.id}" name="__checkbox_${parameters.name}" value="${parameters.fieldValue}"<#rt/>
<#if parameters.disabled!false>
disabled="disabled"<#rt/>
</#if>
@@ -59,11 +59,11 @@
<#assign itemTitle = ''/>
</#if>
</#if>
<input type="checkbox" name="${parameters.name?html}" value="${itemKeyStr?html}"<#rt/>
<input type="checkbox" name="${parameters.name}" value="${itemKeyStr}"<#rt/>
<#if parameters.id?has_content>
id="${parameters.id?html}-${itemCount}"<#rt/>
id="${parameters.id}-${itemCount}"<#rt/>
<#else>
id="${parameters.name?html}-${itemCount}"<#rt/>
id="${parameters.name}-${itemCount}"<#rt/>
</#if>
<#if tag.contains(parameters.nameValue, itemKey)>
checked="checked"<#rt/>
@@ -72,24 +72,24 @@
disabled="disabled"<#rt/>
</#if>
<#if itemCssClass??>
class="${itemCssClass?html}"<#rt/>
class="${itemCssClass}"<#rt/>
<#else>
<#if parameters.cssClass?has_content>
class="${parameters.cssClass?html}"<#rt/>
class="${parameters.cssClass}"<#rt/>
</#if>
</#if>
<#if itemCssStyle??>
style="${itemCssStyle?html}"<#rt/>
style="${itemCssStyle}"<#rt/>
<#else>
<#if parameters.cssStyle?has_content>
style="${parameters.cssStyle?html}"<#rt/>
style="${parameters.cssStyle}"<#rt/>
</#if>
</#if>
<#if itemTitle??>
title="${itemTitle?html}"<#rt/>
title="${itemTitle}"<#rt/>
<#else>
<#if parameters.title?has_content>
title="${parameters.title?html}"<#rt/>
title="${parameters.title}"<#rt/>
</#if>
</#if>
<#include "/${parameters.templateDir}/${parameters.expandTheme}/css.ftl" />
@@ -99,16 +99,16 @@
/>
<label<#rt/>
<#if parameters.id?has_content>
for="${parameters.id?html}-${itemCount}"<#rt/>
for="${parameters.id}-${itemCount}"<#rt/>
<#else>
for="${parameters.name?html}-${itemCount}"<#rt/>
for="${parameters.name}-${itemCount}"<#rt/>
</#if>
class="checkboxLabel">${itemValue?html}</label>
class="checkboxLabel">${itemValue}</label>
</@s.iterator>
<#else>
&nbsp;
</#if>
<input type="hidden" id="__multiselect_${parameters.id?html}" name="__multiselect_${parameters.name?html}"
<input type="hidden" id="__multiselect_${parameters.id}" name="__multiselect_${parameters.name}"
value=""<#rt/>
<#if parameters.disabled!false>
disabled="disabled"<#rt/>
@@ -19,9 +19,9 @@
*/
-->
<script type="text/javascript">
function autoPopulate_${parameters.escapedId?html}(targetElement) {
function autoPopulate_${parameters.escapedId}(targetElement) {
<#if parameters.headerKey?? && parameters.headerValue??>
if (targetElement.options[targetElement.selectedIndex].value == '${parameters.headerKey?html}') {
if (targetElement.options[targetElement.selectedIndex].value == '${parameters.headerKey}') {
return;
}
</#if>
@@ -30,20 +30,20 @@
return;
}
</#if>
targetElement.form.elements['${parameters.name?html}'].value=targetElement.options[targetElement.selectedIndex].value;
targetElement.form.elements['${parameters.name}'].value=targetElement.options[targetElement.selectedIndex].value;
}
</script>
<#include "/${parameters.templateDir}/simple/text.ftl" />
<br />
<#if parameters.list??>
<select onChange="autoPopulate_${parameters.escapedId?html}(this);"<#rt/>
<select onChange="autoPopulate_${parameters.escapedId}(this);"<#rt/>
<#include "/${parameters.templateDir}/${parameters.expandTheme}/css.ftl" />
<#if parameters.disabled!false>
disabled="disabled"<#rt/>
</#if>
>
<#if (parameters.headerKey?? && parameters.headerValue??)>
<option value="${parameters.headerKey?html}">${parameters.headerValue?html}</option>
<option value="${parameters.headerKey}">${parameters.headerValue}</option>
</#if>
<#if parameters.emptyOption!false>
<option value=""></option>
@@ -80,21 +80,21 @@
<#assign itemTitle = ''/>
</#if>
</#if>
<option value="${tmpListKey?html}"<#rt/>
<option value="${tmpListKey}"<#rt/>
<#if (parameters.nameValue == tmpListKey)>
selected="selected"<#rt/>
</#if>
<#if itemCssClass??>
class="${itemCssClass?html}"<#rt/>
class="${itemCssClass}"<#rt/>
</#if>
<#if itemCssStyle??>
style="${itemCssStyle?html}"<#rt/>
style="${itemCssStyle}"<#rt/>
</#if>
<#if itemTitle??>
title="${itemTitle?html}"<#rt/>
title="${itemTitle}"<#rt/>
</#if>
><#t/>
${tmpListValue?html}<#t/>
${tmpListValue}<#t/>
</option><#lt/>
</@s.iterator>
</select>
@@ -19,5 +19,5 @@
*/
-->
<#if parameters.accesskey?has_content>
accesskey="${parameters.accesskey?html}"
accesskey="${parameters.accesskey}"
</#if>
@@ -20,14 +20,14 @@
-->
<#assign hasFieldErrors = parameters.name?? && fieldErrors?? && fieldErrors[parameters.name]??/>
<#if parameters.cssClass?has_content && !(hasFieldErrors && parameters.cssErrorClass??)>
class="${parameters.cssClass?html}"<#rt/>
class="${parameters.cssClass}"<#rt/>
<#elseif parameters.cssClass?has_content && (hasFieldErrors && parameters.cssErrorClass??)>
class="${parameters.cssClass?html} ${parameters.cssErrorClass?html}"<#rt/>
class="${parameters.cssClass} ${parameters.cssErrorClass}"<#rt/>
<#elseif !(parameters.cssClass?has_content) && (hasFieldErrors && parameters.cssErrorClass??)>
class="${parameters.cssErrorClass?html}"<#rt/>
class="${parameters.cssErrorClass}"<#rt/>
</#if>
<#if parameters.cssStyle?has_content && !(hasFieldErrors && (parameters.cssErrorStyle?? || parameters.cssErrorClass??))>
style="${parameters.cssStyle?html}"<#rt/>
style="${parameters.cssStyle}"<#rt/>
<#elseif hasFieldErrors && parameters.cssErrorStyle??>
style="${parameters.cssErrorStyle?html}"<#rt/>
style="${parameters.cssErrorStyle}"<#rt/>
</#if>
@@ -42,8 +42,8 @@
</style>
<br>
<a href="#" onclick="toggleDebug('<#if parameters.id??>${parameters.id?html}<#else>debug</#if>');return false;">[Debug]</a>
<div style="display:none" id="<#if parameters.id??>${parameters.id?html}<#else>debug</#if>">
<a href="#" onclick="toggleDebug('<#if parameters.id??>${parameters.id}<#else>debug</#if>');return false;">[Debug]</a>
<div style="display:none" id="<#if parameters.id??>${parameters.id}<#else>debug</#if>">
<h2>Struts ValueStack Debug</h2>
<br>
@@ -60,8 +60,8 @@
<#list stackObject.value.keySet() as propertyName>
<#if renderRow==true></tr><tr><#else> <#assign renderRow=false> </#if>
<td style="background-color:<#if (index % 2) == 0>#BBBBBB<#else>#CCCCCC</#if>;">${propertyName}</td>
<td style="background-color:<#if (index % 2) == 0>#BBBBBB<#else>#CCCCCC</#if>;"><#if stackObject.value.get(propertyName)??>${stackObject.value.get(propertyName).toString()?html}<#else>null</#if></td>
<td style="background-color:<#if (index % 2) == 0>#BBBBBB<#else>#CCCCCC</#if>;"><#if stackObject.value.get(propertyName)??>${stackObject.value.get(propertyName).class?html}<#else>null</#if></td>
<td style="background-color:<#if (index % 2) == 0>#BBBBBB<#else>#CCCCCC</#if>;"><#if stackObject.value.get(propertyName)??>${stackObject.value.get(propertyName).toString()}<#else>null</#if></td>
<td style="background-color:<#if (index % 2) == 0>#BBBBBB<#else>#CCCCCC</#if>;"><#if stackObject.value.get(propertyName)??>${stackObject.value.get(propertyName).class}<#else>null</#if></td>
</tr>
<#assign index= index + 1>
</#list>
@@ -80,7 +80,7 @@
<#list stack.context.keySet() as contextKey>
<tr style="background-color:<#if (index % 2) == 0>#BBBBBB<#else>#CCCCCC</#if>;">
<td>${contextKey}</td>
<td><#if stack.context.get(contextKey)??>${struts.toStringSafe(stack.context.get(contextKey))?html} (${struts.toStringSafe(stack.context.get(contextKey).class)?html})<#else>null</#if></td>
<td><#if stack.context.get(contextKey)??>${struts.toStringSafe(stack.context.get(contextKey))} (${struts.toStringSafe(stack.context.get(contextKey).class)})<#else>null</#if></td>
</tr>
<#assign index= index + 1>
</#list>
@@ -29,30 +29,30 @@
<br/>
<select<#rt/>
name="${(parameters.doubleName!"")?html}"<#rt/>
name="${(parameters.doubleName!"")}"<#rt/>
<#if parameters.disabled!false>
disabled="disabled"<#rt/>
</#if>
<#if parameters.doubleTabindex?has_content>
tabindex="${parameters.doubleTabindex?html}"<#rt/>
tabindex="${parameters.doubleTabindex}"<#rt/>
</#if>
<#if parameters.doubleId?has_content>
id="${parameters.doubleId?html}"<#rt/>
id="${parameters.doubleId}"<#rt/>
</#if>
<#if parameters.doubleCss?has_content>
class="${parameters.doubleCss?html}"<#rt/>
class="${parameters.doubleCss}"<#rt/>
</#if>
<#if parameters.doubleStyle?has_content>
style="${parameters.doubleStyle?html}"<#rt/>
style="${parameters.doubleStyle}"<#rt/>
</#if>
<#if parameters.title?has_content>
title="${parameters.title?html}"<#rt/>
title="${parameters.title}"<#rt/>
</#if>
<#if parameters.multiple!false>
multiple="multiple"<#rt/>
</#if>
<#if parameters.get("doubleSize")?has_content>
size="${parameters.get("doubleSize")?html}"<#rt/>
size="${parameters.get("doubleSize")}"<#rt/>
</#if>
<#if parameters.doubleMultiple!false>
multiple="multiple"<#rt/>
@@ -63,8 +63,8 @@
>
</select>
<#if parameters.doubleMultiple!false>
<input type="hidden" id="__multiselect_${parameters.doubleId?html}"
name="__multiselect_${(parameters.doubleName!"")?html}" value=""<#rt/>
<input type="hidden" id="__multiselect_${parameters.doubleId}"
name="__multiselect_${(parameters.doubleName!"")}" value=""<#rt/>
<#if parameters.doubleDisabled!false>
disabled="disabled"<#rt/>
</#if>
@@ -132,13 +132,13 @@
</#if>
${parameters.id}Group[${itemCount}][${doubleItemCount}] = new Option("${doubleItemValue?js_string}", "${doubleItemKeyStr?js_string}");
<#if itemDoubleCssClass??>
${parameters.id}Group[${itemCount}][${doubleItemCount}].setAttribute("class","${itemDoubleCssClass?html}");
${parameters.id}Group[${itemCount}][${doubleItemCount}].setAttribute("class","${itemDoubleCssClass}");
</#if>
<#if itemDoubleCssStyle??>
${parameters.id}Group[${itemCount}][${doubleItemCount}].setAttribute("style","${itemDoubleCssStyle?html}");
${parameters.id}Group[${itemCount}][${doubleItemCount}].setAttribute("style","${itemDoubleCssStyle}");
</#if>
<#if itemDoubleTitle??>
${parameters.id}Group[${itemCount}][${doubleItemCount}].setAttribute("title","${itemDoubleTitle?html}");
${parameters.id}Group[${itemCount}][${doubleItemCount}].setAttribute("title","${itemDoubleTitle}");
</#if>
<#assign doubleItemCount = doubleItemCount + 1/>
@@ -27,6 +27,6 @@
<#else>
<#assign value = keyValue?string/>
</#if>
${aKey}="${value?html}"<#rt/>
${aKey}="${value}"<#rt/>
</#list><#rt/>
</#if><#rt/>
@@ -33,21 +33,21 @@
<#if (haveMatchedErrorField && (!doneStartUlTag))><#t/>
<ul<#rt/>
<#if parameters.id?has_content>
id="${parameters.id?html}"<#rt/>
id="${parameters.id}"<#rt/>
</#if>
<#if parameters.cssClass?has_content>
class="${parameters.cssClass?html}"<#rt/>
class="${parameters.cssClass}"<#rt/>
<#else>
class="errorMessage"<#rt/>
</#if>
<#if parameters.cssStyle?has_content>
style="${parameters.cssStyle?html}"<#rt/>
style="${parameters.cssStyle}"<#rt/>
</#if>
>
<#assign doneStartUlTag=true><#t/>
</#if><#t/>
<#list eValue as eEachValue><#t/>
<li><span><#if parameters.escape>${eEachValue!?html}<#else>${eEachValue!}</#if></span></li>
<li><span><#if parameters.escape>${eEachValue!}<#else>${eEachValue!?no_esc}</#if></span></li>
</#list><#t/>
</#if><#t/>
</#list><#t/>
@@ -60,18 +60,18 @@
<#if (eKeysSize > 0)><#t/>
<ul<#rt/>
<#if parameters.cssClass?has_content>
class="${parameters.cssClass?html}"<#rt/>
class="${parameters.cssClass}"<#rt/>
<#else>
class="errorMessage"<#rt/>
</#if>
<#if parameters.cssStyle?has_content>
style="${parameters.cssStyle?html}"<#rt/>
style="${parameters.cssStyle}"<#rt/>
</#if>
>
<#list eKeys as eKey><#t/>
<#assign eValue = fieldErrors[eKey]><#t/>
<#list eValue as eEachValue><#t/>
<li><span><#if parameters.escape>${eEachValue!?html}<#else>${eEachValue!}</#if></span></li>
<li><span><#if parameters.escape>${eEachValue!}<#else>${eEachValue!?no_esc}</#if></span></li>
</#list><#t/>
</#list><#t/>
</ul>
@@ -19,25 +19,25 @@
*/
-->
<input type="file"<#rt/>
name="${(parameters.name!"")?html}"<#rt/>
name="${(parameters.name!"")}"<#rt/>
<#if parameters.get("size")?has_content>
size="${parameters.get("size")?html}"<#rt/>
size="${parameters.get("size")}"<#rt/>
</#if>
<#if parameters.disabled!false>
disabled="disabled"<#rt/>
</#if>
<#if parameters.accept?has_content>
accept="${parameters.accept?html}"<#rt/>
accept="${parameters.accept}"<#rt/>
</#if>
<#if parameters.tabindex?has_content>
tabindex="${parameters.tabindex?html}"<#rt/>
tabindex="${parameters.tabindex}"<#rt/>
</#if>
<#if parameters.id?has_content>
id="${parameters.id?html}"<#rt/>
id="${parameters.id}"<#rt/>
</#if>
<#include "/${parameters.templateDir}/${parameters.expandTheme}/css.ftl" />
<#if parameters.title?has_content>
title="${parameters.title?html}"<#rt/>
title="${parameters.title}"<#rt/>
</#if>
<#include "/${parameters.templateDir}/${parameters.expandTheme}/scripting-events.ftl" />
<#include "/${parameters.templateDir}/${parameters.expandTheme}/common-attributes.ftl" />
@@ -27,41 +27,41 @@
</#if>
<form<#rt/>
<#if parameters.id?has_content>
id="${parameters.id?html}"<#rt/>
id="${parameters.id}"<#rt/>
</#if>
<#if parameters.name?has_content>
name="${parameters.name?html}"<#rt/>
name="${parameters.name}"<#rt/>
</#if>
<#if parameters.onsubmit?has_content>
onsubmit="${parameters.onsubmit?html}"<#rt/>
onsubmit="${parameters.onsubmit}"<#rt/>
</#if>
<#if parameters.onreset?has_content>
onreset="${parameters.onreset?html}"<#rt/>
onreset="${parameters.onreset}"<#rt/>
</#if>
<#if parameters.action?has_content>
action="${parameters.action?html}"<#rt/>
action="${parameters.action}"<#rt/>
</#if>
<#if parameters.target?has_content>
target="${parameters.target?html}"<#rt/>
target="${parameters.target}"<#rt/>
</#if>
<#if parameters.method?has_content>
method="${parameters.method?html}"<#rt/>
method="${parameters.method}"<#rt/>
<#else>
method="post"<#rt/>
</#if>
<#if parameters.enctype?has_content>
enctype="${parameters.enctype?html}"<#rt/>
enctype="${parameters.enctype}"<#rt/>
</#if>
<#if parameters.cssClass?has_content>
class="${parameters.cssClass?html}"<#rt/>
class="${parameters.cssClass}"<#rt/>
</#if>
<#if parameters.cssStyle?has_content>
style="${parameters.cssStyle?html}"<#rt/>
style="${parameters.cssStyle}"<#rt/>
</#if>
<#if parameters.title?has_content>
title="${parameters.title?html}"<#rt/>
title="${parameters.title}"<#rt/>
</#if>
<#if parameters.acceptcharset?has_content>
accept-charset="${parameters.acceptcharset?html}"<#rt/>
accept-charset="${parameters.acceptcharset}"<#rt/>
</#if>
<#include "/${parameters.templateDir}/${parameters.expandTheme}/dynamic-attributes.ftl" />
@@ -20,6 +20,6 @@
-->
<#include "/${parameters.templateDir}/${parameters.expandTheme}/form-common.ftl" />
<#if parameters.onreset?has_content>
onreset="${parameters.onreset?html}"<#rt/>
onreset="${parameters.onreset}"<#rt/>
</#if>
>
@@ -19,18 +19,18 @@
*/
-->
<input type="hidden"<#rt/>
name="${(parameters.name!"")?html}"<#rt/>
name="${(parameters.name!"")}"<#rt/>
<#if parameters.nameValue??>
value="<@s.property value="parameters.nameValue"/>"<#rt/>
</#if>
<#if parameters.id?has_content>
id="${parameters.id?html}"<#rt/>
id="${parameters.id}"<#rt/>
</#if>
<#if parameters.cssClass?has_content>
class="${parameters.cssClass?html}"<#rt/>
class="${parameters.cssClass}"<#rt/>
</#if>
<#if parameters.cssStyle?has_content>
style="${parameters.cssStyle?html}"<#rt/>
style="${parameters.cssStyle}"<#rt/>
</#if>
<#if parameters.disabled!false>
disabled="disabled"<#rt/>
@@ -31,7 +31,7 @@
<input type="text"<#rt/>
name="${parameters.name!""?html}_input"<#rt/>
name="${parameters.name!""}_input"<#rt/>
<#if parameters.disabled!false>
disabled="disabled"<#rt/>
</#if>
@@ -39,19 +39,19 @@
readonly="readonly"<#rt/>
</#if>
<#if parameters.tabindex?has_content>
tabindex="${parameters.tabindex?html}"<#rt/>
tabindex="${parameters.tabindex}"<#rt/>
</#if>
<#if parameters.id?has_content>
id="${parameters.id?html}_input"<#rt/>
id="${parameters.id}_input"<#rt/>
</#if>
<#if parameters.cssClass?has_content>
class="${parameters.cssClass?html}"<#rt/>
class="${parameters.cssClass}"<#rt/>
</#if>
<#if parameters.cssStyle?has_content>
style="${parameters.cssStyle?html}"<#rt/>
style="${parameters.cssStyle}"<#rt/>
</#if>
<#if parameters.title?has_content>
title="${parameters.title?html}"<#rt/>
title="${parameters.title}"<#rt/>
</#if>
<#include "/${parameters.templateDir}/${parameters.expandTheme}/scripting-events.ftl" />
<#include "/${parameters.templateDir}/${parameters.expandTheme}/common-attributes.ftl" />
@@ -60,35 +60,35 @@
</td>
<td class="tdTransferSelect">
<#assign addLabel=(parameters.addLabel!"->")?html /><#t/>
<#assign addLabel=(parameters.addLabel!"->") /><#t/>
<input type="button"
<#if parameters.buttonCssClass?has_content><#t/>
class="${parameters.buttonCssClass?html}"
class="${parameters.buttonCssClass}"
</#if><#t/>
<#if parameters.buttonCssStyle?has_content>
style="${parameters.buttonCssStyle?html}"
style="${parameters.buttonCssStyle}"
</#if><#t/>
value="${addLabel}" onclick="addOption(document.getElementById('${parameters.id?html}_input'), document.getElementById('${parameters.id?html}'))" /><br /><br />
value="${addLabel}" onclick="addOption(document.getElementById('${parameters.id}_input'), document.getElementById('${parameters.id}'))" /><br /><br />
<#t/>
<#assign removeLabel=(parameters.removeLabel!"<-")?html /><#t/>
<#assign removeLabel=(parameters.removeLabel!"<-") /><#t/>
<input type="button"
<#if parameters.buttonCssClass?has_content><#t/>
class="${parameters.buttonCssClass?html}"
class="${parameters.buttonCssClass}"
</#if><#t/>
<#if parameters.buttonCssStyle?has_content>
style="${parameters.buttonCssStyle?html}"
style="${parameters.buttonCssStyle}"
</#if><#t/>
value="${removeLabel}" onclick="removeOptions(document.getElementById('${parameters.id?html}'))" /><br /><br />
value="${removeLabel}" onclick="removeOptions(document.getElementById('${parameters.id}'))" /><br /><br />
<#t/>
<#assign removeAllLabel=(parameters.removeAllLabel!"<<--")?html /><#t/>
<#assign removeAllLabel=(parameters.removeAllLabel!"<<--") /><#t/>
<input type="button"
<#if parameters.buttonCssClass?has_content><#t/>
class="${parameters.buttonCssClass?html}"
class="${parameters.buttonCssClass}"
</#if><#t/>
<#if parameters.buttonCssStyle?has_content>
style="${parameters.buttonCssStyle?html}"
style="${parameters.buttonCssStyle}"
</#if><#t/>
value="${removeAllLabel}" onclick="removeAllOptions(document.getElementById('${parameters.id?html}'))" /><br /><br />
value="${removeAllLabel}" onclick="removeAllOptions(document.getElementById('${parameters.id}'))" /><br /><br />
</td>
<td>
<#if parameters.rightTitle?has_content><#t/>
@@ -103,7 +103,7 @@
onclick="moveOptionDown(document.getElementById('${parameters.id}'), 'key', '');"
</#if>
<#if parameters.downLabel?has_content>
value="${parameters.downLabel?html}"
value="${parameters.downLabel}"
</#if>
/>
<input type="button"
@@ -113,7 +113,7 @@
onclick="moveOptionUp(document.getElementById('${parameters.id}'), 'key', '');"
</#if>
<#if parameters.upLabel?has_content>
value="${parameters.upLabel?html}"
value="${parameters.upLabel}"
</#if>
/>
</#if>
@@ -20,14 +20,14 @@
-->
<label<#rt/>
<#if parameters.id?has_content>
id="${parameters.id?html}"<#rt/>
id="${parameters.id}"<#rt/>
</#if>
<#include "/${parameters.templateDir}/${parameters.expandTheme}/css.ftl" />
<#if parameters.title?has_content>
title="${parameters.title?html}"<#rt/>
title="${parameters.title}"<#rt/>
</#if>
<#if parameters.for?has_content>
for="${parameters.for?html}"<#rt/>
for="${parameters.for}"<#rt/>
</#if>
<#include "/${parameters.templateDir}/${parameters.expandTheme}/common-attributes.ftl" />
<#include "/${parameters.templateDir}/${parameters.expandTheme}/dynamic-attributes.ftl" />
@@ -47,20 +47,20 @@
<#if optGroupInternalListUiBean.parameters.listTitle??>
<#assign optGroupItemTitle= stack.findString(optGroupInternalListUiBean.parameters.listTitle)!''/>
</#if>
<option value="${tmpKeyStr?html}"<#rt>
<option value="${tmpKeyStr}"<#rt>
<#if tag.contains(parameters.nameValue, tmpKey) == true>
selected="selected"<#rt>
</#if>
<#if optGroupItemCssClass?has_content>
class="${optGroupItemCssClass?html}"<#rt/>
class="${optGroupItemCssClass}"<#rt/>
</#if>
<#if optGroupItemCssStyle?has_content>
style="${optGroupItemCssStyle?html}"<#rt/>
style="${optGroupItemCssStyle}"<#rt/>
</#if>
<#if optGroupItemTitle?has_content>
title="${optGroupItemTitle?html}"<#rt/>
title="${optGroupItemTitle}"<#rt/>
</#if>
>${tmpValue?html}<#t>
>${tmpValue}<#t>
</option><#lt>
<#assign trash=stack.pop() />
</#list>
@@ -31,15 +31,15 @@
<#include "/${parameters.templateDir}/simple/select.ftl" />
<#if parameters.allowUpDownOnLeft!true>
<input type="button"
onclick="moveOptionDown(document.getElementById('${parameters.id}'), 'key', <#if parameters.headerKey??>'${parameters.headerKey}'<#else>''</#if>);<#if parameters.upDownOnLeftOnclick?has_content>${parameters.upDownOnLeftOnclick};</#if>"
onclick="moveOptionDown(document.getElementById('${parameters.id}'), 'key', <#if parameters.headerKey??>'${parameters.headerKey}'<#else>''</#if>);<#if parameters.upDownOnLeftOnclick?has_content><#outputformat 'JavaScript'>${parameters.upDownOnLeftOnclick}</#outputformat>;</#if>"
<#if parameters.leftDownLabel??>
value="${parameters.leftDownLabel?html}"
value="${parameters.leftDownLabel}"
</#if>
/>
<input type="button"
onclick="moveOptionUp(document.getElementById('${parameters.id}'), 'key', <#if parameters.headerKey??>'${parameters.headerKey}'<#else>''</#if>);<#if parameters.upDownOnLeftOnclick?has_content>${parameters.upDownOnLeftOnclick};</#if>"
onclick="moveOptionUp(document.getElementById('${parameters.id}'), 'key', <#if parameters.headerKey??>'${parameters.headerKey}'<#else>''</#if>);<#if parameters.upDownOnLeftOnclick?has_content><#outputformat 'JavaScript'>${parameters.upDownOnLeftOnclick}</#outputformat>;</#if>"
<#if parameters.leftUpLabel??>
value="${parameters.leftUpLabel?html}"
value="${parameters.leftUpLabel}"
</#if>
/>
</#if>
@@ -47,51 +47,7 @@
</td>
<td class="tdTransferSelect">
<#if parameters.allowAddToLeft!true><#t/>
<#assign addToLeftLabel = parameters.addToLeftLabel!"<-"?html/><#t/>
<#if parameters.doubleHeaderKey??><#t/>
<input type="button"
<#if parameters.buttonCssClass??><#t/>
class="${parameters.buttonCssClass?html}"
</#if><#t/>
<#if parameters.buttonCssStyle??><#t/>
style="${parameters.buttonCssStyle?html}"
</#if><#t/>
value="${addToLeftLabel}" onclick="moveSelectedOptions(document.getElementById('${parameters.doubleId?html}'), document.getElementById('${parameters.id?html}'), false, '${parameters.doubleHeaderKey}', '');<#if parameters.addToLeftOnclick?has_content>${parameters.addToLeftOnclick};</#if>" /><br /><br />
<#else><#t/>
<input type="button"
<#if parameters.buttonCssClass??><#t/>
class="${parameters.buttonCssClass?html}"
</#if><#t/>
<#if parameters.buttonCssStyle??><#t/>
style="${parameters.buttonCssStyle?html}"
</#if><#t/>
value="${addToLeftLabel}" onclick="moveSelectedOptions(document.getElementById('${parameters.doubleId?html}'), document.getElementById('${parameters.id?html}'), false, '');<#if parameters.addToLeftOnclick?has_content>${parameters.addToLeftOnclick};</#if>" /><br /><br />
</#if><#t/>
</#if><#t/>
<#if parameters.allowAddToRight!true><#t/>
<#assign addToRightLabel=parameters.addToRightLabel!"->"?html /><#t/>
<#if parameters.headerKey??><#t/>
<input type="button"
<#if parameters.buttonCssClass??><#t/>
class="${parameters.buttonCssClass?html}"
</#if><#t/>
<#if parameters.buttonCssStyle??><#t/>
style="${parameters.buttonCssStyle?html}"
</#if><#t/>
value="${addToRightLabel}" onclick="moveSelectedOptions(document.getElementById('${parameters.id?html}'), document.getElementById('${parameters.doubleId?html}'), false, '${parameters.headerKey}', '');<#if parameters.addToRightOnclick?has_content>${parameters.addToRightOnclick};</#if>" /><br /><br />
<#else><#t/>
<input type="button"
<#if parameters.buttonCssClass??><#t/>
class="${parameters.buttonCssClass?html}"
</#if><#t/>
<#if parameters.buttonCssStyle??>
style="${parameters.buttonCssStyle?html}"
</#if><#t/>
value="${addToRightLabel}" onclick="moveSelectedOptions(document.getElementById('${parameters.id?html}'), document.getElementById('${parameters.doubleId?html}'), false, '');<#if parameters.addToRightOnclick?has_content>${parameters.addToRightOnclick};</#if>" /><br /><br />
</#if><#t/>
</#if><#t/>
<#if parameters.allowAddAllToLeft!true><#t/>
<#assign addAllToLeftLabel=parameters.addAllToLeftLabel!"<<--"?html /><#t/>
<#assign addToLeftLabel = parameters.addToLeftLabel!"<-"/><#t/>
<#if parameters.doubleHeaderKey??><#t/>
<input type="button"
<#if parameters.buttonCssClass??><#t/>
@@ -100,78 +56,122 @@
<#if parameters.buttonCssStyle??><#t/>
style="${parameters.buttonCssStyle}"
</#if><#t/>
value="${addAllToLeftLabel}" onclick="moveAllOptions(document.getElementById('${parameters.doubleId?html}'), document.getElementById('${parameters.id?html}'), false, '${parameters.doubleHeaderKey}', '');<#if parameters.addAllToLeftOnclick?has_content>${parameters.addAllToLeftOnclick};</#if>" /><br /><br />
value="${addToLeftLabel}" onclick="moveSelectedOptions(document.getElementById('${parameters.doubleId}'), document.getElementById('${parameters.id}'), false, '${parameters.doubleHeaderKey}', '');<#if parameters.addToLeftOnclick?has_content><#outputformat 'JavaScript'>${parameters.addToLeftOnclick}</#outputformat>;</#if>" /><br /><br />
<#else><#t/>
<input type="button"
<#if parameters.buttonCssClass??><#t/>
class="${parameters.buttonCssClass?html}"
class="${parameters.buttonCssClass}"
</#if><#t/>
<#if parameters.buttonCssStyle??><#t/>
style="${parameters.buttonCssStyle?html}"
style="${parameters.buttonCssStyle}"
</#if><#t/>
value="${addAllToLeftLabel}" onclick="moveAllOptions(document.getElementById('${parameters.doubleId?html}'), document.getElementById('${parameters.id?html}'), false, '');<#if parameters.addAllToLeftOnclick?has_content>${parameters.addAllToLeftOnclick};</#if>" /><br /><br />
value="${addToLeftLabel}" onclick="moveSelectedOptions(document.getElementById('${parameters.doubleId}'), document.getElementById('${parameters.id}'), false, '');<#if parameters.addToLeftOnclick?has_content><#outputformat 'JavaScript'>${parameters.addToLeftOnclick}</#outputformat>;</#if>" /><br /><br />
</#if><#t/>
</#if><#t/>
<#if parameters.allowAddAllToRight!true><#t/>
<#assign addAllToRightLabel=parameters.addAllToRightLabel!"-->>"?html /><#t/>
<#if parameters.allowAddToRight!true><#t/>
<#assign addToRightLabel=parameters.addToRightLabel!"->" /><#t/>
<#if parameters.headerKey??><#t/>
<input type="button"
<#if parameters.buttonCssClass??><#t/>
class="${parameters.buttonCssClass?html}"
class="${parameters.buttonCssClass}"
</#if><#t/>
<#if parameters.buttonCssStyle??><#t/>
style="${parameters.buttonCssStyle?html}"
style="${parameters.buttonCssStyle}"
</#if><#t/>
value="${addAllToRightLabel}" onclick="moveAllOptions(document.getElementById('${parameters.id?html}'), document.getElementById('${parameters.doubleId?html}'), false, '${parameters.headerKey}', '');<#if parameters.addAllToRightOnclick?has_content>${parameters.addAllToRightOnclick};</#if>" /><br /><br />
value="${addToRightLabel}" onclick="moveSelectedOptions(document.getElementById('${parameters.id}'), document.getElementById('${parameters.doubleId}'), false, '${parameters.headerKey}', '');<#if parameters.addToRightOnclick?has_content><#outputformat 'JavaScript'>${parameters.addToRightOnclick}</#outputformat>;</#if>" /><br /><br />
<#else><#t/>
<input type="button"
<#if parameters.buttonCssClass??><#t/>
class="${parameters.buttonCssClass?html}"
class="${parameters.buttonCssClass}"
</#if><#t/>
<#if parameters.buttonCssStyle??>
style="${parameters.buttonCssStyle}"
</#if><#t/>
value="${addToRightLabel}" onclick="moveSelectedOptions(document.getElementById('${parameters.id}'), document.getElementById('${parameters.doubleId}'), false, '');<#if parameters.addToRightOnclick?has_content><#outputformat 'JavaScript'>${parameters.addToRightOnclick}</#outputformat>;</#if>" /><br /><br />
</#if><#t/>
</#if><#t/>
<#if parameters.allowAddAllToLeft!true><#t/>
<#assign addAllToLeftLabel=parameters.addAllToLeftLabel!"<<--" /><#t/>
<#if parameters.doubleHeaderKey??><#t/>
<input type="button"
<#if parameters.buttonCssClass??><#t/>
class="${parameters.buttonCssClass}"
</#if><#t/>
<#if parameters.buttonCssStyle??><#t/>
style="${parameters.buttonCssStyle?html}"
style="${parameters.buttonCssStyle}"
</#if><#t/>
value="${addAllToRightLabel}" onclick="moveAllOptions(document.getElementById('${parameters.id?html}'), document.getElementById('${parameters.doubleId?html}'), false, '');<#if parameters.addAllToRightOnclick?has_content>${parameters.addAllToRightOnclick};</#if>" /><br /><br />
value="${addAllToLeftLabel}" onclick="moveAllOptions(document.getElementById('${parameters.doubleId}'), document.getElementById('${parameters.id}'), false, '${parameters.doubleHeaderKey}', '');<#if parameters.addAllToLeftOnclick?has_content><#outputformat 'JavaScript'>${parameters.addAllToLeftOnclick}</#outputformat>;</#if>" /><br /><br />
<#else><#t/>
<input type="button"
<#if parameters.buttonCssClass??><#t/>
class="${parameters.buttonCssClass}"
</#if><#t/>
<#if parameters.buttonCssStyle??><#t/>
style="${parameters.buttonCssStyle}"
</#if><#t/>
value="${addAllToLeftLabel}" onclick="moveAllOptions(document.getElementById('${parameters.doubleId}'), document.getElementById('${parameters.id}'), false, '');<#if parameters.addAllToLeftOnclick?has_content><#outputformat 'JavaScript'>${parameters.addAllToLeftOnclick}</#outputformat>;</#if>" /><br /><br />
</#if><#t/>
</#if><#t/>
<#if parameters.allowAddAllToRight!true><#t/>
<#assign addAllToRightLabel=parameters.addAllToRightLabel!"-->>" /><#t/>
<#if parameters.headerKey??><#t/>
<input type="button"
<#if parameters.buttonCssClass??><#t/>
class="${parameters.buttonCssClass}"
</#if><#t/>
<#if parameters.buttonCssStyle??><#t/>
style="${parameters.buttonCssStyle}"
</#if><#t/>
value="${addAllToRightLabel}" onclick="moveAllOptions(document.getElementById('${parameters.id}'), document.getElementById('${parameters.doubleId}'), false, '${parameters.headerKey}', '');<#if parameters.addAllToRightOnclick?has_content><#outputformat 'JavaScript'>${parameters.addAllToRightOnclick}</#outputformat>;</#if>" /><br /><br />
<#else><#t/>
<input type="button"
<#if parameters.buttonCssClass??><#t/>
class="${parameters.buttonCssClass}"
</#if><#t/>
<#if parameters.buttonCssStyle??><#t/>
style="${parameters.buttonCssStyle}"
</#if><#t/>
value="${addAllToRightLabel}" onclick="moveAllOptions(document.getElementById('${parameters.id}'), document.getElementById('${parameters.doubleId}'), false, '');<#if parameters.addAllToRightOnclick?has_content><#outputformat 'JavaScript'>${parameters.addAllToRightOnclick}</#outputformat>;</#if>" /><br /><br />
</#if><#t/>
</#if><#t/>
<#if parameters.allowSelectAll!true><#t/>
<#assign selectAllLabel=parameters.selectAllLabel!"<*>"?html /><#t/>
<#assign selectAllLabel=parameters.selectAllLabel!"<*>" /><#t/>
<#if parameters.headerKey?? && parameters.doubleHeaderKey??><#t/>
<input type="button"
<#if parameters.buttonCssClass??><#t/>
class="${parameters.buttonCssClass?html}"
class="${parameters.buttonCssClass}"
</#if><#t/>
<#if parameters.buttonCssStyle??><#t/>
style="${parameters.buttonCssStyle?html}"
style="${parameters.buttonCssStyle}"
</#if><#t/>
value="${selectAllLabel}" onclick="selectAllOptionsExceptSome(document.getElementById('${parameters.id?html}'), 'key', '${parameters.headerKey}');selectAllOptionsExceptSome(document.getElementById('${parameters.doubleId?html}'), 'key', '${parameters.doubleHeaderKey}');<#if parameters.selectAllOnclick?has_content>${parameters.selectAllOnclick};</#if>" /><br /><br />
value="${selectAllLabel}" onclick="selectAllOptionsExceptSome(document.getElementById('${parameters.id}'), 'key', '${parameters.headerKey}');selectAllOptionsExceptSome(document.getElementById('${parameters.doubleId}'), 'key', '${parameters.doubleHeaderKey}');<#if parameters.selectAllOnclick?has_content><#outputformat 'JavaScript'>${parameters.selectAllOnclick}</#outputformat>;</#if>" /><br /><br />
<#elseif parameters.headerKey??><#t/>
<input type="button"
<#if parameters.buttonCssClass??><#t/>
class="${parameters.buttonCssClass?html}"
class="${parameters.buttonCssClass}"
</#if><#t/>
<#if parameters.buttonCssStyle??><#t/>
style="${parameters.buttonCssStyle?html}"
style="${parameters.buttonCssStyle}"
</#if><#t/>
value="${selectAllLabel}" onclick="selectAllOptionsExceptSome(document.getElementById('${parameters.id?html}'), 'key', '${parameters.headerKey}');selectAllOptions(document.getElementById('${parameters.doubleId?html}'));<#if parameters.selectAllOnclick?has_content>${parameters.selectAllOnclick};</#if>" /><br /><br />
value="${selectAllLabel}" onclick="selectAllOptionsExceptSome(document.getElementById('${parameters.id}'), 'key', '${parameters.headerKey}');selectAllOptions(document.getElementById('${parameters.doubleId}'));<#if parameters.selectAllOnclick?has_content><#outputformat 'JavaScript'>${parameters.selectAllOnclick}</#outputformat>;</#if>" /><br /><br />
<#elseif parameters.doubleHeaderKey??><#t/>
<input type="button"
<#if parameters.buttonCssClass??><#t/>
class="${parameters.buttonCssClass?html}"
class="${parameters.buttonCssClass}"
</#if><#t/>
<#if parameters.buttonCssStyle??><#t/>
style="${parameters.buttonCssStyle?html}"
style="${parameters.buttonCssStyle}"
</#if><#t/>
value="${selectAllLabel}" onclick="selectAllOptions(document.getElementById('${parameters.id?html}'));selectAllOptionsExceptSome(document.getElementById('${parameters.doubleId?html}'), 'key', '${parameters.doubleHeaderKey}');<#if parameters.selectAllOnclick?has_content>${parameters.selectAllOnclick};</#if>" /><br /><br />
value="${selectAllLabel}" onclick="selectAllOptions(document.getElementById('${parameters.id}'));selectAllOptionsExceptSome(document.getElementById('${parameters.doubleId}'), 'key', '${parameters.doubleHeaderKey}');<#if parameters.selectAllOnclick?has_content><#outputformat 'JavaScript'>${parameters.selectAllOnclick}</#outputformat>;</#if>" /><br /><br />
<#else><#t/>
<input type="button"
<#if parameters.buttonCssClass??><#t/>
class="${parameters.buttonCssClass?html}"
class="${parameters.buttonCssClass}"
</#if><#t/>
<#if parameters.buttonCssStyle??><#t/>
style="${parameters.buttonCssStyle?html}"
style="${parameters.buttonCssStyle}"
</#if><#t/>
value="${selectAllLabel}" onclick="selectAllOptions(document.getElementById('${parameters.id?html}'));selectAllOptions(document.getElementById('${parameters.doubleId?html}'));<#if parameters.selectAllOnclick?has_content>${parameters.selectAllOnclick};</#if>" /><br /><br />
value="${selectAllLabel}" onclick="selectAllOptions(document.getElementById('${parameters.id}'));selectAllOptions(document.getElementById('${parameters.doubleId}'));<#if parameters.selectAllOnclick?has_content><#outputformat 'JavaScript'>${parameters.selectAllOnclick}</#outputformat>;</#if>" /><br /><br />
</#if><#t/>
</#if><#t/>
</td>
@@ -180,9 +180,9 @@
<label for="rightTitle">${parameters.rightTitle}</label><br />
</#if><#t/>
<select
name="${parameters.doubleName!""?html}"
name="${parameters.doubleName!""}"
<#if parameters.get("doubleSize")??><#t/>
size="${parameters.get("doubleSize")?html}"
size="${parameters.get("doubleSize")}"
</#if><#t/>
<#if parameters.doubleDisabled!false><#t/>
disabled="disabled"
@@ -191,65 +191,65 @@
multiple="multiple"
</#if><#t/>
<#if parameters.doubleTabindex??><#t/>
tabindex="${parameters.tabindex?html}"
tabindex="${parameters.tabindex}"
</#if><#t/>
<#if parameters.doubleId??><#t/>
id="${parameters.doubleId?html}"
id="${parameters.doubleId}"
</#if><#t/>
<#if parameters.doubleCss??><#t/>
class="${parameters.doubleCss?html}"
class="${parameters.doubleCss}"
</#if><#t/>
<#if parameters.doubleStyle??><#t/>
style="${parameters.doubleStyle?html}"
style="${parameters.doubleStyle}"
</#if><#t/>
<#if parameters.doubleOnclick??><#t/>
onclick="${parameters.doubleOnclick?html}"
onclick="<#outputformat 'JavaScript'>${parameters.doubleOnclick}</#outputformat>"
</#if><#t/>
<#if parameters.doubleOndblclick??><#t/>
ondblclick="${parameters.doubleOndblclick?html}"
ondblclick="<#outputformat 'JavaScript'>${parameters.doubleOndblclick}</#outputformat>"
</#if><#t/>
<#if parameters.doubleOnmousedown??><#t/>
onmousedown="${parameters.doubleOnmousedown?html}"
onmousedown="<#outputformat 'JavaScript'>${parameters.doubleOnmousedown}</#outputformat>"
</#if><#t/>
<#if parameters.doubleOnmouseup??><#t/>
onmouseup="${parameters.doubleOnmouseup?html}"
onmouseup="<#outputformat 'JavaScript'>${parameters.doubleOnmouseup}</#outputformat>"
</#if><#t/>
<#if parameters.doubleOnmousemove??><#t/>
onmousemove="${parameters.doubleOnmousemove?html}"
onmousemove="<#outputformat 'JavaScript'>${parameters.doubleOnmousemove}</#outputformat>"
</#if><#t/>
<#if parameters.doubleOnmouseover??><#t/>
onmouseover="${parameters.doubleOnmouseover?html}"
onmouseover="<#outputformat 'JavaScript'>${parameters.doubleOnmouseover}</#outputformat>"
</#if><#t/>
<#if parameters.doubleOnmouseout??><#t/>
onmouseout="${parameters.doubleOnmouseout?html}"
onmouseout="<#outputformat 'JavaScript'>${parameters.doubleOnmouseout}</#outputformat>"
</#if><#t/>
<#if parameters.doubleOnfocus??><#t/>
onfocus="${parameters.doubleOnfocus?html}"
onfocus="<#outputformat 'JavaScript'>${parameters.doubleOnfocus}</#outputformat>"
</#if><#t/>
<#if parameters.doubleOnblur??><#t/>
onblur="${parameters.doubleOnblur?html}"
onblur="<#outputformat 'JavaScript'>${parameters.doubleOnblur}</#outputformat>"
</#if><#t/>
<#if parameters.doubleOnkeypress??><#t/>
onkeypress="${parameters.doubleOnkeypress?html}"
onkeypress="<#outputformat 'JavaScript'>${parameters.doubleOnkeypress}</#outputformat>"
</#if><#t/>
<#if parameters.doubleOnKeydown??><#t/>
onkeydown="${parameters.doubleOnkeydown?html}"
onkeydown="<#outputformat 'JavaScript'>${parameters.doubleOnkeydown}</#outputformat>"
</#if><#t/>
<#if parameters.doubleOnkeyup??><#t/>
onkeyup="${parameters.doubleOnkeyup?html}"
onkeyup="<#outputformat 'JavaScript'>${parameters.doubleOnkeyup}</#outputformat>"
</#if><#t/>
<#if parameters.doubleOnselect??><#t/>
onselect="${parameters.doubleOnselect?html}"
onselect="<#outputformat 'JavaScript'>${parameters.doubleOnselect}</#outputformat>"
</#if><#t/>
<#if parameters.doubleOnchange??><#t/>
onchange="${parameters.doubleOnchange?html}"
onchange="<#outputformat 'JavaScript'>${parameters.doubleOnchange}</#outputformat>"
</#if><#t/>
<#if parameters.doubleAccesskey??><#t/>
accesskey="${parameters.doubleAccesskey?html}"
accesskey="<#outputformat 'JavaScript'>${parameters.doubleAccesskey}</#outputformat>"
</#if>
>
<#if parameters.doubleHeaderKey?? && parameters.doubleHeaderValue??><#t/>
<option value="${parameters.doubleHeaderKey?html}">${parameters.doubleHeaderValue?html}</option>
<option value="${parameters.doubleHeaderKey}">${parameters.doubleHeaderValue}</option>
</#if><#t/>
<#if parameters.doubleEmptyOption!false><#t/>
<option value=""></option>
@@ -266,15 +266,15 @@
<#else><#t/>
<#assign doubleItemValue = stack.findString('top') /><#t/>
</#if><#t/>
<option value="${doubleItemKeyStr?html}"<#rt/>
<option value="${doubleItemKeyStr}"<#rt/>
<#if tag.contains(parameters.doubleNameValue, doubleItemKey)><#t/>
selected="selected"<#rt/>
</#if><#t/>
>${doubleItemValue?html}</option><#lt/>
>${doubleItemValue}</option><#lt/>
</@s.iterator><#t/>
</select>
<#if parameters.doubleMultiple!false>
<input type="hidden" id="__multiselect_${parameters.doubleId?html}" name="__multiselect_${parameters.doubleName?default("")?html}" value=""<#rt/>
<input type="hidden" id="__multiselect_${parameters.doubleId}" name="__multiselect_${parameters.doubleName!""}" value=""<#rt/>
<#if parameters.doubleDisabled!false>
disabled="disabled"<#rt/>
</#if>
@@ -282,15 +282,15 @@
</#if>
<#if parameters.allowUpDownOnRight!true>
<input type="button"
onclick="moveOptionDown(document.getElementById('${parameters.doubleId}'), 'key', <#if parameters.doubleHeaderKey??>'${parameters.doubleHeaderKey}'<#else>''</#if>);<#if parameters.upDownOnRightOnclick?has_content>${parameters.upDownOnRightOnclick};</#if>"
onclick="moveOptionDown(document.getElementById('${parameters.doubleId}'), 'key', <#if parameters.doubleHeaderKey??>'${parameters.doubleHeaderKey}'<#else>''</#if>);<#if parameters.upDownOnRightOnclick?has_content><#outputformat 'JavaScript'>${parameters.upDownOnRightOnclick}</#outputformat>;</#if>"
<#if parameters.rightDownLabel??>
value="${parameters.rightDownLabel?html}"
value="${parameters.rightDownLabel}"
</#if>
/>
<input type="button"
onclick="moveOptionUp(document.getElementById('${parameters.doubleId}'), 'key', <#if parameters.doubleHeaderKey??>'${parameters.doubleHeaderKey}'<#else>''</#if>);<#if parameters.upDownOnRightOnclick?has_content>${parameters.upDownOnRightOnclick};</#if>"
onclick="moveOptionUp(document.getElementById('${parameters.doubleId}'), 'key', <#if parameters.doubleHeaderKey??>'${parameters.doubleHeaderKey}'<#else>''</#if>);<#if parameters.upDownOnRightOnclick?has_content><#outputformat 'JavaScript'>${parameters.upDownOnRightOnclick}</#outputformat>;</#if>"
<#if parameters.rightUpLabel??>
value="${parameters.rightUpLabel?html}"
value="${parameters.rightUpLabel}"
</#if>
/>
</#if>
@@ -19,12 +19,12 @@
*/
-->
<input type="password"<#rt/>
name="${(parameters.name!"")?html}"<#rt/>
name="${(parameters.name!"")}"<#rt/>
<#if parameters.get("size")?has_content>
size="${parameters.get("size")?html}"<#rt/>
size="${parameters.get("size")}"<#rt/>
</#if>
<#if parameters.maxlength?has_content>
maxlength="${parameters.maxlength?html}"<#rt/>
maxlength="${parameters.maxlength}"<#rt/>
</#if>
<#if parameters.nameValue?? && parameters.showPassword!false>
value="<@s.property value="parameters.nameValue"/>"<#rt/>
@@ -36,14 +36,14 @@
readonly="readonly"<#rt/>
</#if>
<#if parameters.tabindex?has_content>
tabindex="${parameters.tabindex?html}"<#rt/>
tabindex="${parameters.tabindex}"<#rt/>
</#if>
<#if parameters.id?has_content>
id="${parameters.id?html}"<#rt/>
id="${parameters.id}"<#rt/>
</#if>
<#include "/${parameters.templateDir}/${parameters.expandTheme}/css.ftl" />
<#if parameters.title?has_content>
title="${parameters.title?html}"<#rt/>
title="${parameters.title}"<#rt/>
</#if>
<#include "/${parameters.templateDir}/${parameters.expandTheme}/scripting-events.ftl" />
<#include "/${parameters.templateDir}/${parameters.expandTheme}/common-attributes.ftl" />
@@ -60,32 +60,32 @@
</#if>
<input type="radio"<#rt/>
<#if parameters.name?has_content>
name="${parameters.name}"<#rt/>
name="${parameters.name?no_esc}"<#rt/>
</#if>
id="${parameters.id}${itemKeyStr}"<#rt/>
id="${parameters.id}${itemKeyStr?replace(".", "_")}"<#rt/>
<#if tag.contains(parameters.nameValue!'', itemKey)>
checked="checked"<#rt/>
</#if>
<#if itemKey??>
value="${itemKeyStr?html}"<#rt/>
value="${itemKeyStr}"<#rt/>
</#if>
<#if parameters.disabled!false>
disabled="disabled"<#rt/>
</#if>
<#if parameters.tabindex?has_content>
tabindex="${parameters.tabindex?html}"<#rt/>
tabindex="${parameters.tabindex}"<#rt/>
</#if>
<#if itemCssClass?has_content>
class="${itemCssClass?html}"<#rt/>
class="${itemCssClass}"<#rt/>
</#if>
<#if itemCssStyle?has_content>
style="${itemCssStyle?html}"<#rt/>
style="${itemCssStyle}"<#rt/>
</#if>
<#if itemTitle?has_content>
title="${itemTitle?html}"<#rt/>
title="${itemTitle}"<#rt/>
<#else>
<#if parameters.title?has_content>
title="${parameters.title?html}"<#rt/>
title="${parameters.title}"<#rt/>
</#if>
</#if>
<#include "/${parameters.templateDir}/${parameters.expandTheme}/css.ftl" />
@@ -93,7 +93,7 @@
<#include "/${parameters.templateDir}/${parameters.expandTheme}/common-attributes.ftl" />
<#include "/${parameters.templateDir}/${parameters.expandTheme}/dynamic-attributes.ftl" />
/><#rt/>
<label for="${parameters.id}${itemKeyStr}"<#include "/${parameters.templateDir}/${parameters.expandTheme}/css.ftl"/>><#rt/>
<label for="${parameters.id}${itemKeyStr?replace(".", "_")}"<#include "/${parameters.templateDir}/${parameters.expandTheme}/css.ftl"/>><#rt/>
${itemValue}<#t/>
</label>
</@s.iterator>
@@ -21,22 +21,22 @@
<#if parameters.type?? && parameters.type=="button">
<button type="reset"<#rt/>
<#if parameters.name?has_content>
name="${parameters.name?html}"<#rt/>
name="${parameters.name}"<#rt/>
</#if>
<#if parameters.nameValue??>
value="<@s.property value="parameters.nameValue"/>"<#rt/>
</#if>
<#if parameters.cssClass?has_content>
class="${parameters.cssClass?html}"<#rt/>
class="${parameters.cssClass}"<#rt/>
</#if>
<#if parameters.cssStyle?has_content>
style="${parameters.cssStyle?html}"<#rt/>
style="${parameters.cssStyle}"<#rt/>
</#if>
<#if parameters.disabled!false>
disabled="disabled"<#rt/>
</#if>
<#if parameters.tabindex?has_content>
tabindex="${parameters.tabindex?html}"<#rt/>
tabindex="${parameters.tabindex}"<#rt/>
</#if>
<#include "/${parameters.templateDir}/${parameters.expandTheme}/scripting-events.ftl"/>
<#include "/${parameters.templateDir}/${parameters.expandTheme}/common-attributes.ftl" />
@@ -44,34 +44,34 @@
><#if parameters.src?has_content>
<img<#rt/>
<#if parameters.label?has_content>
alt="${parameters.label?html}"<#rt/>
alt="${parameters.label}"<#rt/>
</#if>
<#if parameters.src?has_content>
src="${parameters.src?html}"<#rt/>
src="${parameters.src}"<#rt/>
</#if>
/><#else><#if parameters.label?has_content><@s.property value="parameters.label"/><#rt/></#if></#if></button>
<#else>
<input type="reset"<#rt/>
<#if parameters.name?has_content>
name="${parameters.name?html}"<#rt/>
name="${parameters.name}"<#rt/>
</#if>
<#if parameters.nameValue??>
value="<@s.property value="parameters.nameValue"/>"<#rt/>
</#if>
<#if parameters.cssClass?has_content>
class="${parameters.cssClass?html}"<#rt/>
class="${parameters.cssClass}"<#rt/>
</#if>
<#if parameters.cssStyle?has_content>
style="${parameters.cssStyle?html}"<#rt/>
style="${parameters.cssStyle}"<#rt/>
</#if>
<#if parameters.title?has_content>
title="${parameters.title?html}"<#rt/>
title="${parameters.title}"<#rt/>
</#if>
<#if parameters.disabled!false>
disabled="disabled"<#rt/>
</#if>
<#if parameters.tabindex?has_content>
tabindex="${parameters.tabindex?html}"<#rt/>
tabindex="${parameters.tabindex}"<#rt/>
</#if>
<#include "/${parameters.templateDir}/${parameters.expandTheme}/scripting-events.ftl" />
<#include "/${parameters.templateDir}/${parameters.expandTheme}/common-attributes.ftl" />
@@ -1,3 +1,4 @@
<#ftl output_format="JavaScript">
<#--
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -20,22 +20,22 @@
-->
<#setting number_format="#.#####">
<select<#rt/>
name="${(parameters.name!"")?html}"<#rt/>
name="${(parameters.name!"")}"<#rt/>
<#if parameters.get("size")?has_content>
size="${parameters.get("size")?html}"<#rt/>
size="${parameters.get("size")}"<#rt/>
</#if>
<#if parameters.disabled!false>
disabled="disabled"<#rt/>
</#if>
<#if parameters.tabindex?has_content>
tabindex="${parameters.tabindex?html}"<#rt/>
tabindex="${parameters.tabindex}"<#rt/>
</#if>
<#if parameters.id?has_content>
id="${parameters.id?html}"<#rt/>
id="${parameters.id}"<#rt/>
</#if>
<#include "/${parameters.templateDir}/${parameters.expandTheme}/css.ftl" />
<#if parameters.title?has_content>
title="${parameters.title?html}"<#rt/>
title="${parameters.title}"<#rt/>
</#if>
<#if parameters.multiple!false>
multiple="multiple"<#rt/>
@@ -45,11 +45,11 @@
<#include "/${parameters.templateDir}/${parameters.expandTheme}/dynamic-attributes.ftl" />
>
<#if parameters.headerKey?? && parameters.headerValue??>
<option value="${parameters.headerKey?html}"
<option value="${parameters.headerKey}"
<#if tag.contains(parameters.nameValue, parameters.headerKey) == true>
selected="selected"
</#if>
>${parameters.headerValue?html}</option>
>${parameters.headerValue}</option>
</#if>
<#if parameters.emptyOption!false>
<option value=""></option>
@@ -106,20 +106,20 @@
<#assign itemTitle = ''/>
</#if>
</#if>
<option value="${itemKeyStr?html}"<#rt/>
<option value="${itemKeyStr}"<#rt/>
<#if tag.contains(parameters.nameValue, itemKey) == true>
selected="selected"<#rt/>
</#if>
<#if itemCssClass?has_content>
class="${itemCssClass?html}"<#rt/>
class="${itemCssClass}"<#rt/>
</#if>
<#if itemCssStyle?has_content>
style="${itemCssStyle?html}"<#rt/>
style="${itemCssStyle}"<#rt/>
</#if>
<#if itemTitle?has_content>
title="${itemTitle?html}"<#rt/>
title="${itemTitle}"<#rt/>
</#if>
>${itemValue?html}</option><#lt/>
>${itemValue}</option><#lt/>
</@s.iterator>
<#include "/${parameters.templateDir}/${parameters.expandTheme}/optgroup.ftl" />
@@ -128,13 +128,13 @@
<#if parameters.multiple!false>
<#if (parameters.id?? && parameters.name??)>
<input type="hidden" id="__multiselect_${parameters.id?html}" name="__multiselect_${parameters.name?html}" value=""<#rt/>
<input type="hidden" id="__multiselect_${parameters.id}" name="__multiselect_${parameters.name}" value=""<#rt/>
</#if>
<#if (parameters.id?? && !parameters.name??)>
<input type="hidden" id="__multiselect_${parameters.id?html}" name="__multiselect_${parameters.id?html}" value=""<#rt/>
<input type="hidden" id="__multiselect_${parameters.id}" name="__multiselect_${parameters.id}" value=""<#rt/>
</#if>
<#if ( !parameters.id?? && parameters.name??)>
<input type="hidden" id="__multiselect_${parameters.id?html}" name="__multiselect_${parameters.id?html}" value=""<#rt/>
<input type="hidden" id="__multiselect_${parameters.id}" name="__multiselect_${parameters.id}" value=""<#rt/>
</#if>
<#if ( !parameters.id?? && !parameters.name??)>
<input type="hidden" id="" name="" value="" <#rt/>
@@ -21,10 +21,10 @@
<#if parameters.type?? && parameters.type=="button">
<button type="submit"<#rt/>
<#if parameters.id?has_content>
id="${parameters.id?html}"<#rt/>
id="${parameters.id}"<#rt/>
</#if>
<#if parameters.name?has_content>
name="${parameters.name?html}"<#rt/>
name="${parameters.name}"<#rt/>
</#if>
<#if parameters.nameValue??>
value="<@s.property value="parameters.nameValue"/>"<#rt/>
@@ -33,16 +33,16 @@
disabled="disabled"<#rt/>
</#if>
<#if parameters.cssClass?has_content>
class="${parameters.cssClass?html}"<#rt/>
class="${parameters.cssClass}"<#rt/>
</#if>
<#if parameters.cssStyle?has_content>
style="${parameters.cssStyle?html}"<#rt/>
style="${parameters.cssStyle}"<#rt/>
</#if>
<#if parameters.title?has_content>
title="${parameters.title?html}"<#rt/>
title="${parameters.title}"<#rt/>
</#if>
<#if parameters.tabindex?has_content>
tabindex="${parameters.tabindex?html}"<#rt/>
tabindex="${parameters.tabindex}"<#rt/>
</#if>
<#include "/${parameters.templateDir}/${parameters.expandTheme}/scripting-events.ftl"/>
<#include "/${parameters.templateDir}/${parameters.expandTheme}/common-attributes.ftl" />
@@ -52,10 +52,10 @@
<#if parameters.type?? && parameters.type=="image">
<input type="image"<#rt/>
<#if parameters.label?has_content>
alt="${parameters.label?html}"<#rt/>
alt="${parameters.label}"<#rt/>
</#if>
<#if parameters.src?has_content>
src="${parameters.src?html}"<#rt/>
src="${parameters.src}"<#rt/>
</#if>
<#else>
<input type="submit"<#rt/>
@@ -64,25 +64,25 @@
</#if>
</#if>
<#if parameters.id?has_content>
id="${parameters.id?html}"<#rt/>
id="${parameters.id}"<#rt/>
</#if>
<#if parameters.name?has_content>
name="${parameters.name?html}"<#rt/>
name="${parameters.name}"<#rt/>
</#if>
<#if parameters.disabled!false>
disabled="disabled"<#rt/>
</#if>
<#if parameters.cssClass?has_content>
class="${parameters.cssClass?html}"<#rt/>
class="${parameters.cssClass}"<#rt/>
</#if>
<#if parameters.cssStyle?has_content>
style="${parameters.cssStyle?html}"<#rt/>
style="${parameters.cssStyle}"<#rt/>
</#if>
<#if parameters.title?has_content>
title="${parameters.title?html}"<#rt/>
title="${parameters.title}"<#rt/>
</#if>
<#if parameters.tabindex?has_content>
tabindex="${parameters.tabindex?html}"<#rt/>
tabindex="${parameters.tabindex}"<#rt/>
</#if>
<#include "/${parameters.templateDir}/${parameters.expandTheme}/scripting-events.ftl" />
<#include "/${parameters.templateDir}/${parameters.expandTheme}/common-attributes.ftl" />
@@ -19,16 +19,16 @@
*/
-->
<input<#rt/>
type="${(parameters.type!"text")?html}"<#rt/>
name="${(parameters.name!"")?html}"<#rt/>
type="${(parameters.type!"text")}"<#rt/>
name="${(parameters.name!"")}"<#rt/>
<#if parameters.get("size")?has_content>
size="${parameters.get("size")?html}"<#rt/>
size="${parameters.get("size")}"<#rt/>
</#if>
<#if parameters.maxlength?has_content>
maxlength="${parameters.maxlength?html}"<#rt/>
maxlength="${parameters.maxlength}"<#rt/>
</#if>
<#if parameters.nameValue??>
value="${parameters.nameValue?html}"<#rt/>
value="${parameters.nameValue}"<#rt/>
</#if>
<#if parameters.disabled!false>
disabled="disabled"<#rt/>
@@ -37,14 +37,14 @@
readonly="readonly"<#rt/>
</#if>
<#if parameters.tabindex?has_content>
tabindex="${parameters.tabindex?html}"<#rt/>
tabindex="${parameters.tabindex}"<#rt/>
</#if>
<#if parameters.id?has_content>
id="${parameters.id?html}"<#rt/>
id="${parameters.id}"<#rt/>
</#if>
<#include "/${parameters.templateDir}/${parameters.expandTheme}/css.ftl" />
<#if parameters.title?has_content>
title="${parameters.title?html}"<#rt/>
title="${parameters.title}"<#rt/>
</#if>
<#include "/${parameters.templateDir}/${parameters.expandTheme}/scripting-events.ftl" />
<#include "/${parameters.templateDir}/${parameters.expandTheme}/common-attributes.ftl" />
@@ -19,11 +19,11 @@
*/
-->
<textarea<#rt/>
name="${(parameters.name!"")?html}"<#rt/>
cols="${(parameters.cols!"")?html}"<#rt/>
rows="${(parameters.rows!"")?html}"<#rt/>
name="${(parameters.name!"")}"<#rt/>
cols="${(parameters.cols!"")}"<#rt/>
rows="${(parameters.rows!"")}"<#rt/>
<#if parameters.wrap?has_content>
wrap="${parameters.wrap?html}"<#rt/>
wrap="${parameters.wrap}"<#rt/>
</#if>
<#if parameters.disabled!false>
disabled="disabled"<#rt/>
@@ -32,14 +32,14 @@
readonly="readonly"<#rt/>
</#if>
<#if parameters.tabindex?has_content>
tabindex="${parameters.tabindex?html}"<#rt/>
tabindex="${parameters.tabindex}"<#rt/>
</#if>
<#if parameters.id?has_content>
id="${parameters.id?html}"<#rt/>
id="${parameters.id}"<#rt/>
</#if>
<#include "/${parameters.templateDir}/${parameters.expandTheme}/css.ftl" />
<#if parameters.title?has_content>
title="${parameters.title?html}"<#rt/>
title="${parameters.title}"<#rt/>
</#if>
<#include "/${parameters.templateDir}/${parameters.expandTheme}/scripting-events.ftl" />
<#include "/${parameters.templateDir}/${parameters.expandTheme}/common-attributes.ftl" />
@@ -18,5 +18,5 @@
* under the License.
*/
-->
<input type="hidden" name="${parameters.tokenNameField!""}" value="${parameters.name!""?html}" />
<input type="hidden" name="${parameters.name!""}" value="${parameters.token!""?html}" />
<input type="hidden" name="${parameters.tokenNameField!""}" value="${parameters.name!""}" />
<input type="hidden" name="${parameters.name!""}" value="${parameters.token!""}" />
@@ -27,7 +27,7 @@
</#if>
>
<td class="tdCheckboxErrorMessage" colspan="2"><#rt/>
<span class="errorMessage">${error?html}</span><#t/>
<span class="errorMessage">${error}</span><#t/>
</td><#lt/>
</tr>
</#list>
@@ -42,7 +42,7 @@
<td colspan="2">
<#if parameters.label??> <label<#t/>
<#if parameters.id??>
for="${parameters.id?html}"<#rt/>
for="${parameters.id}"<#rt/>
</#if>
<#if hasFieldErrors>
class="checkboxErrorLabel"<#rt/>
@@ -53,7 +53,7 @@
<#if parameters.required!false && parameters.requiredPosition!"right" != 'right'>
<span class="required">*</span><#t/>
</#if>
${parameters.label?html}<#t/>
${parameters.label}<#t/>
<#if parameters.required!false && parameters.requiredPosition!"right" == 'right'>
<span class="required">*</span><#t/>
</#if>
@@ -74,7 +74,7 @@ ${parameters.label?html}<#t/>
<#if (labelpos!"") == 'left'>
<#if parameters.label??> <label<#t/>
<#if parameters.id??>
for="${parameters.id?html}"<#rt/>
for="${parameters.id}"<#rt/>
</#if>
<#if hasFieldErrors>
class="checkboxErrorLabel"<#rt/>
@@ -85,7 +85,7 @@ ${parameters.label?html}<#t/>
<#if parameters.required!false && parameters.requiredPosition!"right" != 'right'>
<span class="required">*</span><#t/>
</#if>
${parameters.label?html}<#t/>
${parameters.label}<#t/>
<#if parameters.required!false && parameters.requiredPosition!"right" == 'right'>
<span class="required">*</span><#t/>
</#if>
@@ -113,14 +113,14 @@ ${parameters.label?html}<#t/>
<#if (labelpos!"") != 'top' && (labelpos!"") != 'left'>
<#if parameters.label??> <label<#t/>
<#if parameters.id??>
for="${parameters.id?html}"<#rt/>
for="${parameters.id}"<#rt/>
</#if>
<#if hasFieldErrors>
class="checkboxErrorLabel"<#rt/>
<#else>
class="checkboxLabel"<#rt/>
</#if>
>${parameters.label?html}</label><#rt/>
>${parameters.label}</label><#rt/>
</#if>
</#if>
</#if>
@@ -18,7 +18,7 @@
* under the License.
*/
-->
<table class="${parameters.cssClass!'wwFormTable'?html}"<#rt/>
<#if parameters.cssStyle??> style="${parameters.cssStyle?html}"<#rt/>
<table class="${parameters.cssClass!'wwFormTable'}"<#rt/>
<#if parameters.cssStyle??> style="${parameters.cssStyle}"<#rt/>
</#if>
>
@@ -27,7 +27,7 @@ ${parameters.after!}<#t/>
<#list fieldErrors[parameters.name] as error>
<tr errorFor="${parameters.id}">
<td class="tdErrorMessage" colspan="2"><#rt/>
<span class="errorMessage">${error?html}</span><#t/>
<span class="errorMessage">${error}</span><#t/>
</td><#lt/>
</tr>
</#list>
@@ -28,7 +28,7 @@
<#list fieldErrors[parameters.name] as error>
<tr errorFor="${parameters.id}">
<td class="tdErrorMessage" colspan="2"><#rt/>
<span class="errorMessage">${error?html}</span><#t/>
<span class="errorMessage">${error}</span><#t/>
</td><#lt/>
</tr>
</#list>
@@ -52,7 +52,7 @@
<#if parameters.label??>
<label <#t/>
<#if parameters.id??>
for="${parameters.id?html}" <#t/>
for="${parameters.id}" <#t/>
</#if>
<#if hasFieldErrors>
class="errorLabel"<#t/>
@@ -63,11 +63,11 @@
<#if (parameters.required!false) && ((parameters.requiredPosition!"right") != 'right')>
<span class="required">*</span><#t/>
</#if>
${parameters.label?html}<#t/>
${parameters.label}<#t/>
<#if (parameters.required!false) && ((parameters.requiredPosition!"right") == 'right')>
<span class="required">*</span><#t/>
</#if>
${parameters.labelseparator!":"?html}<#t/>
${parameters.labelseparator!":"}<#t/>
<#include "/${parameters.templateDir}/${parameters.expandTheme}/tooltip.ftl" />
</label><#t/>
</#if>
@@ -21,7 +21,7 @@
<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlheader-core.ftl" />
<td
<#if parameters.align?? >
class="align-${parameters.align?html}"
class="align-${parameters.align}"
<#else >
class="tdInput"
</#if>
@@ -24,7 +24,7 @@
<#if parameters.focusElement??>
<script type="text/javascript">
StrutsUtils.addOnLoad(function() {
var element = document.getElementById("${parameters.focusElement?html}");
var element = document.getElementById("${parameters.focusElement}");
if(element) {
element.focus();
}
@@ -24,7 +24,7 @@
onreset="${parameters.onreset!'clearErrorMessages(this);clearErrorLabels(this);'}"
<#else>
<#if parameters.onreset??>
onreset="${parameters.onreset?html}"
onreset="${parameters.onreset}"
</#if>
</#if>
>
@@ -33,7 +33,7 @@
<#t/>,'styleClass', '${parameters.tooltipCssClass!"StrutsTTClassic"}'<#t/>
<#t/>)" />
<#else>
title="${parameters.tooltip?html}"
alt="${parameters.tooltip?html}" />
title="${parameters.tooltip}"
alt="${parameters.tooltip}" />
</#if>
</#if><#t/>
@@ -36,8 +36,6 @@ import java.util.List;
*/
public class ActionErrorTagTest extends AbstractUITagTest {
boolean shouldActionHaveError = false;
public void testNoActionErrors() throws Exception {
ActionErrorTag tag = new ActionErrorTag();
((InternalActionSupport)action).setHasActionErrors(false);
@@ -1,11 +1,11 @@
<tr>
<td class="tdLabel"></td>
<td class="tdInput">
<input type="radio" name="myMap['name']" id="myMap_'name'_"value=""/>
<label for="myMap_'name'_">N/A</label>
<input type="radio" name="myMap['name']" id="myMap_'name'_Opt." value="Opt."/>
<label for="myMap_'name'_Opt.">Opt.</label>
<input type="radio" name="myMap['name']" id="myMap_'name'_Std." checked="checked" value="Std."/>
<label for="myMap_'name'_Std.">Std.</label>
<input type="radio" name="myMap['name']" id="myMap__name__"value=""/>
<label for="myMap__name__">N/A</label>
<input type="radio" name="myMap['name']" id="myMap__name__Opt_" value="Opt."/>
<label for="myMap__name__Opt_">Opt.</label>
<input type="radio" name="myMap['name']" id="myMap__name__Std_" checked="checked" value="Std."/>
<label for="myMap__name__Std_">Std.</label>
</td>
</tr>
@@ -20,7 +20,7 @@
-->
<#include "tigris-macros.ftl">
<@startPage pageTitle="Actions in namespace"/>
<h3>Actions in <#if namespace == ""> default namespace <#else> ${namespace?html} </#if></h3>
<h3>Actions in <#if namespace == ""> default namespace <#else> ${namespace} </#if></h3>
<table>
<tr>
<td>
@@ -40,8 +40,8 @@
<!-- URLTag is faulty -->
<@s.url var="url" action="showConfig" includeParams="none">
<@s.param name="namespace">${namespace?html}</@s.param>
<@s.param name="actionName">${actionName?html}</@s.param>
<@s.param name="namespace">${namespace}</@s.param>
<@s.param name="actionName">${actionName}</@s.param>
</@s.url>
<#assign url = url + "&amp;detailView=">
<!-- Set all to false -->
@@ -23,7 +23,7 @@
<#call startPage pageTitle="Validator Details"/>
<table>
<tr><td>Validated Class:</td><td>${action.stripPackage(clazz)}</td></tr>
<tr><td>Context:</td><td>${context?html}</td></tr>
<tr><td>Context:</td><td>${context}</td></tr>
<tr><td>Validator Number:</td><td>${selected}</td></tr>
<tr><td>Validator Type:</td><td>${action.stripPackage(selectedValidator.class)}</td></tr>
</table>