Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 3.0.RC1
-
Component/s: ACE-Components
-
Labels:None
-
Environment:ICEfaces 3.0 RC1, All browsers
-
Assignee Priority:P1
-
Workaround Exists:Yes
-
Workaround Description:Remove the f:ajax tag.
Description
In the WIlliams app they have a dataTable where one column contains an inputText field. Editing this field and then submitting the row vie a Menu Item is causing a JavaScript error to be thrown and the app becomes unresponsive. This h:inputText component is using a nested f:ajax tag. Removing this tag resolves the issue.
This issue is reproducible on the Williams POC. To reproduce, load a tab with the Screen 1 content and click the retrieve button to load the table. The Name column contains an inputText field that has a nested f:ajax tag. Editing one of the input fields and then clicking on the Print menu item (top right hand side of page) will cause the JavaScript error to be thrown.
This issue is reproducible on the Williams POC. To reproduce, load a tab with the Screen 1 content and click the retrieve button to load the table. The Name column contains an inputText field that has a nested f:ajax tag. Editing one of the input fields and then clicking on the Print menu item (top right hand side of page) will cause the JavaScript error to be thrown.
This issue was fixed by avoiding setting the id to the element and then calling ice.ace.AjaxRequest. Instead, a node reference is provided to ice.ace.AjaxRequest and the id of the element will be set there, inside the function. The passed node reference will be used in the underlying submit functions. One more measure was taken to avoid conflicts with other ajax requests on the page. It consists of triggering the menu action with a delay via the setTimeout() function.