[ 
https://issues.apache.org/struts/browse/WW-2809?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Markus Katz updated WW-2809:
----------------------------

    Attachment: doubleselect.ftl

Wes,

Please find my patch for template/simple/doubleselect.ftl attached.

HTH,
Markus

> doubleselect ignores preselection of a multiple subselect
> ---------------------------------------------------------
>
>                 Key: WW-2809
>                 URL: https://issues.apache.org/struts/browse/WW-2809
>             Project: Struts 2
>          Issue Type: Bug
>    Affects Versions: 2.1.2
>            Reporter: Markus Katz
>            Priority: Minor
>             Fix For: 2.1.7
>
>         Attachments: doubleselect.ftl
>
>
> template/simple/doubleselect.ftl contains the following snippet to preselect 
> the subselection:
>         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.id}Temp.options[i].value == 
> '${parameters.doubleNameValue}') {
>                       ${parameters.id}Temp.options[i].selected = true;
>                       selected = true;
>               }
>             </#if>
>         }
> In the case of a multiple subselect the doubleNameValue is a collection of 
> ids. In this case the single ...Temp.options[i].value is compared to a 
> collection object which fails for all items.
> I´d suggest a patch like:
>         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}[j]) {
>                                ${parameters.id}Temp.options[i].selected = 
> true;
>            selected = true;
>          }
>       }
>                       <#else>
>        if (${parameters.id}Temp.options[i].value == 
> '${parameters.doubleNameValue}') {
>          ${parameters.id}Temp.options[i].selected = true;
>          selected = true;
>        }
>                       </#if>
>                  </#if>
>             }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to