Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 1.8.2-EE-GA_P02
-
Fix Version/s: EE-1.8.2.GA_P03
-
Component/s: ICE-Components
-
Labels:None
-
Environment:n/a
-
Workaround Exists:Yes
-
Workaround Description:use the visible attribute instead of the rendered attribute
Description
The following code in style.js Ice.modal.start() is responsible for the event deregistration, so this bug probably also applies to the other elements and events listed there, namely, 'input', 'select', 'textarea' and 'button'.
'input', 'select', 'textarea', 'button', 'a'].each(function(type) {
$enumerate(document.body.getElementsByTagName(type)).each(function(e) {
if (!childOfTarget(e)) {
var onkeypress = e.onkeypress;
var onkeyup = e.onkeyup;
var onkeydown = e.onkeydown;
var onclick = e.onclick;
e.onkeypress = none;
e.onkeyup = none;
e.onkeydown = none;
e.onclick = none;
rollbacks.push(function() {
try {
e.onkeypress = onkeypress;
e.onkeyup = onkeyup;
e.onkeydown = onkeydown;
e.onclick = onclick;
} catch (ex) {
logger.error('failed to restore callbacks on ' + e, ex);
}
});
}
});
-
Hide
- component-showcase.war
- 9.24 MB
- Philip Breau
-
- META-INF/MANIFEST.MF 0.1 kB
- WEB-INF/classes/.../NavigationBean.class 1 kB
- WEB-INF/classes/.../entity/Employee.class 2 kB
- WEB-INF/classes/org/.../entity/Person.class 2 kB
- WEB-INF/classes/.../EmployeeService.class 0.3 kB
- WEB-INF/.../EmployeeServiceImpl$1.class 0.3 kB
- WEB-INF/.../EmployeeServiceImpl$EmployeeComparator.class 3 kB
- WEB-INF/.../EmployeeServiceImpl.class 6 kB
- WEB-INF/classes/.../ContextUtilBean.class 3 kB
- WEB-INF/classes/.../util/FacesUtils.class 4 kB
- WEB-INF/classes/.../util/LocaleBean.class 3 kB
- WEB-INF/.../MessageBundleLoader.class 2 kB
- WEB-INF/.../RandomNumberGenerator.class 2 kB
- WEB-INF/.../SourceCodeLoaderServlet.class 3 kB
- WEB-INF/.../StyleBean$StylePath.class 1 kB
- WEB-INF/classes/org/.../util/StyleBean.class 3 kB
- WEB-INF/classes/org/.../bean/BaseBean.class 3 kB
- WEB-INF/classes/org/.../bean/BeanNames.class 0.7 kB
- WEB-INF/classes/.../NavigationNames.class 0.4 kB
- WEB-INF/classes/.../Inventory.class 2 kB
- WEB-INF/classes/.../InventoryInterface.class 0.5 kB
- WEB-INF/classes/.../InventoryItem.class 2 kB
- WEB-INF/.../ButtonsAndLinksBean.class 2 kB
- WEB-INF/classes/.../GroupingModel.class 0.8 kB
- WEB-INF/.../ColumnsBean$CellKey.class 1 kB
- WEB-INF/classes/.../ColumnsBean.class 5 kB
- WEB-INF/classes/.../SortHeaderModel.class 3 kB
- WEB-INF/classes/.../DataExporter.class 1 kB
- WEB-INF/.../DataScrollingModel$DataScrollMode.class 2 kB
- WEB-INF/classes/.../DataScrollingModel.class 3 kB
-
Hide
- sc9683.war
- 6.39 MB
- Tyler Johnson
-
- META-INF/MANIFEST.MF 0.0 kB
- WEB-INF/classes/com/.../test/PopupBean.class 1 kB
- WEB-INF/lib/backport-util-concurrent.jar 319 kB
- WEB-INF/lib/commons-digester.jar 140 kB
- ICEfacesPage1.xhtml 4 kB
- WEB-INF/classes/com/.../test/PopupBean.java 1 kB
- WEB-INF/classes/com/zsl/.DS_Store 6 kB
- WEB-INF/.../krysalis-jCharts-1.0.0-alpha-1.jar 151 kB
- WEB-INF/classes/com/.DS_Store 6 kB
- WEB-INF/lib/commons-beanutils.jar 226 kB
- WEB-INF/faces-config.xml 0.6 kB
- WEB-INF/classes/.DS_Store 6 kB
- WEB-INF/lib/icefaces-comps-ICE6333.jar 3.16 MB
- WEB-INF/lib/commons-fileupload.jar 56 kB
- WEB-INF/lib/icefaces-ICE6333.jar 1.21 MB
- WEB-INF/lib/jsf-impl.jar 816 kB
- index.jsp 0.1 kB
- WEB-INF/lib/jsf-api.jar 350 kB
- WEB-INF/web.xml 4 kB
- WEB-INF/lib/commons-logging.jar 52 kB
- WEB-INF/lib/commons-collections.jar 558 kB
-
Hide
- sc9853.war
- 7.01 MB
- Tyler Johnson
-
- META-INF/MANIFEST.MF 0.0 kB
- WEB-INF/tags/cityTag.xhtml 2 kB
- WEB-INF/lib/backport-util-concurrent.jar 319 kB
- WEB-INF/lib/icefaces-ICE-6333.jar 1.21 MB
- WEB-INF/classes/.../support/CaseBean.class 0.4 kB
- WEB-INF/lib/commons-digester.jar 140 kB
- ICEfacesPage1.xhtml 1 kB
- WEB-INF/classes/.../case00009853/Bean.class 5 kB
- WEB-INF/classes/.../case00009853/Bean.java 4 kB
- WEB-INF/classes/.../case00009853/City.java 2 kB
- WEB-INF/lib/commons-beanutils.jar 226 kB
- WEB-INF/faces-config.xml 1 kB
- WEB-INF/classes/fr/.../support/CaseBean.java 0.1 kB
- WEB-INF/lib/commons-fileupload.jar 56 kB
- WEB-INF/lib/icefaces-comps-ICE-6333.jar 3.16 MB
- WEB-INF/lib/jsf-impl.jar 837 kB
- index.jsp 0.1 kB
- WEB-INF/lib/jsf-api.jar 355 kB
- WEB-INF/web.xml 4 kB
- WEB-INF/classes/.../case00009853/City.class 2 kB
- WEB-INF/lib/commons-lang.jar 240 kB
- WEB-INF/lib/icefaces-facelets.jar 596 kB
- WEB-INF/lib/commons-logging.jar 52 kB
- WEB-INF/fidelia.taglib.xml 0.4 kB
- WEB-INF/lib/commons-collections.jar 558 kB
-
Hide
- Case9897Example2.war
- 8.03 MB
- Arran Mccullough
-
- META-INF/MANIFEST.MF 0.1 kB
- META-INF/context.xml 0.1 kB
- WEB-INF/classes/.../example/TestBean.class 1 kB
- WEB-INF/faces-config.xml 0.7 kB
- WEB-INF/lib/FastInfoset.jar 285 kB
- WEB-INF/lib/backport-util-concurrent.jar 319 kB
- WEB-INF/lib/commons-beanutils.jar 226 kB
- WEB-INF/lib/commons-collections.jar 558 kB
- WEB-INF/lib/commons-digester.jar 140 kB
- WEB-INF/lib/commons-discovery.jar 75 kB
- WEB-INF/lib/commons-fileupload.jar 56 kB
- WEB-INF/lib/commons-lang.jar 240 kB
- WEB-INF/lib/commons-logging.jar 52 kB
- WEB-INF/lib/icefaces-comps.jar 3.16 MB
- WEB-INF/lib/icefaces-facelets.jar 596 kB
- WEB-INF/lib/icefaces.jar 1.21 MB
- WEB-INF/lib/jsf-api-1.2.jar 355 kB
- WEB-INF/lib/jsf-impl-1.2.jar 837 kB
- WEB-INF/web.xml 4 kB
- welcomeICEfaces.xhtml 3 kB
-
- modal-popup-P02.JPG
- 10 kB
-
- modal-popup-patch.JPG
- 10 kB
Issue Links
- is duplicated by
-
ICE-6323 Tabindex not changed when closing modal panelPopup
- Open
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion
Changed popup disposal code to work even when old popup is disposed after the new one is rendered. This use case occurs when popups are opened serially, like in the attached test case. Unfortunately Ice.onAsynchronousReceive callbacks are invoked only after the DOM updates are applied, thus the callback calling Ice.modal.stop() function for the previous popup is called only after the update creating the next popup is applied. This use case used to confuse the popup disposal code.
Attaching a test case that shows the patch failing when setting the blockUIOnSubmit parameter to true. The example is ready for deployment on Tomcat 6 and contains instructions on how to reproduce.
The blockUI feature is replacing the event handlers of the input elements with No-Op functions while the modal popup does the same thing (a bit later) but saving the No-Op functions put in by blockUI. When modal popup is closed the original event handlers restored by the blockUI feature are overwritten by the No-Op functions that the modal popup picked. So some elements remain in effect disabled because of the overlapping that occurs between blockUI and modal popup processes.
The solution applied marks the elements that have their event handlers disabled to avoid disabling twice the handlers when modal popup is used in conjunction with blockUI.
I found a potential issue with the fixes that have been made for this issue in regards to multiple modal popups. Before the fixes (ICEfaces EE 1.8.2 P02) if a second modal popup is displayed from a modal popup, the modal background of the second popup would cover the first popup. Using a patched build with this code, or the current trunk, the second modal background goes behind the first modal popup which allows the user to interact with this first popup.
This issue is also only seen when the popups are declared in different forms. I also notices that if you use the visible attribute instead of the rendered attribute to show/hide the popups this behavior is not seen.
I've attached some screen shots and a test case that shows this issue.
The last used z-index is decremented when callbacks registered with ice.onAfterUpdate are executed even though the targeted popups are not rendered. To fix the issue the last used z-index is decremented only when Ice.menu.stop function is invoked for a popup that is running/rendered.
Comp showcase (built for Tomcat 6) demonstrating issue:
1. go to panel popup example
2. click on button activating modal popup
3. close popup
4. try clicking on links in the navigation panel