You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by jo...@apache.org on 2011/12/06 20:57:35 UTC

svn commit: r1211074 - /struts/struts2/trunk/core/src/main/resources/template/simple/doubleselect.ftl

Author: jogep
Date: Tue Dec  6 19:57:35 2011
New Revision: 1211074

URL: http://svn.apache.org/viewvc?rev=1211074&view=rev
Log:
WW-2357: doubleEmptyOption, doubleHeaderKey and doubleHeaderValue ignored in doubleselect tag

Modified:
    struts/struts2/trunk/core/src/main/resources/template/simple/doubleselect.ftl

Modified: struts/struts2/trunk/core/src/main/resources/template/simple/doubleselect.ftl
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/resources/template/simple/doubleselect.ftl?rev=1211074&r1=1211073&r2=1211074&view=diff
==============================================================================
--- struts/struts2/trunk/core/src/main/resources/template/simple/doubleselect.ftl (original)
+++ struts/struts2/trunk/core/src/main/resources/template/simple/doubleselect.ftl Tue Dec  6 19:57:35 2011
@@ -29,127 +29,140 @@
     <#assign startCount = startCount + 1/>
 </#if>
 
-<br />
+<br/>
 <select<#rt/>
- name="${parameters.doubleName?default("")?html}"<#rt/>
+        name="${parameters.doubleName?default("")?html}"<#rt/>
 <#if parameters.disabled?default(false)>
- disabled="disabled"<#rt/>
+        disabled="disabled"<#rt/>
 </#if>
 <#if parameters.doubleTabindex??>
- tabindex="${parameters.doubleTabindex?html}"<#rt/>
+        tabindex="${parameters.doubleTabindex?html}"<#rt/>
 </#if>
 <#if parameters.doubleId??>
- id="${parameters.doubleId?html}"<#rt/>
+        id="${parameters.doubleId?html}"<#rt/>
 </#if>
 <#if parameters.doubleCss??>
- class="${parameters.doubleCss?html}"<#rt/>
+        class="${parameters.doubleCss?html}"<#rt/>
 </#if>
 <#if parameters.doubleStyle??>
- style="${parameters.doubleStyle?html}"<#rt/>
+        style="${parameters.doubleStyle?html}"<#rt/>
 </#if>
 <#if parameters.title??>
- title="${parameters.title?html}"<#rt/>
+        title="${parameters.title?html}"<#rt/>
 </#if>
 <#if parameters.multiple?default(false)>
- multiple="multiple"<#rt/>
+        multiple="multiple"<#rt/>
 </#if>
 <#if parameters.get("doubleSize")??>
- size="${parameters.get("doubleSize")?html}"<#rt/>
+        size="${parameters.get("doubleSize")?html}"<#rt/>
 </#if>
 <#if parameters.doubleMultiple?default(false)>
- multiple="multiple"<#rt/>
+        multiple="multiple"<#rt/>
 </#if>
 <#if parameters.doubleDisabled?default(false)>
- disabled="disabled"<#rt/>
-</#if>        
->
+        disabled="disabled"<#rt/>
+</#if>
+        >
 </select>
 <#if parameters.doubleMultiple?default(false)>
-<input type="hidden" id="__multiselect_${parameters.doubleId?html}" name="__multiselect_${parameters.doubleName?default("")?html}" value=""<#rt/>
-<#if parameters.doubleDisabled?default(false)>
- disabled="disabled"<#rt/>
-</#if>
- />
+<input type="hidden" id="__multiselect_${parameters.doubleId?html}"
+       name="__multiselect_${parameters.doubleName?default("")?html}" value=""<#rt/>
+    <#if parameters.doubleDisabled?default(false)>
+       disabled="disabled"<#rt/>
+    </#if>
+        />
 </#if>
 <script type="text/javascript">
-<#assign itemCount = startCount/>
+    <#assign itemCount = startCount/>
     var ${parameters.id}Group = new Array(${parameters.listSize} + ${startCount});
     for (i = 0; i < (${parameters.listSize} + ${startCount}); i++)
-    ${parameters.id}Group[i] = new Array();
+        ${parameters.id}Group[i] = new Array();
 
-<@s.iterator value="parameters.list">
-    <#if parameters.listKey??>
-        <#assign itemKey = stack.findValue(parameters.listKey)/>
-    <#else>
-        <#assign itemKey = stack.findValue('top')/>
-    </#if>
-    <#if parameters.listValue??>
-        <#assign itemValue = stack.findString(parameters.listValue)/>
-    <#else>
-        <#assign itemValue = stack.findString('top')/>
-    </#if>
-    <#assign doubleItemCount = 0/>
+    <@s.iterator value="parameters.list">
+        <#if parameters.listKey??>
+            <#assign itemKey = stack.findValue(parameters.listKey)/>
+            <#else>
+                <#assign itemKey = stack.findValue('top')/>
+        </#if>
+        <#if parameters.listValue??>
+            <#assign itemValue = stack.findString(parameters.listValue)/>
+            <#else>
+                <#assign itemValue = stack.findString('top')/>
+        </#if>
+        <#assign doubleItemCount = 0/>
+        <#if parameters.doubleHeaderKey?? && parameters.doubleHeaderValue??>
+        ${parameters.id}Group[${itemCount}][${doubleItemCount}] = new Option("${doubleHeaderValue?js_string}", "${doubleHeaderKey?js_string}");
+            <#assign doubleItemCount = doubleItemCount + 1/>
+        </#if>
+        <#if parameters.doubleEmptyOption??>
+        ${parameters.id}Group[${itemCount}][${doubleItemCount}] = new Option("", "");
+            <#assign doubleItemCount = doubleItemCount + 1/>
+        </#if>
     <@s.iterator value="${parameters.doubleList}">
         <#if parameters.doubleListKey??>
             <#assign doubleItemKey = stack.findValue(parameters.doubleListKey)/>
-        <#else>
-            <#assign doubleItemKey = stack.findValue('top')/>
+            <#else>
+                <#assign doubleItemKey = stack.findValue('top')/>
         </#if>
         <#assign doubleItemKeyStr = doubleItemKey.toString() />
         <#if parameters.doubleListValue??>
             <#assign doubleItemValue = stack.findString(parameters.doubleListValue)/>
-        <#else>
-            <#assign doubleItemValue = stack.findString('top')/>
+            <#else>
+                <#assign doubleItemValue = stack.findString('top')/>
         </#if>
     ${parameters.id}Group[${itemCount}][${doubleItemCount}] = new Option("${doubleItemValue?js_string}", "${doubleItemKeyStr?js_string}");
 
         <#assign doubleItemCount = doubleItemCount + 1/>
     </...@s.iterator>
-    <#assign itemCount = itemCount + 1/>
-</...@s.iterator>
+        <#assign itemCount = itemCount + 1/>
+    </...@s.iterator>
 
     var ${parameters.id}Temp = document.${parameters.formName}.${parameters.doubleId};
-<#assign itemCount = startCount/>
-<#assign redirectTo = 0/>
-<@s.iterator value="parameters.list">
-    <#if parameters.listKey??>
-        <#assign itemKey = stack.findValue(parameters.listKey)/>
-    <#else>
-        <#assign itemKey = stack.findValue('top')/>
-    </#if>
-    <#if tag.contains(parameters.nameValue, itemKey)>
-        <#assign redirectTo = itemCount/>
-    </#if>
-    <#assign itemCount = itemCount + 1/>
-</...@s.iterator>
+    <#assign itemCount = startCount/>
+    <#assign redirectTo = 0/>
+    <@s.iterator value="parameters.list">
+        <#if parameters.listKey??>
+            <#assign itemKey = stack.findValue(parameters.listKey)/>
+            <#else>
+                <#assign itemKey = stack.findValue('top')/>
+        </#if>
+        <#if tag.contains(parameters.nameValue, itemKey)>
+            <#assign redirectTo = itemCount/>
+        </#if>
+        <#assign itemCount = itemCount + 1/>
+    </...@s.iterator>
     ${parameters.id}Redirect(${redirectTo});
     function ${parameters.id}Redirect(x) {
-    	var selected = false;
+        var selected = false;
         for (m = ${parameters.id}Temp.options.length - 1; m >= 0; m--) {
             ${parameters.id}Temp.remove(m);
         }
 
         for (i = 0; i < ${parameters.id}Group[x].length; i++) {
             ${parameters.id}Temp.options[i] = new Option(${parameters.id}Group[x][i].text, ${parameters.id}Group[x][i].value);
-            <#if parameters.doubleNameValue?exists>
-                   <#if parameters.doubleMultiple?exists>
-                         for (j = 0; j < ${parameters.doubleNameValue}.length; j++) {
-                             if (${parameters.id}Temp.options[i].value == ${parameters.doubleNameValue?js_string}[j]) {
-                               ${parameters.id}Temp.options[i].selected = true;
-                                selected = true;
-                             }
-                        }
-                   <#else>
-                        if (${parameters.id}Temp.options[i].value == '${parameters.doubleNameValue?js_string}') {
-                            ${parameters.id}Temp.options[i].selected = true;
-                            selected = true;
-                        }
-                   </#if>
-             </#if>
-         }
+        <#if parameters.doubleNameValue?exists>
+            <#if parameters.doubleMultiple?exists>
+                for (j = 0; j < ${parameters.doubleNameValue}.
+                length;
+                j++
+            )
+                {
+                    if (${parameters.id}Temp.options[i].value == ${parameters.doubleNameValue?js_string}[j]) {
+                        ${parameters.id}Temp.options[i].selected = true;
+                        selected = true;
+                    }
+                }
+                <#else>
+                    if (${parameters.id}Temp.options[i].value == '${parameters.doubleNameValue?js_string}') {
+                        ${parameters.id}Temp.options[i].selected = true;
+                        selected = true;
+                    }
+            </#if>
+        </#if>
+        }
 
         if ((${parameters.id}Temp.options.length > 0) && (! selected)) {
-           	${parameters.id}Temp.options[0].selected = true;
+            ${parameters.id}Temp.options[0].selected = true;
         }
     }
 </script>