My apologies if I did this somehow out of order, it's my first contribution to a Open Source project. Is there some other process to getting a patch verified and applied? Is there a reason noone has commented on this, or why it hasn't been applied?
Curious, Neal Haggard -----Original Message----- From: Neal Haggard (JIRA) [mailto:[EMAIL PROTECTED] Sent: Friday, May 13, 2005 5:28 PM To: dev@myfaces.apache.org Subject: [jira] Updated: (MYFACES-243) ClientId not used, so JSCookMenu fires multiple actions in tables [ http://issues.apache.org/jira/browse/MYFACES-243?page=all ] Neal Haggard updated MYFACES-243: --------------------------------- Attachment: patch.txt Here's my patch for HtmlJSCookMenuRenderer.java > 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 > Attachments: patch.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