Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: EE-3.0.0.GA, 3.1
-
Fix Version/s: EE-3.0.0.GA_P01, 3.2
-
Component/s: ACE-Components
-
Labels:None
-
Environment:All
-
Workaround Exists:Yes
-
Workaround Description:Add an ace:ajax tag to the component. The Ajax Submit Showcase demo does not have this issue.
Description
This can be reproduced in the Showcase ace:dateTimEntry - Popup demo and the attached test case.
Steps:
- Highlight the value in the dateTimeEntry input field and delete the contents.
- Focus away from the input field, the value is displayed again.
-
Hide
- Case11456Example.war
- 9.35 MB
- Arran Mccullough
-
- META-INF/MANIFEST.MF 0.1 kB
- META-INF/context.xml 0.1 kB
- WEB-INF/classes/com/.../example/Item.class 0.3 kB
- WEB-INF/classes/.../example/TestBean.class 0.8 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-logging.jar 52 kB
- WEB-INF/lib/icefaces-ace.jar 2.92 MB
- WEB-INF/lib/icefaces-compat.jar 2.67 MB
- WEB-INF/lib/icefaces.jar 329 kB
- WEB-INF/lib/javax.faces.jar 2.48 MB
- WEB-INF/web.xml 2 kB
- welcomeICEfaces.xhtml 1 kB
-
- Case11456Example.zip
- 18 kB
- Arran Mccullough
-
- screenshot-01.png
- 218 kB
-
- screenshot-02.png
- 222 kB
-
- screenshot-03.png
- 319 kB
-
- screenshot-04.png
- 220 kB
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion
Looks like we'll need to add ice core:singleSubmit support to this component. Reference the 2.0 version of the component which had a singleSubmit tag, etc.
Done based on code in ICEfaces 2.
Modified: C:\svn\ossrepo\icefaces3\trunk\icefaces\ace\component\resources\icefaces.ace\datetimeentry\datetimeentry.js
Modified: C:\svn\ossrepo\icefaces3\trunk\icefaces\ace\component\src\org\icefaces\ace\component\datetimeentry\DateTimeEntry.java
Modified: C:\svn\ossrepo\icefaces3\trunk\icefaces\ace\component\src\org\icefaces\ace\component\datetimeentry\DateTimeEntryMeta.java
Modified: C:\svn\ossrepo\icefaces3\trunk\icefaces\ace\component\src\org\icefaces\ace\component\datetimeentry\DateTimeEntryRenderer.java
Completed: At revision: 30378
From Mark:
- Need to override singleSubmit with ajax event if both specified.
- Need to write cross-browser JS utility (without Prototype or jQuery) to trap events expected by core singleSubmit and cancel bubble.
singleSubmit overridden by <ace:ajax> if both present.
Modified: C:\svn\ossrepo\icefaces3\trunk\icefaces\ace\component\resources\icefaces.ace\datetimeentry\datetimeentry.js
Modified: C:\svn\ossrepo\icefaces3\trunk\icefaces\ace\component\src\org\icefaces\ace\component\datetimeentry\DateTimeEntryMeta.java
Completed: At revision: 30386
The single submit listeners are capture listeners in non-IE browsers, not bubble listeners. See screenshot-03 and -04.
This complicates things a lot. Need to work with both capture and bubble event mechanisms. Need to locate the parent of the single submit node. Need to check to make sure event source is descendant of component. Need to do all these in cross-browser way without using JS libraries, ......
Managed to intercept the event at the parent node of the single submit node (the form in this case) and stop the propagation, but it's still no good because then the component won't get the event either.
As per decision in meeting, changed to use bubble listeners instead of capture listeners for single submit, and use bubble listeners at root of component to cancel bubble.
Modified: C:\svn\ossrepo\icefaces3\trunk\icefaces\ace\component\resources\icefaces.ace\datetimeentry\datetimeentry.js
Modified: C:\svn\ossrepo\icefaces3\trunk\icefaces\ace\component\src\org\icefaces\ace\component\datetimeentry\DateTimeEntryRenderer.java
Modified: C:\svn\ossrepo\icefaces3\trunk\icefaces\core\src\main\javascript\application.js
Completed: At revision: 30483
Tested: IE 7,8,9; FF 14; with and without singleSubmit; with and without ajax events.
Let's add this fix to the icefaces-3.0.x-maintenance branch.
Modified: C:\svn\ossrepo\icefaces3\branches\icefaces-3.0.x-maintenance\icefaces\ace\component\resources\icefaces.ace\datetimeentry\datetimeentry.js
Modified: C:\svn\ossrepo\icefaces3\branches\icefaces-3.0.x-maintenance\icefaces\ace\component\src\org\icefaces\ace\component\datetimeentry\DateTimeEntry.java
Modified: C:\svn\ossrepo\icefaces3\branches\icefaces-3.0.x-maintenance\icefaces\ace\component\src\org\icefaces\ace\component\datetimeentry\DateTimeEntryMeta.java
Modified: C:\svn\ossrepo\icefaces3\branches\icefaces-3.0.x-maintenance\icefaces\ace\component\src\org\icefaces\ace\component\datetimeentry\DateTimeEntryRenderer.java
Modified: C:\svn\ossrepo\icefaces3\branches\icefaces-3.0.x-maintenance\icefaces\core\src\main\javascript\application.js
Completed: At revision: 30546
Yet another problem with <icecore:singleSubmit/>. It is submitting the wrong id as the component id, and therefore the decode() is totally skipped. See screenshot-01.png. Compare this with the submit by <ace:ajax/>, with correct component id. See screenshot-02.png.
See also
ICE-8202for another problem with <icecore:singleSubmit/>.