Focus2 postback problem
-----------------------
Key: TOMAHAWK-1306
URL: https://issues.apache.org/jira/browse/TOMAHAWK-1306
Project: MyFaces Tomahawk
Issue Type: Bug
Components: New Component
Affects Versions: 1.1.7-SNAPSHOT
Environment: myfaces-1.2.4-SNAPSHOT
tomahawk-sandbox12-1.1.7-SNAPSHOT
tomahawk12-1.1.7-SNAPSHOT
Tomcat 6.0.16
Reporter: Paul Rivera
Fix For: 1.1.7-SNAPSHOT
Below are the main use cases for Focus2:
1) if you first get to a page, the _first_ input field should be highlighted
2) if you post-back to a page and there is a validation-error, the
first field with a validation error should be highlighted
3) if you change a value on a form (e.g. a drop-down) and this
changing a value initiates a postback, you will want the next field
highlighted after the field that initiated the post-back to be
highlighted
Here are some bugs I've found:
I) Focus2 cannot distinguish a newly created view (user first enters the
webpage) from a postback (user does a submit and the same page gets loaded).
See the attached testValueAttr.jsp to replicate the bug.
What happens is that if you have the following tag in your code:
<s:focus2 value="mainForm:email"/>
Focus2 will give focus to the component succeeding mainForm:email. In the case
of testValueAttr.jsp, it is mainForm:country. In the
focus2.HtmlFocusRenderer.getFocusForId(), it always assumes that it is a
postback.
II) Focus2.HtmlFocusRenderer does not retrieve the submitted value in its
decode() method. In the current implementation, HtmlFocusRenderer calls
super.decode(context, component). I've checked and found out that after this
line, the _submittedValue of the component is still null. _submittedValue
should be the clientId of the currently focused input field maintained in a
hidden field in your user's browser and updated by javascript for each focus
event (See focus2.HtmlFocusRenderer.writeUpdateFocusScript()). Please see
attached testPostBack.jsp to replicate the bug. Use case 3 fails here.
The patch will fix both these bugs.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.