Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 2.0-Beta2
-
Fix Version/s: 2.0.1
-
Component/s: ACE-Components
-
Labels:None
-
Environment:ACE pushbutton
Description
There's an issue with the PushButton component in that the updateProperties method is never called when an update to the pushButton is sent.
I've found the doUpdate method call in jsf.js where updates are applied to the elements. This method gets called twice, once for each <update> element in the payload.
There is an issue with the id in the updateProperties call, which is clientId, not matching the id of the button in the original markup, which is clientId + "_button" This causes the doUpdate method to throw a javascript Error, and the script update is ignored.
But changing the id of the button doesn't work because it seems like the original span hierarchy is being replaced with just the button, which makes the script node unable to find the enclosing div. It's a little unclear in there as its difficult to debug jsf.js as its formatted all in one line in the javascript debugger.
I think the solution is to correct the ids of the elements, and apply the update at the right level.
I've found the doUpdate method call in jsf.js where updates are applied to the elements. This method gets called twice, once for each <update> element in the payload.
There is an issue with the id in the updateProperties call, which is clientId, not matching the id of the button in the original markup, which is clientId + "_button" This causes the doUpdate method to throw a javascript Error, and the script update is ignored.
But changing the id of the button doesn't work because it seems like the original span hierarchy is being replaced with just the button, which makes the script node unable to find the enclosing div. It's a little unclear in there as its difficult to debug jsf.js as its formatted all in one line in the javascript debugger.
I think the solution is to correct the ids of the elements, and apply the update at the right level.
Issue Links
- blocks
-
ICE-6352 Changes to Component inner hierarchy does not always update javascript
- Closed
The id of the inner <button> element was being specified, and this was causing problems as YUI was replacing this element (or at least renaming it) to be something different than the original value. The first update would fail to insert the script because the first id couldn't be found, and after the first update the button actually wasn't active anymore.
We could either define the id to match what YUI would eventually change it to (and this worked) or we could remove giving the <button> an id at all, which is likely more robust in the long term so that's the solution. We also could choose to render out the button in one of the other ways.
With this change, it's now possible to update the button label dynamically, or to change the style.