Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 3.0.RC2
-
Fix Version/s: 3.0
-
Component/s: ACE-Components
-
Labels:None
-
Environment:ICEfaces 3.0 svn rvn #26993
-
Assignee Priority:P1
Description
The ace:tooltip no longer adopts attribute value changes that are made dynamically (after the component is initially rendered on the page).
To reproduce, using the showcase Tooltip demo, change any of the effect configuration settings dynamically and a see that the tooltip will not adopt them unless you force a reload of the page.
Analysis shows that the tooltip is being updated in the DOM update in response to the ajax request that changes the value, but the component doesn't update it's internal state.
Here's the response that is returned when the showDelay is changed to 2 seconds (2000 mills). This looks to be correct, but the tooltip component doesn't respect the new attribute values:
<?xml version='1.0' encoding='UTF-8'?>
<partial-response><changes><update id="j_idt44:tooltipShowDelaySelector"><![CDATA[<select id="j_idt44:tooltipShowDelaySelector" name="j_idt44:tooltipShowDelaySelector" size="1"> <option value="500">0.5 seconds</option>
<option value="1000">1 second</option>
<option value="2000" selected="true">2 seconds</option>
</select>]]></update><update id="j_idt44:tooltip"><![CDATA[<script id="j_idt44:tooltip" type="text/javascript">jQuery(function() {widget_j_idt44_tooltip = new ice.ace.Tooltip({"global":false,"id":"j_idt44:tooltip","displayListener":false,"forComponent":"j_idt44:text",content:document.getElementById('j_idt44:tooltip_content').innerHTML,"show":{"when":{"event":"mouseover"},"delay":2000,"effect":{"length":100,"type":"slide"}},"hide":{"when":{"event":"mouseout"},"delay":500,"effect":{"length":100,"type":"slide"}},"position":{"container":jQuery(ice.ace.escapeClientId('j_idt44:text')).parent(),"corner":{"target":"bottomRight","tooltip":"topLeft"}}});});</script>]]></update><update id="dynamic-code-compat"><![CDATA[<span id="dynamic-code-compat"></span>]]></update><update id="javax.faces.ViewState"><![CDATA[-6438305865883867682:-4979992529496162372]]></update><extension aceCallbackParam="validationFailed">{"validationFailed":false}</extension></changes></partial-response>
To reproduce, using the showcase Tooltip demo, change any of the effect configuration settings dynamically and a see that the tooltip will not adopt them unless you force a reload of the page.
Analysis shows that the tooltip is being updated in the DOM update in response to the ajax request that changes the value, but the component doesn't update it's internal state.
Here's the response that is returned when the showDelay is changed to 2 seconds (2000 mills). This looks to be correct, but the tooltip component doesn't respect the new attribute values:
<?xml version='1.0' encoding='UTF-8'?>
<partial-response><changes><update id="j_idt44:tooltipShowDelaySelector"><![CDATA[<select id="j_idt44:tooltipShowDelaySelector" name="j_idt44:tooltipShowDelaySelector" size="1"> <option value="500">0.5 seconds</option>
<option value="1000">1 second</option>
<option value="2000" selected="true">2 seconds</option>
</select>]]></update><update id="j_idt44:tooltip"><![CDATA[<script id="j_idt44:tooltip" type="text/javascript">jQuery(function() {widget_j_idt44_tooltip = new ice.ace.Tooltip({"global":false,"id":"j_idt44:tooltip","displayListener":false,"forComponent":"j_idt44:text",content:document.getElementById('j_idt44:tooltip_content').innerHTML,"show":{"when":{"event":"mouseover"},"delay":2000,"effect":{"length":100,"type":"slide"}},"hide":{"when":{"event":"mouseout"},"delay":500,"effect":{"length":100,"type":"slide"}},"position":{"container":jQuery(ice.ace.escapeClientId('j_idt44:text')).parent(),"corner":{"target":"bottomRight","tooltip":"topLeft"}}});});</script>]]></update><update id="dynamic-code-compat"><![CDATA[<span id="dynamic-code-compat"></span>]]></update><update id="javax.faces.ViewState"><![CDATA[-6438305865883867682:-4979992529496162372]]></update><extension aceCallbackParam="validationFailed">{"validationFailed":false}</extension></changes></partial-response>
There is a malformedXML error from the bridge after submitting the show delay change. See screenshot-1.png.