Details
-
Type:
Bug
-
Status: Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 2.1-Beta
-
Component/s: ACE-Components
-
Labels:None
-
Environment:ICEfaces 2.1.0 Beta 10142011
-
Assignee Priority:P1
-
Affects:Compatibility/Configuration
-
Workaround Exists:Yes
-
Workaround Description:Remove f:ajax tag
Description
When clicking on a button that uses the following f:ajax tag:
<f:ajax execute="@form" render="@form"/>
An additional modal dialog overlay is displayed. When the dialog is closed this overlay remains. This issue seems to only occur if using the visible attribute to open the popup.
If using the widgetVar property to open/close the dialog, clicking on the button with the f:ajax tag causes the popup to be closed.
Attached test case demonstrates both issues.
<f:ajax execute="@form" render="@form"/>
An additional modal dialog overlay is displayed. When the dialog is closed this overlay remains. This issue seems to only occur if using the visible attribute to open the popup.
If using the widgetVar property to open/close the dialog, clicking on the button with the f:ajax tag causes the popup to be closed.
Attached test case demonstrates both issues.
Activity
Field | Original Value | New Value |
---|---|---|
Attachment | Case10624Example.war [ 13680 ] |
Attachment | Case10624Example.zip [ 13681 ] |
Salesforce Case | [5007000000JLv5v] |
Assignee | Ken Fyten [ ken.fyten ] |
Fix Version/s | 2.1 [ 10241 ] | |
Assignee Priority | P2 | |
Assignee | Ken Fyten [ ken.fyten ] | yip.ng [ yip.ng ] |
Attachment | screenshot-01.png [ 13716 ] |
Attachment | screenshot-02.png [ 13717 ] |
Status | Open [ 1 ] | Resolved [ 5 ] |
Resolution | Fixed [ 1 ] |
Resolution | Fixed [ 1 ] | |
Status | Resolved [ 5 ] | Reopened [ 4 ] |
Assignee Priority | P2 | P1 |
Fix Version/s | 2.1-Beta2 [ 10294 ] | |
Affects | [Compatibility/Configuration] |
Status | Reopened [ 4 ] | Resolved [ 5 ] |
Resolution | Fixed [ 1 ] |
Security | Private [ 10001 ] |
Status | Resolved [ 5 ] | Closed [ 6 ] |
Problems caused by:
1. Coupling of visible attribute to dialog autoOpen option. autoOpen is a once-only thing, not meant to be a toggle. Long term solution is to decouple visible and autoOpen.
2. render="@form" creates another dialog instance. How do you find the first instance and close it without getting into an infinite close event loop? Not trivial. There is much more going on in a close than just hiding the dialog and overlay. Also, you want to simulate a close event, not sneakily disturb the component states and HTML and CSS behind the component's back.
3. User's lack of knowledge or misunderstanding on client-side actions/states. Any state changes caused by client-side actions must be synced with the server if you want to also control the state from the server side.