mirror of
https://github.com/apache/struts.git
synced 2026-08-05 14:47:09 +00:00
Merge pull request #1067 from apache/feature/WW-5465-attributes
WW-5465 Renames tag parameters to attributes
This commit is contained in:
@@ -21,6 +21,6 @@
|
||||
<div style="background-color:yellow;">
|
||||
<p>
|
||||
Freemarker Custom Template -
|
||||
parameter 'paramName' - ${parameters.paramName}
|
||||
parameter 'paramName' - ${attributes.paramName}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -22,22 +22,22 @@
|
||||
Make sure element is always present. To be filled later via JS.
|
||||
-->
|
||||
<ul<#rt/>
|
||||
<#if parameters.id??>
|
||||
id="${parameters.id}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.cssClass??>
|
||||
class="${parameters.cssClass}"<#rt/>
|
||||
<#if attributes.id??>
|
||||
id="${attributes.id}"<#rt/>
|
||||
</#if>
|
||||
<#if attributes.cssClass??>
|
||||
class="${attributes.cssClass}"<#rt/>
|
||||
<#else>
|
||||
class="errorMessage"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.cssStyle??>
|
||||
style="${parameters.cssStyle}"<#rt/>
|
||||
<#if attributes.cssStyle??>
|
||||
style="${attributes.cssStyle}"<#rt/>
|
||||
</#if>
|
||||
>
|
||||
<#if (actionErrors?? && actionErrors?size > 0)>
|
||||
<#list actionErrors as error>
|
||||
<#if error??>
|
||||
<li><span><#if parameters.escape>${error!}<#else>${error!}</#if></span><#rt/></li><#rt/>
|
||||
<li><span><#if attributes.escape>${error!}<#else>${error!}</#if></span><#rt/></li><#rt/>
|
||||
</#if>
|
||||
</#list>
|
||||
</#if>
|
||||
|
||||
@@ -18,16 +18,16 @@
|
||||
* under the License.
|
||||
*/
|
||||
-->
|
||||
${parameters.after!}<#t/>
|
||||
${attributes.after!}<#t/>
|
||||
</td><#lt/>
|
||||
</tr>
|
||||
<#if (parameters.errorposition!"top") == 'bottom'>
|
||||
<#assign hasFieldErrors = parameters.name?? && fieldErrors?? && fieldErrors.get(parameters.name)??/>
|
||||
<#if (attributes.errorposition!"top") == 'bottom'>
|
||||
<#assign hasFieldErrors = attributes.name?? && fieldErrors?? && fieldErrors.get(attributes.name)??/>
|
||||
<#if hasFieldErrors>
|
||||
<tr errorFor="${parameters.id}">
|
||||
<tr errorFor="${attributes.id}">
|
||||
<td class="tdErrorMessage" colspan="2"><#rt/>
|
||||
<#if hasFieldErrors>
|
||||
<#list fieldErrors.get(parameters.name) as error>
|
||||
<#list fieldErrors.get(attributes.name) as error>
|
||||
<div class="errorMessage">${error}</div><#t/>
|
||||
</#list>
|
||||
</#if>
|
||||
|
||||
+17
-17
@@ -21,22 +21,22 @@
|
||||
<#--
|
||||
Always include elements to show errors. They may be filled later via AJAX.
|
||||
-->
|
||||
<#assign hasFieldErrors = parameters.name?? && fieldErrors?? && fieldErrors.get(parameters.name)??/>
|
||||
<#if (parameters.errorposition!"top") == 'top'>
|
||||
<tr errorFor="${parameters.id}">
|
||||
<td class="tdErrorMessage" colspan="2" data-error-for-fieldname="${parameters.name}"><#rt/>
|
||||
<#assign hasFieldErrors = attributes.name?? && fieldErrors?? && fieldErrors.get(attributes.name)??/>
|
||||
<#if (attributes.errorposition!"top") == 'top'>
|
||||
<tr errorFor="${attributes.id}">
|
||||
<td class="tdErrorMessage" colspan="2" data-error-for-fieldname="${attributes.name}"><#rt/>
|
||||
<#if hasFieldErrors>
|
||||
<#list fieldErrors.get(parameters.name) as error>
|
||||
<#list fieldErrors.get(attributes.name) as error>
|
||||
<div class="errorMessage">${error}</div><#t/>
|
||||
</#list>
|
||||
</#if>
|
||||
</td><#lt/>
|
||||
</tr>
|
||||
</#if>
|
||||
<#if !parameters.labelPosition?? && (parameters.form.labelPosition)??>
|
||||
<#assign labelPos = parameters.form.labelPosition/>
|
||||
<#elseif parameters.labelPosition??>
|
||||
<#assign labelpos = parameters.labelPosition/>
|
||||
<#if !attributes.labelPosition?? && (attributes.form.labelPosition)??>
|
||||
<#assign labelPos = attributes.form.labelPosition/>
|
||||
<#elseif attributes.labelPosition??>
|
||||
<#assign labelpos = attributes.labelPosition/>
|
||||
</#if>
|
||||
<#--
|
||||
if the label position is top,
|
||||
@@ -48,10 +48,10 @@
|
||||
<#else>
|
||||
<td class="tdLabel"><#rt/>
|
||||
</#if>
|
||||
<#if parameters.label??>
|
||||
<#if attributes.label??>
|
||||
<label <#t/>
|
||||
<#if parameters.id??>
|
||||
for="${parameters.id}" <#t/>
|
||||
<#if attributes.id??>
|
||||
for="${attributes.id}" <#t/>
|
||||
</#if>
|
||||
<#if hasFieldErrors>
|
||||
class="errorLabel"<#t/>
|
||||
@@ -59,15 +59,15 @@
|
||||
class="label"<#t/>
|
||||
</#if>
|
||||
><#t/>
|
||||
<#if parameters.required!false && parameters.requiredPosition!"right" != 'right'>
|
||||
<#if attributes.required!false && attributes.requiredPosition!"right" != 'right'>
|
||||
<span class="required">*</span><#t/>
|
||||
</#if>
|
||||
${parameters.label}<#t/>
|
||||
<#if parameters.required!false && parameters.requiredPosition!"right" == 'right'>
|
||||
${attributes.label}<#t/>
|
||||
<#if attributes.required!false && attributes.requiredPosition!"right" == 'right'>
|
||||
<span class="required">*</span><#t/>
|
||||
</#if>
|
||||
${parameters.labelseparator!":"}<#t/>
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/tooltip.ftl" />
|
||||
${attributes.labelseparator!":"}<#t/>
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/tooltip.ftl" />
|
||||
</label><#t/>
|
||||
</#if>
|
||||
</td><#lt/>
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
<!--
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* 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
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* 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
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
@@ -21,68 +21,68 @@
|
||||
<%@taglib prefix="s" uri="/struts-tags" %>
|
||||
<html>
|
||||
<head>
|
||||
<title>Struts2 Showcase - UI Tags - Component Tag</title>
|
||||
<s:head/>
|
||||
<title>Struts2 Showcase - UI Tags - Component Tag</title>
|
||||
<s:head/>
|
||||
</head>
|
||||
<body>
|
||||
<div class="page-header">
|
||||
<h1>UI Tags - Component Tag</h1>
|
||||
<h1>UI Tags - Component Tag</h1>
|
||||
</div>
|
||||
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<p>This example tries to demonstrates the usage of <s:component ... > tag.<p/>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<p>This example tries to demonstrate the usage of <s:component ... > tag.</p>
|
||||
|
||||
<p>To have a look at the source of this jsp page click
|
||||
<s:url var="url" action="showComponentTagExampleCode" namespace="/tags/ui"/>
|
||||
<s:a href="%{#url}">here</s:a>
|
||||
<p/>
|
||||
<p>To have a look at the source of this jsp page click
|
||||
<s:url var="url" action="showComponentTagExampleCode" namespace="/tags/ui"/>
|
||||
<s:a href="%{#url}">here</s:a>
|
||||
</p>
|
||||
|
||||
<b>Example 1:</b>
|
||||
<p>This example load the template from the webapp context path using
|
||||
the default (ftl) as its template.
|
||||
<s:component
|
||||
theme="customTheme"
|
||||
templateDir="customTemplateDir"
|
||||
template="ftlCustomTemplate">
|
||||
<s:param name="paramName" value="%{'paramValue1'}" />
|
||||
</s:component>
|
||||
<p/>
|
||||
<b>Example 1:</b>
|
||||
<p>This example load the template from the webapp context path using
|
||||
the default (ftl) as its template.
|
||||
<s:component
|
||||
theme="customTheme"
|
||||
templateDir="customTemplateDir"
|
||||
template="ftlCustomTemplate">
|
||||
<s:param name="paramName" value="%{'paramValue1'}"/>
|
||||
</s:component>
|
||||
</p>
|
||||
|
||||
<b>Example 2:</b>
|
||||
<p>This example load the template from the webapp context path using
|
||||
jsp as its template (notice the *.jsp extension to the template).
|
||||
<s:component
|
||||
theme="customTheme"
|
||||
templateDir="customTemplateDir"
|
||||
template="jspCustomTemplate.jsp">
|
||||
<s:param name="paramName" value="%{'paramValue2'}" />
|
||||
</s:component>
|
||||
<p/>
|
||||
<b>Example 2:</b>
|
||||
<p>This example load the template from the webapp context path using
|
||||
jsp as its template (notice the *.jsp extension to the template).
|
||||
<s:component
|
||||
theme="customTheme"
|
||||
templateDir="customTemplateDir"
|
||||
template="jspCustomTemplate.jsp">
|
||||
<s:param name="paramName" value="%{'paramValue2'}"/>
|
||||
</s:component>
|
||||
</p>
|
||||
|
||||
<b>Example 3</b>
|
||||
<p>This example load the template from the webapp context path,
|
||||
using the default template directory and theme (default to
|
||||
'template' and 'xhtml' respectively)
|
||||
<s:component template="mytemplate.jsp">
|
||||
<s:param name="paramName" value="%{'paramValue3'}" />
|
||||
</s:component>
|
||||
<p/>
|
||||
<b>Example 3</b>
|
||||
<p>This example load the template from the webapp context path,
|
||||
using the default template directory and theme (default to
|
||||
'template' and 'xhtml' respectively)
|
||||
<s:component template="mytemplate.jsp">
|
||||
<s:param name="paramName" value="%{'paramValue3'}"/>
|
||||
</s:component>
|
||||
</p>
|
||||
|
||||
|
||||
<b>Example 4</b>
|
||||
<p>This example load the template from the webapp classpath using
|
||||
a custom themplate directory and theme.
|
||||
<s:component
|
||||
theme="myTheme"
|
||||
templateDir="myTemplateDir"
|
||||
template="myAnotherTemplate">
|
||||
<s:param name="paramName" value="%{'paramValue4'}" />
|
||||
</s:component>
|
||||
<p/>
|
||||
</div>
|
||||
</div>
|
||||
<b>Example 4</b>
|
||||
<p>This example load the template from the webapp classpath using
|
||||
a custom themplate directory and theme.
|
||||
<s:component
|
||||
theme="myTheme"
|
||||
templateDir="myTemplateDir"
|
||||
template="myAnotherTemplate">
|
||||
<s:param name="paramName" value="%{'paramValue4'}"/>
|
||||
</s:component>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
<div style="background-color:yellow;">
|
||||
<p>
|
||||
Freemarker Custom Template -
|
||||
parameter 'paramName' - ${parameters.paramName}
|
||||
parameter 'paramName' - ${attributes.paramName}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
<div style="background-color:yellow;">
|
||||
<p>
|
||||
JSP Custom Template -
|
||||
parameter 'paramName' - <s:property value="%{top.parameters.paramName}" />
|
||||
JSP Custom Template -
|
||||
parameter 'paramName' - <s:property value="%{attributes.paramName}" />
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -23,6 +23,6 @@
|
||||
<div style="background-color:yellow;">
|
||||
<p>
|
||||
JSP Custom Template -
|
||||
parameter 'paramName' - <s:property value="%{parameters.paramName}" />
|
||||
parameter 'paramName' - <s:property value="%{attributes.paramName}" />
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -194,10 +194,10 @@ public class ActionComponent extends ContextBean {
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates parameters map using parameters from the value stack and component parameters. Any non-String array
|
||||
* values will be converted into a single-value String array.
|
||||
* Creates {@link HttpParameters} using parameters from the value stack and component attributes.
|
||||
* Any non-String array values will be converted into a single-value String array.
|
||||
*
|
||||
* @return A map of String[] parameters
|
||||
* @return Instance of {@link HttpParameters}
|
||||
*/
|
||||
protected HttpParameters createParametersForContext() {
|
||||
HttpParameters parentParams = null;
|
||||
@@ -208,8 +208,8 @@ public class ActionComponent extends ContextBean {
|
||||
|
||||
HttpParameters.Builder builder = HttpParameters.create().withParent(parentParams);
|
||||
|
||||
if (parameters != null) {
|
||||
builder = builder.withExtraParams(parameters);
|
||||
if (attributes != null) {
|
||||
builder = builder.withExtraParams(attributes);
|
||||
}
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
@@ -71,7 +71,7 @@ public class Anchor extends ClosingUIBean {
|
||||
protected boolean processingTagBody = false;
|
||||
|
||||
//these params are passed by the Param tag
|
||||
protected Map urlParameters = new LinkedHashMap();
|
||||
protected Map<String, Object> urlParameters = new LinkedHashMap<>();
|
||||
|
||||
public Anchor(ValueStack stack, HttpServletRequest request, HttpServletResponse response) {
|
||||
super(stack, request, response);
|
||||
@@ -172,16 +172,16 @@ public class Anchor extends ClosingUIBean {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addAllParameters(Map params) {
|
||||
public void addAllAttributes(Map<String, Object> additionalAttributes) {
|
||||
/*
|
||||
the parameters added by this method are used in the template. this method is also
|
||||
called by Param to add params into ancestestor. This tag needs to keep both set of parameters
|
||||
The attributes added by this method are used in the template. This method is also
|
||||
called by Param to add attributes into an ancestor. This tag needs to keep both set of parameters
|
||||
separated (You gotta keep 'em separated!)
|
||||
*/
|
||||
if (processingTagBody) {
|
||||
this.urlParameters.putAll(params);
|
||||
this.urlParameters.putAll(additionalAttributes);
|
||||
} else {
|
||||
super.addAllParameters(params);
|
||||
super.addAllAttributes(additionalAttributes);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -52,49 +52,49 @@ import java.util.List;
|
||||
* <li>Third Entry of the Third ITerator</li>
|
||||
* </ol>
|
||||
* <!-- END SNIPPET: javadoc -->
|
||||
*
|
||||
* <p>
|
||||
* <!-- START SNIPPET: params -->
|
||||
* <ul>
|
||||
* <li>var (String) - the name of which if supplied will have the resultant
|
||||
* appended iterator stored under in the stack's context</li>
|
||||
* </ul>
|
||||
* <!-- END SNIPPET: params -->
|
||||
*
|
||||
*
|
||||
* <p>
|
||||
* <p>
|
||||
* <!-- START SNIPPET: code -->
|
||||
* public class AppendIteratorTagAction extends ActionSupport {
|
||||
*
|
||||
* <p>
|
||||
* private List myList1;
|
||||
* private List myList2;
|
||||
* private List myList3;
|
||||
*
|
||||
*
|
||||
* <p>
|
||||
* <p>
|
||||
* public String execute() throws Exception {
|
||||
*
|
||||
* <p>
|
||||
* myList1 = new ArrayList();
|
||||
* myList1.add("1");
|
||||
* myList1.add("2");
|
||||
* myList1.add("3");
|
||||
*
|
||||
* <p>
|
||||
* myList2 = new ArrayList();
|
||||
* myList2.add("a");
|
||||
* myList2.add("b");
|
||||
* myList2.add("c");
|
||||
*
|
||||
* <p>
|
||||
* myList3 = new ArrayList();
|
||||
* myList3.add("A");
|
||||
* myList3.add("B");
|
||||
* myList3.add("C");
|
||||
*
|
||||
* <p>
|
||||
* return "done";
|
||||
* }
|
||||
*
|
||||
* <p>
|
||||
* public List getMyList1() { return myList1; }
|
||||
* public List getMyList2() { return myList2; }
|
||||
* public List getMyList3() { return myList3; }
|
||||
*}
|
||||
* }
|
||||
* <!-- END SNIPPET: code -->
|
||||
*
|
||||
* <p>
|
||||
* <!-- START SNIPPET: example -->
|
||||
* <s:append var="myAppendIterator">
|
||||
* <s:param value="%{myList1}" />
|
||||
@@ -106,18 +106,16 @@ import java.util.List;
|
||||
* </s:iterator>
|
||||
* <!-- END SNIPPET: example -->
|
||||
*
|
||||
*
|
||||
* @see org.apache.struts2.util.AppendIteratorFilter
|
||||
* @see org.apache.struts2.views.jsp.iterator.AppendIteratorTag
|
||||
*
|
||||
*/
|
||||
@StrutsTag(name="append", tldTagClass="org.apache.struts2.views.jsp.iterator.AppendIteratorTag", description="Append the values of a list of iterators to one iterator")
|
||||
@StrutsTag(name = "append", tldTagClass = "org.apache.struts2.views.jsp.iterator.AppendIteratorTag", description = "Append the values of a list of iterators to one iterator")
|
||||
public class AppendIterator extends ContextBean implements UnnamedParametric {
|
||||
|
||||
private static final Logger LOG = LogManager.getLogger(AppendIterator.class);
|
||||
|
||||
private AppendIteratorFilter appendIteratorFilter= null;
|
||||
private List _parameters;
|
||||
private AppendIteratorFilter appendIteratorFilter = null;
|
||||
private List<Object> attributesToAppend;
|
||||
|
||||
public AppendIterator(ValueStack stack) {
|
||||
super(stack);
|
||||
@@ -125,7 +123,7 @@ public class AppendIterator extends ContextBean implements UnnamedParametric {
|
||||
|
||||
@Override
|
||||
public boolean start(Writer writer) {
|
||||
_parameters = new ArrayList();
|
||||
attributesToAppend = new ArrayList<>();
|
||||
appendIteratorFilter = new AppendIteratorFilter();
|
||||
|
||||
return super.start(writer);
|
||||
@@ -133,9 +131,7 @@ public class AppendIterator extends ContextBean implements UnnamedParametric {
|
||||
|
||||
@Override
|
||||
public boolean end(Writer writer, String body) {
|
||||
|
||||
for (Object iteratorEntryObj : _parameters) {
|
||||
|
||||
for (Object iteratorEntryObj : attributesToAppend) {
|
||||
if (!MakeIterator.isIterable(iteratorEntryObj)) {
|
||||
LOG.warn("param with value resolved as {} cannot be make as iterator, it will be ignored and hence will not appear in the merged iterator", iteratorEntryObj);
|
||||
continue;
|
||||
@@ -155,10 +151,10 @@ public class AppendIterator extends ContextBean implements UnnamedParametric {
|
||||
// UnnamedParametric implementation --------------------------------------
|
||||
@Override
|
||||
public void addParameter(Object value) {
|
||||
_parameters.add(value);
|
||||
attributesToAppend.add(value);
|
||||
}
|
||||
|
||||
@StrutsTagAttribute(description="The name of which if supplied will have the resultant appended iterator stored under in the stack's context")
|
||||
@StrutsTagAttribute(description = "The name of which if supplied will have the resultant appended iterator stored under in the stack's context")
|
||||
@Override
|
||||
public void setVar(String var) {
|
||||
super.setVar(var);
|
||||
|
||||
@@ -71,7 +71,7 @@ public class Component {
|
||||
protected boolean devMode = false;
|
||||
protected boolean escapeHtmlBody = false;
|
||||
protected ValueStack stack;
|
||||
protected Map<String, Object> parameters;
|
||||
protected Map<String, Object> attributes;
|
||||
protected ActionMapper actionMapper;
|
||||
protected boolean throwExceptionOnELFailure;
|
||||
protected boolean performClearTagStateForTagPoolingServers = false;
|
||||
@@ -86,7 +86,7 @@ public class Component {
|
||||
*/
|
||||
public Component(ValueStack stack) {
|
||||
this.stack = stack;
|
||||
this.parameters = new LinkedHashMap<>();
|
||||
this.attributes = new LinkedHashMap<>();
|
||||
getComponentStack().push(this);
|
||||
}
|
||||
|
||||
@@ -279,7 +279,7 @@ public class Component {
|
||||
*/
|
||||
protected StrutsException fieldError(String field, String errorMsg, Exception e) {
|
||||
String msg = "tag '" + getComponentName() + "', field '" + field +
|
||||
(parameters != null && parameters.containsKey("name") ? "', name '" + parameters.get("name") : "") +
|
||||
(attributes != null && attributes.containsKey("name") ? "', name '" + attributes.get("name") : "") +
|
||||
"': " + errorMsg;
|
||||
throw new StrutsException(msg, e);
|
||||
}
|
||||
@@ -454,20 +454,20 @@ public class Component {
|
||||
* pushed before the component itself, any key-value pair that can't be assigned to component
|
||||
* will be set in the parameters Map.
|
||||
*
|
||||
* @param params the parameters to copy.
|
||||
* @param attributesToCopy the attributes to copy.
|
||||
*/
|
||||
public void copyParams(Map<String, Object> params) {
|
||||
stack.push(parameters);
|
||||
public void copyAttributes(Map<String, Object> attributesToCopy) {
|
||||
stack.push(attributes);
|
||||
stack.push(this);
|
||||
try {
|
||||
for (Map.Entry<String, Object> entry : params.entrySet()) {
|
||||
for (Map.Entry<String, Object> entry : attributesToCopy.entrySet()) {
|
||||
String key = entry.getKey();
|
||||
|
||||
if (key.indexOf('-') >= 0) {
|
||||
// UI component attributes may contain hypens (e.g. data-ajax), but ognl
|
||||
// can't handle that, and there can't be a component property with a hypen
|
||||
// so into the parameters map it goes. See WW-4493
|
||||
parameters.put(key, entry.getValue());
|
||||
// so into the attributes map it goes. See WW-4493
|
||||
attributes.put(key, entry.getValue());
|
||||
} else {
|
||||
stack.setValue(key, entry.getValue());
|
||||
}
|
||||
@@ -493,21 +493,21 @@ public class Component {
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the parameters.
|
||||
* Gets the attributes.
|
||||
*
|
||||
* @return the parameters. Is never <tt>null</tt>.
|
||||
* @return the attributes. It's never <tt>null</tt>.
|
||||
*/
|
||||
public Map<String, Object> getParameters() {
|
||||
return parameters;
|
||||
public Map<String, Object> getAttributes() {
|
||||
return attributes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds all the given parameters to this component's own parameters.
|
||||
* Adds all the given attributes to this component's own attributes.
|
||||
*
|
||||
* @param params the parameters to add.
|
||||
* @param additionalAttributes the attributes to add.
|
||||
*/
|
||||
public void addAllParameters(Map<String, Object> params) {
|
||||
parameters.putAll(params);
|
||||
public void addAllAttributes(Map<String, Object> additionalAttributes) {
|
||||
attributes.putAll(additionalAttributes);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -522,7 +522,7 @@ public class Component {
|
||||
*/
|
||||
public void addParameter(String key, Object value) {
|
||||
if (key != null) {
|
||||
Map<String, Object> params = getParameters();
|
||||
Map<String, Object> params = getAttributes();
|
||||
|
||||
if (value == null) {
|
||||
params.remove(key);
|
||||
|
||||
@@ -164,7 +164,7 @@ public abstract class DoubleListUIBean extends ListUIBean {
|
||||
// ok, let's look it up
|
||||
Component form = findAncestor(Form.class);
|
||||
if (form != null) {
|
||||
addParameter("formName", form.getParameters().get("name"));
|
||||
addParameter("formName", form.getAttributes().get("name"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -188,7 +188,7 @@ public abstract class DoubleListUIBean extends ListUIBean {
|
||||
if (doubleId != null) {
|
||||
addParameter("doubleId", findString(doubleId));
|
||||
} else if (form != null) {
|
||||
addParameter("doubleId", form.getParameters().get("id") + "_" + escape(doubleName != null ? findString(doubleName) : null));
|
||||
addParameter("doubleId", form.getAttributes().get("id") + "_" + escape(doubleName != null ? findString(doubleName) : null));
|
||||
} else {
|
||||
addParameter("doubleId", escape(doubleName != null ? findString(doubleName) : null));
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ public class DoubleSelect extends DoubleListUIBean {
|
||||
public void evaluateExtraParams() {
|
||||
super.evaluateExtraParams();
|
||||
StringBuilder onchangeParam = new StringBuilder();
|
||||
onchangeParam.append(getParameters().get("id")).append("Redirect(this.selectedIndex)");
|
||||
onchangeParam.append(getAttributes().get("id")).append("Redirect(this.selectedIndex)");
|
||||
if(StringUtils.isNotEmpty(this.onchange)) {
|
||||
onchangeParam.append(";").append(this.onchange);
|
||||
}
|
||||
|
||||
@@ -67,13 +67,13 @@ public class File extends UIBean {
|
||||
|
||||
Form form = (Form) findAncestor(Form.class);
|
||||
if (form != null) {
|
||||
String encType = (String) form.getParameters().get("enctype");
|
||||
String encType = (String) form.getAttributes().get("enctype");
|
||||
if (!"multipart/form-data".equals(encType)) {
|
||||
// uh oh, this isn't good! Let's warn the developer
|
||||
LOG.warn("Struts has detected a file upload UI tag (s:file) being used without a form set to enctype 'multipart/form-data'. This is probably an error!");
|
||||
}
|
||||
|
||||
String method = (String) form.getParameters().get("method");
|
||||
String method = (String) form.getAttributes().get("method");
|
||||
if (!"post".equalsIgnoreCase(method)) {
|
||||
// uh oh, this isn't good! Let's warn the developer
|
||||
LOG.warn("Struts has detected a file upload UI tag (s:file) being used without a form set to method 'POST'. This is probably an error!");
|
||||
|
||||
@@ -172,7 +172,7 @@ public class Form extends ClosingUIBean {
|
||||
|
||||
if (name == null) {
|
||||
//make the name the same as the id
|
||||
String id = (String) getParameters().get("id");
|
||||
String id = (String) getAttributes().get("id");
|
||||
if (StringUtils.isNotEmpty(id)) {
|
||||
addParameter("name", id);
|
||||
}
|
||||
@@ -204,7 +204,7 @@ public class Form extends ClosingUIBean {
|
||||
|
||||
// keep a collection of the tag names for anything special the templates might want to do (such as pure client
|
||||
// side validation)
|
||||
if (!parameters.containsKey("tagNames")) {
|
||||
if (!attributes.containsKey("tagNames")) {
|
||||
// we have this if check so we don't do this twice (on open and close of the template)
|
||||
addParameter("tagNames", new ArrayList());
|
||||
}
|
||||
@@ -242,7 +242,7 @@ public class Form extends ClosingUIBean {
|
||||
protected void evaluateClientSideJsEnablement(String actionName, String namespace, String actionMethod) {
|
||||
|
||||
// Only evaluate if Client-Side js is to be enable when validate=true
|
||||
Boolean validate = (Boolean) getParameters().get("validate");
|
||||
Boolean validate = (Boolean) getAttributes().get("validate");
|
||||
if (validate != null && validate) {
|
||||
|
||||
addParameter("performValidation", Boolean.FALSE);
|
||||
@@ -269,7 +269,7 @@ public class Form extends ClosingUIBean {
|
||||
}
|
||||
|
||||
public List getValidators(String name) {
|
||||
Class actionClass = (Class) getParameters().get("actionClass");
|
||||
Class actionClass = (Class) getAttributes().get("actionClass");
|
||||
if (actionClass == null) {
|
||||
return Collections.EMPTY_LIST;
|
||||
}
|
||||
@@ -278,7 +278,7 @@ public class Form extends ClosingUIBean {
|
||||
ActionMapping mapping = actionMapper.getMappingFromActionName(formActionValue);
|
||||
|
||||
if (mapping == null) {
|
||||
mapping = actionMapper.getMappingFromActionName((String) getParameters().get("actionName"));
|
||||
mapping = actionMapper.getMappingFromActionName((String) getAttributes().get("actionName"));
|
||||
}
|
||||
|
||||
if (mapping == null) {
|
||||
|
||||
@@ -55,7 +55,7 @@ public abstract class FormButton extends ClosingUIBean {
|
||||
addParameter("type", submitType);
|
||||
|
||||
if (!BUTTON_TYPE_INPUT.equals(submitType) && (label == null)) {
|
||||
addParameter("label", getParameters().get("nameValue"));
|
||||
addParameter("label", getAttributes().get("nameValue"));
|
||||
}
|
||||
|
||||
if (action != null || method != null) {
|
||||
@@ -98,8 +98,8 @@ public abstract class FormButton extends ClosingUIBean {
|
||||
// this check is needed for backwards compatibility with 2.1.x
|
||||
tmpId = findString(id);
|
||||
} else {
|
||||
if (form != null && form.getParameters().get("id") != null) {
|
||||
tmpId = tmpId + form.getParameters().get("id").toString() + "_";
|
||||
if (form != null && form.getAttributes().get("id") != null) {
|
||||
tmpId = tmpId + form.getAttributes().get("id").toString() + "_";
|
||||
}
|
||||
if (name != null) {
|
||||
tmpId = tmpId + escape(findString(name));
|
||||
|
||||
@@ -34,23 +34,23 @@ import com.opensymphony.xwork2.util.ValueStack;
|
||||
* </p>
|
||||
*
|
||||
* <p><b>Freemarker:</b></p>
|
||||
* <pre>Objects provided can be retrieve from within the template via $parameters._paramname_.</pre>
|
||||
* <pre>Objects provided can be retrieve from within the template via $attributes._attrname_.</pre>
|
||||
*
|
||||
* <p><b>JSP:</b></p>
|
||||
* <pre>Objects provided can be retrieve from within the template via <s:property value="%{parameters._paramname_}" /></pre>
|
||||
* <pre>Objects provided can be retrieve from within the template via <s:property value="%{attributes._attrname_}" /></pre>
|
||||
*
|
||||
* <p>
|
||||
* In the bottom JSP and Velocity samples, two parameters are being passed in to the component. From within the
|
||||
* In the bottom JSP and Velocity samples, two attributes are being passed in to the component. From within the
|
||||
* component, they can be accessed as:
|
||||
* </p>
|
||||
*
|
||||
* <p><b>Freemarker:</b></p>
|
||||
* <pre>$parameters.get('key1') and $parameters.get('key2') or $parameters.key1 and $parameters.key2</pre>
|
||||
* <pre>$attributes.get('key1') and $attributes.get('key2') or $attributes.key1 and $attributes.key2</pre>
|
||||
*
|
||||
* <p><b>JSP:</b></p>
|
||||
* <pre>
|
||||
* <s:property value="%{parameters.key1}" /> and <s:property value="%{'parameters.key2'}" /> or
|
||||
* <s:property value="%{parameters.get('key1')}" /> and <s:property value="%{parameters.get('key2')}" />
|
||||
* <s:property value="%{attributes.key1}" /> and <s:property value="%{'attributes.key2'}" /> or
|
||||
* <s:property value="%{attributes.get('key1')}" /> and <s:property value="%{attributes.get('key2')}" />
|
||||
* </pre>
|
||||
*
|
||||
* <p>
|
||||
|
||||
@@ -144,13 +144,13 @@ public class Include extends Component {
|
||||
urlBuf.append(page);
|
||||
|
||||
// Add request parameters
|
||||
if (!parameters.isEmpty()) {
|
||||
if (!attributes.isEmpty()) {
|
||||
urlBuf.append('?');
|
||||
|
||||
String concat = "";
|
||||
|
||||
// Set parameters
|
||||
for (Map.Entry<String, Object> entry : parameters.entrySet()) {
|
||||
for (Map.Entry<String, Object> entry : attributes.entrySet()) {
|
||||
Object name = entry.getKey();
|
||||
List values = (List) entry.getValue();
|
||||
|
||||
@@ -235,11 +235,11 @@ public class Include extends Component {
|
||||
// instead, include tag requires that each parameter be a list of objects,
|
||||
// just like the HTTP servlet interfaces are (String[])
|
||||
if (value != null) {
|
||||
List currentValues = (List) parameters.get(key);
|
||||
List currentValues = (List) attributes.get(key);
|
||||
|
||||
if (currentValues == null) {
|
||||
currentValues = new ArrayList();
|
||||
parameters.put(key, currentValues);
|
||||
attributes.put(key, currentValues);
|
||||
}
|
||||
|
||||
currentValues.add(value);
|
||||
|
||||
@@ -174,7 +174,7 @@ public class InputTransferSelect extends ListUIBean {
|
||||
|
||||
|
||||
// key -> select tag id, value -> headerKey (if exists)
|
||||
Map formInputtransferselectIds = (Map) formAncestor.getParameters().get("inputtransferselectIds");
|
||||
Map formInputtransferselectIds = (Map) formAncestor.getAttributes().get("inputtransferselectIds");
|
||||
|
||||
// init lists
|
||||
if (formInputtransferselectIds == null) {
|
||||
@@ -182,13 +182,13 @@ public class InputTransferSelect extends ListUIBean {
|
||||
}
|
||||
|
||||
// id
|
||||
String tmpId = (String) getParameters().get("id");
|
||||
String tmpHeaderKey = (String) getParameters().get("headerKey");
|
||||
String tmpId = (String) getAttributes().get("id");
|
||||
String tmpHeaderKey = (String) getAttributes().get("headerKey");
|
||||
if (tmpId != null && (! formInputtransferselectIds.containsKey(tmpId))) {
|
||||
formInputtransferselectIds.put(tmpId, tmpHeaderKey);
|
||||
}
|
||||
|
||||
formAncestor.getParameters().put("inputtransferselectIds", formInputtransferselectIds);
|
||||
formAncestor.getAttributes().put("inputtransferselectIds", formInputtransferselectIds);
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -79,7 +79,7 @@ public class Label extends UIBean {
|
||||
if (value != null) {
|
||||
addParameter("nameValue", findString(value));
|
||||
} else if (key != null) {
|
||||
Object nameValue = parameters.get("nameValue");
|
||||
Object nameValue = attributes.get("nameValue");
|
||||
if (nameValue == null || nameValue.toString().isEmpty()) {
|
||||
// get the label from a TextProvider (default value is the key)
|
||||
String providedLabel = TextProviderHelper.getText(key, key, stack);
|
||||
|
||||
@@ -67,7 +67,7 @@ public abstract class ListUIBean extends UIBean {
|
||||
Object value;
|
||||
|
||||
if (list == null) {
|
||||
list = parameters.get("list");
|
||||
list = attributes.get("list");
|
||||
}
|
||||
|
||||
if (list instanceof String) {
|
||||
|
||||
@@ -55,56 +55,56 @@ import java.util.List;
|
||||
* <li>Display third element of the thrid list</li>
|
||||
* </ol>
|
||||
* <!-- END SNIPPET: javadoc -->
|
||||
*
|
||||
* <p>
|
||||
* <!-- START SNIPPET: params -->
|
||||
* <ul>
|
||||
* <li>var (String) - the name where the resultant merged iterator will be stored in the stack's context</li>
|
||||
* </ul>
|
||||
* <!-- END SNIPPET: params -->
|
||||
*
|
||||
*
|
||||
* <p>
|
||||
* <p>
|
||||
* <!-- START SNIPPET: javacode -->
|
||||
* public class MergeIteratorTagAction extends ActionSupport {
|
||||
*
|
||||
* <p>
|
||||
* private List myList1;
|
||||
* private List myList2;
|
||||
* private List myList3;
|
||||
*
|
||||
* <p>
|
||||
* public List getMyList1() {
|
||||
* return myList1;
|
||||
* }
|
||||
*
|
||||
* <p>
|
||||
* public List getMyList2() {
|
||||
* return myList2;
|
||||
* }
|
||||
*
|
||||
* <p>
|
||||
* public List getMyList3() {
|
||||
* return myList3;
|
||||
* }
|
||||
*
|
||||
*
|
||||
* <p>
|
||||
* <p>
|
||||
* public String execute() throws Exception {
|
||||
*
|
||||
* <p>
|
||||
* myList1 = new ArrayList();
|
||||
* myList1.add("1");
|
||||
* myList1.add("2");
|
||||
* myList1.add("3");
|
||||
*
|
||||
* <p>
|
||||
* myList2 = new ArrayList();
|
||||
* myList2.add("a");
|
||||
* myList2.add("b");
|
||||
* myList2.add("c");
|
||||
*
|
||||
* <p>
|
||||
* myList3 = new ArrayList();
|
||||
* myList3.add("A");
|
||||
* myList3.add("B");
|
||||
* myList3.add("C");
|
||||
*
|
||||
* <p>
|
||||
* return "done";
|
||||
* }
|
||||
* }
|
||||
* <!-- END SNIPPET: javacode -->
|
||||
*
|
||||
* <p>
|
||||
* <!-- START SNIPPET: example -->
|
||||
* <s:merge var="myMergedIterator1">
|
||||
* <s:param value="%{myList1}" />
|
||||
@@ -115,23 +115,22 @@ import java.util.List;
|
||||
* <s:property />
|
||||
* </s:iterator>
|
||||
* <!-- END SNIPPET: example -->
|
||||
*
|
||||
* <p>
|
||||
* <!-- START SNIPPET: description -->
|
||||
* This wil generate "1aA2bB3cC".
|
||||
* <!-- START SNIPPET: description -->
|
||||
*
|
||||
* @see org.apache.struts2.util.MergeIteratorFilter
|
||||
* @see org.apache.struts2.views.jsp.iterator.MergeIteratorTag
|
||||
*
|
||||
*/
|
||||
@StrutsTag(name="merge", tldTagClass="org.apache.struts2.views.jsp.iterator.MergeIteratorTag", description="Merge the values " +
|
||||
"of a list of iterators into one iterator")
|
||||
@StrutsTag(name = "merge", tldTagClass = "org.apache.struts2.views.jsp.iterator.MergeIteratorTag",
|
||||
description = "Merge the values of a list of iterators into one iterator")
|
||||
public class MergeIterator extends ContextBean implements UnnamedParametric {
|
||||
|
||||
private static final Logger LOG = LogManager.getLogger(MergeIterator.class);
|
||||
|
||||
private MergeIteratorFilter mergeIteratorFilter = null;
|
||||
private List _parameters;
|
||||
private List<Object> attributesToMerge;
|
||||
|
||||
public MergeIterator(ValueStack stack) {
|
||||
super(stack);
|
||||
@@ -140,15 +139,14 @@ public class MergeIterator extends ContextBean implements UnnamedParametric {
|
||||
public boolean start(Writer writer) {
|
||||
|
||||
mergeIteratorFilter = new MergeIteratorFilter();
|
||||
_parameters = new ArrayList();
|
||||
attributesToMerge = new ArrayList<>();
|
||||
|
||||
return super.start(writer);
|
||||
}
|
||||
|
||||
public boolean end(Writer writer, String body) {
|
||||
|
||||
for (Object iteratorEntryObj : _parameters) {
|
||||
if (! MakeIterator.isIterable(iteratorEntryObj)) {
|
||||
for (Object iteratorEntryObj : attributesToMerge) {
|
||||
if (!MakeIterator.isIterable(iteratorEntryObj)) {
|
||||
LOG.warn("param with value resolved as {} cannot be make as iterator, it will be ignored and hence will not appear in the merged iterator", iteratorEntryObj);
|
||||
continue;
|
||||
}
|
||||
@@ -165,13 +163,12 @@ public class MergeIterator extends ContextBean implements UnnamedParametric {
|
||||
return super.end(writer, body);
|
||||
}
|
||||
|
||||
@StrutsTagAttribute(description="The name where the resultant merged iterator will be stored in the stack's context")
|
||||
@StrutsTagAttribute(description = "The name where the resultant merged iterator will be stored in the stack's context")
|
||||
public void setVar(String var) {
|
||||
super.setVar(var);
|
||||
}
|
||||
|
||||
// == UnnamedParametric interface implementation ---------------------
|
||||
public void addParameter(Object value) {
|
||||
_parameters.add(value);
|
||||
attributesToMerge.add(value);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -104,7 +104,7 @@ public class OptGroup extends Component {
|
||||
internalUiBean.start(writer);
|
||||
internalUiBean.end(writer, body);
|
||||
|
||||
List listUiBeans = (List) select.getParameters().get(INTERNAL_LIST_UI_BEAN_LIST_PARAMETER_KEY);
|
||||
List listUiBeans = (List) select.getAttributes().get(INTERNAL_LIST_UI_BEAN_LIST_PARAMETER_KEY);
|
||||
if (listUiBeans == null) {
|
||||
listUiBeans = new ArrayList();
|
||||
}
|
||||
|
||||
@@ -287,8 +287,8 @@ public class OptionTransferSelect extends DoubleListUIBean {
|
||||
|
||||
|
||||
// key -> select tag id, value -> headerKey (if exists)
|
||||
Map formOptiontransferselectIds = (Map) formAncestor.getParameters().get("optiontransferselectIds");
|
||||
Map formOptiontransferselectDoubleIds = (Map) formAncestor.getParameters().get("optiontransferselectDoubleIds");
|
||||
Map formOptiontransferselectIds = (Map) formAncestor.getAttributes().get("optiontransferselectIds");
|
||||
Map formOptiontransferselectDoubleIds = (Map) formAncestor.getAttributes().get("optiontransferselectDoubleIds");
|
||||
|
||||
// init lists
|
||||
if (formOptiontransferselectIds == null) {
|
||||
@@ -300,21 +300,21 @@ public class OptionTransferSelect extends DoubleListUIBean {
|
||||
|
||||
|
||||
// id
|
||||
String tmpId = (String) getParameters().get("id");
|
||||
String tmpHeaderKey = (String) getParameters().get("headerKey");
|
||||
String tmpId = (String) getAttributes().get("id");
|
||||
String tmpHeaderKey = (String) getAttributes().get("headerKey");
|
||||
if (tmpId != null && (! formOptiontransferselectIds.containsKey(tmpId))) {
|
||||
formOptiontransferselectIds.put(tmpId, tmpHeaderKey);
|
||||
}
|
||||
|
||||
// doubleId
|
||||
String tmpDoubleId = (String) getParameters().get("doubleId");
|
||||
String tmpDoubleHeaderKey = (String) getParameters().get("doubleHeaderKey");
|
||||
String tmpDoubleId = (String) getAttributes().get("doubleId");
|
||||
String tmpDoubleHeaderKey = (String) getAttributes().get("doubleHeaderKey");
|
||||
if (tmpDoubleId != null && (! formOptiontransferselectDoubleIds.containsKey(tmpDoubleId))) {
|
||||
formOptiontransferselectDoubleIds.put(tmpDoubleId, tmpDoubleHeaderKey);
|
||||
}
|
||||
|
||||
formAncestor.getParameters().put("optiontransferselectIds", formOptiontransferselectIds);
|
||||
formAncestor.getParameters().put("optiontransferselectDoubleIds", formOptiontransferselectDoubleIds);
|
||||
formAncestor.getAttributes().put("optiontransferselectIds", formOptiontransferselectIds);
|
||||
formAncestor.getAttributes().put("optiontransferselectDoubleIds", formOptiontransferselectDoubleIds);
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -175,7 +175,7 @@ public class ServletUrlRenderer implements UrlRenderer {
|
||||
namespace, actionName);
|
||||
if (actionConfig != null) {
|
||||
|
||||
ActionMapping mapping = new ActionMapping(actionName, namespace, actionMethod, formComponent.parameters);
|
||||
ActionMapping mapping = new ActionMapping(actionName, namespace, actionMethod, formComponent.attributes);
|
||||
String result = urlHelper.buildUrl(formComponent.actionMapper.getUriFromActionMapping(mapping),
|
||||
formComponent.request, formComponent.response, queryStringResult.getQueryParams(), scheme, formComponent.includeContext, true, false, false);
|
||||
formComponent.addParameter("action", result);
|
||||
|
||||
@@ -73,7 +73,7 @@ public class Token extends UIBean {
|
||||
super.evaluateExtraParams();
|
||||
|
||||
String tokenName;
|
||||
Map parameters = getParameters();
|
||||
Map parameters = getAttributes();
|
||||
|
||||
if (parameters.containsKey("name")) {
|
||||
tokenName = (String) parameters.get("name");
|
||||
|
||||
@@ -591,7 +591,7 @@ public abstract class UIBean extends Component {
|
||||
|
||||
LOG.debug("Rendering template {}", template);
|
||||
|
||||
final TemplateRenderingContext context = new TemplateRenderingContext(template, writer, getStack(), getParameters(), this);
|
||||
final TemplateRenderingContext context = new TemplateRenderingContext(template, writer, getStack(), getAttributes(), this);
|
||||
engine.renderTemplate(context);
|
||||
}
|
||||
|
||||
@@ -797,11 +797,11 @@ public abstract class UIBean extends Component {
|
||||
populateComponentHtmlId(form);
|
||||
|
||||
if (form != null ) {
|
||||
addParameter("form", form.getParameters());
|
||||
addParameter("form", form.getAttributes());
|
||||
|
||||
if ( translatedName != null ) {
|
||||
// list should have been created by the form component
|
||||
List<String> tags = (List<String>) form.getParameters().get("tagNames");
|
||||
List<String> tags = (List<String>) form.getAttributes().get("tagNames");
|
||||
tags.add(translatedName);
|
||||
}
|
||||
}
|
||||
@@ -833,19 +833,19 @@ public abstract class UIBean extends Component {
|
||||
}
|
||||
|
||||
//TODO: this is to keep backward compatibility, remove once when tooltipConfig is dropped
|
||||
String jsTooltipEnabled = (String) getParameters().get("jsTooltipEnabled");
|
||||
String jsTooltipEnabled = (String) getAttributes().get("jsTooltipEnabled");
|
||||
if (jsTooltipEnabled != null)
|
||||
this.javascriptTooltip = jsTooltipEnabled;
|
||||
|
||||
//TODO: this is to keep backward compatibility, remove once when tooltipConfig is dropped
|
||||
String tooltipIcon = (String) getParameters().get("tooltipIcon");
|
||||
String tooltipIcon = (String) getAttributes().get("tooltipIcon");
|
||||
if (tooltipIcon != null)
|
||||
this.addParameter("tooltipIconPath", tooltipIcon);
|
||||
if (this.tooltipIconPath != null)
|
||||
this.addParameter("tooltipIconPath", findString(this.tooltipIconPath));
|
||||
|
||||
//TODO: this is to keep backward compatibility, remove once when tooltipConfig is dropped
|
||||
String tooltipDelayParam = (String) getParameters().get("tooltipDelay");
|
||||
String tooltipDelayParam = (String) getAttributes().get("tooltipDelay");
|
||||
if (tooltipDelayParam != null)
|
||||
this.addParameter("tooltipDelay", tooltipDelayParam);
|
||||
if (this.tooltipDelay != null)
|
||||
@@ -882,8 +882,8 @@ public abstract class UIBean extends Component {
|
||||
*/
|
||||
protected void applyValueParameter(String translatedName) {
|
||||
// see if the value has been specified as a parameter already
|
||||
if (parameters.containsKey(ATTR_VALUE)) {
|
||||
parameters.put(ATTR_NAME_VALUE, parameters.get(ATTR_VALUE));
|
||||
if (attributes.containsKey(ATTR_VALUE)) {
|
||||
attributes.put(ATTR_NAME_VALUE, attributes.get(ATTR_VALUE));
|
||||
} else {
|
||||
if (evaluateNameValue()) {
|
||||
final Class<?> valueClazz = getValueClassType();
|
||||
@@ -969,7 +969,7 @@ public abstract class UIBean extends Component {
|
||||
}
|
||||
|
||||
protected Map<String, String> getTooltipConfig(UIBean component) {
|
||||
Object tooltipConfigObj = component.getParameters().get("tooltipConfig");
|
||||
Object tooltipConfigObj = component.getAttributes().get("tooltipConfig");
|
||||
Map<String, String> result = new LinkedHashMap<>();
|
||||
|
||||
if (tooltipConfigObj instanceof Map) {
|
||||
@@ -1029,7 +1029,7 @@ public abstract class UIBean extends Component {
|
||||
LOG.debug("Cannot determine id attribute for [{}], consider defining id, name or key attribute!", this);
|
||||
tryId = null;
|
||||
} else if (form != null) {
|
||||
tryId = form.getParameters().get("id") + "_" + generatedId;
|
||||
tryId = form.getAttributes().get("id") + "_" + generatedId;
|
||||
} else {
|
||||
tryId = generatedId;
|
||||
}
|
||||
@@ -1287,9 +1287,9 @@ public abstract class UIBean extends Component {
|
||||
* @see <a href="https://issues.apache.org/jira/browse/WW-4166">WW-4166</a>
|
||||
*/
|
||||
@Override
|
||||
public void copyParams(Map<String, Object> params) {
|
||||
super.copyParams(params);
|
||||
for (Map.Entry<String, Object>entry : params.entrySet()) {
|
||||
public void copyAttributes(Map<String, Object> attributesToCopy) {
|
||||
super.copyAttributes(attributesToCopy);
|
||||
for (Map.Entry<String, Object>entry : attributesToCopy.entrySet()) {
|
||||
String entryKey = entry.getKey();
|
||||
if (!isValidTagAttribute(entryKey) && !entryKey.equals("dynamicAttributes")) {
|
||||
dynamicAttributes.put(entryKey, entry.getValue());
|
||||
|
||||
@@ -111,7 +111,7 @@ public class URL extends ContextBean {
|
||||
|
||||
public URL(ValueStack stack, HttpServletRequest req, HttpServletResponse res) {
|
||||
super(stack);
|
||||
urlProvider = new ComponentUrlProvider(this, this.parameters);
|
||||
urlProvider = new ComponentUrlProvider(this, this.attributes);
|
||||
urlProvider.setHttpServletRequest(req);
|
||||
urlProvider.setHttpServletResponse(res);
|
||||
}
|
||||
|
||||
@@ -136,13 +136,13 @@ public class UpDownSelect extends Select {
|
||||
// inform form ancestor that we are using a custom onSubmit
|
||||
enableAncestorFormCustomOnsubmit();
|
||||
|
||||
Map m = (Map) ancestorForm.getParameters().get("updownselectIds");
|
||||
Map m = (Map) ancestorForm.getAttributes().get("updownselectIds");
|
||||
if (m == null) {
|
||||
// map with key -> id , value -> headerKey
|
||||
m = new LinkedHashMap();
|
||||
}
|
||||
m.put(getParameters().get("id"), getParameters().get("headerKey"));
|
||||
ancestorForm.getParameters().put("updownselectIds", m);
|
||||
m.put(getAttributes().get("id"), getAttributes().get("headerKey"));
|
||||
ancestorForm.getAttributes().put("updownselectIds", m);
|
||||
}
|
||||
else {
|
||||
if (LOG.isWarnEnabled()) {
|
||||
|
||||
@@ -30,20 +30,15 @@ import java.util.List;
|
||||
* @see org.apache.struts2.components.AppendIterator
|
||||
* @see org.apache.struts2.views.jsp.iterator.AppendIteratorTag
|
||||
*/
|
||||
public class AppendIteratorFilter extends IteratorFilterSupport implements Iterator, Action {
|
||||
public class AppendIteratorFilter extends IteratorFilterSupport implements Iterator<Object>, Action {
|
||||
|
||||
List iterators = new ArrayList();
|
||||
private final List<Object> iterators = new ArrayList<>();
|
||||
private final List<Object> sources = new ArrayList<>();
|
||||
|
||||
// Attributes ----------------------------------------------------
|
||||
List sources = new ArrayList();
|
||||
|
||||
|
||||
// Public --------------------------------------------------------
|
||||
public void setSource(Object anIterator) {
|
||||
sources.add(anIterator);
|
||||
}
|
||||
|
||||
// Action implementation -----------------------------------------
|
||||
@Override
|
||||
public String execute() {
|
||||
// Make source transformations
|
||||
@@ -54,11 +49,10 @@ public class AppendIteratorFilter extends IteratorFilterSupport implements Itera
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
// Iterator implementation ---------------------------------------
|
||||
@Override
|
||||
public boolean hasNext() {
|
||||
if (!iterators.isEmpty()) {
|
||||
return (((Iterator) iterators.get(0)).hasNext());
|
||||
return (((Iterator<?>) iterators.get(0)).hasNext());
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
@@ -67,10 +61,10 @@ public class AppendIteratorFilter extends IteratorFilterSupport implements Itera
|
||||
@Override
|
||||
public Object next() {
|
||||
try {
|
||||
return ((Iterator) iterators.get(0)).next();
|
||||
return ((Iterator<?>) iterators.get(0)).next();
|
||||
} finally {
|
||||
if (!iterators.isEmpty()) {
|
||||
if (!((Iterator) iterators.get(0)).hasNext()) {
|
||||
if (!((Iterator<?>) iterators.get(0)).hasNext()) {
|
||||
iterators.remove(0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,6 +26,8 @@ import freemarker.template.TemplateModelException;
|
||||
import jakarta.servlet.ServletContext;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpSession;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.util.HashMap;
|
||||
@@ -48,9 +50,13 @@ import java.util.Map;
|
||||
*/
|
||||
public class ScopesHashModel extends SimpleHash implements TemplateModel {
|
||||
|
||||
private static final Logger LOG = LogManager.getLogger(ScopesHashModel.class);
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 5551686380141886764L;
|
||||
|
||||
private static final String TAG_ATTRIBUTES = "attributes";
|
||||
|
||||
private final HttpServletRequest request;
|
||||
private final ServletContext servletContext;
|
||||
private ValueStack stack;
|
||||
@@ -96,6 +102,9 @@ public class ScopesHashModel extends SimpleHash implements TemplateModel {
|
||||
|
||||
if (obj != null) {
|
||||
return wrap(obj);
|
||||
} else if (TAG_ATTRIBUTES.equals(key)) {
|
||||
LOG.warn("[{}] cannot be resolved against stack, short-circuiting!", key);
|
||||
return null;
|
||||
}
|
||||
|
||||
// ok, then try the context
|
||||
@@ -145,7 +154,7 @@ public class ScopesHashModel extends SimpleHash implements TemplateModel {
|
||||
}
|
||||
|
||||
private Object findValueOnStack(final String key) {
|
||||
if ("parameters".equals(key)) {
|
||||
if (TAG_ATTRIBUTES.equals(key)) {
|
||||
if (parametersCache != null) {
|
||||
return parametersCache;
|
||||
}
|
||||
|
||||
@@ -59,7 +59,7 @@ public abstract class TagModel implements TemplateTransformModel {
|
||||
container.inject(bean);
|
||||
|
||||
Map unwrappedParameters = unwrapParameters(params);
|
||||
bean.copyParams(unwrappedParameters);
|
||||
bean.copyAttributes(unwrappedParameters);
|
||||
|
||||
return new CallbackWriter(bean, writer);
|
||||
}
|
||||
|
||||
@@ -25,9 +25,8 @@ import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.servlet.jsp.JspException;
|
||||
import org.apache.struts2.components.Component;
|
||||
|
||||
/**
|
||||
*/
|
||||
public abstract class ComponentTagSupport extends StrutsBodyTagSupport {
|
||||
|
||||
protected Component component;
|
||||
|
||||
public abstract Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res);
|
||||
@@ -57,9 +56,9 @@ public abstract class ComponentTagSupport extends StrutsBodyTagSupport {
|
||||
}
|
||||
|
||||
/**
|
||||
* Define method to populate component state based on the Tag parameters.
|
||||
*
|
||||
* Descendants should override this method for custom behaviour, but should <em>always</em> call the ancestor method when doing so.
|
||||
* Define method to populate component state based on the Tag attributes.
|
||||
* Descendants should override this method for custom behaviour,
|
||||
* but should <em>always</em> call the ancestor method when doing so.
|
||||
*/
|
||||
protected void populateParams() {
|
||||
populatePerformClearTagStateForTagPoolingServersParam();
|
||||
@@ -67,7 +66,7 @@ public abstract class ComponentTagSupport extends StrutsBodyTagSupport {
|
||||
|
||||
/**
|
||||
* Specialized method to populate the performClearTagStateForTagPoolingServers state of the Component to match the value set in the Tag.
|
||||
*
|
||||
* <p>
|
||||
* Generally only unit tests would call this method directly, to avoid calling the whole populateParams() chain again after doStartTag()
|
||||
* has been called. Doing that can break tag / component state behaviour, but unit tests still need a way to set the
|
||||
* performClearTagStateForTagPoolingServers state for the component (which only comes into being after doStartTag() is called).
|
||||
@@ -84,7 +83,7 @@ public abstract class ComponentTagSupport extends StrutsBodyTagSupport {
|
||||
|
||||
@Override
|
||||
protected void clearTagStateForTagPoolingServers() {
|
||||
if (!getPerformClearTagStateForTagPoolingServers()) {
|
||||
if (!getPerformClearTagStateForTagPoolingServers()) {
|
||||
return; // If flag is false (default setting), do not perform any state clearing.
|
||||
}
|
||||
super.clearTagStateForTagPoolingServers();
|
||||
|
||||
@@ -23,15 +23,15 @@ NOTE: The 'header' stuff that follows is in this one file for checkbox due to th
|
||||
that for checkboxes we do not want the label field to show up as checkboxes handle their own
|
||||
lables
|
||||
-->
|
||||
<#assign hasFieldErrors = fieldErrors?? && fieldErrors.get(parameters.name)??/>
|
||||
<div <#rt/><#if parameters.id??>id="wwgrp_${parameters.id}"<#rt/></#if> class="wwgrp">
|
||||
<#assign hasFieldErrors = fieldErrors?? && fieldErrors.get(attributes.name)??/>
|
||||
<div <#rt/><#if attributes.id??>id="wwgrp_${attributes.id}"<#rt/></#if> class="wwgrp">
|
||||
|
||||
<#if hasFieldErrors>
|
||||
<div <#rt/><#if parameters.id??>id="wwerr_${parameters.id}"<#rt/></#if> class="wwerr">
|
||||
<#list fieldErrors.get(parameters.name) as error>
|
||||
<div <#rt/><#if attributes.id??>id="wwerr_${attributes.id}"<#rt/></#if> class="wwerr">
|
||||
<#list fieldErrors.get(attributes.name) as error>
|
||||
<div<#rt/>
|
||||
<#if parameters.id??>
|
||||
errorFor="${parameters.id}"<#rt/>
|
||||
<#if attributes.id??>
|
||||
errorFor="${attributes.id}"<#rt/>
|
||||
</#if>
|
||||
class="errorMessage">
|
||||
${error}
|
||||
@@ -39,24 +39,24 @@ lables
|
||||
</#list>
|
||||
</div><#t/>
|
||||
</#if>
|
||||
<#if !parameters.labelPosition?? && (parameters.form.labelPosition)??>
|
||||
<#assign labelPos = parameters.form.labelPosition/>
|
||||
<#elseif parameters.labelPosition??>
|
||||
<#assign labelPos = parameters.labelPosition/>
|
||||
<#if !attributes.labelPosition?? && (attributes.form.labelPosition)??>
|
||||
<#assign labelPos = attributes.form.labelPosition/>
|
||||
<#elseif attributes.labelPosition??>
|
||||
<#assign labelPos = attributes.labelPosition/>
|
||||
</#if>
|
||||
<#if (labelPos!"") == 'left'>
|
||||
<span <#rt/>
|
||||
<#if parameters.id??>id="wwlbl_${parameters.id}"<#rt/></#if> class="wwlbl">
|
||||
<#if attributes.id??>id="wwlbl_${attributes.id}"<#rt/></#if> class="wwlbl">
|
||||
<label<#t/>
|
||||
<#if parameters.id??>
|
||||
for="${parameters.id}"<#rt/>
|
||||
<#if attributes.id??>
|
||||
for="${attributes.id}"<#rt/>
|
||||
</#if>
|
||||
<#if hasFieldErrors>
|
||||
class="checkboxErrorLabel"<#rt/>
|
||||
<#else>
|
||||
class="label"<#rt/>
|
||||
</#if>
|
||||
>${parameters.label}</label><#rt/>
|
||||
>${attributes.label}</label><#rt/>
|
||||
</span>
|
||||
</#if>
|
||||
|
||||
@@ -65,39 +65,39 @@ lables
|
||||
<#else>
|
||||
<span <#rt/>
|
||||
</#if>
|
||||
<#if parameters.id??>id="wwctrl_${parameters.id}"<#rt/></#if> class="wwctrl">
|
||||
<#if attributes.id??>id="wwctrl_${attributes.id}"<#rt/></#if> class="wwctrl">
|
||||
|
||||
<#if parameters.required!false>
|
||||
<#if attributes.required!false>
|
||||
<span class="required">*</span><#t/>
|
||||
</#if>
|
||||
|
||||
<#include "/${parameters.templateDir}/simple/checkbox.ftl" />
|
||||
<#include "/${attributes.templateDir}/simple/checkbox.ftl" />
|
||||
<#if (labelPos!"") != 'left'>
|
||||
<#if (labelPos!"top") == 'top'>
|
||||
</div> <#rt/>
|
||||
<#else>
|
||||
</span> <#rt/>
|
||||
</#if>
|
||||
<#if parameters.label??>
|
||||
<#if attributes.label??>
|
||||
<#if (labelPos!"top") == 'top'>
|
||||
<div <#rt/>
|
||||
<#else>
|
||||
<span <#rt/>
|
||||
</#if>
|
||||
<#if parameters.id??>id="wwlbl_${parameters.id}"<#rt/></#if> class="wwlbl">
|
||||
<#if attributes.id??>id="wwlbl_${attributes.id}"<#rt/></#if> class="wwlbl">
|
||||
<label<#t/>
|
||||
<#if parameters.id??>
|
||||
for="${parameters.id}"<#rt/>
|
||||
<#if attributes.id??>
|
||||
for="${attributes.id}"<#rt/>
|
||||
</#if>
|
||||
<#if hasFieldErrors>
|
||||
class="checkboxErrorLabel"<#rt/>
|
||||
<#else>
|
||||
class="checkboxLabel"<#rt/>
|
||||
</#if>
|
||||
>${parameters.label}</label><#rt/>
|
||||
>${attributes.label}</label><#rt/>
|
||||
</#if>
|
||||
</#if>
|
||||
<#if parameters.label??>
|
||||
<#if attributes.label??>
|
||||
<#if (labelPos!"top") == 'top'>
|
||||
</div> <#rt/>
|
||||
<#else>
|
||||
|
||||
@@ -18,26 +18,26 @@
|
||||
* under the License.
|
||||
*/
|
||||
-->
|
||||
${parameters.after!}<#t/>
|
||||
${attributes.after!}<#t/>
|
||||
<#lt/>
|
||||
<#if !parameters.labelPosition?? && (parameters.form.labelPosition)??>
|
||||
<#assign labelPos = parameters.form.labelPosition/>
|
||||
<#elseif parameters.labelPosition??>
|
||||
<#assign labelPos = parameters.labelPosition/>
|
||||
<#if !attributes.labelPosition?? && (attributes.form.labelPosition)??>
|
||||
<#assign labelPos = attributes.form.labelPosition/>
|
||||
<#elseif attributes.labelPosition??>
|
||||
<#assign labelPos = attributes.labelPosition/>
|
||||
</#if>
|
||||
<#if (labelPos!"top") == 'top'>
|
||||
</div> <#rt/>
|
||||
<#else>
|
||||
</span> <#rt/>
|
||||
</#if>
|
||||
<#if (parameters.errorposition!"top") == 'bottom'>
|
||||
<#assign hasFieldErrors = parameters.name?? && fieldErrors?? && fieldErrors.get(parameters.name)??/>
|
||||
<#if (attributes.errorposition!"top") == 'bottom'>
|
||||
<#assign hasFieldErrors = attributes.name?? && fieldErrors?? && fieldErrors.get(attributes.name)??/>
|
||||
<#if hasFieldErrors>
|
||||
<div <#rt/><#if parameters.id??>id="wwerr_${parameters.id}"<#rt/></#if> class="wwerr">
|
||||
<#list fieldErrors.get(parameters.name) as error>
|
||||
<div <#rt/><#if attributes.id??>id="wwerr_${attributes.id}"<#rt/></#if> class="wwerr">
|
||||
<#list fieldErrors.get(attributes.name) as error>
|
||||
<div<#rt/>
|
||||
<#if parameters.id??>
|
||||
errorFor="${parameters.id}"<#rt/>
|
||||
<#if attributes.id??>
|
||||
errorFor="${attributes.id}"<#rt/>
|
||||
</#if>
|
||||
class="errorMessage">
|
||||
${error}
|
||||
|
||||
@@ -22,16 +22,16 @@
|
||||
Only show message if errors are available.
|
||||
This will be done if ActionSupport is used.
|
||||
-->
|
||||
<#assign hasFieldErrors = parameters.name?? && fieldErrors?? && fieldErrors.get(parameters.name)??/>
|
||||
<div <#rt/><#if parameters.id??>id="wwgrp_${parameters.id}"<#rt/></#if> class="wwgrp">
|
||||
<#assign hasFieldErrors = attributes.name?? && fieldErrors?? && fieldErrors.get(attributes.name)??/>
|
||||
<div <#rt/><#if attributes.id??>id="wwgrp_${attributes.id}"<#rt/></#if> class="wwgrp">
|
||||
|
||||
<#if (parameters.errorposition!"top") == 'top'>
|
||||
<#if (attributes.errorposition!"top") == 'top'>
|
||||
<#if hasFieldErrors>
|
||||
<div <#rt/><#if parameters.id??>id="wwerr_${parameters.id}"<#rt/></#if> class="wwerr">
|
||||
<#list fieldErrors.get(parameters.name) as error>
|
||||
<div <#rt/><#if attributes.id??>id="wwerr_${attributes.id}"<#rt/></#if> class="wwerr">
|
||||
<#list fieldErrors.get(attributes.name) as error>
|
||||
<div<#rt/>
|
||||
<#if parameters.id??>
|
||||
errorFor="${parameters.id}"<#rt/>
|
||||
<#if attributes.id??>
|
||||
errorFor="${attributes.id}"<#rt/>
|
||||
</#if>
|
||||
class="errorMessage">
|
||||
${error}
|
||||
@@ -41,21 +41,21 @@
|
||||
</#if>
|
||||
</#if>
|
||||
|
||||
<#if !parameters.labelPosition?? && (parameters.form.labelPosition)??>
|
||||
<#assign labelPos = parameters.form.labelPosition/>
|
||||
<#elseif parameters.labelPosition??>
|
||||
<#assign labelPos = parameters.labelPosition/>
|
||||
<#if !attributes.labelPosition?? && (attributes.form.labelPosition)??>
|
||||
<#assign labelPos = attributes.form.labelPosition/>
|
||||
<#elseif attributes.labelPosition??>
|
||||
<#assign labelPos = attributes.labelPosition/>
|
||||
</#if>
|
||||
<#if parameters.label??>
|
||||
<#if attributes.label??>
|
||||
<#if (labelPos!"top") == 'top'>
|
||||
<div <#rt/>
|
||||
<#else>
|
||||
<span <#rt/>
|
||||
</#if>
|
||||
<#if parameters.id??>id="wwlbl_${parameters.id}"<#rt/></#if> class="wwlbl">
|
||||
<#if attributes.id??>id="wwlbl_${attributes.id}"<#rt/></#if> class="wwlbl">
|
||||
<label <#t/>
|
||||
<#if parameters.id??>
|
||||
for="${parameters.id}" <#t/>
|
||||
<#if attributes.id??>
|
||||
for="${attributes.id}" <#t/>
|
||||
</#if>
|
||||
<#if hasFieldErrors>
|
||||
class="errorLabel"<#t/>
|
||||
@@ -63,11 +63,11 @@
|
||||
class="label"<#t/>
|
||||
</#if>
|
||||
><#t/>
|
||||
<#if parameters.required!false>
|
||||
<#if attributes.required!false>
|
||||
<span class="required">*</span><#t/>
|
||||
</#if>
|
||||
${parameters.label}${parameters.labelseparator!":"}
|
||||
<#include "/${parameters.templateDir}/xhtml/tooltip.ftl" />
|
||||
${attributes.label}${attributes.labelseparator!":"}
|
||||
<#include "/${attributes.templateDir}/xhtml/tooltip.ftl" />
|
||||
</label><#t/>
|
||||
<#if (labelPos!"top") == 'top'>
|
||||
</div> <br /><#rt/>
|
||||
|
||||
@@ -18,15 +18,15 @@
|
||||
* under the License.
|
||||
*/
|
||||
-->
|
||||
<#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/>
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/controlheader-core.ftl">
|
||||
<#if !attributes.labelPosition?? && (attributes.form.labelPosition)??>
|
||||
<#assign labelPos = attributes.form.labelPosition/>
|
||||
<#elseif attributes.labelPosition??>
|
||||
<#assign labelPos = attributes.labelPosition/>
|
||||
</#if>
|
||||
<#if (labelPos!"top") == 'top'>
|
||||
<div <#rt/>
|
||||
<#else>
|
||||
<span <#rt/>
|
||||
</#if>
|
||||
<#if parameters.id??>id="wwctrl_${parameters.id}"<#rt/></#if> class="wwctrl">
|
||||
<#if attributes.id??>id="wwctrl_${attributes.id}"<#rt/></#if> class="wwctrl">
|
||||
|
||||
@@ -18,11 +18,11 @@
|
||||
* under the License.
|
||||
*/
|
||||
-->
|
||||
<#if parameters.validate!false == true>
|
||||
<@s.script src="${base}${parameters.staticContentPath}/css_xhtml/validation.js"/>
|
||||
<#if parameters.onsubmit??>
|
||||
${tag.addParameter('onsubmit', "${parameters.onsubmit}; return validateForm_${parameters.escapedId}();")}
|
||||
<#if attributes.validate!false == true>
|
||||
<@s.script src="${base}${attributes.staticContentPath}/css_xhtml/validation.js"/>
|
||||
<#if attributes.onsubmit??>
|
||||
${tag.addParameter('onsubmit', "${attributes.onsubmit}; return validateForm_${attributes.escapedId}();")}
|
||||
<#else>
|
||||
${tag.addParameter('onsubmit', "return validateForm_${parameters.escapedId}();")}
|
||||
${tag.addParameter('onsubmit', "return validateForm_${attributes.escapedId}();")}
|
||||
</#if>
|
||||
</#if>
|
||||
|
||||
@@ -18,5 +18,5 @@
|
||||
* under the License.
|
||||
*/
|
||||
-->
|
||||
<@s.link rel="stylesheet" href="${base}${parameters.staticContentPath}/css_xhtml/styles.css" type="text/css" />
|
||||
<#include "/${parameters.templateDir}/simple/head.ftl" />
|
||||
<@s.link rel="stylesheet" href="${base}${attributes.staticContentPath}/css_xhtml/styles.css" type="text/css" />
|
||||
<#include "/${attributes.templateDir}/simple/head.ftl" />
|
||||
|
||||
@@ -18,4 +18,4 @@
|
||||
* under the License.
|
||||
*/
|
||||
-->
|
||||
<#include "/${parameters.templateDir}/simple/hidden.ftl" />
|
||||
<#include "/${attributes.templateDir}/simple/hidden.ftl" />
|
||||
|
||||
@@ -18,28 +18,28 @@
|
||||
* under the License.
|
||||
*/
|
||||
-->
|
||||
<#--include "/${parameters.templateDir}/css_xhtml/controlheader.ftl" /-->
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlheader.ftl" />
|
||||
<#--include "/${attributes.templateDir}/css_xhtml/controlheader.ftl" /-->
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/controlheader.ftl" />
|
||||
<label<#rt/>
|
||||
<#if parameters.id??>
|
||||
id="${parameters.id}"<#rt/>
|
||||
<#if attributes.id??>
|
||||
id="${attributes.id}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.cssClass??>
|
||||
class="${parameters.cssClass}"<#rt/>
|
||||
<#if attributes.cssClass??>
|
||||
class="${attributes.cssClass}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.cssStyle??>
|
||||
style="${parameters.cssStyle}"<#rt/>
|
||||
<#if attributes.cssStyle??>
|
||||
style="${attributes.cssStyle}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.cssClass??>
|
||||
class="${parameters.cssClass}"<#rt/>
|
||||
<#if attributes.cssClass??>
|
||||
class="${attributes.cssClass}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.for??>
|
||||
for="${parameters.for}"<#rt/>
|
||||
<#if attributes.for??>
|
||||
for="${attributes.for}"<#rt/>
|
||||
</#if>
|
||||
><#rt/>
|
||||
<#if parameters.nameValue??>
|
||||
<@s.property value="parameters.nameValue"/><#t/>
|
||||
<#if attributes.nameValue??>
|
||||
<@s.property value="attributes.nameValue"/><#t/>
|
||||
</#if>
|
||||
|
||||
</label>
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlfooter.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/controlfooter.ftl" />
|
||||
|
||||
@@ -18,10 +18,10 @@
|
||||
* under the License.
|
||||
*/
|
||||
-->
|
||||
<#if !parameters.labelPosition?? && (parameters.form.labelPosition)??>
|
||||
<#assign labelPos = parameters.form.labelPosition/>
|
||||
<#elseif parameters.labelPosition??>
|
||||
<#assign labelPos = parameters.labelPosition/>
|
||||
<#if !attributes.labelPosition?? && (attributes.form.labelPosition)??>
|
||||
<#assign labelPos = attributes.form.labelPosition/>
|
||||
<#elseif attributes.labelPosition??>
|
||||
<#assign labelPos = attributes.labelPosition/>
|
||||
</#if>
|
||||
<#if (labelPos!"top") == 'top'>
|
||||
<div <#rt/>
|
||||
@@ -29,11 +29,11 @@
|
||||
<span <#rt/>
|
||||
</#if>
|
||||
class="formButton"<#t/>
|
||||
<#if parameters.id??>
|
||||
id="wwctrl_${parameters.id}"<#rt/>
|
||||
<#if attributes.id??>
|
||||
id="wwctrl_${attributes.id}"<#rt/>
|
||||
</#if>
|
||||
><#t/>
|
||||
<#include "/${parameters.templateDir}/simple/reset.ftl" />
|
||||
<#include "/${attributes.templateDir}/simple/reset.ftl" />
|
||||
<#if (labelPos!"top") == 'top'>
|
||||
</div> <#t/>
|
||||
<#else>
|
||||
|
||||
@@ -18,11 +18,11 @@
|
||||
* under the License.
|
||||
*/
|
||||
-->
|
||||
<#include "/${parameters.templateDir}/simple/submit-close.ftl" />
|
||||
<#if !parameters.labelPosition?? && (parameters.form.labelPosition)??>
|
||||
<#assign labelPos = parameters.form.labelPosition/>
|
||||
<#elseif parameters.labelPosition??>
|
||||
<#assign labelPos = parameters.labelPosition/>
|
||||
<#include "/${attributes.templateDir}/simple/submit-close.ftl" />
|
||||
<#if !attributes.labelPosition?? && (attributes.form.labelPosition)??>
|
||||
<#assign labelPos = attributes.form.labelPosition/>
|
||||
<#elseif attributes.labelPosition??>
|
||||
<#assign labelPos = attributes.labelPosition/>
|
||||
</#if>
|
||||
<#if (labelPos!"top") == 'top'>
|
||||
</div> <#t/>
|
||||
|
||||
@@ -18,10 +18,10 @@
|
||||
* under the License.
|
||||
*/
|
||||
-->
|
||||
<#if !parameters.labelPosition?? && (parameters.form.labelPosition)??>
|
||||
<#assign labelPos = parameters.form.labelPosition/>
|
||||
<#elseif parameters.labelPosition??>
|
||||
<#assign labelPos = parameters.labelPosition/>
|
||||
<#if !attributes.labelPosition?? && (attributes.form.labelPosition)??>
|
||||
<#assign labelPos = attributes.form.labelPosition/>
|
||||
<#elseif attributes.labelPosition??>
|
||||
<#assign labelPos = attributes.labelPosition/>
|
||||
</#if>
|
||||
<#if (labelPos!"top") == 'top'>
|
||||
<div <#rt/>
|
||||
@@ -29,8 +29,8 @@
|
||||
<span <#rt/>
|
||||
</#if>
|
||||
class="formButton"<#t/>
|
||||
<#if parameters.id??>
|
||||
id="wwctrl_${parameters.id}"<#rt/>
|
||||
<#if attributes.id??>
|
||||
id="wwctrl_${attributes.id}"<#rt/>
|
||||
</#if>
|
||||
><#t/>
|
||||
<#include "/${parameters.templateDir}/simple/submit.ftl" />
|
||||
<#include "/${attributes.templateDir}/simple/submit.ftl" />
|
||||
|
||||
@@ -19,28 +19,28 @@
|
||||
*/
|
||||
-->
|
||||
<a<#rt/>
|
||||
<#if parameters.id??>
|
||||
id="${parameters.id}"<#rt/>
|
||||
<#if attributes.id??>
|
||||
id="${attributes.id}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.href??>
|
||||
href="${parameters.href?no_esc}"<#rt/>
|
||||
<#if attributes.href??>
|
||||
href="${attributes.href?no_esc}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.disabled!false>
|
||||
<#if attributes.disabled!false>
|
||||
disabled="disabled"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.tabindex??>
|
||||
tabindex="${parameters.tabindex}"<#rt/>
|
||||
<#if attributes.tabindex??>
|
||||
tabindex="${attributes.tabindex}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.cssClass??>
|
||||
class="${parameters.cssClass}"<#rt/>
|
||||
<#if attributes.cssClass??>
|
||||
class="${attributes.cssClass}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.cssStyle??>
|
||||
style="${parameters.cssStyle}"<#rt/>
|
||||
<#if attributes.cssStyle??>
|
||||
style="${attributes.cssStyle}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.title??>
|
||||
title="${parameters.title}"<#rt/>
|
||||
<#if attributes.title??>
|
||||
title="${attributes.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" />
|
||||
>${tag.escapeHtmlBody()?then(parameters.body, parameters.body?no_esc)}</a>
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/scripting-events.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/common-attributes.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/dynamic-attributes.ftl" />
|
||||
>${tag.escapeHtmlBody()?then(attributes.body, attributes.body?no_esc)}</a>
|
||||
@@ -20,21 +20,21 @@
|
||||
-->
|
||||
<#if (actionErrors?? && actionErrors?size > 0)>
|
||||
<ul<#rt/>
|
||||
<#if parameters.id??>
|
||||
id="${parameters.id}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.cssClass??>
|
||||
class="${parameters.cssClass}"<#rt/>
|
||||
<#if attributes.id??>
|
||||
id="${attributes.id}"<#rt/>
|
||||
</#if>
|
||||
<#if attributes.cssClass??>
|
||||
class="${attributes.cssClass}"<#rt/>
|
||||
<#else>
|
||||
class="errorMessage"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.cssStyle??>
|
||||
style="${parameters.cssStyle}"<#rt/>
|
||||
<#if attributes.cssStyle??>
|
||||
style="${attributes.cssStyle}"<#rt/>
|
||||
</#if>
|
||||
>
|
||||
<#list actionErrors as error>
|
||||
<#if error??>
|
||||
<li><span><#if parameters.escape>${error!}<#else>${error!?no_esc}</#if></span><#rt/></li><#rt/>
|
||||
<li><span><#if attributes.escape>${error!}<#else>${error!?no_esc}</#if></span><#rt/></li><#rt/>
|
||||
</#if>
|
||||
</#list>
|
||||
</ul>
|
||||
|
||||
@@ -18,23 +18,23 @@
|
||||
* under the License.
|
||||
*/
|
||||
-->
|
||||
<#if (actionMessages?? && actionMessages?size > 0 && !parameters.isEmptyList)>
|
||||
<#if (actionMessages?? && actionMessages?size > 0 && !attributes.isEmptyList)>
|
||||
<ul<#rt/>
|
||||
<#if parameters.id??>
|
||||
id="${parameters.id}"<#rt/>
|
||||
<#if attributes.id??>
|
||||
id="${attributes.id}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.cssClass??>
|
||||
class="${parameters.cssClass}"<#rt/>
|
||||
<#if attributes.cssClass??>
|
||||
class="${attributes.cssClass}"<#rt/>
|
||||
<#else>
|
||||
class="actionMessage"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.cssStyle??>
|
||||
style="${parameters.cssStyle}"<#rt/>
|
||||
<#if attributes.cssStyle??>
|
||||
style="${attributes.cssStyle}"<#rt/>
|
||||
</#if>
|
||||
>
|
||||
<#list actionMessages as message>
|
||||
<#if message??>
|
||||
<li><span><#if parameters.escape>${message!}<#else>${message!?no_esc}</#if></span></li>
|
||||
<li><span><#if attributes.escape>${message!}<#else>${message!?no_esc}</#if></span></li>
|
||||
</#if>
|
||||
</#list>
|
||||
</ul>
|
||||
|
||||
@@ -18,30 +18,30 @@
|
||||
* under the License.
|
||||
*/
|
||||
-->
|
||||
<input type="checkbox" name="${parameters.name}" value="${parameters.fieldValue}"<#rt/>
|
||||
<#if parameters.nameValue?? && parameters.nameValue>
|
||||
<input type="checkbox" name="${attributes.name}" value="${attributes.fieldValue}"<#rt/>
|
||||
<#if attributes.nameValue?? && attributes.nameValue>
|
||||
checked="checked"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.disabled!false>
|
||||
<#if attributes.disabled!false>
|
||||
disabled="disabled"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.tabindex?has_content>
|
||||
tabindex="${parameters.tabindex}"<#rt/>
|
||||
<#if attributes.tabindex?has_content>
|
||||
tabindex="${attributes.tabindex}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.id?has_content>
|
||||
id="${parameters.id}"<#rt/>
|
||||
<#if attributes.id?has_content>
|
||||
id="${attributes.id}"<#rt/>
|
||||
</#if>
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/css.ftl" />
|
||||
<#if parameters.title?has_content>
|
||||
title="${parameters.title}"<#rt/>
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/css.ftl" />
|
||||
<#if attributes.title?has_content>
|
||||
title="${attributes.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" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/scripting-events.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/common-attributes.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/dynamic-attributes.ftl" />
|
||||
/><#rt/>
|
||||
<#if parameters.submitUnchecked!false>
|
||||
<input type="hidden" id="__checkbox_${parameters.id}" name="__checkbox_${parameters.name}" value="${parameters.fieldValue}"<#rt/>
|
||||
<#if parameters.disabled!false>
|
||||
<#if attributes.submitUnchecked!false>
|
||||
<input type="hidden" id="__checkbox_${attributes.id}" name="__checkbox_${attributes.name}" value="${attributes.fieldValue}"<#rt/>
|
||||
<#if attributes.disabled!false>
|
||||
disabled="disabled"<#rt/>
|
||||
</#if>
|
||||
/><#rt/>
|
||||
|
||||
@@ -19,98 +19,98 @@
|
||||
*/
|
||||
-->
|
||||
<#assign itemCount = 0/>
|
||||
<#if parameters.list??>
|
||||
<@s.iterator value="parameters.list">
|
||||
<#if attributes.list??>
|
||||
<@s.iterator value="attributes.list">
|
||||
<#assign itemCount = itemCount + 1/>
|
||||
<#if parameters.listKey??>
|
||||
<#assign itemKey = stack.findValue(parameters.listKey)/>
|
||||
<#assign itemKeyStr = stack.findString(parameters.listKey)/>
|
||||
<#if attributes.listKey??>
|
||||
<#assign itemKey = stack.findValue(attributes.listKey)/>
|
||||
<#assign itemKeyStr = stack.findString(attributes.listKey)/>
|
||||
<#else>
|
||||
<#assign itemKey = stack.findValue('top')/>
|
||||
<#assign itemKeyStr = stack.findString('top')>
|
||||
</#if>
|
||||
<#if parameters.listLabelKey??>
|
||||
<#if attributes.listLabelKey??>
|
||||
<#-- checks the valueStack for the 'valueKey.' The valueKey is then looked-up in the locale
|
||||
file for it's localized value. This is then used as a label -->
|
||||
<#assign itemValue = struts.getText(stack.findString(parameters.listLabelKey))/>
|
||||
<#elseif parameters.listValue??>
|
||||
<#assign itemValue = stack.findString(parameters.listValue)!""/>
|
||||
<#assign itemValue = struts.getText(stack.findString(attributes.listLabelKey))/>
|
||||
<#elseif attributes.listValue??>
|
||||
<#assign itemValue = stack.findString(attributes.listValue)!""/>
|
||||
<#else>
|
||||
<#assign itemValue = stack.findString('top')/>
|
||||
</#if>
|
||||
<#if parameters.listCssClass??>
|
||||
<#if stack.findString(parameters.listCssClass)??>
|
||||
<#assign itemCssClass= stack.findString(parameters.listCssClass)/>
|
||||
<#if attributes.listCssClass??>
|
||||
<#if stack.findString(attributes.listCssClass)??>
|
||||
<#assign itemCssClass= stack.findString(attributes.listCssClass)/>
|
||||
<#else>
|
||||
<#assign itemCssClass = ''/>
|
||||
</#if>
|
||||
</#if>
|
||||
<#if parameters.listCssStyle??>
|
||||
<#if stack.findString(parameters.listCssStyle)??>
|
||||
<#assign itemCssStyle= stack.findString(parameters.listCssStyle)/>
|
||||
<#if attributes.listCssStyle??>
|
||||
<#if stack.findString(attributes.listCssStyle)??>
|
||||
<#assign itemCssStyle= stack.findString(attributes.listCssStyle)/>
|
||||
<#else>
|
||||
<#assign itemCssStyle = ''/>
|
||||
</#if>
|
||||
</#if>
|
||||
<#if parameters.listTitle??>
|
||||
<#if stack.findString(parameters.listTitle)??>
|
||||
<#assign itemTitle= stack.findString(parameters.listTitle)/>
|
||||
<#if attributes.listTitle??>
|
||||
<#if stack.findString(attributes.listTitle)??>
|
||||
<#assign itemTitle= stack.findString(attributes.listTitle)/>
|
||||
<#else>
|
||||
<#assign itemTitle = ''/>
|
||||
</#if>
|
||||
</#if>
|
||||
<input type="checkbox" name="${parameters.name}" value="${itemKeyStr}"<#rt/>
|
||||
<#if parameters.id?has_content>
|
||||
id="${parameters.id}-${itemCount}"<#rt/>
|
||||
<input type="checkbox" name="${attributes.name}" value="${itemKeyStr}"<#rt/>
|
||||
<#if attributes.id?has_content>
|
||||
id="${attributes.id}-${itemCount}"<#rt/>
|
||||
<#else>
|
||||
id="${parameters.name}-${itemCount}"<#rt/>
|
||||
id="${attributes.name}-${itemCount}"<#rt/>
|
||||
</#if>
|
||||
<#if tag.contains(parameters.nameValue, itemKey)>
|
||||
<#if tag.contains(attributes.nameValue, itemKey)>
|
||||
checked="checked"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.disabled!false>
|
||||
<#if attributes.disabled!false>
|
||||
disabled="disabled"<#rt/>
|
||||
</#if>
|
||||
<#if itemCssClass??>
|
||||
class="${itemCssClass}"<#rt/>
|
||||
<#else>
|
||||
<#if parameters.cssClass?has_content>
|
||||
class="${parameters.cssClass}"<#rt/>
|
||||
<#if attributes.cssClass?has_content>
|
||||
class="${attributes.cssClass}"<#rt/>
|
||||
</#if>
|
||||
</#if>
|
||||
<#if itemCssStyle??>
|
||||
style="${itemCssStyle}"<#rt/>
|
||||
<#else>
|
||||
<#if parameters.cssStyle?has_content>
|
||||
style="${parameters.cssStyle}"<#rt/>
|
||||
<#if attributes.cssStyle?has_content>
|
||||
style="${attributes.cssStyle}"<#rt/>
|
||||
</#if>
|
||||
</#if>
|
||||
<#if itemTitle??>
|
||||
title="${itemTitle}"<#rt/>
|
||||
<#else>
|
||||
<#if parameters.title?has_content>
|
||||
title="${parameters.title}"<#rt/>
|
||||
<#if attributes.title?has_content>
|
||||
title="${attributes.title}"<#rt/>
|
||||
</#if>
|
||||
</#if>
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/css.ftl" />
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/scripting-events.ftl" />
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/common-attributes.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/css.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/scripting-events.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/common-attributes.ftl" />
|
||||
<#global evaluate_dynamic_attributes = true/>
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/dynamic-attributes.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/dynamic-attributes.ftl" />
|
||||
/>
|
||||
<label<#rt/>
|
||||
<#if parameters.id?has_content>
|
||||
for="${parameters.id}-${itemCount}"<#rt/>
|
||||
<#if attributes.id?has_content>
|
||||
for="${attributes.id}-${itemCount}"<#rt/>
|
||||
<#else>
|
||||
for="${parameters.name}-${itemCount}"<#rt/>
|
||||
for="${attributes.name}-${itemCount}"<#rt/>
|
||||
</#if>
|
||||
class="checkboxLabel">${itemValue}</label>
|
||||
</@s.iterator>
|
||||
<#else>
|
||||
</#if>
|
||||
<input type="hidden" id="__multiselect_${parameters.id}" name="__multiselect_${parameters.name}"
|
||||
<input type="hidden" id="__multiselect_${attributes.id}" name="__multiselect_${attributes.name}"
|
||||
value=""<#rt/>
|
||||
<#if parameters.disabled!false>
|
||||
<#if attributes.disabled!false>
|
||||
disabled="disabled"<#rt/>
|
||||
</#if>
|
||||
/>
|
||||
|
||||
@@ -19,69 +19,69 @@
|
||||
*/
|
||||
-->
|
||||
<@s.script>
|
||||
function autoPopulate_${parameters.escapedId}(targetElement) {
|
||||
<#if parameters.headerKey?? && parameters.headerValue??>
|
||||
if (targetElement.options[targetElement.selectedIndex].value == '${parameters.headerKey?js_string}') {
|
||||
function autoPopulate_${attributes.escapedId}(targetElement) {
|
||||
<#if attributes.headerKey?? && attributes.headerValue??>
|
||||
if (targetElement.options[targetElement.selectedIndex].value == '${attributes.headerKey?js_string}') {
|
||||
return;
|
||||
}
|
||||
</#if>
|
||||
<#if parameters.emptyOption!false>
|
||||
<#if attributes.emptyOption!false>
|
||||
if (targetElement.options[targetElement.selectedIndex].value == '') {
|
||||
return;
|
||||
}
|
||||
</#if>
|
||||
targetElement.form.elements['${parameters.name?js_string}'].value=targetElement.options[targetElement.selectedIndex].value;
|
||||
targetElement.form.elements['${attributes.name?js_string}'].value=targetElement.options[targetElement.selectedIndex].value;
|
||||
}
|
||||
</@s.script>
|
||||
<#include "/${parameters.templateDir}/simple/text.ftl" />
|
||||
<#include "/${attributes.templateDir}/simple/text.ftl" />
|
||||
<br />
|
||||
<#if parameters.list??>
|
||||
<select onChange="autoPopulate_${parameters.escapedId}(this);"<#rt/>
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/css.ftl" />
|
||||
<#if parameters.disabled!false>
|
||||
<#if attributes.list??>
|
||||
<select onChange="autoPopulate_${attributes.escapedId}(this);"<#rt/>
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/css.ftl" />
|
||||
<#if attributes.disabled!false>
|
||||
disabled="disabled"<#rt/>
|
||||
</#if>
|
||||
>
|
||||
<#if (parameters.headerKey?? && parameters.headerValue??)>
|
||||
<option value="${parameters.headerKey}">${parameters.headerValue}</option>
|
||||
<#if (attributes.headerKey?? && attributes.headerValue??)>
|
||||
<option value="${attributes.headerKey}">${attributes.headerValue}</option>
|
||||
</#if>
|
||||
<#if parameters.emptyOption!false>
|
||||
<#if attributes.emptyOption!false>
|
||||
<option value=""></option>
|
||||
</#if>
|
||||
<@s.iterator value="parameters.list">
|
||||
<#if parameters.listKey??>
|
||||
<#assign tmpListKey = stack.findString(parameters.listKey) />
|
||||
<@s.iterator value="attributes.list">
|
||||
<#if attributes.listKey??>
|
||||
<#assign tmpListKey = stack.findString(attributes.listKey) />
|
||||
<#else>
|
||||
<#assign tmpListKey = stack.findString('top') />
|
||||
</#if>
|
||||
<#if parameters.listValue??>
|
||||
<#assign tmpListValue = stack.findString(parameters.listValue) />
|
||||
<#if attributes.listValue??>
|
||||
<#assign tmpListValue = stack.findString(attributes.listValue) />
|
||||
<#else>
|
||||
<#assign tmpListValue = stack.findString('top') />
|
||||
</#if>
|
||||
<#if parameters.listCssClass??>
|
||||
<#if stack.findString(parameters.listCssClass)??>
|
||||
<#assign itemCssClass= stack.findString(parameters.listCssClass)/>
|
||||
<#if attributes.listCssClass??>
|
||||
<#if stack.findString(attributes.listCssClass)??>
|
||||
<#assign itemCssClass= stack.findString(attributes.listCssClass)/>
|
||||
<#else>
|
||||
<#assign itemCssClass = ''/>
|
||||
</#if>
|
||||
</#if>
|
||||
<#if parameters.listCssStyle??>
|
||||
<#if stack.findString(parameters.listCssStyle)??>
|
||||
<#assign itemCssStyle= stack.findString(parameters.listCssStyle)/>
|
||||
<#if attributes.listCssStyle??>
|
||||
<#if stack.findString(attributes.listCssStyle)??>
|
||||
<#assign itemCssStyle= stack.findString(attributes.listCssStyle)/>
|
||||
<#else>
|
||||
<#assign itemCssStyle = ''/>
|
||||
</#if>
|
||||
</#if>
|
||||
<#if parameters.listTitle??>
|
||||
<#if stack.findString(parameters.listTitle)??>
|
||||
<#assign itemTitle= stack.findString(parameters.listTitle)/>
|
||||
<#if attributes.listTitle??>
|
||||
<#if stack.findString(attributes.listTitle)??>
|
||||
<#assign itemTitle= stack.findString(attributes.listTitle)/>
|
||||
<#else>
|
||||
<#assign itemTitle = ''/>
|
||||
</#if>
|
||||
</#if>
|
||||
<option value="${tmpListKey}"<#rt/>
|
||||
<#if (parameters.nameValue == tmpListKey)>
|
||||
<#if (attributes.nameValue == tmpListKey)>
|
||||
selected="selected"<#rt/>
|
||||
</#if>
|
||||
<#if itemCssClass??>
|
||||
|
||||
@@ -18,6 +18,6 @@
|
||||
* under the License.
|
||||
*/
|
||||
-->
|
||||
<#if parameters.accesskey?has_content>
|
||||
accesskey="${parameters.accesskey}"<#rt/>
|
||||
<#if attributes.accesskey?has_content>
|
||||
accesskey="${attributes.accesskey}"<#rt/>
|
||||
</#if><#rt/>
|
||||
|
||||
@@ -18,16 +18,16 @@
|
||||
* under the License.
|
||||
*/
|
||||
-->
|
||||
<#assign hasFieldErrors = parameters.name?? && fieldErrors?? && fieldErrors.get(parameters.name)??/>
|
||||
<#if parameters.cssClass?has_content && !(hasFieldErrors && parameters.cssErrorClass??)>
|
||||
class="${parameters.cssClass}"<#rt/>
|
||||
<#elseif parameters.cssClass?has_content && (hasFieldErrors && parameters.cssErrorClass??)>
|
||||
class="${parameters.cssClass} ${parameters.cssErrorClass}"<#rt/>
|
||||
<#elseif !(parameters.cssClass?has_content) && (hasFieldErrors && parameters.cssErrorClass??)>
|
||||
class="${parameters.cssErrorClass}"<#rt/>
|
||||
<#assign hasFieldErrors = attributes.name?? && fieldErrors?? && fieldErrors.get(attributes.name)??/>
|
||||
<#if attributes.cssClass?has_content && !(hasFieldErrors && attributes.cssErrorClass??)>
|
||||
class="${attributes.cssClass}"<#rt/>
|
||||
<#elseif attributes.cssClass?has_content && (hasFieldErrors && attributes.cssErrorClass??)>
|
||||
class="${attributes.cssClass} ${attributes.cssErrorClass}"<#rt/>
|
||||
<#elseif !(attributes.cssClass?has_content) && (hasFieldErrors && attributes.cssErrorClass??)>
|
||||
class="${attributes.cssErrorClass}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.cssStyle?has_content && !(hasFieldErrors && (parameters.cssErrorStyle?? || parameters.cssErrorClass??))>
|
||||
style="${parameters.cssStyle}"<#rt/>
|
||||
<#elseif hasFieldErrors && parameters.cssErrorStyle??>
|
||||
style="${parameters.cssErrorStyle}"<#rt/>
|
||||
<#if attributes.cssStyle?has_content && !(hasFieldErrors && (attributes.cssErrorStyle?? || attributes.cssErrorClass??))>
|
||||
style="${attributes.cssStyle}"<#rt/>
|
||||
<#elseif hasFieldErrors && attributes.cssErrorStyle??>
|
||||
style="${attributes.cssErrorStyle}"<#rt/>
|
||||
</#if>
|
||||
@@ -41,7 +41,7 @@
|
||||
<br>
|
||||
|
||||
<a href="#" id="toggle-button">[Debug]</a>
|
||||
<div style="display:none" id="<#if parameters.id??>${parameters.id}<#else>debug</#if>">
|
||||
<div style="display:none" id="<#if attributes.id??>${attributes.id}<#else>debug</#if>">
|
||||
<h2>Struts ValueStack Debug</h2>
|
||||
<br>
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
<tr><th>Object</th><th>Property Name</th><th>Property Value</th><th>Property Class</th></tr>
|
||||
|
||||
<#assign index=1>
|
||||
<#list parameters.stackValues as stackObject>
|
||||
<#list attributes.stackValues as stackObject>
|
||||
<tr>
|
||||
<td rowspan="${stackObject.value.size()}">${stackObject.key}</td>
|
||||
|
||||
@@ -86,7 +86,7 @@
|
||||
</div>
|
||||
<@s.script>
|
||||
document.getElementById('toggle-button').onclick = function() {
|
||||
toggleDebug('<#if parameters.id??>${parameters.id}<#else>debug</#if>');
|
||||
toggleDebug('<#if attributes.id??>${attributes.id}<#else>debug</#if>');
|
||||
return false;
|
||||
}
|
||||
</@s.script>
|
||||
|
||||
@@ -19,170 +19,170 @@
|
||||
*/
|
||||
-->
|
||||
<#global dynamic_attributes_ignore = "second-"/>
|
||||
<#include "/${parameters.templateDir}/simple/select.ftl" />
|
||||
<#include "/${attributes.templateDir}/simple/select.ftl" />
|
||||
<#assign startCount = 0/><#rt/>
|
||||
<#if parameters.headerKey?? && parameters.headerValue??>
|
||||
<#if attributes.headerKey?? && attributes.headerValue??>
|
||||
<#assign startCount = startCount + 1/><#rt/>
|
||||
</#if>
|
||||
<#if parameters.emptyOption??>
|
||||
<#if attributes.emptyOption??>
|
||||
<#assign startCount = startCount + 1/><#rt/>
|
||||
</#if>
|
||||
<br/>
|
||||
<select<#rt/>
|
||||
name="${(parameters.doubleName!"")}"<#rt/>
|
||||
<#if parameters.disabled!false>
|
||||
name="${(attributes.doubleName!"")}"<#rt/>
|
||||
<#if attributes.disabled!false>
|
||||
disabled="disabled"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.doubleTabindex?has_content>
|
||||
tabindex="${parameters.doubleTabindex}"<#rt/>
|
||||
<#if attributes.doubleTabindex?has_content>
|
||||
tabindex="${attributes.doubleTabindex}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.doubleId?has_content>
|
||||
id="${parameters.doubleId}"<#rt/>
|
||||
<#if attributes.doubleId?has_content>
|
||||
id="${attributes.doubleId}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.doubleCss?has_content>
|
||||
class="${parameters.doubleCss}"<#rt/>
|
||||
<#if attributes.doubleCss?has_content>
|
||||
class="${attributes.doubleCss}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.doubleStyle?has_content>
|
||||
style="${parameters.doubleStyle}"<#rt/>
|
||||
<#if attributes.doubleStyle?has_content>
|
||||
style="${attributes.doubleStyle}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.title?has_content>
|
||||
title="${parameters.title}"<#rt/>
|
||||
<#if attributes.title?has_content>
|
||||
title="${attributes.title}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.multiple!false>
|
||||
<#if attributes.multiple!false>
|
||||
multiple="multiple"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.get("doubleSize")?has_content>
|
||||
size="${parameters.get("doubleSize")}"<#rt/>
|
||||
<#if attributes.get("doubleSize")?has_content>
|
||||
size="${attributes.get("doubleSize")}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.doubleMultiple!false>
|
||||
<#if attributes.doubleMultiple!false>
|
||||
multiple="multiple"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.doubleDisabled!false>
|
||||
<#if attributes.doubleDisabled!false>
|
||||
disabled="disabled"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.doubleOnclick??>
|
||||
onclick="<#outputformat 'JavaScript'>${parameters.doubleOnclick}</#outputformat>"<#rt/>
|
||||
<#if attributes.doubleOnclick??>
|
||||
onclick="<#outputformat 'JavaScript'>${attributes.doubleOnclick}</#outputformat>"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.doubleOndblclick??>
|
||||
ondblclick="<#outputformat 'JavaScript'>${parameters.doubleOndblclick}</#outputformat>"<#rt/>
|
||||
<#if attributes.doubleOndblclick??>
|
||||
ondblclick="<#outputformat 'JavaScript'>${attributes.doubleOndblclick}</#outputformat>"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.doubleOnmousedown??>
|
||||
onmousedown="<#outputformat 'JavaScript'>${parameters.doubleOnmousedown}</#outputformat>"<#rt/>
|
||||
<#if attributes.doubleOnmousedown??>
|
||||
onmousedown="<#outputformat 'JavaScript'>${attributes.doubleOnmousedown}</#outputformat>"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.doubleOnmouseup??>
|
||||
onmouseup="<#outputformat 'JavaScript'>${parameters.doubleOnmouseup}</#outputformat>"<#rt/>
|
||||
<#if attributes.doubleOnmouseup??>
|
||||
onmouseup="<#outputformat 'JavaScript'>${attributes.doubleOnmouseup}</#outputformat>"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.doubleOnmouseover??>
|
||||
onmouseover="<#outputformat 'JavaScript'>${parameters.doubleOnmouseover}</#outputformat>"<#rt/>
|
||||
<#if attributes.doubleOnmouseover??>
|
||||
onmouseover="<#outputformat 'JavaScript'>${attributes.doubleOnmouseover}</#outputformat>"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.doubleOnmousemove??>
|
||||
onmousemove="<#outputformat 'JavaScript'>${parameters.doubleOnmousemove}</#outputformat>"<#rt/>
|
||||
<#if attributes.doubleOnmousemove??>
|
||||
onmousemove="<#outputformat 'JavaScript'>${attributes.doubleOnmousemove}</#outputformat>"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.doubleOnmouseout??>
|
||||
onmouseout="<#outputformat 'JavaScript'>${parameters.doubleOnmouseout}</#outputformat>"<#rt/>
|
||||
<#if attributes.doubleOnmouseout??>
|
||||
onmouseout="<#outputformat 'JavaScript'>${attributes.doubleOnmouseout}</#outputformat>"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.doubleOnfocus??>
|
||||
onfocus="<#outputformat 'JavaScript'>${parameters.doubleOnfocus}</#outputformat>"<#rt/>
|
||||
<#if attributes.doubleOnfocus??>
|
||||
onfocus="<#outputformat 'JavaScript'>${attributes.doubleOnfocus}</#outputformat>"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.doubleOnblur??>
|
||||
onblur="<#outputformat 'JavaScript'>${parameters.doubleOnblur}</#outputformat>"<#rt/>
|
||||
<#if attributes.doubleOnblur??>
|
||||
onblur="<#outputformat 'JavaScript'>${attributes.doubleOnblur}</#outputformat>"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.doubleOnkeypress??>
|
||||
onkeypress="<#outputformat 'JavaScript'>${parameters.doubleOnkeypress}</#outputformat>"<#rt/>
|
||||
<#if attributes.doubleOnkeypress??>
|
||||
onkeypress="<#outputformat 'JavaScript'>${attributes.doubleOnkeypress}</#outputformat>"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.doubleOnkeydown??>
|
||||
onkeydown="<#outputformat 'JavaScript'>${parameters.doubleOnkeydown}</#outputformat>"<#rt/>
|
||||
<#if attributes.doubleOnkeydown??>
|
||||
onkeydown="<#outputformat 'JavaScript'>${attributes.doubleOnkeydown}</#outputformat>"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.doubleOnkeyup??>
|
||||
onkeyup="<#outputformat 'JavaScript'>${parameters.doubleOnkeyup}</#outputformat>"<#rt/>
|
||||
<#if attributes.doubleOnkeyup??>
|
||||
onkeyup="<#outputformat 'JavaScript'>${attributes.doubleOnkeyup}</#outputformat>"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.doubleOnselect??>
|
||||
onselect="<#outputformat 'JavaScript'>${parameters.doubleOnselect}</#outputformat>"<#rt/>
|
||||
<#if attributes.doubleOnselect??>
|
||||
onselect="<#outputformat 'JavaScript'>${attributes.doubleOnselect}</#outputformat>"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.doubleOnchange??>
|
||||
onchange="<#outputformat 'JavaScript'>${parameters.doubleOnchange}</#outputformat>"<#rt/>
|
||||
<#if attributes.doubleOnchange??>
|
||||
onchange="<#outputformat 'JavaScript'>${attributes.doubleOnchange}</#outputformat>"<#rt/>
|
||||
</#if>
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/prefixed-dynamic-attributes.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/prefixed-dynamic-attributes.ftl" />
|
||||
<@prefixedDynamicAttributes prefix="second-"/>
|
||||
>
|
||||
</select>
|
||||
<#if parameters.doubleMultiple!false>
|
||||
<input type="hidden" id="__multiselect_${parameters.doubleId}"<#rt/>
|
||||
name="__multiselect_${(parameters.doubleName!"")}" value=""<#rt/>
|
||||
<#if parameters.doubleDisabled!false>
|
||||
<#if attributes.doubleMultiple!false>
|
||||
<input type="hidden" id="__multiselect_${attributes.doubleId}"<#rt/>
|
||||
name="__multiselect_${(attributes.doubleName!"")}" value=""<#rt/>
|
||||
<#if attributes.doubleDisabled!false>
|
||||
disabled="disabled"<#rt/>
|
||||
</#if>
|
||||
/><#rt/>
|
||||
</#if>
|
||||
<@s.script>
|
||||
<#assign itemCount = startCount/>
|
||||
var ${parameters.escapedId}Group = new Array(${parameters.listSize?number?c} + ${startCount});
|
||||
for (var i = 0; i < (${parameters.listSize?number?c} + ${startCount}); i++) {
|
||||
${parameters.escapedId}Group[i] = [];
|
||||
var ${attributes.escapedId}Group = new Array(${attributes.listSize?number?c} + ${startCount});
|
||||
for (var i = 0; i < (${attributes.listSize?number?c} + ${startCount}); i++) {
|
||||
${attributes.escapedId}Group[i] = [];
|
||||
}
|
||||
|
||||
<@s.iterator value="parameters.list">
|
||||
<#if parameters.listKey??>
|
||||
<#assign itemKey = stack.findValue(parameters.listKey)/>
|
||||
<@s.iterator value="attributes.list">
|
||||
<#if attributes.listKey??>
|
||||
<#assign itemKey = stack.findValue(attributes.listKey)/>
|
||||
<#else>
|
||||
<#assign itemKey = stack.findValue('top')/>
|
||||
</#if>
|
||||
<#if parameters.listValue??>
|
||||
<#assign itemValue = stack.findString(parameters.listValue)/>
|
||||
<#if attributes.listValue??>
|
||||
<#assign itemValue = stack.findString(attributes.listValue)/>
|
||||
<#else>
|
||||
<#assign itemValue = stack.findString('top')/>
|
||||
</#if>
|
||||
<#assign doubleItemCount = 0/>
|
||||
<#if parameters.doubleHeaderKey?? && parameters.doubleHeaderValue??>
|
||||
${parameters.escapedId}Group[${itemCount}][${doubleItemCount}] = new Option("${parameters.doubleHeaderValue?js_string}", "${parameters.doubleHeaderKey?js_string}");
|
||||
<#if attributes.doubleHeaderKey?? && attributes.doubleHeaderValue??>
|
||||
${attributes.escapedId}Group[${itemCount}][${doubleItemCount}] = new Option("${attributes.doubleHeaderValue?js_string}", "${attributes.doubleHeaderKey?js_string}");
|
||||
<#assign doubleItemCount = doubleItemCount + 1/>
|
||||
</#if>
|
||||
<#if parameters.doubleEmptyOption??>
|
||||
${parameters.escapedId}Group[${itemCount}][${doubleItemCount}] = new Option("", "");
|
||||
<#if attributes.doubleEmptyOption??>
|
||||
${attributes.escapedId}Group[${itemCount}][${doubleItemCount}] = new Option("", "");
|
||||
<#assign doubleItemCount = doubleItemCount + 1/>
|
||||
</#if>
|
||||
<@s.iterator value="${parameters.doubleList}">
|
||||
<#if parameters.doubleListKey??>
|
||||
<#assign doubleItemKey = stack.findValue(parameters.doubleListKey)/>
|
||||
<@s.iterator value="${attributes.doubleList}">
|
||||
<#if attributes.doubleListKey??>
|
||||
<#assign doubleItemKey = stack.findValue(attributes.doubleListKey)/>
|
||||
<#else>
|
||||
<#assign doubleItemKey = stack.findValue('top')/>
|
||||
</#if>
|
||||
<#assign doubleItemKeyStr = doubleItemKey.toString() />
|
||||
<#if parameters.doubleListValue??>
|
||||
<#assign doubleItemValue = stack.findString(parameters.doubleListValue)/>
|
||||
<#if attributes.doubleListValue??>
|
||||
<#assign doubleItemValue = stack.findString(attributes.doubleListValue)/>
|
||||
<#else>
|
||||
<#assign doubleItemValue = stack.findString('top')/>
|
||||
</#if>
|
||||
<#if parameters.doubleListCssClass??>
|
||||
<#if stack.findString(parameters.doubleListCssClass)??>
|
||||
<#assign itemDoubleCssClass= stack.findString(parameters.doubleListCssClass)/>
|
||||
<#if attributes.doubleListCssClass??>
|
||||
<#if stack.findString(attributes.doubleListCssClass)??>
|
||||
<#assign itemDoubleCssClass= stack.findString(attributes.doubleListCssClass)/>
|
||||
<#else>
|
||||
<#assign itemDoubleCssClass = ''/>
|
||||
</#if>
|
||||
</#if>
|
||||
<#if parameters.doubleListCssStyle??>
|
||||
<#if stack.findString(parameters.doubleListCssStyle)??>
|
||||
<#assign itemDoubleCssStyle= stack.findString(parameters.doubleListCssStyle)/>
|
||||
<#if attributes.doubleListCssStyle??>
|
||||
<#if stack.findString(attributes.doubleListCssStyle)??>
|
||||
<#assign itemDoubleCssStyle= stack.findString(attributes.doubleListCssStyle)/>
|
||||
<#else>
|
||||
<#assign itemDoubleCssStyle = ''/>
|
||||
</#if>
|
||||
</#if>
|
||||
<#if parameters.doubleListTitle??>
|
||||
<#if stack.findString(parameters.doubleListTitle)??>
|
||||
<#assign itemDoubleTitle= stack.findString(parameters.doubleListTitle)/>
|
||||
<#if attributes.doubleListTitle??>
|
||||
<#if stack.findString(attributes.doubleListTitle)??>
|
||||
<#assign itemDoubleTitle= stack.findString(attributes.doubleListTitle)/>
|
||||
<#else>
|
||||
<#assign itemDoubleTitle = ''/>
|
||||
</#if>
|
||||
</#if>
|
||||
${parameters.escapedId}Group[${itemCount}][${doubleItemCount}] = new Option("${doubleItemValue?js_string}", "${doubleItemKeyStr?js_string}");
|
||||
${attributes.escapedId}Group[${itemCount}][${doubleItemCount}] = new Option("${doubleItemValue?js_string}", "${doubleItemKeyStr?js_string}");
|
||||
<#if itemDoubleCssClass??>
|
||||
${parameters.escapedId}Group[${itemCount}][${doubleItemCount}].setAttribute("class","${itemDoubleCssClass}");
|
||||
${attributes.escapedId}Group[${itemCount}][${doubleItemCount}].setAttribute("class","${itemDoubleCssClass}");
|
||||
</#if>
|
||||
<#if itemDoubleCssStyle??>
|
||||
${parameters.escapedId}Group[${itemCount}][${doubleItemCount}].setAttribute("style","${itemDoubleCssStyle}");
|
||||
${attributes.escapedId}Group[${itemCount}][${doubleItemCount}].setAttribute("style","${itemDoubleCssStyle}");
|
||||
</#if>
|
||||
<#if itemDoubleTitle??>
|
||||
${parameters.escapedId}Group[${itemCount}][${doubleItemCount}].setAttribute("title","${itemDoubleTitle}");
|
||||
${attributes.escapedId}Group[${itemCount}][${doubleItemCount}].setAttribute("title","${itemDoubleTitle}");
|
||||
</#if>
|
||||
|
||||
<#assign doubleItemCount = doubleItemCount + 1/>
|
||||
@@ -190,48 +190,48 @@
|
||||
<#assign itemCount = itemCount + 1/>
|
||||
</@s.iterator>
|
||||
|
||||
var ${parameters.escapedId}Temp = document.${parameters.formName}.${parameters.doubleId};
|
||||
var ${attributes.escapedId}Temp = document.${attributes.formName}.${attributes.doubleId};
|
||||
<#assign itemCount = startCount/>
|
||||
<#assign redirectTo = 0/>
|
||||
<@s.iterator value="parameters.list">
|
||||
<#if parameters.listKey??>
|
||||
<#assign itemKey = stack.findValue(parameters.listKey)/>
|
||||
<@s.iterator value="attributes.list">
|
||||
<#if attributes.listKey??>
|
||||
<#assign itemKey = stack.findValue(attributes.listKey)/>
|
||||
<#else>
|
||||
<#assign itemKey = stack.findValue('top')/>
|
||||
</#if>
|
||||
<#if tag.contains(parameters.nameValue, itemKey)>
|
||||
<#if tag.contains(attributes.nameValue, itemKey)>
|
||||
<#assign redirectTo = itemCount/>
|
||||
</#if>
|
||||
<#assign itemCount = itemCount + 1/>
|
||||
</@s.iterator>
|
||||
${parameters.escapedId}Redirect(${redirectTo});
|
||||
function ${parameters.escapedId}Redirect(x) {
|
||||
${attributes.escapedId}Redirect(${redirectTo});
|
||||
function ${attributes.escapedId}Redirect(x) {
|
||||
var selected = false;
|
||||
for (var m = ${parameters.escapedId}Temp.options.length - 1; m >= 0; m--) {
|
||||
${parameters.escapedId}Temp.remove(m);
|
||||
for (var m = ${attributes.escapedId}Temp.options.length - 1; m >= 0; m--) {
|
||||
${attributes.escapedId}Temp.remove(m);
|
||||
}
|
||||
|
||||
for (var i = 0; i < ${parameters.escapedId}Group[x].length; i++) {
|
||||
${parameters.escapedId}Temp.options[i] = new Option(${parameters.escapedId}Group[x][i].text, ${parameters.escapedId}Group[x][i].value);
|
||||
<#if parameters.doubleNameValue??>
|
||||
<#if parameters.doubleMultiple??>
|
||||
for (var j = 0; j < ${parameters.doubleNameValue}.length; j++) {
|
||||
if (${parameters.escapedId}Temp.options[i].value == ${parameters.doubleNameValue?js_string}[j]) {
|
||||
${parameters.escapedId}Temp.options[i].selected = true;
|
||||
for (var i = 0; i < ${attributes.escapedId}Group[x].length; i++) {
|
||||
${attributes.escapedId}Temp.options[i] = new Option(${attributes.escapedId}Group[x][i].text, ${attributes.escapedId}Group[x][i].value);
|
||||
<#if attributes.doubleNameValue??>
|
||||
<#if attributes.doubleMultiple??>
|
||||
for (var j = 0; j < ${attributes.doubleNameValue}.length; j++) {
|
||||
if (${attributes.escapedId}Temp.options[i].value == ${attributes.doubleNameValue?js_string}[j]) {
|
||||
${attributes.escapedId}Temp.options[i].selected = true;
|
||||
selected = true;
|
||||
}
|
||||
}
|
||||
<#else>
|
||||
if (${parameters.escapedId}Temp.options[i].value == '${parameters.doubleNameValue?js_string}') {
|
||||
${parameters.escapedId}Temp.options[i].selected = true;
|
||||
if (${attributes.escapedId}Temp.options[i].value == '${attributes.doubleNameValue?js_string}') {
|
||||
${attributes.escapedId}Temp.options[i].selected = true;
|
||||
selected = true;
|
||||
}
|
||||
</#if>
|
||||
</#if>
|
||||
}
|
||||
|
||||
if ((${parameters.escapedId}Temp.options.length > 0) && (! selected)) {
|
||||
${parameters.escapedId}Temp.options[0].selected = true;
|
||||
if ((${attributes.escapedId}Temp.options.length > 0) && (! selected)) {
|
||||
${attributes.escapedId}Temp.options[0].selected = true;
|
||||
}
|
||||
}
|
||||
</@s.script>
|
||||
|
||||
@@ -25,10 +25,10 @@
|
||||
<#return true>
|
||||
</#if>
|
||||
</#function>
|
||||
<#if (parameters.dynamicAttributes?? && parameters.dynamicAttributes?size > 0)><#rt/>
|
||||
<#assign aKeys = parameters.dynamicAttributes.keySet()><#rt/>
|
||||
<#if (attributes.dynamicAttributes?? && attributes.dynamicAttributes?size > 0)><#rt/>
|
||||
<#assign aKeys = attributes.dynamicAttributes.keySet()><#rt/>
|
||||
<#list aKeys?filter(acceptKey) as aKey><#rt/>
|
||||
<#assign keyValue = parameters.dynamicAttributes.get(aKey)/>
|
||||
<#assign keyValue = attributes.dynamicAttributes.get(aKey)/>
|
||||
<#if keyValue?is_string>
|
||||
<#if evaluate_dynamic_attributes!false == true>
|
||||
<#assign value = struts.translateVariables(keyValue)!keyValue/><#rt/>
|
||||
|
||||
@@ -32,22 +32,22 @@
|
||||
<#assign eValue = fieldErrors.get(fieldErrorFieldName)><#t/>
|
||||
<#if (haveMatchedErrorField && (!doneStartUlTag))><#t/>
|
||||
<ul<#rt/>
|
||||
<#if parameters.id?has_content>
|
||||
id="${parameters.id}"<#rt/>
|
||||
<#if attributes.id?has_content>
|
||||
id="${attributes.id}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.cssClass?has_content>
|
||||
class="${parameters.cssClass}"<#rt/>
|
||||
<#if attributes.cssClass?has_content>
|
||||
class="${attributes.cssClass}"<#rt/>
|
||||
<#else>
|
||||
class="errorMessage"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.cssStyle?has_content>
|
||||
style="${parameters.cssStyle}"<#rt/>
|
||||
<#if attributes.cssStyle?has_content>
|
||||
style="${attributes.cssStyle}"<#rt/>
|
||||
</#if>
|
||||
>
|
||||
<#assign doneStartUlTag=true><#t/>
|
||||
</#if><#t/>
|
||||
<#list eValue as eEachValue><#t/>
|
||||
<li><span><#if parameters.escape>${eEachValue!}<#else>${eEachValue!?no_esc}</#if></span></li>
|
||||
<li><span><#if attributes.escape>${eEachValue!}<#else>${eEachValue!?no_esc}</#if></span></li>
|
||||
</#list><#t/>
|
||||
</#if><#t/>
|
||||
</#list><#t/>
|
||||
@@ -59,19 +59,19 @@
|
||||
<#else><#t/>
|
||||
<#if (eKeysSize > 0)><#t/>
|
||||
<ul<#rt/>
|
||||
<#if parameters.cssClass?has_content>
|
||||
class="${parameters.cssClass}"<#rt/>
|
||||
<#if attributes.cssClass?has_content>
|
||||
class="${attributes.cssClass}"<#rt/>
|
||||
<#else>
|
||||
class="errorMessage"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.cssStyle?has_content>
|
||||
style="${parameters.cssStyle}"<#rt/>
|
||||
<#if attributes.cssStyle?has_content>
|
||||
style="${attributes.cssStyle}"<#rt/>
|
||||
</#if>
|
||||
>
|
||||
<#list eKeys as eKey><#t/>
|
||||
<#assign eValue = fieldErrors.get(eKey)><#t/>
|
||||
<#list eValue as eEachValue><#t/>
|
||||
<li><span><#if parameters.escape>${eEachValue!}<#else>${eEachValue!?no_esc}</#if></span></li>
|
||||
<li><span><#if attributes.escape>${eEachValue!}<#else>${eEachValue!?no_esc}</#if></span></li>
|
||||
</#list><#t/>
|
||||
</#list><#t/>
|
||||
</ul>
|
||||
|
||||
@@ -19,27 +19,27 @@
|
||||
*/
|
||||
-->
|
||||
<input type="file"<#rt/>
|
||||
name="${(parameters.name!"")}"<#rt/>
|
||||
<#if parameters.get("size")?has_content>
|
||||
size="${parameters.get("size")}"<#rt/>
|
||||
name="${(attributes.name!"")}"<#rt/>
|
||||
<#if attributes.get("size")?has_content>
|
||||
size="${attributes.get("size")}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.disabled!false>
|
||||
<#if attributes.disabled!false>
|
||||
disabled="disabled"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.accept?has_content>
|
||||
accept="${parameters.accept}"<#rt/>
|
||||
<#if attributes.accept?has_content>
|
||||
accept="${attributes.accept}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.tabindex?has_content>
|
||||
tabindex="${parameters.tabindex}"<#rt/>
|
||||
<#if attributes.tabindex?has_content>
|
||||
tabindex="${attributes.tabindex}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.id?has_content>
|
||||
id="${parameters.id}"<#rt/>
|
||||
<#if attributes.id?has_content>
|
||||
id="${attributes.id}"<#rt/>
|
||||
</#if>
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/css.ftl" />
|
||||
<#if parameters.title?has_content>
|
||||
title="${parameters.title}"<#rt/>
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/css.ftl" />
|
||||
<#if attributes.title?has_content>
|
||||
title="${attributes.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" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/scripting-events.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/common-attributes.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/dynamic-attributes.ftl" />
|
||||
/>
|
||||
@@ -22,8 +22,8 @@
|
||||
<#--
|
||||
Code that will add javascript needed for tooltips
|
||||
--><#t/>
|
||||
<#if (parameters.hasTooltip!false)><#t/>
|
||||
<#if (attributes.hasTooltip!false)><#t/>
|
||||
<#lt/><!-- javascript that is needed for tooltips -->
|
||||
<#lt/><@s.script src="${base}${parameters.staticContentPath}/domTT.js" />
|
||||
<#lt/><@s.link rel="stylesheet" type="text/css" href="${base}${parameters.staticContentPath}/domTT.css" />
|
||||
<#lt/><@s.script src="${base}${attributes.staticContentPath}/domTT.js" />
|
||||
<#lt/><@s.link rel="stylesheet" type="text/css" href="${base}${attributes.staticContentPath}/domTT.css" />
|
||||
</#if><#t/>
|
||||
|
||||
@@ -20,21 +20,21 @@
|
||||
-->
|
||||
</form>
|
||||
|
||||
<#if (parameters.customOnsubmitEnabled??)>
|
||||
<#if (attributes.customOnsubmitEnabled??)>
|
||||
<@s.script>
|
||||
<#--
|
||||
Enable auto-select of optiontransferselect tag's entries upon containing form's
|
||||
submission.
|
||||
-->
|
||||
<#if (parameters.optiontransferselectIds!?size > 0)>
|
||||
var containingForm = document.getElementById("${parameters.id?js_string}");
|
||||
<#assign selectObjIds = parameters.optiontransferselectIds.keySet() />
|
||||
<#if (attributes.optiontransferselectIds!?size > 0)>
|
||||
var containingForm = document.getElementById("${attributes.id?js_string}");
|
||||
<#assign selectObjIds = attributes.optiontransferselectIds.keySet() />
|
||||
<#list selectObjIds as selectObjectId>
|
||||
StrutsUtils.addEventListener(containingForm, "submit",
|
||||
function(evt) {
|
||||
var selectObj = document.getElementById("${selectObjectId?js_string}");
|
||||
<#if parameters.optiontransferselectIds.get(selectObjectId)??>
|
||||
<#assign selectTagHeaderKey = parameters.optiontransferselectIds.get(selectObjectId)/>
|
||||
<#if attributes.optiontransferselectIds.get(selectObjectId)??>
|
||||
<#assign selectTagHeaderKey = attributes.optiontransferselectIds.get(selectObjectId)/>
|
||||
selectAllOptionsExceptSome(selectObj, "key", "${selectTagHeaderKey?js_string}");
|
||||
<#else>
|
||||
selectAllOptionsExceptSome(selectObj, "key", "");
|
||||
@@ -42,15 +42,15 @@
|
||||
}, true);
|
||||
</#list>
|
||||
</#if>
|
||||
<#if (parameters.inputtransferselectIds!?size > 0)>
|
||||
var containingForm = document.getElementById("${parameters.id?js_string}");
|
||||
<#assign selectObjIds = parameters.inputtransferselectIds.keySet() />
|
||||
<#if (attributes.inputtransferselectIds!?size > 0)>
|
||||
var containingForm = document.getElementById("${attributes.id?js_string}");
|
||||
<#assign selectObjIds = attributes.inputtransferselectIds.keySet() />
|
||||
<#list selectObjIds as selectObjectId>
|
||||
StrutsUtils.addEventListener(containingForm, "submit",
|
||||
function(evt) {
|
||||
var selectObj = document.getElementById("${selectObjectId?js_string}");
|
||||
<#if parameters.inputtransferselectIds.get(selectObjectId)??>
|
||||
<#assign selectTagHeaderKey = parameters.inputtransferselectIds.get(selectObjectId)/>
|
||||
<#if attributes.inputtransferselectIds.get(selectObjectId)??>
|
||||
<#assign selectTagHeaderKey = attributes.inputtransferselectIds.get(selectObjectId)/>
|
||||
selectAllOptionsExceptSome(selectObj, "key", "${selectTagHeaderKey?js_string}");
|
||||
<#else>
|
||||
selectAllOptionsExceptSome(selectObj, "key", "");
|
||||
@@ -58,15 +58,15 @@
|
||||
}, true);
|
||||
</#list>
|
||||
</#if>
|
||||
<#if (parameters.optiontransferselectDoubleIds!?size > 0)>
|
||||
var containingForm = document.getElementById("${parameters.id?js_string}");
|
||||
<#assign selectDoubleObjIds = parameters.optiontransferselectDoubleIds.keySet() />
|
||||
<#if (attributes.optiontransferselectDoubleIds!?size > 0)>
|
||||
var containingForm = document.getElementById("${attributes.id?js_string}");
|
||||
<#assign selectDoubleObjIds = attributes.optiontransferselectDoubleIds.keySet() />
|
||||
<#list selectDoubleObjIds as selectObjId>
|
||||
StrutsUtils.addEventListener(containingForm, "submit",
|
||||
function(evt) {
|
||||
var selectObj = document.getElementById("${selectObjId?js_string}");
|
||||
<#if parameters.optiontransferselectDoubleIds.get(selectObjId)??>
|
||||
<#assign selectTagHeaderKey = parameters.optiontransferselectDoubleIds.get(selectObjId)/>
|
||||
<#if attributes.optiontransferselectDoubleIds.get(selectObjId)??>
|
||||
<#assign selectTagHeaderKey = attributes.optiontransferselectDoubleIds.get(selectObjId)/>
|
||||
selectAllOptionsExceptSome(selectObj, "key", "${selectTagHeaderKey?js_string}");
|
||||
<#else>
|
||||
selectAllOptionsExceptSome(selectObj, "key", "");
|
||||
@@ -80,15 +80,15 @@
|
||||
Enable auto-select of all elements of updownselect tag upon its containing form
|
||||
submission
|
||||
-->
|
||||
<#if (parameters.updownselectIds!?size > 0)>
|
||||
var containingForm = document.getElementById("${parameters.id?js_string}");
|
||||
<#assign tmpIds = parameters.updownselectIds.keySet() />
|
||||
<#if (attributes.updownselectIds!?size > 0)>
|
||||
var containingForm = document.getElementById("${attributes.id?js_string}");
|
||||
<#assign tmpIds = attributes.updownselectIds.keySet() />
|
||||
<#list tmpIds as tmpId>
|
||||
StrutsUtils.addEventListener(containingForm, "submit",
|
||||
function(evt) {
|
||||
var updownselectObj = document.getElementById("${tmpId?js_string}");
|
||||
<#if parameters.updownselectIds.get(tmpId)??>
|
||||
<#assign tmpHeaderKey = parameters.updownselectIds.get(tmpId) />
|
||||
<#if attributes.updownselectIds.get(tmpId)??>
|
||||
<#assign tmpHeaderKey = attributes.updownselectIds.get(tmpId) />
|
||||
selectAllOptionsExceptSome(updownselectObj, "key", "${tmpHeaderKey?js_string}");
|
||||
<#else>
|
||||
selectAllOptionsExceptSome(updownselectObj, "key", "");
|
||||
@@ -99,4 +99,4 @@
|
||||
</@s.script>
|
||||
</#if>
|
||||
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/form-close-tooltips.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/form-close-tooltips.ftl" />
|
||||
|
||||
@@ -20,48 +20,48 @@
|
||||
* under the License.
|
||||
*/
|
||||
-->
|
||||
<#if (parameters.validate!false == false)><#rt/>
|
||||
<#if parameters.onsubmit?has_content><#rt/>
|
||||
${tag.addParameter('onsubmit', "${parameters.onsubmit}") }
|
||||
<#if (attributes.validate!false == false)><#rt/>
|
||||
<#if attributes.onsubmit?has_content><#rt/>
|
||||
${tag.addParameter('onsubmit', "${attributes.onsubmit}") }
|
||||
</#if>
|
||||
</#if>
|
||||
<form<#rt/>
|
||||
<#if parameters.id?has_content>
|
||||
id="${parameters.id}"<#rt/>
|
||||
<#if attributes.id?has_content>
|
||||
id="${attributes.id}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.name?has_content>
|
||||
name="${parameters.name}"<#rt/>
|
||||
<#if attributes.name?has_content>
|
||||
name="${attributes.name}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.onsubmit?has_content>
|
||||
onsubmit="<#outputformat 'JavaScript'>${parameters.onsubmit}</#outputformat>"<#rt/>
|
||||
<#if attributes.onsubmit?has_content>
|
||||
onsubmit="<#outputformat 'JavaScript'>${attributes.onsubmit}</#outputformat>"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.onreset?has_content>
|
||||
onreset="<#outputformat 'JavaScript'>${parameters.onreset}</#outputformat>"<#rt/>
|
||||
<#if attributes.onreset?has_content>
|
||||
onreset="<#outputformat 'JavaScript'>${attributes.onreset}</#outputformat>"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.action?has_content>
|
||||
action="${parameters.action}"<#rt/>
|
||||
<#if attributes.action?has_content>
|
||||
action="${attributes.action}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.target?has_content>
|
||||
target="${parameters.target}"<#rt/>
|
||||
<#if attributes.target?has_content>
|
||||
target="${attributes.target}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.method?has_content>
|
||||
method="${parameters.method}"<#rt/>
|
||||
<#if attributes.method?has_content>
|
||||
method="${attributes.method}"<#rt/>
|
||||
<#else>
|
||||
method="post"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.enctype?has_content>
|
||||
enctype="${parameters.enctype}"<#rt/>
|
||||
<#if attributes.enctype?has_content>
|
||||
enctype="${attributes.enctype}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.cssClass?has_content>
|
||||
class="${parameters.cssClass}"<#rt/>
|
||||
<#if attributes.cssClass?has_content>
|
||||
class="${attributes.cssClass}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.cssStyle?has_content>
|
||||
style="${parameters.cssStyle}"<#rt/>
|
||||
<#if attributes.cssStyle?has_content>
|
||||
style="${attributes.cssStyle}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.title?has_content>
|
||||
title="${parameters.title}"<#rt/>
|
||||
<#if attributes.title?has_content>
|
||||
title="${attributes.title}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.acceptcharset?has_content>
|
||||
accept-charset="${parameters.acceptcharset}"<#rt/>
|
||||
<#if attributes.acceptcharset?has_content>
|
||||
accept-charset="${attributes.acceptcharset}"<#rt/>
|
||||
</#if>
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/dynamic-attributes.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/dynamic-attributes.ftl" />
|
||||
@@ -18,8 +18,8 @@
|
||||
* under the License.
|
||||
*/
|
||||
-->
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/form-common.ftl" />
|
||||
<#if parameters.onreset?has_content>
|
||||
onreset="${parameters.onreset}"<#rt/>
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/form-common.ftl" />
|
||||
<#if attributes.onreset?has_content>
|
||||
onreset="${attributes.onreset}"<#rt/>
|
||||
</#if>
|
||||
>
|
||||
@@ -18,4 +18,4 @@
|
||||
* under the License.
|
||||
*/
|
||||
-->
|
||||
<@s.script src="${base}${parameters.staticContentPath}/utils.js" />
|
||||
<@s.script src="${base}${attributes.staticContentPath}/utils.js" />
|
||||
|
||||
@@ -19,21 +19,21 @@
|
||||
*/
|
||||
-->
|
||||
<input type="hidden"<#rt/>
|
||||
name="${(parameters.name!"")}"<#rt/>
|
||||
<#if parameters.nameValue??>
|
||||
value="<@s.property value="parameters.nameValue"/>"<#rt/>
|
||||
name="${(attributes.name!"")}"<#rt/>
|
||||
<#if attributes.nameValue??>
|
||||
value="<@s.property value="attributes.nameValue"/>"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.id?has_content>
|
||||
id="${parameters.id}"<#rt/>
|
||||
<#if attributes.id?has_content>
|
||||
id="${attributes.id}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.cssClass?has_content>
|
||||
class="${parameters.cssClass}"<#rt/>
|
||||
<#if attributes.cssClass?has_content>
|
||||
class="${attributes.cssClass}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.cssStyle?has_content>
|
||||
style="${parameters.cssStyle}"<#rt/>
|
||||
<#if attributes.cssStyle?has_content>
|
||||
style="${attributes.cssStyle}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.disabled!false>
|
||||
<#if attributes.disabled!false>
|
||||
disabled="disabled"<#rt/>
|
||||
</#if>
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/dynamic-attributes.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/dynamic-attributes.ftl" />
|
||||
/>
|
||||
@@ -19,103 +19,103 @@
|
||||
*/
|
||||
-->
|
||||
<#if !stack.findValue("#inputtransferselect_js_included")??><#t/>
|
||||
<@s.script src="${base}${parameters.staticContentPath}/inputtransferselect.js"/>
|
||||
<@s.script src="${base}${attributes.staticContentPath}/inputtransferselect.js"/>
|
||||
<#assign temporaryVariable = stack.setValue("#inputtransferselect_js_included", "true") /><#t/>
|
||||
</#if><#t/>
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<#if parameters.leftTitle??><#t/>
|
||||
<label for="leftTitle">${parameters.leftTitle}</label><br />
|
||||
<#if attributes.leftTitle??><#t/>
|
||||
<label for="leftTitle">${attributes.leftTitle}</label><br />
|
||||
</#if><#t/>
|
||||
|
||||
<input type="text"<#rt/>
|
||||
name="${parameters.name!""}_input"<#rt/>
|
||||
<#if parameters.disabled!false>
|
||||
name="${attributes.name!""}_input"<#rt/>
|
||||
<#if attributes.disabled!false>
|
||||
disabled="disabled"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.readonly!false>
|
||||
<#if attributes.readonly!false>
|
||||
readonly="readonly"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.tabindex?has_content>
|
||||
tabindex="${parameters.tabindex}"<#rt/>
|
||||
<#if attributes.tabindex?has_content>
|
||||
tabindex="${attributes.tabindex}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.id?has_content>
|
||||
id="${parameters.id}_input"<#rt/>
|
||||
<#if attributes.id?has_content>
|
||||
id="${attributes.id}_input"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.cssClass?has_content>
|
||||
class="${parameters.cssClass}"<#rt/>
|
||||
<#if attributes.cssClass?has_content>
|
||||
class="${attributes.cssClass}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.cssStyle?has_content>
|
||||
style="${parameters.cssStyle}"<#rt/>
|
||||
<#if attributes.cssStyle?has_content>
|
||||
style="${attributes.cssStyle}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.title?has_content>
|
||||
title="${parameters.title}"<#rt/>
|
||||
<#if attributes.title?has_content>
|
||||
title="${attributes.title}"<#rt/>
|
||||
</#if>
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/scripting-events.ftl" />
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/common-attributes.ftl" />
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/prefixed-dynamic-attributes.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/scripting-events.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/common-attributes.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/prefixed-dynamic-attributes.ftl" />
|
||||
<@prefixedDynamicAttributes prefix="input-"/>
|
||||
/>
|
||||
|
||||
|
||||
</td>
|
||||
<td class="tdTransferSelect">
|
||||
<#assign addLabel=(parameters.addLabel!"->") /><#t/>
|
||||
<#assign addLabel=(attributes.addLabel!"->") /><#t/>
|
||||
<input type="button"
|
||||
<#if parameters.buttonCssClass?has_content><#t/>
|
||||
class="${parameters.buttonCssClass}"
|
||||
<#if attributes.buttonCssClass?has_content><#t/>
|
||||
class="${attributes.buttonCssClass}"
|
||||
</#if><#t/>
|
||||
<#if parameters.buttonCssStyle?has_content>
|
||||
style="${parameters.buttonCssStyle}"
|
||||
<#if attributes.buttonCssStyle?has_content>
|
||||
style="${attributes.buttonCssStyle}"
|
||||
</#if><#t/>
|
||||
value="${addLabel}" onclick="addOption(document.getElementById('${parameters.id}_input'), document.getElementById('${parameters.id}'))" /><br /><br />
|
||||
value="${addLabel}" onclick="addOption(document.getElementById('${attributes.id}_input'), document.getElementById('${attributes.id}'))" /><br /><br />
|
||||
<#t/>
|
||||
<#assign removeLabel=(parameters.removeLabel!"<-") /><#t/>
|
||||
<#assign removeLabel=(attributes.removeLabel!"<-") /><#t/>
|
||||
<input type="button"
|
||||
<#if parameters.buttonCssClass?has_content><#t/>
|
||||
class="${parameters.buttonCssClass}"
|
||||
<#if attributes.buttonCssClass?has_content><#t/>
|
||||
class="${attributes.buttonCssClass}"
|
||||
</#if><#t/>
|
||||
<#if parameters.buttonCssStyle?has_content>
|
||||
style="${parameters.buttonCssStyle}"
|
||||
<#if attributes.buttonCssStyle?has_content>
|
||||
style="${attributes.buttonCssStyle}"
|
||||
</#if><#t/>
|
||||
value="${removeLabel}" onclick="removeOptions(document.getElementById('${parameters.id}'))" /><br /><br />
|
||||
value="${removeLabel}" onclick="removeOptions(document.getElementById('${attributes.id}'))" /><br /><br />
|
||||
<#t/>
|
||||
<#assign removeAllLabel=(parameters.removeAllLabel!"<<--") /><#t/>
|
||||
<#assign removeAllLabel=(attributes.removeAllLabel!"<<--") /><#t/>
|
||||
<input type="button"
|
||||
<#if parameters.buttonCssClass?has_content><#t/>
|
||||
class="${parameters.buttonCssClass}"
|
||||
<#if attributes.buttonCssClass?has_content><#t/>
|
||||
class="${attributes.buttonCssClass}"
|
||||
</#if><#t/>
|
||||
<#if parameters.buttonCssStyle?has_content>
|
||||
style="${parameters.buttonCssStyle}"
|
||||
<#if attributes.buttonCssStyle?has_content>
|
||||
style="${attributes.buttonCssStyle}"
|
||||
</#if><#t/>
|
||||
value="${removeAllLabel}" onclick="removeAllOptions(document.getElementById('${parameters.id}'))" /><br /><br />
|
||||
value="${removeAllLabel}" onclick="removeAllOptions(document.getElementById('${attributes.id}'))" /><br /><br />
|
||||
</td>
|
||||
<td>
|
||||
<#if parameters.rightTitle?has_content><#t/>
|
||||
<label for="rightTitle">${parameters.rightTitle}</label><br />
|
||||
<#if attributes.rightTitle?has_content><#t/>
|
||||
<label for="rightTitle">${attributes.rightTitle}</label><br />
|
||||
</#if><#t/>
|
||||
<#global dynamic_attributes_ignore = "input-"/>
|
||||
<#include "/${parameters.templateDir}/simple/select.ftl" />
|
||||
<#if parameters.allowUpDown!true>
|
||||
<#include "/${attributes.templateDir}/simple/select.ftl" />
|
||||
<#if attributes.allowUpDown!true>
|
||||
<input type="button"
|
||||
<#if parameters.headerKey?has_content>
|
||||
onclick="moveOptionDown(document.getElementById('${parameters.id}'), 'key', '${parameters.headerKey}');"
|
||||
<#if attributes.headerKey?has_content>
|
||||
onclick="moveOptionDown(document.getElementById('${attributes.id}'), 'key', '${attributes.headerKey}');"
|
||||
<#else>
|
||||
onclick="moveOptionDown(document.getElementById('${parameters.id}'), 'key', '');"
|
||||
onclick="moveOptionDown(document.getElementById('${attributes.id}'), 'key', '');"
|
||||
</#if>
|
||||
<#if parameters.downLabel?has_content>
|
||||
value="${parameters.downLabel}"
|
||||
<#if attributes.downLabel?has_content>
|
||||
value="${attributes.downLabel}"
|
||||
</#if>
|
||||
/>
|
||||
<input type="button"
|
||||
<#if parameters.headerKey?has_content>
|
||||
onclick="moveOptionUp(document.getElementById('${parameters.id}'), 'key', '${parameters.headerKey}');"
|
||||
<#if attributes.headerKey?has_content>
|
||||
onclick="moveOptionUp(document.getElementById('${attributes.id}'), 'key', '${attributes.headerKey}');"
|
||||
<#else>
|
||||
onclick="moveOptionUp(document.getElementById('${parameters.id}'), 'key', '');"
|
||||
onclick="moveOptionUp(document.getElementById('${attributes.id}'), 'key', '');"
|
||||
</#if>
|
||||
<#if parameters.upLabel?has_content>
|
||||
value="${parameters.upLabel}"
|
||||
<#if attributes.upLabel?has_content>
|
||||
value="${attributes.upLabel}"
|
||||
</#if>
|
||||
/>
|
||||
</#if>
|
||||
|
||||
@@ -19,20 +19,20 @@
|
||||
*/
|
||||
-->
|
||||
<label<#rt/>
|
||||
<#if parameters.id?has_content>
|
||||
id="${parameters.id}"<#rt/>
|
||||
<#if attributes.id?has_content>
|
||||
id="${attributes.id}"<#rt/>
|
||||
</#if>
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/css.ftl" />
|
||||
<#if parameters.title?has_content>
|
||||
title="${parameters.title}"<#rt/>
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/css.ftl" />
|
||||
<#if attributes.title?has_content>
|
||||
title="${attributes.title}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.for?has_content>
|
||||
for="${parameters.for}"<#rt/>
|
||||
<#if attributes.for?has_content>
|
||||
for="${attributes.for}"<#rt/>
|
||||
</#if>
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/common-attributes.ftl" />
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/dynamic-attributes.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/common-attributes.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/dynamic-attributes.ftl" />
|
||||
><#rt/>
|
||||
<#if parameters.nameValue??>
|
||||
<@s.property value="parameters.nameValue"/><#t/>
|
||||
<#if attributes.nameValue??>
|
||||
<@s.property value="attributes.nameValue"/><#t/>
|
||||
</#if>
|
||||
</label>
|
||||
@@ -19,46 +19,46 @@
|
||||
*/
|
||||
-->
|
||||
<link<#rt/>
|
||||
<#if parameters.rel?has_content>
|
||||
rel="${parameters.rel}"<#rt/>
|
||||
<#if attributes.rel?has_content>
|
||||
rel="${attributes.rel}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.type?has_content>
|
||||
type="${parameters.type}"<#rt/>
|
||||
<#if attributes.type?has_content>
|
||||
type="${attributes.type}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.href?has_content>
|
||||
href="${parameters.href}"<#rt/>
|
||||
<#if attributes.href?has_content>
|
||||
href="${attributes.href}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.hreflang?has_content>
|
||||
hreflang="${parameters.hreflang}"<#rt/>
|
||||
<#if attributes.hreflang?has_content>
|
||||
hreflang="${attributes.hreflang}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.disabled?has_content && parameters.disabled == "true">
|
||||
<#if attributes.disabled?has_content && attributes.disabled == "true">
|
||||
disabled<#rt/>
|
||||
</#if>
|
||||
<#if parameters.media?has_content>
|
||||
media="${parameters.media}"<#rt/>
|
||||
<#if attributes.media?has_content>
|
||||
media="${attributes.media}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.title?has_content>
|
||||
title="${parameters.title}"<#rt/>
|
||||
<#if attributes.title?has_content>
|
||||
title="${attributes.title}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.as?has_content>
|
||||
as="${parameters.as}"<#rt/>
|
||||
<#if attributes.as?has_content>
|
||||
as="${attributes.as}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.referrerpolicy?has_content>
|
||||
referrerpolicy="${parameters.referrerpolicy}"<#rt/>
|
||||
<#if attributes.referrerpolicy?has_content>
|
||||
referrerpolicy="${attributes.referrerpolicy}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.sizes?has_content>
|
||||
sizes="${parameters.sizes}"<#rt/>
|
||||
<#if attributes.sizes?has_content>
|
||||
sizes="${attributes.sizes}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.crossorigin?has_content>
|
||||
crossorigin="${parameters.crossorigin}"<#rt/>
|
||||
<#if attributes.crossorigin?has_content>
|
||||
crossorigin="${attributes.crossorigin}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.integrity?has_content>
|
||||
integrity="${parameters.integrity}"<#rt/>
|
||||
<#if attributes.integrity?has_content>
|
||||
integrity="${attributes.integrity}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.importance?has_content>
|
||||
importance="${parameters.importance}"<#rt/>
|
||||
<#if attributes.importance?has_content>
|
||||
importance="${attributes.importance}"<#rt/>
|
||||
</#if>
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/common-attributes.ftl" /><#rt/>
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/dynamic-attributes.ftl" /><#rt/>
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/nonce.ftl" /><#rt/>
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/common-attributes.ftl" /><#rt/>
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/dynamic-attributes.ftl" /><#rt/>
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/nonce.ftl" /><#rt/>
|
||||
/>
|
||||
|
||||
@@ -18,6 +18,6 @@
|
||||
* under the License.
|
||||
*/
|
||||
-->
|
||||
<#if parameters.nonce?has_content><#rt/>
|
||||
nonce="${parameters.nonce}"<#rt/>
|
||||
<#if attributes.nonce?has_content><#rt/>
|
||||
nonce="${attributes.nonce}"<#rt/>
|
||||
</#if><#rt/>
|
||||
|
||||
@@ -18,37 +18,37 @@
|
||||
* under the License.
|
||||
*/
|
||||
-->
|
||||
<#if parameters.optGroupInternalListUiBeanList??>
|
||||
<#assign optGroupInternalListUiBeans=parameters.optGroupInternalListUiBeanList />
|
||||
<#if attributes.optGroupInternalListUiBeanList??>
|
||||
<#assign optGroupInternalListUiBeans=attributes.optGroupInternalListUiBeanList />
|
||||
<#list optGroupInternalListUiBeans as optGroupInternalListUiBean>
|
||||
<optgroup<#rt>
|
||||
<#if optGroupInternalListUiBean.parameters.label?has_content>
|
||||
label="${optGroupInternalListUiBean.parameters.label}"<#rt>
|
||||
<#if optGroupInternalListUiBean.attributes.label?has_content>
|
||||
label="${optGroupInternalListUiBean.attributes.label}"<#rt>
|
||||
</#if>
|
||||
<#if optGroupInternalListUiBean.parameters.disabled!false>
|
||||
<#if optGroupInternalListUiBean.attributes.disabled!false>
|
||||
disabled="disabled"<#rt>
|
||||
</#if>
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/dynamic-attributes.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/dynamic-attributes.ftl" />
|
||||
>
|
||||
<#list optGroupInternalListUiBean.parameters.list as optGroupBean>
|
||||
<#list optGroupInternalListUiBean.attributes.list as optGroupBean>
|
||||
<#assign trash=stack.push(optGroupBean) />
|
||||
<#assign tmpKey=stack.findValue(optGroupInternalListUiBean.parameters.listKey) />
|
||||
<#assign tmpValue=stack.findValue(optGroupInternalListUiBean.parameters.listValue) />
|
||||
<#assign tmpKey=stack.findValue(optGroupInternalListUiBean.attributes.listKey) />
|
||||
<#assign tmpValue=stack.findValue(optGroupInternalListUiBean.attributes.listValue) />
|
||||
<#assign tmpKeyStr = tmpKey.toString() />
|
||||
<#assign optGroupItemCssClass = ''/>
|
||||
<#if optGroupInternalListUiBean.parameters.listCssClass??>
|
||||
<#assign optGroupItemCssClass= stack.findString(optGroupInternalListUiBean.parameters.listCssClass)!''/>
|
||||
<#if optGroupInternalListUiBean.attributes.listCssClass??>
|
||||
<#assign optGroupItemCssClass= stack.findString(optGroupInternalListUiBean.attributes.listCssClass)!''/>
|
||||
</#if>
|
||||
<#assign optGroupItemCssStyle = ''/>
|
||||
<#if optGroupInternalListUiBean.parameters.listCssStyle??>
|
||||
<#assign optGroupItemCssStyle= stack.findString(optGroupInternalListUiBean.parameters.listCssStyle)!''/>
|
||||
<#if optGroupInternalListUiBean.attributes.listCssStyle??>
|
||||
<#assign optGroupItemCssStyle= stack.findString(optGroupInternalListUiBean.attributes.listCssStyle)!''/>
|
||||
</#if>
|
||||
<#assign optGroupItemTitle = ''/>
|
||||
<#if optGroupInternalListUiBean.parameters.listTitle??>
|
||||
<#assign optGroupItemTitle= stack.findString(optGroupInternalListUiBean.parameters.listTitle)!''/>
|
||||
<#if optGroupInternalListUiBean.attributes.listTitle??>
|
||||
<#assign optGroupItemTitle= stack.findString(optGroupInternalListUiBean.attributes.listTitle)!''/>
|
||||
</#if>
|
||||
<option value="${tmpKeyStr}"<#rt>
|
||||
<#if tag.contains(parameters.nameValue, tmpKey) == true>
|
||||
<#if tag.contains(attributes.nameValue, tmpKey) == true>
|
||||
selected="selected"<#rt>
|
||||
</#if>
|
||||
<#if optGroupItemCssClass?has_content>
|
||||
|
||||
@@ -19,281 +19,281 @@
|
||||
*/
|
||||
-->
|
||||
<#if !stack.findValue("#optiontransferselect_js_included")??><#t/>
|
||||
<@s.script src="${base}${parameters.staticContentPath}/optiontransferselect.js" />
|
||||
<@s.script src="${base}${attributes.staticContentPath}/optiontransferselect.js" />
|
||||
<#assign temporaryVariable = stack.setValue("#optiontransferselect_js_included", "true") /><#t/>
|
||||
</#if><#t/>
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<#if parameters.leftTitle??><#t/>
|
||||
<label for="leftTitle">${parameters.leftTitle}</label><br />
|
||||
<#if attributes.leftTitle??><#t/>
|
||||
<label for="leftTitle">${attributes.leftTitle}</label><br />
|
||||
</#if><#t/>
|
||||
<#global dynamic_attributes_ignore = "right-"/>
|
||||
<#include "/${parameters.templateDir}/simple/select.ftl" />
|
||||
<#if parameters.allowUpDownOnLeft!true>
|
||||
<#include "/${attributes.templateDir}/simple/select.ftl" />
|
||||
<#if attributes.allowUpDownOnLeft!true>
|
||||
<input type="button"
|
||||
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}"
|
||||
onclick="moveOptionDown(document.getElementById('${attributes.id}'), 'key', <#if attributes.headerKey??>'${attributes.headerKey}'<#else>''</#if>);<#if attributes.upDownOnLeftOnclick?has_content><#outputformat 'JavaScript'>${attributes.upDownOnLeftOnclick}</#outputformat>;</#if>"
|
||||
<#if attributes.leftDownLabel??>
|
||||
value="${attributes.leftDownLabel}"
|
||||
</#if>
|
||||
/>
|
||||
<input type="button"
|
||||
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}"
|
||||
onclick="moveOptionUp(document.getElementById('${attributes.id}'), 'key', <#if attributes.headerKey??>'${attributes.headerKey}'<#else>''</#if>);<#if attributes.upDownOnLeftOnclick?has_content><#outputformat 'JavaScript'>${attributes.upDownOnLeftOnclick}</#outputformat>;</#if>"
|
||||
<#if attributes.leftUpLabel??>
|
||||
value="${attributes.leftUpLabel}"
|
||||
</#if>
|
||||
/>
|
||||
</#if>
|
||||
|
||||
</td>
|
||||
<td class="tdTransferSelect">
|
||||
<#if parameters.allowAddToLeft!true><#t/>
|
||||
<#assign addToLeftLabel = parameters.addToLeftLabel!"<-"/><#t/>
|
||||
<#if parameters.doubleHeaderKey??><#t/>
|
||||
<#if attributes.allowAddToLeft!true><#t/>
|
||||
<#assign addToLeftLabel = attributes.addToLeftLabel!"<-"/><#t/>
|
||||
<#if attributes.doubleHeaderKey??><#t/>
|
||||
<input type="button"
|
||||
<#if parameters.buttonCssClass??><#t/>
|
||||
class="${parameters.buttonCssClass}"
|
||||
<#if attributes.buttonCssClass??><#t/>
|
||||
class="${attributes.buttonCssClass}"
|
||||
</#if><#t/>
|
||||
<#if parameters.buttonCssStyle??><#t/>
|
||||
style="${parameters.buttonCssStyle}"
|
||||
<#if attributes.buttonCssStyle??><#t/>
|
||||
style="${attributes.buttonCssStyle}"
|
||||
</#if><#t/>
|
||||
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 />
|
||||
value="${addToLeftLabel}" onclick="moveSelectedOptions(document.getElementById('${attributes.doubleId}'), document.getElementById('${attributes.id}'), false, '${attributes.doubleHeaderKey}', '');<#if attributes.addToLeftOnclick?has_content><#outputformat 'JavaScript'>${attributes.addToLeftOnclick}</#outputformat>;</#if>" /><br /><br />
|
||||
<#else><#t/>
|
||||
<input type="button"
|
||||
<#if parameters.buttonCssClass??><#t/>
|
||||
class="${parameters.buttonCssClass}"
|
||||
<#if attributes.buttonCssClass??><#t/>
|
||||
class="${attributes.buttonCssClass}"
|
||||
</#if><#t/>
|
||||
<#if parameters.buttonCssStyle??><#t/>
|
||||
style="${parameters.buttonCssStyle}"
|
||||
<#if attributes.buttonCssStyle??><#t/>
|
||||
style="${attributes.buttonCssStyle}"
|
||||
</#if><#t/>
|
||||
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 />
|
||||
value="${addToLeftLabel}" onclick="moveSelectedOptions(document.getElementById('${attributes.doubleId}'), document.getElementById('${attributes.id}'), false, '');<#if attributes.addToLeftOnclick?has_content><#outputformat 'JavaScript'>${attributes.addToLeftOnclick}</#outputformat>;</#if>" /><br /><br />
|
||||
</#if><#t/>
|
||||
</#if><#t/>
|
||||
<#if parameters.allowAddToRight!true><#t/>
|
||||
<#assign addToRightLabel=parameters.addToRightLabel!"->" /><#t/>
|
||||
<#if parameters.headerKey??><#t/>
|
||||
<#if attributes.allowAddToRight!true><#t/>
|
||||
<#assign addToRightLabel=attributes.addToRightLabel!"->" /><#t/>
|
||||
<#if attributes.headerKey??><#t/>
|
||||
<input type="button"
|
||||
<#if parameters.buttonCssClass??><#t/>
|
||||
class="${parameters.buttonCssClass}"
|
||||
<#if attributes.buttonCssClass??><#t/>
|
||||
class="${attributes.buttonCssClass}"
|
||||
</#if><#t/>
|
||||
<#if parameters.buttonCssStyle??><#t/>
|
||||
style="${parameters.buttonCssStyle}"
|
||||
<#if attributes.buttonCssStyle??><#t/>
|
||||
style="${attributes.buttonCssStyle}"
|
||||
</#if><#t/>
|
||||
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 />
|
||||
value="${addToRightLabel}" onclick="moveSelectedOptions(document.getElementById('${attributes.id}'), document.getElementById('${attributes.doubleId}'), false, '${attributes.headerKey}', '');<#if attributes.addToRightOnclick?has_content><#outputformat 'JavaScript'>${attributes.addToRightOnclick}</#outputformat>;</#if>" /><br /><br />
|
||||
<#else><#t/>
|
||||
<input type="button"
|
||||
<#if parameters.buttonCssClass??><#t/>
|
||||
class="${parameters.buttonCssClass}"
|
||||
<#if attributes.buttonCssClass??><#t/>
|
||||
class="${attributes.buttonCssClass}"
|
||||
</#if><#t/>
|
||||
<#if parameters.buttonCssStyle??>
|
||||
style="${parameters.buttonCssStyle}"
|
||||
<#if attributes.buttonCssStyle??>
|
||||
style="${attributes.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 />
|
||||
value="${addToRightLabel}" onclick="moveSelectedOptions(document.getElementById('${attributes.id}'), document.getElementById('${attributes.doubleId}'), false, '');<#if attributes.addToRightOnclick?has_content><#outputformat 'JavaScript'>${attributes.addToRightOnclick}</#outputformat>;</#if>" /><br /><br />
|
||||
</#if><#t/>
|
||||
</#if><#t/>
|
||||
<#if parameters.allowAddAllToLeft!true><#t/>
|
||||
<#assign addAllToLeftLabel=parameters.addAllToLeftLabel!"<<--" /><#t/>
|
||||
<#if parameters.doubleHeaderKey??><#t/>
|
||||
<#if attributes.allowAddAllToLeft!true><#t/>
|
||||
<#assign addAllToLeftLabel=attributes.addAllToLeftLabel!"<<--" /><#t/>
|
||||
<#if attributes.doubleHeaderKey??><#t/>
|
||||
<input type="button"
|
||||
<#if parameters.buttonCssClass??><#t/>
|
||||
class="${parameters.buttonCssClass}"
|
||||
<#if attributes.buttonCssClass??><#t/>
|
||||
class="${attributes.buttonCssClass}"
|
||||
</#if><#t/>
|
||||
<#if parameters.buttonCssStyle??><#t/>
|
||||
style="${parameters.buttonCssStyle}"
|
||||
<#if attributes.buttonCssStyle??><#t/>
|
||||
style="${attributes.buttonCssStyle}"
|
||||
</#if><#t/>
|
||||
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 />
|
||||
value="${addAllToLeftLabel}" onclick="moveAllOptions(document.getElementById('${attributes.doubleId}'), document.getElementById('${attributes.id}'), false, '${attributes.doubleHeaderKey}', '');<#if attributes.addAllToLeftOnclick?has_content><#outputformat 'JavaScript'>${attributes.addAllToLeftOnclick}</#outputformat>;</#if>" /><br /><br />
|
||||
<#else><#t/>
|
||||
<input type="button"
|
||||
<#if parameters.buttonCssClass??><#t/>
|
||||
class="${parameters.buttonCssClass}"
|
||||
<#if attributes.buttonCssClass??><#t/>
|
||||
class="${attributes.buttonCssClass}"
|
||||
</#if><#t/>
|
||||
<#if parameters.buttonCssStyle??><#t/>
|
||||
style="${parameters.buttonCssStyle}"
|
||||
<#if attributes.buttonCssStyle??><#t/>
|
||||
style="${attributes.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 />
|
||||
value="${addAllToLeftLabel}" onclick="moveAllOptions(document.getElementById('${attributes.doubleId}'), document.getElementById('${attributes.id}'), false, '');<#if attributes.addAllToLeftOnclick?has_content><#outputformat 'JavaScript'>${attributes.addAllToLeftOnclick}</#outputformat>;</#if>" /><br /><br />
|
||||
</#if><#t/>
|
||||
</#if><#t/>
|
||||
<#if parameters.allowAddAllToRight!true><#t/>
|
||||
<#assign addAllToRightLabel=parameters.addAllToRightLabel!"-->>" /><#t/>
|
||||
<#if parameters.headerKey??><#t/>
|
||||
<#if attributes.allowAddAllToRight!true><#t/>
|
||||
<#assign addAllToRightLabel=attributes.addAllToRightLabel!"-->>" /><#t/>
|
||||
<#if attributes.headerKey??><#t/>
|
||||
<input type="button"
|
||||
<#if parameters.buttonCssClass??><#t/>
|
||||
class="${parameters.buttonCssClass}"
|
||||
<#if attributes.buttonCssClass??><#t/>
|
||||
class="${attributes.buttonCssClass}"
|
||||
</#if><#t/>
|
||||
<#if parameters.buttonCssStyle??><#t/>
|
||||
style="${parameters.buttonCssStyle}"
|
||||
<#if attributes.buttonCssStyle??><#t/>
|
||||
style="${attributes.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 />
|
||||
value="${addAllToRightLabel}" onclick="moveAllOptions(document.getElementById('${attributes.id}'), document.getElementById('${attributes.doubleId}'), false, '${attributes.headerKey}', '');<#if attributes.addAllToRightOnclick?has_content><#outputformat 'JavaScript'>${attributes.addAllToRightOnclick}</#outputformat>;</#if>" /><br /><br />
|
||||
<#else><#t/>
|
||||
<input type="button"
|
||||
<#if parameters.buttonCssClass??><#t/>
|
||||
class="${parameters.buttonCssClass}"
|
||||
<#if attributes.buttonCssClass??><#t/>
|
||||
class="${attributes.buttonCssClass}"
|
||||
</#if><#t/>
|
||||
<#if parameters.buttonCssStyle??><#t/>
|
||||
style="${parameters.buttonCssStyle}"
|
||||
<#if attributes.buttonCssStyle??><#t/>
|
||||
style="${attributes.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 />
|
||||
value="${addAllToRightLabel}" onclick="moveAllOptions(document.getElementById('${attributes.id}'), document.getElementById('${attributes.doubleId}'), false, '');<#if attributes.addAllToRightOnclick?has_content><#outputformat 'JavaScript'>${attributes.addAllToRightOnclick}</#outputformat>;</#if>" /><br /><br />
|
||||
</#if><#t/>
|
||||
</#if><#t/>
|
||||
<#if parameters.allowSelectAll!true><#t/>
|
||||
<#assign selectAllLabel=parameters.selectAllLabel!"<*>" /><#t/>
|
||||
<#if parameters.headerKey?? && parameters.doubleHeaderKey??><#t/>
|
||||
<#if attributes.allowSelectAll!true><#t/>
|
||||
<#assign selectAllLabel=attributes.selectAllLabel!"<*>" /><#t/>
|
||||
<#if attributes.headerKey?? && attributes.doubleHeaderKey??><#t/>
|
||||
<input type="button"
|
||||
<#if parameters.buttonCssClass??><#t/>
|
||||
class="${parameters.buttonCssClass}"
|
||||
<#if attributes.buttonCssClass??><#t/>
|
||||
class="${attributes.buttonCssClass}"
|
||||
</#if><#t/>
|
||||
<#if parameters.buttonCssStyle??><#t/>
|
||||
style="${parameters.buttonCssStyle}"
|
||||
<#if attributes.buttonCssStyle??><#t/>
|
||||
style="${attributes.buttonCssStyle}"
|
||||
</#if><#t/>
|
||||
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/>
|
||||
value="${selectAllLabel}" onclick="selectAllOptionsExceptSome(document.getElementById('${attributes.id}'), 'key', '${attributes.headerKey}');selectAllOptionsExceptSome(document.getElementById('${attributes.doubleId}'), 'key', '${attributes.doubleHeaderKey}');<#if attributes.selectAllOnclick?has_content><#outputformat 'JavaScript'>${attributes.selectAllOnclick}</#outputformat>;</#if>" /><br /><br />
|
||||
<#elseif attributes.headerKey??><#t/>
|
||||
<input type="button"
|
||||
<#if parameters.buttonCssClass??><#t/>
|
||||
class="${parameters.buttonCssClass}"
|
||||
<#if attributes.buttonCssClass??><#t/>
|
||||
class="${attributes.buttonCssClass}"
|
||||
</#if><#t/>
|
||||
<#if parameters.buttonCssStyle??><#t/>
|
||||
style="${parameters.buttonCssStyle}"
|
||||
<#if attributes.buttonCssStyle??><#t/>
|
||||
style="${attributes.buttonCssStyle}"
|
||||
</#if><#t/>
|
||||
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/>
|
||||
value="${selectAllLabel}" onclick="selectAllOptionsExceptSome(document.getElementById('${attributes.id}'), 'key', '${attributes.headerKey}');selectAllOptions(document.getElementById('${attributes.doubleId}'));<#if attributes.selectAllOnclick?has_content><#outputformat 'JavaScript'>${attributes.selectAllOnclick}</#outputformat>;</#if>" /><br /><br />
|
||||
<#elseif attributes.doubleHeaderKey??><#t/>
|
||||
<input type="button"
|
||||
<#if parameters.buttonCssClass??><#t/>
|
||||
class="${parameters.buttonCssClass}"
|
||||
<#if attributes.buttonCssClass??><#t/>
|
||||
class="${attributes.buttonCssClass}"
|
||||
</#if><#t/>
|
||||
<#if parameters.buttonCssStyle??><#t/>
|
||||
style="${parameters.buttonCssStyle}"
|
||||
<#if attributes.buttonCssStyle??><#t/>
|
||||
style="${attributes.buttonCssStyle}"
|
||||
</#if><#t/>
|
||||
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 />
|
||||
value="${selectAllLabel}" onclick="selectAllOptions(document.getElementById('${attributes.id}'));selectAllOptionsExceptSome(document.getElementById('${attributes.doubleId}'), 'key', '${attributes.doubleHeaderKey}');<#if attributes.selectAllOnclick?has_content><#outputformat 'JavaScript'>${attributes.selectAllOnclick}</#outputformat>;</#if>" /><br /><br />
|
||||
<#else><#t/>
|
||||
<input type="button"
|
||||
<#if parameters.buttonCssClass??><#t/>
|
||||
class="${parameters.buttonCssClass}"
|
||||
<#if attributes.buttonCssClass??><#t/>
|
||||
class="${attributes.buttonCssClass}"
|
||||
</#if><#t/>
|
||||
<#if parameters.buttonCssStyle??><#t/>
|
||||
style="${parameters.buttonCssStyle}"
|
||||
<#if attributes.buttonCssStyle??><#t/>
|
||||
style="${attributes.buttonCssStyle}"
|
||||
</#if><#t/>
|
||||
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 />
|
||||
value="${selectAllLabel}" onclick="selectAllOptions(document.getElementById('${attributes.id}'));selectAllOptions(document.getElementById('${attributes.doubleId}'));<#if attributes.selectAllOnclick?has_content><#outputformat 'JavaScript'>${attributes.selectAllOnclick}</#outputformat>;</#if>" /><br /><br />
|
||||
</#if><#t/>
|
||||
</#if><#t/>
|
||||
</td>
|
||||
<td>
|
||||
<#if parameters.rightTitle??><#t/>
|
||||
<label for="rightTitle">${parameters.rightTitle}</label><br />
|
||||
<#if attributes.rightTitle??><#t/>
|
||||
<label for="rightTitle">${attributes.rightTitle}</label><br />
|
||||
</#if><#t/>
|
||||
<select
|
||||
name="${parameters.doubleName!""}"
|
||||
<#if parameters.get("doubleSize")??><#t/>
|
||||
size="${parameters.get("doubleSize")}"
|
||||
name="${attributes.doubleName!""}"
|
||||
<#if attributes.get("doubleSize")??><#t/>
|
||||
size="${attributes.get("doubleSize")}"
|
||||
</#if><#t/>
|
||||
<#if parameters.doubleDisabled!false><#t/>
|
||||
<#if attributes.doubleDisabled!false><#t/>
|
||||
disabled="disabled"
|
||||
</#if><#t/>
|
||||
<#if parameters.doubleMultiple!false><#t/>
|
||||
<#if attributes.doubleMultiple!false><#t/>
|
||||
multiple="multiple"
|
||||
</#if><#t/>
|
||||
<#if parameters.doubleTabindex??><#t/>
|
||||
tabindex="${parameters.tabindex}"
|
||||
<#if attributes.doubleTabindex??><#t/>
|
||||
tabindex="${attributes.tabindex}"
|
||||
</#if><#t/>
|
||||
<#if parameters.doubleId??><#t/>
|
||||
id="${parameters.doubleId}"
|
||||
<#if attributes.doubleId??><#t/>
|
||||
id="${attributes.doubleId}"
|
||||
</#if><#t/>
|
||||
<#if parameters.doubleCss??><#t/>
|
||||
class="${parameters.doubleCss}"
|
||||
<#if attributes.doubleCss??><#t/>
|
||||
class="${attributes.doubleCss}"
|
||||
</#if><#t/>
|
||||
<#if parameters.doubleStyle??><#t/>
|
||||
style="${parameters.doubleStyle}"
|
||||
<#if attributes.doubleStyle??><#t/>
|
||||
style="${attributes.doubleStyle}"
|
||||
</#if><#t/>
|
||||
<#if parameters.doubleOnclick??><#t/>
|
||||
onclick="<#outputformat 'JavaScript'>${parameters.doubleOnclick}</#outputformat>"
|
||||
<#if attributes.doubleOnclick??><#t/>
|
||||
onclick="<#outputformat 'JavaScript'>${attributes.doubleOnclick}</#outputformat>"
|
||||
</#if><#t/>
|
||||
<#if parameters.doubleOndblclick??><#t/>
|
||||
ondblclick="<#outputformat 'JavaScript'>${parameters.doubleOndblclick}</#outputformat>"
|
||||
<#if attributes.doubleOndblclick??><#t/>
|
||||
ondblclick="<#outputformat 'JavaScript'>${attributes.doubleOndblclick}</#outputformat>"
|
||||
</#if><#t/>
|
||||
<#if parameters.doubleOnmousedown??><#t/>
|
||||
onmousedown="<#outputformat 'JavaScript'>${parameters.doubleOnmousedown}</#outputformat>"
|
||||
<#if attributes.doubleOnmousedown??><#t/>
|
||||
onmousedown="<#outputformat 'JavaScript'>${attributes.doubleOnmousedown}</#outputformat>"
|
||||
</#if><#t/>
|
||||
<#if parameters.doubleOnmouseup??><#t/>
|
||||
onmouseup="<#outputformat 'JavaScript'>${parameters.doubleOnmouseup}</#outputformat>"
|
||||
<#if attributes.doubleOnmouseup??><#t/>
|
||||
onmouseup="<#outputformat 'JavaScript'>${attributes.doubleOnmouseup}</#outputformat>"
|
||||
</#if><#t/>
|
||||
<#if parameters.doubleOnmousemove??><#t/>
|
||||
onmousemove="<#outputformat 'JavaScript'>${parameters.doubleOnmousemove}</#outputformat>"
|
||||
<#if attributes.doubleOnmousemove??><#t/>
|
||||
onmousemove="<#outputformat 'JavaScript'>${attributes.doubleOnmousemove}</#outputformat>"
|
||||
</#if><#t/>
|
||||
<#if parameters.doubleOnmouseover??><#t/>
|
||||
onmouseover="<#outputformat 'JavaScript'>${parameters.doubleOnmouseover}</#outputformat>"
|
||||
<#if attributes.doubleOnmouseover??><#t/>
|
||||
onmouseover="<#outputformat 'JavaScript'>${attributes.doubleOnmouseover}</#outputformat>"
|
||||
</#if><#t/>
|
||||
<#if parameters.doubleOnmouseout??><#t/>
|
||||
onmouseout="<#outputformat 'JavaScript'>${parameters.doubleOnmouseout}</#outputformat>"
|
||||
<#if attributes.doubleOnmouseout??><#t/>
|
||||
onmouseout="<#outputformat 'JavaScript'>${attributes.doubleOnmouseout}</#outputformat>"
|
||||
</#if><#t/>
|
||||
<#if parameters.doubleOnfocus??><#t/>
|
||||
onfocus="<#outputformat 'JavaScript'>${parameters.doubleOnfocus}</#outputformat>"
|
||||
<#if attributes.doubleOnfocus??><#t/>
|
||||
onfocus="<#outputformat 'JavaScript'>${attributes.doubleOnfocus}</#outputformat>"
|
||||
</#if><#t/>
|
||||
<#if parameters.doubleOnblur??><#t/>
|
||||
onblur="<#outputformat 'JavaScript'>${parameters.doubleOnblur}</#outputformat>"
|
||||
<#if attributes.doubleOnblur??><#t/>
|
||||
onblur="<#outputformat 'JavaScript'>${attributes.doubleOnblur}</#outputformat>"
|
||||
</#if><#t/>
|
||||
<#if parameters.doubleOnkeypress??><#t/>
|
||||
onkeypress="<#outputformat 'JavaScript'>${parameters.doubleOnkeypress}</#outputformat>"
|
||||
<#if attributes.doubleOnkeypress??><#t/>
|
||||
onkeypress="<#outputformat 'JavaScript'>${attributes.doubleOnkeypress}</#outputformat>"
|
||||
</#if><#t/>
|
||||
<#if parameters.doubleOnKeydown??><#t/>
|
||||
onkeydown="<#outputformat 'JavaScript'>${parameters.doubleOnkeydown}</#outputformat>"
|
||||
<#if attributes.doubleOnKeydown??><#t/>
|
||||
onkeydown="<#outputformat 'JavaScript'>${attributes.doubleOnkeydown}</#outputformat>"
|
||||
</#if><#t/>
|
||||
<#if parameters.doubleOnkeyup??><#t/>
|
||||
onkeyup="<#outputformat 'JavaScript'>${parameters.doubleOnkeyup}</#outputformat>"
|
||||
<#if attributes.doubleOnkeyup??><#t/>
|
||||
onkeyup="<#outputformat 'JavaScript'>${attributes.doubleOnkeyup}</#outputformat>"
|
||||
</#if><#t/>
|
||||
<#if parameters.doubleOnselect??><#t/>
|
||||
onselect="<#outputformat 'JavaScript'>${parameters.doubleOnselect}</#outputformat>"
|
||||
<#if attributes.doubleOnselect??><#t/>
|
||||
onselect="<#outputformat 'JavaScript'>${attributes.doubleOnselect}</#outputformat>"
|
||||
</#if><#t/>
|
||||
<#if parameters.doubleOnchange??><#t/>
|
||||
onchange="<#outputformat 'JavaScript'>${parameters.doubleOnchange}</#outputformat>"
|
||||
<#if attributes.doubleOnchange??><#t/>
|
||||
onchange="<#outputformat 'JavaScript'>${attributes.doubleOnchange}</#outputformat>"
|
||||
</#if><#t/>
|
||||
<#if parameters.doubleAccesskey??><#t/>
|
||||
accesskey="<#outputformat 'JavaScript'>${parameters.doubleAccesskey}</#outputformat>"
|
||||
<#if attributes.doubleAccesskey??><#t/>
|
||||
accesskey="<#outputformat 'JavaScript'>${attributes.doubleAccesskey}</#outputformat>"
|
||||
</#if>
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/prefixed-dynamic-attributes.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/prefixed-dynamic-attributes.ftl" />
|
||||
<@prefixedDynamicAttributes prefix="right-"/>
|
||||
>
|
||||
<#if parameters.doubleHeaderKey?? && parameters.doubleHeaderValue??><#t/>
|
||||
<option value="${parameters.doubleHeaderKey}">${parameters.doubleHeaderValue}</option>
|
||||
<#if attributes.doubleHeaderKey?? && attributes.doubleHeaderValue??><#t/>
|
||||
<option value="${attributes.doubleHeaderKey}">${attributes.doubleHeaderValue}</option>
|
||||
</#if><#t/>
|
||||
<#if parameters.doubleEmptyOption!false><#t/>
|
||||
<#if attributes.doubleEmptyOption!false><#t/>
|
||||
<option value=""></option>
|
||||
</#if><#t/>
|
||||
<@s.iterator value="parameters.doubleList"><#t/>
|
||||
<#if parameters.doubleListKey??><#t/>
|
||||
<#assign doubleItemKey = stack.findValue(parameters.doubleListKey) /><#t/>
|
||||
<@s.iterator value="attributes.doubleList"><#t/>
|
||||
<#if attributes.doubleListKey??><#t/>
|
||||
<#assign doubleItemKey = stack.findValue(attributes.doubleListKey) /><#t/>
|
||||
<#else><#t/>
|
||||
<#assign doubleItemKey = stack.findValue('top') /><#t/>
|
||||
</#if><#t/>
|
||||
<#assign doubleItemKeyStr = doubleItemKey.toString() /><#t/>
|
||||
<#if parameters.doubleListValue??><#t/>
|
||||
<#assign doubleItemValue = stack.findString(parameters.doubleListValue)!"" /><#t/>
|
||||
<#if attributes.doubleListValue??><#t/>
|
||||
<#assign doubleItemValue = stack.findString(attributes.doubleListValue)!"" /><#t/>
|
||||
<#else><#t/>
|
||||
<#assign doubleItemValue = stack.findString('top') /><#t/>
|
||||
</#if><#t/>
|
||||
<option value="${doubleItemKeyStr}"<#rt/>
|
||||
<#if tag.contains(parameters.doubleNameValue, doubleItemKey)><#t/>
|
||||
<#if tag.contains(attributes.doubleNameValue, doubleItemKey)><#t/>
|
||||
selected="selected"<#rt/>
|
||||
</#if><#t/>
|
||||
>${doubleItemValue}</option><#lt/>
|
||||
</@s.iterator><#t/>
|
||||
</select>
|
||||
<#if parameters.doubleMultiple!false>
|
||||
<input type="hidden" id="__multiselect_${parameters.doubleId}" name="__multiselect_${parameters.doubleName!""}" value=""<#rt/>
|
||||
<#if parameters.doubleDisabled!false>
|
||||
<#if attributes.doubleMultiple!false>
|
||||
<input type="hidden" id="__multiselect_${attributes.doubleId}" name="__multiselect_${attributes.doubleName!""}" value=""<#rt/>
|
||||
<#if attributes.doubleDisabled!false>
|
||||
disabled="disabled"<#rt/>
|
||||
</#if>
|
||||
/>
|
||||
</#if>
|
||||
<#if parameters.allowUpDownOnRight!true>
|
||||
<#if attributes.allowUpDownOnRight!true>
|
||||
<input type="button"
|
||||
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}"
|
||||
onclick="moveOptionDown(document.getElementById('${attributes.doubleId}'), 'key', <#if attributes.doubleHeaderKey??>'${attributes.doubleHeaderKey}'<#else>''</#if>);<#if attributes.upDownOnRightOnclick?has_content><#outputformat 'JavaScript'>${attributes.upDownOnRightOnclick}</#outputformat>;</#if>"
|
||||
<#if attributes.rightDownLabel??>
|
||||
value="${attributes.rightDownLabel}"
|
||||
</#if>
|
||||
/>
|
||||
<input type="button"
|
||||
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}"
|
||||
onclick="moveOptionUp(document.getElementById('${attributes.doubleId}'), 'key', <#if attributes.doubleHeaderKey??>'${attributes.doubleHeaderKey}'<#else>''</#if>);<#if attributes.upDownOnRightOnclick?has_content><#outputformat 'JavaScript'>${attributes.upDownOnRightOnclick}</#outputformat>;</#if>"
|
||||
<#if attributes.rightUpLabel??>
|
||||
value="${attributes.rightUpLabel}"
|
||||
</#if>
|
||||
/>
|
||||
</#if>
|
||||
|
||||
@@ -19,33 +19,33 @@
|
||||
*/
|
||||
-->
|
||||
<input type="password"<#rt/>
|
||||
name="${(parameters.name!"")}"<#rt/>
|
||||
<#if parameters.get("size")?has_content>
|
||||
size="${parameters.get("size")}"<#rt/>
|
||||
name="${(attributes.name!"")}"<#rt/>
|
||||
<#if attributes.get("size")?has_content>
|
||||
size="${attributes.get("size")}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.maxlength?has_content>
|
||||
maxlength="${parameters.maxlength}"<#rt/>
|
||||
<#if attributes.maxlength?has_content>
|
||||
maxlength="${attributes.maxlength}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.nameValue?? && parameters.showPassword!false>
|
||||
value="<@s.property value="parameters.nameValue"/>"<#rt/>
|
||||
<#if attributes.nameValue?? && attributes.showPassword!false>
|
||||
value="<@s.property value="attributes.nameValue"/>"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.disabled!false>
|
||||
<#if attributes.disabled!false>
|
||||
disabled="disabled"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.readonly!false>
|
||||
<#if attributes.readonly!false>
|
||||
readonly="readonly"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.tabindex?has_content>
|
||||
tabindex="${parameters.tabindex}"<#rt/>
|
||||
<#if attributes.tabindex?has_content>
|
||||
tabindex="${attributes.tabindex}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.id?has_content>
|
||||
id="${parameters.id}"<#rt/>
|
||||
<#if attributes.id?has_content>
|
||||
id="${attributes.id}"<#rt/>
|
||||
</#if>
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/css.ftl" />
|
||||
<#if parameters.title?has_content>
|
||||
title="${parameters.title}"<#rt/>
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/css.ftl" />
|
||||
<#if attributes.title?has_content>
|
||||
title="${attributes.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" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/scripting-events.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/common-attributes.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/dynamic-attributes.ftl" />
|
||||
/>
|
||||
@@ -19,11 +19,11 @@
|
||||
*/
|
||||
-->
|
||||
<#macro prefixedDynamicAttributes prefix>
|
||||
<#if (parameters.dynamicAttributes?? && parameters.dynamicAttributes?size > 0)><#rt/>
|
||||
<#assign aKeys = parameters.dynamicAttributes.keySet()><#rt/>
|
||||
<#if (attributes.dynamicAttributes?? && attributes.dynamicAttributes?size > 0)><#rt/>
|
||||
<#assign aKeys = attributes.dynamicAttributes.keySet()><#rt/>
|
||||
<#list aKeys as aKey><#rt/>
|
||||
<#if aKey?starts_with(prefix)>
|
||||
<#assign keyValue = parameters.dynamicAttributes.get(aKey)/>
|
||||
<#assign keyValue = attributes.dynamicAttributes.get(aKey)/>
|
||||
<#if keyValue?is_string>
|
||||
<#assign value = struts.translateVariables(keyValue)!keyValue/>
|
||||
<#else>
|
||||
|
||||
@@ -18,65 +18,65 @@
|
||||
* under the License.
|
||||
*/
|
||||
-->
|
||||
<@s.iterator value="parameters.list">
|
||||
<#if parameters.listKey??>
|
||||
<#assign itemKey = stack.findValue(parameters.listKey)/>
|
||||
<#assign itemKeyStr = stack.findString(parameters.listKey)/>
|
||||
<@s.iterator value="attributes.list">
|
||||
<#if attributes.listKey??>
|
||||
<#assign itemKey = stack.findValue(attributes.listKey)/>
|
||||
<#assign itemKeyStr = stack.findString(attributes.listKey)/>
|
||||
<#else>
|
||||
<#assign itemKey = stack.findValue('top')/>
|
||||
<#assign itemKeyStr = stack.findString('top')>
|
||||
</#if>
|
||||
<#if parameters.listValueKey??>
|
||||
<#if attributes.listValueKey??>
|
||||
<#-- checks the valueStack for the 'valueKey.' The valueKey is then looked-up in the locale
|
||||
file for it's localized value. This is then used as a label -->
|
||||
<#assign valueKey = stack.findString(parameters.listValueKey)!''/>
|
||||
<#assign valueKey = stack.findString(attributes.listValueKey)!''/>
|
||||
<#if valueKey?has_content>
|
||||
<#assign itemValue = struts.getText(valueKey) />
|
||||
<#else>
|
||||
<#assign itemValue = parameters.listValueKey />
|
||||
<#assign itemValue = attributes.listValueKey />
|
||||
</#if>
|
||||
<#elseif parameters.listValue??>
|
||||
<#assign itemValue = stack.findString(parameters.listValue)/>
|
||||
<#elseif attributes.listValue??>
|
||||
<#assign itemValue = stack.findString(attributes.listValue)/>
|
||||
<#else>
|
||||
<#assign itemValue = stack.findString('top')/>
|
||||
</#if>
|
||||
<#if parameters.listCssClass??>
|
||||
<#if stack.findString(parameters.listCssClass)??>
|
||||
<#assign itemCssClass= stack.findString(parameters.listCssClass)/>
|
||||
<#if attributes.listCssClass??>
|
||||
<#if stack.findString(attributes.listCssClass)??>
|
||||
<#assign itemCssClass= stack.findString(attributes.listCssClass)/>
|
||||
<#else>
|
||||
<#assign itemCssClass = ''/>
|
||||
</#if>
|
||||
</#if>
|
||||
<#if parameters.listCssStyle??>
|
||||
<#if stack.findString(parameters.listCssStyle)??>
|
||||
<#assign itemCssStyle= stack.findString(parameters.listCssStyle)/>
|
||||
<#if attributes.listCssStyle??>
|
||||
<#if stack.findString(attributes.listCssStyle)??>
|
||||
<#assign itemCssStyle= stack.findString(attributes.listCssStyle)/>
|
||||
<#else>
|
||||
<#assign itemCssStyle = ''/>
|
||||
</#if>
|
||||
</#if>
|
||||
<#if parameters.listTitle??>
|
||||
<#if stack.findString(parameters.listTitle)??>
|
||||
<#assign itemTitle= stack.findString(parameters.listTitle)/>
|
||||
<#if attributes.listTitle??>
|
||||
<#if stack.findString(attributes.listTitle)??>
|
||||
<#assign itemTitle= stack.findString(attributes.listTitle)/>
|
||||
<#else>
|
||||
<#assign itemTitle = ''/>
|
||||
</#if>
|
||||
</#if>
|
||||
<input type="radio"<#rt/>
|
||||
<#if parameters.name?has_content>
|
||||
name="${parameters.name?no_esc}"<#rt/>
|
||||
<#if attributes.name?has_content>
|
||||
name="${attributes.name?no_esc}"<#rt/>
|
||||
</#if>
|
||||
id="${parameters.id}${itemKeyStr?replace(".", "_")}"<#rt/>
|
||||
<#if tag.contains(parameters.nameValue!'', itemKey)>
|
||||
id="${attributes.id}${itemKeyStr?replace(".", "_")}"<#rt/>
|
||||
<#if tag.contains(attributes.nameValue!'', itemKey)>
|
||||
checked="checked"<#rt/>
|
||||
</#if>
|
||||
<#if itemKey??>
|
||||
value="${itemKeyStr}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.disabled!false>
|
||||
<#if attributes.disabled!false>
|
||||
disabled="disabled"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.tabindex?has_content>
|
||||
tabindex="${parameters.tabindex}"<#rt/>
|
||||
<#if attributes.tabindex?has_content>
|
||||
tabindex="${attributes.tabindex}"<#rt/>
|
||||
</#if>
|
||||
<#if itemCssClass?has_content>
|
||||
class="${itemCssClass}"<#rt/>
|
||||
@@ -87,17 +87,17 @@
|
||||
<#if itemTitle?has_content>
|
||||
title="${itemTitle}"<#rt/>
|
||||
<#else>
|
||||
<#if parameters.title?has_content>
|
||||
title="${parameters.title}"<#rt/>
|
||||
<#if attributes.title?has_content>
|
||||
title="${attributes.title}"<#rt/>
|
||||
</#if>
|
||||
</#if>
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/css.ftl" />
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/scripting-events.ftl" />
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/common-attributes.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/css.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/scripting-events.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/common-attributes.ftl" />
|
||||
<#global evaluate_dynamic_attributes = true/>
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/dynamic-attributes.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/dynamic-attributes.ftl" />
|
||||
/><#rt/>
|
||||
<label for="${parameters.id}${itemKeyStr?replace(".", "_")}"<#include "/${parameters.templateDir}/${parameters.expandTheme}/css.ftl"/>><#rt/>
|
||||
<label for="${attributes.id}${itemKeyStr?replace(".", "_")}"<#include "/${attributes.templateDir}/${attributes.expandTheme}/css.ftl"/>><#rt/>
|
||||
${itemValue}<#t/>
|
||||
</label>
|
||||
</@s.iterator>
|
||||
|
||||
@@ -18,63 +18,63 @@
|
||||
* under the License.
|
||||
*/
|
||||
-->
|
||||
<#if parameters.type?? && parameters.type=="button">
|
||||
<#if attributes.type?? && attributes.type=="button">
|
||||
<button type="reset"<#rt/>
|
||||
<#if parameters.name?has_content>
|
||||
name="${parameters.name}"<#rt/>
|
||||
<#if attributes.name?has_content>
|
||||
name="${attributes.name}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.nameValue??>
|
||||
value="<@s.property value="parameters.nameValue"/>"<#rt/>
|
||||
<#if attributes.nameValue??>
|
||||
value="<@s.property value="attributes.nameValue"/>"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.cssClass?has_content>
|
||||
class="${parameters.cssClass}"<#rt/>
|
||||
<#if attributes.cssClass?has_content>
|
||||
class="${attributes.cssClass}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.cssStyle?has_content>
|
||||
style="${parameters.cssStyle}"<#rt/>
|
||||
<#if attributes.cssStyle?has_content>
|
||||
style="${attributes.cssStyle}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.disabled!false>
|
||||
<#if attributes.disabled!false>
|
||||
disabled="disabled"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.tabindex?has_content>
|
||||
tabindex="${parameters.tabindex}"<#rt/>
|
||||
<#if attributes.tabindex?has_content>
|
||||
tabindex="${attributes.tabindex}"<#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.src?has_content>
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/scripting-events.ftl"/>
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/common-attributes.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/dynamic-attributes.ftl" />
|
||||
><#if attributes.src?has_content>
|
||||
<img<#rt/>
|
||||
<#if parameters.label?has_content>
|
||||
alt="${parameters.label}"<#rt/>
|
||||
<#if attributes.label?has_content>
|
||||
alt="${attributes.label}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.src?has_content>
|
||||
src="${parameters.src}"<#rt/>
|
||||
<#if attributes.src?has_content>
|
||||
src="${attributes.src}"<#rt/>
|
||||
</#if>
|
||||
/><#else><#if parameters.label?has_content><@s.property value="parameters.label"/><#rt/></#if></#if></button>
|
||||
/><#else><#if attributes.label?has_content><@s.property value="attributes.label"/><#rt/></#if></#if></button>
|
||||
<#else>
|
||||
<input type="reset"<#rt/>
|
||||
<#if parameters.name?has_content>
|
||||
name="${parameters.name}"<#rt/>
|
||||
<#if attributes.name?has_content>
|
||||
name="${attributes.name}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.nameValue??>
|
||||
value="<@s.property value="parameters.nameValue"/>"<#rt/>
|
||||
<#if attributes.nameValue??>
|
||||
value="<@s.property value="attributes.nameValue"/>"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.cssClass?has_content>
|
||||
class="${parameters.cssClass}"<#rt/>
|
||||
<#if attributes.cssClass?has_content>
|
||||
class="${attributes.cssClass}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.cssStyle?has_content>
|
||||
style="${parameters.cssStyle}"<#rt/>
|
||||
<#if attributes.cssStyle?has_content>
|
||||
style="${attributes.cssStyle}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.title?has_content>
|
||||
title="${parameters.title}"<#rt/>
|
||||
<#if attributes.title?has_content>
|
||||
title="${attributes.title}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.disabled!false>
|
||||
<#if attributes.disabled!false>
|
||||
disabled="disabled"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.tabindex?has_content>
|
||||
tabindex="${parameters.tabindex}"<#rt/>
|
||||
<#if attributes.tabindex?has_content>
|
||||
tabindex="${attributes.tabindex}"<#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" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/scripting-events.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/common-attributes.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/dynamic-attributes.ftl" />
|
||||
/>
|
||||
</#if>
|
||||
@@ -19,33 +19,33 @@
|
||||
*/
|
||||
-->
|
||||
<script<#rt/>
|
||||
<#if parameters.async?has_content && parameters.async == "true">
|
||||
<#if attributes.async?has_content && attributes.async == "true">
|
||||
async<#rt/>
|
||||
</#if>
|
||||
<#if parameters.charset?has_content>
|
||||
charset="${parameters.charset}"<#rt/>
|
||||
<#if attributes.charset?has_content>
|
||||
charset="${attributes.charset}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.defer?has_content && parameters.defer=="true">
|
||||
<#if attributes.defer?has_content && attributes.defer=="true">
|
||||
defer<#rt/>
|
||||
</#if>
|
||||
<#if parameters.type?has_content>
|
||||
type="${parameters.type}"<#rt/>
|
||||
<#if attributes.type?has_content>
|
||||
type="${attributes.type}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.src?has_content>
|
||||
src="${parameters.src}"<#rt/>
|
||||
<#if attributes.src?has_content>
|
||||
src="${attributes.src}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.referrerpolicy?has_content>
|
||||
referrerpolicy="${parameters.referrerpolicy}"<#rt/>
|
||||
<#if attributes.referrerpolicy?has_content>
|
||||
referrerpolicy="${attributes.referrerpolicy}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.nomodule?has_content && parameters.nomodule=="true">
|
||||
<#if attributes.nomodule?has_content && attributes.nomodule=="true">
|
||||
nomodule<#rt/>
|
||||
</#if>
|
||||
<#if parameters.integrity?has_content>
|
||||
integrity="${parameters.integrity}"<#rt/>
|
||||
<#if attributes.integrity?has_content>
|
||||
integrity="${attributes.integrity}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.crossorigin?has_content>
|
||||
crossorigin="${parameters.crossorigin}"<#rt/>
|
||||
<#if attributes.crossorigin?has_content>
|
||||
crossorigin="${attributes.crossorigin}"<#rt/>
|
||||
</#if>
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/common-attributes.ftl" />
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/dynamic-attributes.ftl" />
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/nonce.ftl" />>
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/common-attributes.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/dynamic-attributes.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/nonce.ftl" />>
|
||||
|
||||
@@ -18,45 +18,45 @@
|
||||
* under the License.
|
||||
*/
|
||||
-->
|
||||
<#if parameters.onclick??>
|
||||
onclick="<#outputformat 'JavaScript'>${parameters.onclick}</#outputformat>"<#rt/>
|
||||
<#if attributes.onclick??>
|
||||
onclick="<#outputformat 'JavaScript'>${attributes.onclick}</#outputformat>"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.ondblclick??>
|
||||
ondblclick="<#outputformat 'JavaScript'>${parameters.ondblclick}</#outputformat>"<#rt/>
|
||||
<#if attributes.ondblclick??>
|
||||
ondblclick="<#outputformat 'JavaScript'>${attributes.ondblclick}</#outputformat>"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.onmousedown??>
|
||||
onmousedown="<#outputformat 'JavaScript'>${parameters.onmousedown}</#outputformat>"<#rt/>
|
||||
<#if attributes.onmousedown??>
|
||||
onmousedown="<#outputformat 'JavaScript'>${attributes.onmousedown}</#outputformat>"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.onmouseup??>
|
||||
onmouseup="<#outputformat 'JavaScript'>${parameters.onmouseup}</#outputformat>"<#rt/>
|
||||
<#if attributes.onmouseup??>
|
||||
onmouseup="<#outputformat 'JavaScript'>${attributes.onmouseup}</#outputformat>"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.onmouseover??>
|
||||
onmouseover="<#outputformat 'JavaScript'>${parameters.onmouseover}</#outputformat>"<#rt/>
|
||||
<#if attributes.onmouseover??>
|
||||
onmouseover="<#outputformat 'JavaScript'>${attributes.onmouseover}</#outputformat>"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.onmousemove??>
|
||||
onmousemove="<#outputformat 'JavaScript'>${parameters.onmousemove}</#outputformat>"<#rt/>
|
||||
<#if attributes.onmousemove??>
|
||||
onmousemove="<#outputformat 'JavaScript'>${attributes.onmousemove}</#outputformat>"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.onmouseout??>
|
||||
onmouseout="<#outputformat 'JavaScript'>${parameters.onmouseout}</#outputformat>"<#rt/>
|
||||
<#if attributes.onmouseout??>
|
||||
onmouseout="<#outputformat 'JavaScript'>${attributes.onmouseout}</#outputformat>"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.onfocus??>
|
||||
onfocus="<#outputformat 'JavaScript'>${parameters.onfocus}</#outputformat>"<#rt/>
|
||||
<#if attributes.onfocus??>
|
||||
onfocus="<#outputformat 'JavaScript'>${attributes.onfocus}</#outputformat>"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.onblur??>
|
||||
onblur="<#outputformat 'JavaScript'>${parameters.onblur}</#outputformat>"<#rt/>
|
||||
<#if attributes.onblur??>
|
||||
onblur="<#outputformat 'JavaScript'>${attributes.onblur}</#outputformat>"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.onkeypress??>
|
||||
onkeypress="<#outputformat 'JavaScript'>${parameters.onkeypress}</#outputformat>"<#rt/>
|
||||
<#if attributes.onkeypress??>
|
||||
onkeypress="<#outputformat 'JavaScript'>${attributes.onkeypress}</#outputformat>"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.onkeydown??>
|
||||
onkeydown="<#outputformat 'JavaScript'>${parameters.onkeydown}</#outputformat>"<#rt/>
|
||||
<#if attributes.onkeydown??>
|
||||
onkeydown="<#outputformat 'JavaScript'>${attributes.onkeydown}</#outputformat>"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.onkeyup??>
|
||||
onkeyup="<#outputformat 'JavaScript'>${parameters.onkeyup}</#outputformat>"<#rt/>
|
||||
<#if attributes.onkeyup??>
|
||||
onkeyup="<#outputformat 'JavaScript'>${attributes.onkeyup}</#outputformat>"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.onselect??>
|
||||
onselect="<#outputformat 'JavaScript'>${parameters.onselect}</#outputformat>"<#rt/>
|
||||
<#if attributes.onselect??>
|
||||
onselect="<#outputformat 'JavaScript'>${attributes.onselect}</#outputformat>"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.onchange??>
|
||||
onchange="<#outputformat 'JavaScript'>${parameters.onchange}</#outputformat>"<#rt/>
|
||||
<#if attributes.onchange??>
|
||||
onchange="<#outputformat 'JavaScript'>${attributes.onchange}</#outputformat>"<#rt/>
|
||||
</#if>
|
||||
@@ -20,45 +20,45 @@
|
||||
-->
|
||||
<#setting number_format="#.#####">
|
||||
<select<#rt/>
|
||||
name="${(parameters.name!"")}"<#rt/>
|
||||
<#if parameters.get("size")?has_content>
|
||||
size="${parameters.get("size")}"<#rt/>
|
||||
name="${(attributes.name!"")}"<#rt/>
|
||||
<#if attributes.get("size")?has_content>
|
||||
size="${attributes.get("size")}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.disabled!false>
|
||||
<#if attributes.disabled!false>
|
||||
disabled="disabled"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.tabindex?has_content>
|
||||
tabindex="${parameters.tabindex}"<#rt/>
|
||||
<#if attributes.tabindex?has_content>
|
||||
tabindex="${attributes.tabindex}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.id?has_content>
|
||||
id="${parameters.id}"<#rt/>
|
||||
<#if attributes.id?has_content>
|
||||
id="${attributes.id}"<#rt/>
|
||||
</#if>
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/css.ftl" />
|
||||
<#if parameters.title?has_content>
|
||||
title="${parameters.title}"<#rt/>
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/css.ftl" />
|
||||
<#if attributes.title?has_content>
|
||||
title="${attributes.title}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.multiple!false>
|
||||
<#if attributes.multiple!false>
|
||||
multiple="multiple"<#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" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/scripting-events.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/common-attributes.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/dynamic-attributes.ftl" />
|
||||
>
|
||||
<#if parameters.headerKey?? && parameters.headerValue??>
|
||||
<option value="${parameters.headerKey}"<#rt/>
|
||||
<#if tag.contains(parameters.nameValue, parameters.headerKey) == true>
|
||||
<#if attributes.headerKey?? && attributes.headerValue??>
|
||||
<option value="${attributes.headerKey}"<#rt/>
|
||||
<#if tag.contains(attributes.nameValue, attributes.headerKey) == true>
|
||||
selected="selected"<#rt/>
|
||||
</#if>
|
||||
>${parameters.headerValue}</option>
|
||||
>${attributes.headerValue}</option>
|
||||
</#if>
|
||||
<#if parameters.emptyOption!false>
|
||||
<#if attributes.emptyOption!false>
|
||||
<option value=""></option>
|
||||
</#if>
|
||||
<@s.iterator value="parameters.list">
|
||||
<#if parameters.listKey??>
|
||||
<#if stack.findValue(parameters.listKey)??>
|
||||
<#assign itemKey = stack.findValue(parameters.listKey)/>
|
||||
<#assign itemKeyStr = stack.findString(parameters.listKey)/>
|
||||
<@s.iterator value="attributes.list">
|
||||
<#if attributes.listKey??>
|
||||
<#if stack.findValue(attributes.listKey)??>
|
||||
<#assign itemKey = stack.findValue(attributes.listKey)/>
|
||||
<#assign itemKeyStr = stack.findString(attributes.listKey)/>
|
||||
<#else>
|
||||
<#assign itemKey = ''/>
|
||||
<#assign itemKeyStr = ''/>
|
||||
@@ -67,47 +67,47 @@
|
||||
<#assign itemKey = stack.findValue('top')/>
|
||||
<#assign itemKeyStr = stack.findString('top')>
|
||||
</#if>
|
||||
<#if parameters.listValueKey??>
|
||||
<#if attributes.listValueKey??>
|
||||
<#-- checks the valueStack for the 'valueKey.' The valueKey is then looked-up in the locale file for it's
|
||||
localized value. This is then used as a label -->
|
||||
<#assign valueKey = stack.findString(parameters.listValueKey)!'' />
|
||||
<#assign valueKey = stack.findString(attributes.listValueKey)!'' />
|
||||
<#if valueKey?has_content>
|
||||
<#assign itemValue = struts.getText(valueKey) />
|
||||
<#else>
|
||||
<#assign itemValue = parameters.listValueKey />
|
||||
<#assign itemValue = attributes.listValueKey />
|
||||
</#if>
|
||||
<#elseif parameters.listValue??>
|
||||
<#if stack.findString(parameters.listValue)??>
|
||||
<#assign itemValue = stack.findString(parameters.listValue)/>
|
||||
<#elseif attributes.listValue??>
|
||||
<#if stack.findString(attributes.listValue)??>
|
||||
<#assign itemValue = stack.findString(attributes.listValue)/>
|
||||
<#else>
|
||||
<#assign itemValue = ''/>
|
||||
</#if>
|
||||
<#else>
|
||||
<#assign itemValue = stack.findString('top')/>
|
||||
</#if>
|
||||
<#if parameters.listCssClass??>
|
||||
<#if stack.findString(parameters.listCssClass)??>
|
||||
<#assign itemCssClass= stack.findString(parameters.listCssClass)/>
|
||||
<#if attributes.listCssClass??>
|
||||
<#if stack.findString(attributes.listCssClass)??>
|
||||
<#assign itemCssClass= stack.findString(attributes.listCssClass)/>
|
||||
<#else>
|
||||
<#assign itemCssClass = ''/>
|
||||
</#if>
|
||||
</#if>
|
||||
<#if parameters.listCssStyle??>
|
||||
<#if stack.findString(parameters.listCssStyle)??>
|
||||
<#assign itemCssStyle= stack.findString(parameters.listCssStyle)/>
|
||||
<#if attributes.listCssStyle??>
|
||||
<#if stack.findString(attributes.listCssStyle)??>
|
||||
<#assign itemCssStyle= stack.findString(attributes.listCssStyle)/>
|
||||
<#else>
|
||||
<#assign itemCssStyle = ''/>
|
||||
</#if>
|
||||
</#if>
|
||||
<#if parameters.listTitle??>
|
||||
<#if stack.findString(parameters.listTitle)??>
|
||||
<#assign itemTitle= stack.findString(parameters.listTitle)/>
|
||||
<#if attributes.listTitle??>
|
||||
<#if stack.findString(attributes.listTitle)??>
|
||||
<#assign itemTitle= stack.findString(attributes.listTitle)/>
|
||||
<#else>
|
||||
<#assign itemTitle = ''/>
|
||||
</#if>
|
||||
</#if>
|
||||
<option value="${itemKeyStr}"<#rt/>
|
||||
<#if tag.contains(parameters.nameValue, itemKey) == true>
|
||||
<#if tag.contains(attributes.nameValue, itemKey) == true>
|
||||
selected="selected"<#rt/>
|
||||
</#if>
|
||||
<#if itemCssClass?has_content>
|
||||
@@ -121,24 +121,24 @@
|
||||
</#if>
|
||||
>${itemValue}</option><#lt/>
|
||||
</@s.iterator>
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/optgroup.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/optgroup.ftl" />
|
||||
</select>
|
||||
|
||||
<#if parameters.multiple!false>
|
||||
<#if (parameters.id?? && parameters.name??)>
|
||||
<input type="hidden" id="__multiselect_${parameters.id}" name="__multiselect_${parameters.name}" value=""<#rt/>
|
||||
<#if attributes.multiple!false>
|
||||
<#if (attributes.id?? && attributes.name??)>
|
||||
<input type="hidden" id="__multiselect_${attributes.id}" name="__multiselect_${attributes.name}" value=""<#rt/>
|
||||
</#if>
|
||||
<#if (parameters.id?? && !parameters.name??)>
|
||||
<input type="hidden" id="__multiselect_${parameters.id}" name="__multiselect_${parameters.id}" value=""<#rt/>
|
||||
<#if (attributes.id?? && !attributes.name??)>
|
||||
<input type="hidden" id="__multiselect_${attributes.id}" name="__multiselect_${attributes.id}" value=""<#rt/>
|
||||
</#if>
|
||||
<#if ( !parameters.id?? && parameters.name??)>
|
||||
<input type="hidden" id="__multiselect_${parameters.id}" name="__multiselect_${parameters.id}" value=""<#rt/>
|
||||
<#if ( !attributes.id?? && attributes.name??)>
|
||||
<input type="hidden" id="__multiselect_${attributes.id}" name="__multiselect_${attributes.id}" value=""<#rt/>
|
||||
</#if>
|
||||
<#if ( !parameters.id?? && !parameters.name??)>
|
||||
<#if ( !attributes.id?? && !attributes.name??)>
|
||||
<input type="hidden" id="" name="" value="" <#rt/>
|
||||
</#if>
|
||||
|
||||
<#if parameters.disabled!false>
|
||||
<#if attributes.disabled!false>
|
||||
disabled="disabled"<#rt/>
|
||||
</#if>
|
||||
/>
|
||||
|
||||
@@ -18,9 +18,9 @@
|
||||
* under the License.
|
||||
*/
|
||||
-->
|
||||
<#if parameters.type?? && parameters.type=="button">
|
||||
<#if parameters.body?length gt 0>${tag.escapeHtmlBody()?then(parameters.body, parameters.body?no_esc)}<#elseif parameters.label??><@s.property value="parameters.label"/><#rt/></#if>
|
||||
<#if attributes.type?? && attributes.type=="button">
|
||||
<#if attributes.body?length gt 0>${tag.escapeHtmlBody()?then(attributes.body, attributes.body?no_esc)}<#elseif attributes.label??><@s.property value="attributes.label"/><#rt/></#if>
|
||||
</button>
|
||||
<#else>
|
||||
${tag.escapeHtmlBody()?then(parameters.body, parameters.body?no_esc)}<#rt/>
|
||||
${tag.escapeHtmlBody()?then(attributes.body, attributes.body?no_esc)}<#rt/>
|
||||
</#if>
|
||||
@@ -18,74 +18,74 @@
|
||||
* under the License.
|
||||
*/
|
||||
-->
|
||||
<#if parameters.type?? && parameters.type=="button">
|
||||
<#if attributes.type?? && attributes.type=="button">
|
||||
<button type="submit"<#rt/>
|
||||
<#if parameters.id?has_content>
|
||||
id="${parameters.id}"<#rt/>
|
||||
<#if attributes.id?has_content>
|
||||
id="${attributes.id}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.name?has_content>
|
||||
name="${parameters.name}"<#rt/>
|
||||
<#if attributes.name?has_content>
|
||||
name="${attributes.name}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.nameValue??>
|
||||
value="<@s.property value="parameters.nameValue"/>"<#rt/>
|
||||
<#if attributes.nameValue??>
|
||||
value="<@s.property value="attributes.nameValue"/>"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.disabled!false>
|
||||
<#if attributes.disabled!false>
|
||||
disabled="disabled"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.cssClass?has_content>
|
||||
class="${parameters.cssClass}"<#rt/>
|
||||
<#if attributes.cssClass?has_content>
|
||||
class="${attributes.cssClass}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.cssStyle?has_content>
|
||||
style="${parameters.cssStyle}"<#rt/>
|
||||
<#if attributes.cssStyle?has_content>
|
||||
style="${attributes.cssStyle}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.title?has_content>
|
||||
title="${parameters.title}"<#rt/>
|
||||
<#if attributes.title?has_content>
|
||||
title="${attributes.title}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.tabindex?has_content>
|
||||
tabindex="${parameters.tabindex}"<#rt/>
|
||||
<#if attributes.tabindex?has_content>
|
||||
tabindex="${attributes.tabindex}"<#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" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/scripting-events.ftl"/>
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/common-attributes.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/dynamic-attributes.ftl" />
|
||||
>
|
||||
<#else>
|
||||
<#if parameters.type?? && parameters.type=="image">
|
||||
<#if attributes.type?? && attributes.type=="image">
|
||||
<input type="image"<#rt/>
|
||||
<#if parameters.label?has_content>
|
||||
alt="${parameters.label}"<#rt/>
|
||||
<#if attributes.label?has_content>
|
||||
alt="${attributes.label}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.src?has_content>
|
||||
src="${parameters.src}"<#rt/>
|
||||
<#if attributes.src?has_content>
|
||||
src="${attributes.src}"<#rt/>
|
||||
</#if>
|
||||
<#else>
|
||||
<input type="submit"<#rt/>
|
||||
<#if parameters.nameValue?has_content>
|
||||
value="<@s.property value="parameters.nameValue"/>"<#rt/>
|
||||
<#if attributes.nameValue?has_content>
|
||||
value="<@s.property value="attributes.nameValue"/>"<#rt/>
|
||||
</#if>
|
||||
</#if>
|
||||
<#if parameters.id?has_content>
|
||||
id="${parameters.id}"<#rt/>
|
||||
<#if attributes.id?has_content>
|
||||
id="${attributes.id}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.name?has_content>
|
||||
name="${parameters.name}"<#rt/>
|
||||
<#if attributes.name?has_content>
|
||||
name="${attributes.name}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.disabled!false>
|
||||
<#if attributes.disabled!false>
|
||||
disabled="disabled"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.cssClass?has_content>
|
||||
class="${parameters.cssClass}"<#rt/>
|
||||
<#if attributes.cssClass?has_content>
|
||||
class="${attributes.cssClass}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.cssStyle?has_content>
|
||||
style="${parameters.cssStyle}"<#rt/>
|
||||
<#if attributes.cssStyle?has_content>
|
||||
style="${attributes.cssStyle}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.title?has_content>
|
||||
title="${parameters.title}"<#rt/>
|
||||
<#if attributes.title?has_content>
|
||||
title="${attributes.title}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.tabindex?has_content>
|
||||
tabindex="${parameters.tabindex}"<#rt/>
|
||||
<#if attributes.tabindex?has_content>
|
||||
tabindex="${attributes.tabindex}"<#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" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/scripting-events.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/common-attributes.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/dynamic-attributes.ftl" />
|
||||
/>
|
||||
</#if>
|
||||
|
||||
@@ -19,34 +19,34 @@
|
||||
*/
|
||||
-->
|
||||
<input<#rt/>
|
||||
type="${(parameters.type!"text")}"<#rt/>
|
||||
name="${(parameters.name!"")}"<#rt/>
|
||||
<#if parameters.get("size")?has_content>
|
||||
size="${parameters.get("size")}"<#rt/>
|
||||
type="${(attributes.type!"text")}"<#rt/>
|
||||
name="${(attributes.name!"")}"<#rt/>
|
||||
<#if attributes.get("size")?has_content>
|
||||
size="${attributes.get("size")}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.maxlength?has_content>
|
||||
maxlength="${parameters.maxlength}"<#rt/>
|
||||
<#if attributes.maxlength?has_content>
|
||||
maxlength="${attributes.maxlength}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.nameValue??>
|
||||
value="${parameters.nameValue}"<#rt/>
|
||||
<#if attributes.nameValue??>
|
||||
value="${attributes.nameValue}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.disabled!false>
|
||||
<#if attributes.disabled!false>
|
||||
disabled="disabled"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.readonly!false>
|
||||
<#if attributes.readonly!false>
|
||||
readonly="readonly"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.tabindex?has_content>
|
||||
tabindex="${parameters.tabindex}"<#rt/>
|
||||
<#if attributes.tabindex?has_content>
|
||||
tabindex="${attributes.tabindex}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.id?has_content>
|
||||
id="${parameters.id}"<#rt/>
|
||||
<#if attributes.id?has_content>
|
||||
id="${attributes.id}"<#rt/>
|
||||
</#if>
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/css.ftl" />
|
||||
<#if parameters.title?has_content>
|
||||
title="${parameters.title}"<#rt/>
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/css.ftl" />
|
||||
<#if attributes.title?has_content>
|
||||
title="${attributes.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" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/scripting-events.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/common-attributes.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/dynamic-attributes.ftl" />
|
||||
/>
|
||||
@@ -19,43 +19,43 @@
|
||||
*/
|
||||
-->
|
||||
<textarea<#rt/>
|
||||
name="${(parameters.name!"")}"<#rt/>
|
||||
<#if parameters.cols?has_content>
|
||||
cols="${(parameters.cols!"")}"<#rt/>
|
||||
name="${(attributes.name!"")}"<#rt/>
|
||||
<#if attributes.cols?has_content>
|
||||
cols="${(attributes.cols!"")}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.rows?has_content>
|
||||
rows="${(parameters.rows!"")}"<#rt/>
|
||||
<#if attributes.rows?has_content>
|
||||
rows="${(attributes.rows!"")}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.wrap?has_content>
|
||||
wrap="${parameters.wrap}"<#rt/>
|
||||
<#if attributes.wrap?has_content>
|
||||
wrap="${attributes.wrap}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.disabled!false>
|
||||
<#if attributes.disabled!false>
|
||||
disabled="disabled"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.readonly!false>
|
||||
<#if attributes.readonly!false>
|
||||
readonly="readonly"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.tabindex?has_content>
|
||||
tabindex="${parameters.tabindex}"<#rt/>
|
||||
<#if attributes.tabindex?has_content>
|
||||
tabindex="${attributes.tabindex}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.id?has_content>
|
||||
id="${parameters.id}"<#rt/>
|
||||
<#if attributes.id?has_content>
|
||||
id="${attributes.id}"<#rt/>
|
||||
</#if>
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/css.ftl" />
|
||||
<#if parameters.title?has_content>
|
||||
title="${parameters.title}"<#rt/>
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/css.ftl" />
|
||||
<#if attributes.title?has_content>
|
||||
title="${attributes.title}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.maxlength?has_content>
|
||||
maxlength="${parameters.maxlength}"<#rt/>
|
||||
<#if attributes.maxlength?has_content>
|
||||
maxlength="${attributes.maxlength}"<#rt/>
|
||||
</#if>
|
||||
<#if parameters.minlength?has_content>
|
||||
minlength="${parameters.minlength}"<#rt/>
|
||||
<#if attributes.minlength?has_content>
|
||||
minlength="${attributes.minlength}"<#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" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/scripting-events.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/common-attributes.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/dynamic-attributes.ftl" />
|
||||
><#rt/>
|
||||
<#if parameters.nameValue??>
|
||||
<@s.property value="parameters.nameValue"/><#t/>
|
||||
<#if attributes.nameValue??>
|
||||
<@s.property value="attributes.nameValue"/><#t/>
|
||||
</#if>
|
||||
</textarea>
|
||||
|
||||
@@ -18,5 +18,5 @@
|
||||
* under the License.
|
||||
*/
|
||||
-->
|
||||
<input type="hidden" name="${parameters.tokenNameField!""}" value="${parameters.name!""}" />
|
||||
<input type="hidden" name="${parameters.name!""}" value="${parameters.token!""}" />
|
||||
<input type="hidden" name="${attributes.tokenNameField!""}" value="${attributes.name!""}" />
|
||||
<input type="hidden" name="${attributes.name!""}" value="${attributes.token!""}" />
|
||||
@@ -19,7 +19,7 @@
|
||||
*/
|
||||
-->
|
||||
<#if !stack.findValue("#optiontransferselect_js_included")??><#t/>
|
||||
<@s.script src="${base}${parameters.staticContentPath}/optiontransferselect.js" /><#t/>
|
||||
<@s.script src="${base}${attributes.staticContentPath}/optiontransferselect.js" /><#t/>
|
||||
<#assign temporaryVariable = stack.setValue("#optiontransferselect_js_included", "true") /><#t/>
|
||||
</#if><#t/>
|
||||
<table>
|
||||
@@ -27,28 +27,28 @@
|
||||
<#include "/${templateDir}/simple/select.ftl" /><#t/>
|
||||
</td></tr>
|
||||
<tr><td>
|
||||
<#if parameters.allowMoveUp!true><#t/>
|
||||
<#assign defMoveUpLabel="${parameters.moveUpLabel!'^'}" /><#t/>
|
||||
<#if parameters.headerKey??><#t/>
|
||||
<input type="button" value="${defMoveUpLabel}" onclick="moveOptionUp(document.getElementById('${parameters.id}'), 'key', '${parameters.headerKey}');" />
|
||||
<#if attributes.allowMoveUp!true><#t/>
|
||||
<#assign defMoveUpLabel="${attributes.moveUpLabel!'^'}" /><#t/>
|
||||
<#if attributes.headerKey??><#t/>
|
||||
<input type="button" value="${defMoveUpLabel}" onclick="moveOptionUp(document.getElementById('${attributes.id}'), 'key', '${attributes.headerKey}');" />
|
||||
<#else><#t/>
|
||||
<input type="button" value="${defMoveUpLabel}" onclick="moveOptionUp(document.getElementById('${parameters.id}'), 'key', '');" />
|
||||
<input type="button" value="${defMoveUpLabel}" onclick="moveOptionUp(document.getElementById('${attributes.id}'), 'key', '');" />
|
||||
</#if><#t/>
|
||||
</#if><#t/>
|
||||
<#if parameters.allowMoveDown!true><#t/>
|
||||
<#assign defMoveDownLabel="${parameters.moveDownLabel!'v'}" /><#t/>
|
||||
<#if parameters.headerKey??><#t/>
|
||||
<input type="button" value="${defMoveDownLabel}" onclick="moveOptionDown(document.getElementById('${parameters.id}'), 'key', '${parameters.headerKey}');" />
|
||||
<#if attributes.allowMoveDown!true><#t/>
|
||||
<#assign defMoveDownLabel="${attributes.moveDownLabel!'v'}" /><#t/>
|
||||
<#if attributes.headerKey??><#t/>
|
||||
<input type="button" value="${defMoveDownLabel}" onclick="moveOptionDown(document.getElementById('${attributes.id}'), 'key', '${attributes.headerKey}');" />
|
||||
<#else><#t/>
|
||||
<input type="button" value="${defMoveDownLabel}" onclick="moveOptionDown(document.getElementById('${parameters.id}'), 'key', '');" />
|
||||
<input type="button" value="${defMoveDownLabel}" onclick="moveOptionDown(document.getElementById('${attributes.id}'), 'key', '');" />
|
||||
</#if><#t/>
|
||||
</#if><#t/>
|
||||
<#if parameters.allowSelectAll!true><#t/>
|
||||
<#assign defSelectAllLabel="${parameters.selectAllLabel!'*'}" /><#t/>
|
||||
<#if parameters.headerKey??><#t/>
|
||||
<input type="button" value="${defSelectAllLabel}" onclick="selectAllOptionsExceptSome(document.getElementById('${parameters.id}'), 'key', '${parameters.headerKey}');" />
|
||||
<#if attributes.allowSelectAll!true><#t/>
|
||||
<#assign defSelectAllLabel="${attributes.selectAllLabel!'*'}" /><#t/>
|
||||
<#if attributes.headerKey??><#t/>
|
||||
<input type="button" value="${defSelectAllLabel}" onclick="selectAllOptionsExceptSome(document.getElementById('${attributes.id}'), 'key', '${attributes.headerKey}');" />
|
||||
<#else><#t/>
|
||||
<input type="button" value="${defSelectAllLabel}" onclick="selectAllOptions(document.getElementById('${parameters.id}'), 'key', '');" />
|
||||
<input type="button" value="${defSelectAllLabel}" onclick="selectAllOptions(document.getElementById('${attributes.id}'), 'key', '');" />
|
||||
</#if><#t/>
|
||||
</#if><#t/>
|
||||
</td></tr>
|
||||
|
||||
@@ -18,12 +18,12 @@
|
||||
* under the License.
|
||||
*/
|
||||
-->
|
||||
<#assign hasFieldErrors = fieldErrors?? && fieldErrors.get(parameters.name)??/>
|
||||
<#assign hasFieldErrors = fieldErrors?? && fieldErrors.get(attributes.name)??/>
|
||||
<#if hasFieldErrors>
|
||||
<#list fieldErrors.get(parameters.name) as error>
|
||||
<#list fieldErrors.get(attributes.name) as error>
|
||||
<tr<#rt/>
|
||||
<#if parameters.id??>
|
||||
errorFor="${parameters.id}"<#rt/>
|
||||
<#if attributes.id??>
|
||||
errorFor="${attributes.id}"<#rt/>
|
||||
</#if>
|
||||
>
|
||||
<td class="tdCheckboxErrorMessage" colspan="2"><#rt/>
|
||||
@@ -32,17 +32,17 @@
|
||||
</tr>
|
||||
</#list>
|
||||
</#if>
|
||||
<#if !parameters.labelPosition?? && (parameters.form.labelPosition)??>
|
||||
<#assign labelPos = parameters.form.labelPosition/>
|
||||
<#elseif parameters.labelPosition??>
|
||||
<#assign labelPos = parameters.labelPosition/>
|
||||
<#if !attributes.labelPosition?? && (attributes.form.labelPosition)??>
|
||||
<#assign labelPos = attributes.form.labelPosition/>
|
||||
<#elseif attributes.labelPosition??>
|
||||
<#assign labelPos = attributes.labelPosition/>
|
||||
</#if>
|
||||
<#if (labelPos!"") == 'top'>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<#if parameters.label??> <label<#t/>
|
||||
<#if parameters.id??>
|
||||
for="${parameters.id}"<#rt/>
|
||||
<#if attributes.label??> <label<#t/>
|
||||
<#if attributes.id??>
|
||||
for="${attributes.id}"<#rt/>
|
||||
</#if>
|
||||
<#if hasFieldErrors>
|
||||
class="checkboxErrorLabel"<#rt/>
|
||||
@@ -50,16 +50,16 @@
|
||||
class="checkboxLabel"<#rt/>
|
||||
</#if>
|
||||
>
|
||||
<#if parameters.required!false && parameters.requiredPosition!"right" != 'right'>
|
||||
<#if attributes.required!false && attributes.requiredPosition!"right" != 'right'>
|
||||
<span class="required">*</span><#t/>
|
||||
</#if>
|
||||
${parameters.label}<#t/>
|
||||
<#if parameters.required!false && parameters.requiredPosition!"right" == 'right'>
|
||||
${attributes.label}<#t/>
|
||||
<#if attributes.required!false && attributes.requiredPosition!"right" == 'right'>
|
||||
<span class="required">*</span><#t/>
|
||||
</#if>
|
||||
:<#t/>
|
||||
<#if parameters.tooltip??>
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/tooltip.ftl" />
|
||||
<#if attributes.tooltip??>
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/tooltip.ftl" />
|
||||
</#if>
|
||||
</label><#t/>
|
||||
</#if>
|
||||
@@ -67,14 +67,14 @@ ${parameters.label}<#t/>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<#include "/${parameters.templateDir}/simple/checkbox.ftl" />
|
||||
<#include "/${attributes.templateDir}/simple/checkbox.ftl" />
|
||||
<#else>
|
||||
<tr>
|
||||
<td class="tdCheckboxLabel">
|
||||
<#if (labelPos!"") == 'left'>
|
||||
<#if parameters.label??> <label<#t/>
|
||||
<#if parameters.id??>
|
||||
for="${parameters.id}"<#rt/>
|
||||
<#if attributes.label??> <label<#t/>
|
||||
<#if attributes.id??>
|
||||
for="${attributes.id}"<#rt/>
|
||||
</#if>
|
||||
<#if hasFieldErrors>
|
||||
class="checkboxErrorLabel"<#rt/>
|
||||
@@ -82,45 +82,45 @@ ${parameters.label}<#t/>
|
||||
class="checkboxLabel"<#rt/>
|
||||
</#if>
|
||||
>
|
||||
<#if parameters.required!false && parameters.requiredPosition!"right" != 'right'>
|
||||
<#if attributes.required!false && attributes.requiredPosition!"right" != 'right'>
|
||||
<span class="required">*</span><#t/>
|
||||
</#if>
|
||||
${parameters.label}<#t/>
|
||||
<#if parameters.required!false && parameters.requiredPosition!"right" == 'right'>
|
||||
${attributes.label}<#t/>
|
||||
<#if attributes.required!false && attributes.requiredPosition!"right" == 'right'>
|
||||
<span class="required">*</span><#t/>
|
||||
</#if>
|
||||
:<#t/>
|
||||
<#if parameters.tooltip??>
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/tooltip.ftl" />
|
||||
<#if attributes.tooltip??>
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/tooltip.ftl" />
|
||||
</#if>
|
||||
</label><#t/>
|
||||
</#if>
|
||||
</#if>
|
||||
<#if (labelPos!"") == 'right'>
|
||||
<#if parameters.required!false>
|
||||
<#if attributes.required!false>
|
||||
<span class="required">*</span><#t/>
|
||||
</#if>
|
||||
<#if parameters.tooltip??>
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/tooltip.ftl" />
|
||||
<#if attributes.tooltip??>
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/tooltip.ftl" />
|
||||
</#if>
|
||||
</#if>
|
||||
</td>
|
||||
<td class="tdCheckboxInput">
|
||||
<#if (labelPos!"") != 'top'>
|
||||
<#include "/${parameters.templateDir}/simple/checkbox.ftl" />
|
||||
<#include "/${attributes.templateDir}/simple/checkbox.ftl" />
|
||||
</#if>
|
||||
<#if (labelPos!"") != 'top' && (labelPos!"") != 'left'>
|
||||
<#if parameters.label??><label<#rt/>
|
||||
<#if parameters.id??>
|
||||
for="${parameters.id}"<#rt/>
|
||||
<#if attributes.label??><label<#rt/>
|
||||
<#if attributes.id??>
|
||||
for="${attributes.id}"<#rt/>
|
||||
</#if>
|
||||
<#if hasFieldErrors>
|
||||
class="checkboxErrorLabel"<#rt/>
|
||||
<#else>
|
||||
class="checkboxLabel"<#rt/>
|
||||
</#if>
|
||||
>${parameters.label}</label><#rt/>
|
||||
>${attributes.label}</label><#rt/>
|
||||
</#if>
|
||||
</#if>
|
||||
</#if>
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlfooter.ftl" /><#nt/>
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/controlfooter.ftl" /><#nt/>
|
||||
|
||||
@@ -18,6 +18,6 @@
|
||||
* under the License.
|
||||
*/
|
||||
-->
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlheader.ftl" />
|
||||
<#include "/${parameters.templateDir}/simple/checkboxlist.ftl" />
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlfooter.ftl" /><#nt/>
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/controlheader.ftl" />
|
||||
<#include "/${attributes.templateDir}/simple/checkboxlist.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/controlfooter.ftl" /><#nt/>
|
||||
|
||||
@@ -18,6 +18,6 @@
|
||||
* under the License.
|
||||
*/
|
||||
-->
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlheader.ftl" />
|
||||
<#include "/${parameters.templateDir}/simple/combobox.ftl" />
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlfooter.ftl" /><#nt/>
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/controlheader.ftl" />
|
||||
<#include "/${attributes.templateDir}/simple/combobox.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/controlfooter.ftl" /><#nt/>
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
* under the License.
|
||||
*/
|
||||
-->
|
||||
<table class="${parameters.cssClass!'wwFormTable'}"<#rt/>
|
||||
<#if parameters.cssStyle??> style="${parameters.cssStyle}"<#rt/>
|
||||
<table class="${attributes.cssClass!'wwFormTable'}"<#rt/>
|
||||
<#if attributes.cssStyle??> style="${attributes.cssStyle}"<#rt/>
|
||||
</#if>
|
||||
>
|
||||
@@ -18,14 +18,14 @@
|
||||
* under the License.
|
||||
*/
|
||||
-->
|
||||
${parameters.after!}<#t/>
|
||||
${attributes.after!}<#t/>
|
||||
</td><#lt/>
|
||||
</tr>
|
||||
<#if (parameters.errorposition!"top") == 'bottom'>
|
||||
<#assign hasFieldErrors = parameters.name?? && fieldErrors?? && fieldErrors.get(parameters.name)??/>
|
||||
<#if (attributes.errorposition!"top") == 'bottom'>
|
||||
<#assign hasFieldErrors = attributes.name?? && fieldErrors?? && fieldErrors.get(attributes.name)??/>
|
||||
<#if hasFieldErrors>
|
||||
<#list fieldErrors.get(parameters.name) as error>
|
||||
<tr errorFor="${parameters.id}">
|
||||
<#list fieldErrors.get(attributes.name) as error>
|
||||
<tr errorFor="${attributes.id}">
|
||||
<td class="tdErrorMessage" colspan="2"><#rt/>
|
||||
<span class="errorMessage">${error}</span><#t/>
|
||||
</td><#lt/>
|
||||
|
||||
@@ -22,11 +22,11 @@
|
||||
Only show message if errors are available.
|
||||
This will be done if ActionSupport is used.
|
||||
-->
|
||||
<#assign hasFieldErrors = parameters.name?? && fieldErrors?? && fieldErrors.get(parameters.name)??/>
|
||||
<#if (parameters.errorposition!"top") == 'top'>
|
||||
<#assign hasFieldErrors = attributes.name?? && fieldErrors?? && fieldErrors.get(attributes.name)??/>
|
||||
<#if (attributes.errorposition!"top") == 'top'>
|
||||
<#if hasFieldErrors>
|
||||
<#list fieldErrors.get(parameters.name) as error>
|
||||
<tr errorFor="${parameters.id}">
|
||||
<#list fieldErrors.get(attributes.name) as error>
|
||||
<tr errorFor="${attributes.id}">
|
||||
<td class="tdErrorMessage" colspan="2"><#rt/>
|
||||
<span class="errorMessage">${error}</span><#t/>
|
||||
</td><#lt/>
|
||||
@@ -34,10 +34,10 @@
|
||||
</#list>
|
||||
</#if>
|
||||
</#if>
|
||||
<#if !parameters.labelPosition?? && (parameters.form.labelPosition)??>
|
||||
<#assign labelPos = parameters.form.labelPosition/>
|
||||
<#elseif parameters.labelPosition??>
|
||||
<#assign labelPos = parameters.labelPosition/>
|
||||
<#if !attributes.labelPosition?? && (attributes.form.labelPosition)??>
|
||||
<#assign labelPos = attributes.form.labelPosition/>
|
||||
<#elseif attributes.labelPosition??>
|
||||
<#assign labelPos = attributes.labelPosition/>
|
||||
</#if>
|
||||
<#--
|
||||
if the label position is top,
|
||||
@@ -49,10 +49,10 @@
|
||||
<#else>
|
||||
<td class="tdLabel"><#rt/>
|
||||
</#if>
|
||||
<#if parameters.label??>
|
||||
<#if attributes.label??>
|
||||
<label <#t/>
|
||||
<#if parameters.id??>
|
||||
for="${parameters.id}" <#t/>
|
||||
<#if attributes.id??>
|
||||
for="${attributes.id}" <#t/>
|
||||
</#if>
|
||||
<#if hasFieldErrors>
|
||||
class="errorLabel"<#t/>
|
||||
@@ -60,15 +60,15 @@
|
||||
class="label"<#t/>
|
||||
</#if>
|
||||
><#t/>
|
||||
<#if (parameters.required!false) && ((parameters.requiredPosition!"right") != 'right')>
|
||||
<#if (attributes.required!false) && ((attributes.requiredPosition!"right") != 'right')>
|
||||
<span class="required">*</span><#t/>
|
||||
</#if>
|
||||
${parameters.label}<#t/>
|
||||
<#if (parameters.required!false) && ((parameters.requiredPosition!"right") == 'right')>
|
||||
${attributes.label}<#t/>
|
||||
<#if (attributes.required!false) && ((attributes.requiredPosition!"right") == 'right')>
|
||||
<span class="required">*</span><#t/>
|
||||
</#if>
|
||||
${parameters.labelseparator!":"}<#t/>
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/tooltip.ftl" />
|
||||
${attributes.labelseparator!":"}<#t/>
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/tooltip.ftl" />
|
||||
</label><#t/>
|
||||
</#if>
|
||||
</td><#lt/>
|
||||
|
||||
@@ -18,11 +18,11 @@
|
||||
* under the License.
|
||||
*/
|
||||
-->
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlheader-core.ftl" />
|
||||
<td
|
||||
<#if parameters.align?? >
|
||||
class="align-${parameters.align}"
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/controlheader-core.ftl" />
|
||||
<td
|
||||
<#if attributes.align?? >
|
||||
class="align-${attributes.align}"
|
||||
<#else >
|
||||
class="tdInput"
|
||||
class="tdInput"
|
||||
</#if>
|
||||
><#t/>
|
||||
|
||||
@@ -18,6 +18,6 @@
|
||||
* under the License.
|
||||
*/
|
||||
-->
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlheader.ftl" />
|
||||
<#include "/${parameters.templateDir}/simple/datetextfield.ftl" />
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlfooter.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/controlheader.ftl" />
|
||||
<#include "/${attributes.templateDir}/simple/datetextfield.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/controlfooter.ftl" />
|
||||
|
||||
@@ -18,6 +18,6 @@
|
||||
* under the License.
|
||||
*/
|
||||
-->
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlheader.ftl" />
|
||||
<#include "/${parameters.templateDir}/simple/doubleselect.ftl" />
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlfooter.ftl" /><#nt/>
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/controlheader.ftl" />
|
||||
<#include "/${attributes.templateDir}/simple/doubleselect.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/controlfooter.ftl" /><#nt/>
|
||||
|
||||
@@ -18,6 +18,6 @@
|
||||
* under the License.
|
||||
*/
|
||||
-->
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlheader.ftl" />
|
||||
<#include "/${parameters.templateDir}/simple/file.ftl" />
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlfooter.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/controlheader.ftl" />
|
||||
<#include "/${attributes.templateDir}/simple/file.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/controlfooter.ftl" />
|
||||
|
||||
@@ -31,9 +31,9 @@ Only the following validators are supported:
|
||||
* double validator
|
||||
END SNIPPET: supported-validators
|
||||
-->
|
||||
<#if ((parameters.validate!false == true) && (parameters.performValidation!false == true))>
|
||||
<#if ((attributes.validate!false == true) && (attributes.performValidation!false == true))>
|
||||
<@s.script>
|
||||
function validateForm_${parameters.escapedId}() {
|
||||
function validateForm_${attributes.escapedId}() {
|
||||
<#--
|
||||
In case of multiselect fields return only the first value.
|
||||
-->
|
||||
@@ -54,13 +54,13 @@ END SNIPPET: supported-validators
|
||||
}
|
||||
return field.value;
|
||||
}
|
||||
form = document.getElementById("${parameters.id?js_string}");
|
||||
form = document.getElementById("${attributes.id?js_string}");
|
||||
clearErrorMessages(form);
|
||||
clearErrorLabels(form);
|
||||
|
||||
var errors = false;
|
||||
var continueValidation = true;
|
||||
<#list parameters.tagNames as tagName>
|
||||
<#list attributes.tagNames as tagName>
|
||||
<#list tag.getValidators("${tagName}") as aValidator>
|
||||
// field name: ${aValidator.fieldName?js_string}
|
||||
// validator name: ${aValidator.validatorType}
|
||||
|
||||
@@ -18,13 +18,13 @@
|
||||
* under the License.
|
||||
*/
|
||||
-->
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/control-close.ftl" />
|
||||
<#include "/${parameters.templateDir}/simple/form-close.ftl" />
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/form-close-validate.ftl" />
|
||||
<#if parameters.focusElement??>
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/control-close.ftl" />
|
||||
<#include "/${attributes.templateDir}/simple/form-close.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/form-close-validate.ftl" />
|
||||
<#if attributes.focusElement??>
|
||||
<@s.script>
|
||||
StrutsUtils.addOnLoad(function() {
|
||||
var element = document.getElementById("${parameters.focusElement?js_string}");
|
||||
var element = document.getElementById("${attributes.focusElement?js_string}");
|
||||
if(element) {
|
||||
element.focus();
|
||||
}
|
||||
|
||||
@@ -18,11 +18,11 @@
|
||||
* under the License.
|
||||
*/
|
||||
-->
|
||||
<#if parameters.validate!false == true>
|
||||
<@s.script src="${base}${parameters.staticContentPath}/xhtml/validation.js" />
|
||||
<#if parameters.onsubmit??>
|
||||
${tag.addParameter('onsubmit', "${parameters.onsubmit}; return validateForm_${parameters.escapedId}();")}
|
||||
<#if attributes.validate!false == true>
|
||||
<@s.script src="${base}${attributes.staticContentPath}/xhtml/validation.js" />
|
||||
<#if attributes.onsubmit??>
|
||||
${tag.addParameter('onsubmit', "${attributes.onsubmit}; return validateForm_${attributes.escapedId}();")}
|
||||
<#else>
|
||||
${tag.addParameter('onsubmit', "return validateForm_${parameters.escapedId}();")}
|
||||
${tag.addParameter('onsubmit', "return validateForm_${attributes.escapedId}();")}
|
||||
</#if>
|
||||
</#if>
|
||||
|
||||
@@ -18,14 +18,14 @@
|
||||
* under the License.
|
||||
*/
|
||||
-->
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/form-validate.ftl" />
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/form-common.ftl" />
|
||||
<#if (parameters.validate!false)>
|
||||
onreset="<#outputformat 'JavaScript'>${parameters.onreset!'clearErrorMessages(this);clearErrorLabels(this);'}</#outputformat>"
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/form-validate.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/form-common.ftl" />
|
||||
<#if (attributes.validate!false)>
|
||||
onreset="<#outputformat 'JavaScript'>${attributes.onreset!'clearErrorMessages(this);clearErrorLabels(this);'}</#outputformat>"
|
||||
<#else>
|
||||
<#if parameters.onreset??>
|
||||
onreset="<#outputformat 'JavaScript'>${parameters.onreset}</#outputformat>"
|
||||
<#if attributes.onreset??>
|
||||
onreset="<#outputformat 'JavaScript'>${attributes.onreset}</#outputformat>"
|
||||
</#if>
|
||||
</#if>
|
||||
>
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/control.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/control.ftl" />
|
||||
|
||||
@@ -18,5 +18,5 @@
|
||||
* under the License.
|
||||
*/
|
||||
-->
|
||||
<@s.link rel="stylesheet" href="${base}${parameters.staticContentPath}/xhtml/styles.css" type="text/css" />
|
||||
<#include "/${parameters.templateDir}/simple/head.ftl" />
|
||||
<@s.link rel="stylesheet" href="${base}${attributes.staticContentPath}/xhtml/styles.css" type="text/css" />
|
||||
<#include "/${attributes.templateDir}/simple/head.ftl" />
|
||||
|
||||
@@ -20,6 +20,6 @@
|
||||
-->
|
||||
<tr style="display:none;">
|
||||
<td colspan="2">
|
||||
<#include "/${parameters.templateDir}/simple/hidden.ftl" />
|
||||
<#include "/${attributes.templateDir}/simple/hidden.ftl" />
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -18,6 +18,6 @@
|
||||
* under the License.
|
||||
*/
|
||||
-->
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlheader.ftl" />
|
||||
<#include "/${parameters.templateDir}/simple/inputtransferselect.ftl" />
|
||||
<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlfooter.ftl" /><#nt/>
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/controlheader.ftl" />
|
||||
<#include "/${attributes.templateDir}/simple/inputtransferselect.ftl" />
|
||||
<#include "/${attributes.templateDir}/${attributes.expandTheme}/controlfooter.ftl" /><#nt/>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user