You are viewing a plain text version of this content. The canonical link for it is here.
Posted to pluto-dev@portals.apache.org by "Ate Douma (JIRA)" <ji...@apache.org> on 2010/05/28 01:55:37 UTC

[jira] Assigned: (PLUTO-575) Javascript fails to correctly clear out select boxes

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

Ate Douma reassigned PLUTO-575:
-------------------------------

    Assignee: Ate Douma

> Javascript fails to correctly clear out select boxes
> ----------------------------------------------------
>
>                 Key: PLUTO-575
>                 URL: https://issues.apache.org/jira/browse/PLUTO-575
>             Project: Pluto
>          Issue Type: Bug
>          Components: portlets-admin
>    Affects Versions: 2.0.0
>         Environment: Windows/Mac IE and Firefox were tested.
>            Reporter: Allan Jackson
>            Assignee: Ate Douma
>            Priority: Minor
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> The javascript functions that are called when the value of the page select box and the portlet select box are changed fail to correctly clear out the options presented to the user.  This can result in trying to add a portlet that doesn't exist for the specified context, or the user may try to remove a portlet from a page that doesn't actually contain that portlet.
> The problem stems from two issues in the following code:
> for(var i = 0; i < portletsSelectBox.options.length;i++) {
>     portletsSelectBox.options[i] = null;
> }
> 1:  As the loop executes, the value of portletsSelectBox.options.length goes down, so the loop does not execute the correct number of times.  This results in some elements not being deleted.
> 2:  Each time an option is removed from the portletsSelectBox.options, the entire array is reindexed.  So if you delete the element at positon 0, the item in position 1 moves to location 0.  This results in this item never being deleted.
> These errors occur on both the select box for the pages and the box for the portlets.  In each instance, the error may be fixed through the use of a while loop as demonstrated below.
> In function <portlet:namespace/>doSwitchPage(select), replace the following code:
> for(var i=0; i < placePortletsSelect.options.length;i++) {
>      placePortletsSelect.options[i] = null;
> }
> with this code:
> while (placePortletsSelect.options.length > 0) {
>      placePortletsSelect.options[0] = null;
> }
> And in function <portlet:namespace/>doSwitch(select), replace the following code:
> for(var i = 0; i < portletsSelectBox.options.length;i++) {
>      portletsSelectBox.options[i] = null;
> }
> with this code:
> while (portletsSelectBox.options.length > 0) {
>      portletsSelectBox.options[0] = null;
> }

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