[ http://issues.apache.org/jira/browse/MYFACES-243?page=all ]
Grant Smith closed MYFACES-243:
-------------------------------
Resolution: Fixed
Final patch fixed navigation problem
> ClientId not used, so JSCookMenu fires multiple actions in tables
> -----------------------------------------------------------------
>
> Key: MYFACES-243
> URL: http://issues.apache.org/jira/browse/MYFACES-243
> Project: MyFaces
> Type: Bug
> Versions: 1.0.9 beta
> Reporter: Neal Haggard
> Assignee: sean schofield
> Fix For: Nightly Build
> Attachments: patch.txt, patch2.txt
>
> The fix to add the id to the action (so that the proper action can be fired
> on decode) works fine for multiple JSCookMenu components on the same page,
> however when a JSCookMenu is placed in something that uses the component as a
> template (such as within a HtmlDataTable's Column), the NamingContainer
> doesn't get invoked, so a click on an action triggers once for every row in
> the table.
> The simple fix is to change the call to getId() to getClientId(context),
> however, that also requires a change to processDecodes, to change the
> .indexOf(":") to .lastIndexOf(":").
> There are also some other underlying issues with the id in the rest of the
> component. The Javascript that defines the menu uses a generic variable name
> of 'menuBar'. If you have more than one JSCookMenu on the page with
> different CommandNavigationItems, you will only get the last one.
> The solution to this is to supplement the JavaScript variable name with the
> clientId, much like the div later in encodeEnd.
> I've tied all these changes together by creating a private method called
> getMenuId() which encapsulates the logic behind getting the clientId(context)
> and converting all the colons(:) to underscores(_). Then in
> encodeChildren(), encodeEnd() and encodeNavigationMenuItems(), I use this
> method, so that the same id is used throughout.
> Also included in my patch is a quick-fix to allow null labels to not print
> out the default value (1).
> Hopefully this will be a useful addition to the MyFaces Community.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira