You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Pavitra Subramaniam (JIRA)" <de...@myfaces.apache.org> on 2010/12/29 23:07:46 UTC

[jira] Updated: (TRINIDAD-1922) In Facelets, Partial Refreshing Not Working

     [ https://issues.apache.org/jira/browse/TRINIDAD-1922?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Pavitra Subramaniam updated TRINIDAD-1922:
------------------------------------------

    Status: Patch Available  (was: Open)

> In Facelets, Partial Refreshing <tr:inputText> Not Working
> ----------------------------------------------------------
>
>                 Key: TRINIDAD-1922
>                 URL: https://issues.apache.org/jira/browse/TRINIDAD-1922
>             Project: MyFaces Trinidad
>          Issue Type: Bug
>          Components: Components
>    Affects Versions: 2.0.0.3-core
>         Environment: Any browser
>            Reporter: Mamallan Uthaman
>
> Trinidad currently has an issue partial refreshing an <tr:inputText>. This problem is specific to facelets where we use JSF Ajax apis. I tested with the latest code from our trunk, and below is my  test page:
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
> <ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
>                 xmlns:f="http://java.sun.com/jsf/core"
>                 xmlns:tr="http://myfaces.apache.org/trinidad"
>                 xmlns:trd="http://myfaces.apache.org/trinidad/demo"
>                 xmlns:trh="http://myfaces.apache.org/trinidad/html">
>     <tr:document id="d1" title="Client Behavior Support">
>         <tr:form id="f1">
>             <tr:panelHeader text="Ajax Issue"/>
>             <tr:panelHorizontalLayout>
>                 <tr:commandLink text="Press" id="cb1" partialSubmit="true">
>                     <tr:setActionListener from="Success" to="#{sessionScope.status}"/>
>                 </tr:commandLink>
>                 <tr:inputText value="#{sessionScope.status}"  partialTriggers="cb1" columns="6"/>
>             </tr:panelHorizontalLayout>
>         </tr:form>
>     </tr:document>
> </ui:composition>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Re: [jira] Updated: (TRINIDAD-1922) In Facelets, Partial Refreshing Not Working

Posted by Andrew Robinson <an...@gmail.com>.
+1

On Thu, Dec 30, 2010 at 12:32 PM, Blake Sullivan
<bl...@oracle.com> wrote:
> That sounds fine to me.  Anyone disagree?
>
> -- Blake Sullivan
>
> On 12/30/10 10:58 AM, Pavitra Subramaniam wrote:
>>
>> Hello,
>>
>> We discussed this issue a while back and decided that the best solution
>> would be to ensure that the component's client Id be always set on the root
>> DOM element. This change unfortunately is quite pervasive as explained in
>> [1] below.
>>
>> The first patch (uploaded to JIRA issue) I had provided takes the approach
>> of using the clientId actually used by the renderer when building the
>> partial response for the component. If this patch is an acceptable short
>> term fix, can this be committed so at least partial refreshes using JSF 2
>> Ajax is not entirely broken? I can open a related JIRA issue to work on the
>> long term solution.
>>
>> Thanks
>> Pavitra
>>
>> [1]:
>>
>> With patch [2] the DOM structure of all input/select* components changes.
>> So a componend with id="foo" that rendered a DOM that looked like this
>> (pseudo code),
>>
>> <rootDomNode id="foo__xc_>
>>   ...
>> <input id="foo">
>>   ...
>> </rootDomNode>
>>
>> will become something that looks like this,
>>
>> <rootDomNode id="foo">
>> ...
>> <input id="foo__ct_"> <!-- 'ct' short for content -->
>> ...
>> </rootDomNode>
>>
>> Though simple at first glance this change has a wide impact on most
>> input/select renderers as we need to,
>>
>>  - re-wire JS script handlers for most input/select* components to use the
>> new id
>>  - rewire <label> nodes to account for change in id
>>  - rewire message handlers to use the new id etc.
>>
>>
>> On 12/29/2010 2:07 PM, Pavitra Subramaniam (JIRA) wrote:
>>>
>>>      [
>>> https://issues.apache.org/jira/browse/TRINIDAD-1922?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
>>> ]
>>>
>>> Pavitra Subramaniam updated TRINIDAD-1922:
>>> ------------------------------------------
>>>
>>>     Status: Patch Available  (was: Open)
>>>
>>>> In Facelets, Partial Refreshing<tr:inputText>  Not Working
>>>> ----------------------------------------------------------
>>>>
>>>>                 Key: TRINIDAD-1922
>>>>                 URL: https://issues.apache.org/jira/browse/TRINIDAD-1922
>>>>             Project: MyFaces Trinidad
>>>>          Issue Type: Bug
>>>>          Components: Components
>>>>    Affects Versions: 2.0.0.3-core
>>>>         Environment: Any browser
>>>>            Reporter: Mamallan Uthaman
>>>>
>>>> Trinidad currently has an issue partial refreshing an<tr:inputText>.
>>>> This problem is specific to facelets where we use JSF Ajax apis. I tested
>>>> with the latest code from our trunk, and below is my  test page:
>>>> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
>>>> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
>>>> <ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
>>>>                 xmlns:f="http://java.sun.com/jsf/core"
>>>>                 xmlns:tr="http://myfaces.apache.org/trinidad"
>>>>                 xmlns:trd="http://myfaces.apache.org/trinidad/demo"
>>>>                 xmlns:trh="http://myfaces.apache.org/trinidad/html">
>>>> <tr:document id="d1" title="Client Behavior Support">
>>>> <tr:form id="f1">
>>>> <tr:panelHeader text="Ajax Issue"/>
>>>> <tr:panelHorizontalLayout>
>>>> <tr:commandLink text="Press" id="cb1" partialSubmit="true">
>>>> <tr:setActionListener from="Success" to="#{sessionScope.status}"/>
>>>> </tr:commandLink>
>>>> <tr:inputText value="#{sessionScope.status}"  partialTriggers="cb1"
>>>> columns="6"/>
>>>> </tr:panelHorizontalLayout>
>>>> </tr:form>
>>>> </tr:document>
>>>> </ui:composition>
>
>

Re: [jira] Updated: (TRINIDAD-1922) In Facelets, Partial Refreshing Not Working

Posted by Blake Sullivan <bl...@oracle.com>.
That sounds fine to me.  Anyone disagree?

-- Blake Sullivan

On 12/30/10 10:58 AM, Pavitra Subramaniam wrote:
> Hello,
>
> We discussed this issue a while back and decided that the best 
> solution would be to ensure that the component's client Id be always 
> set on the root DOM element. This change unfortunately is quite 
> pervasive as explained in [1] below.
>
> The first patch (uploaded to JIRA issue) I had provided takes the 
> approach of using the clientId actually used by the renderer when 
> building the partial response for the component. If this patch is an 
> acceptable short term fix, can this be committed so at least partial 
> refreshes using JSF 2 Ajax is not entirely broken? I can open a 
> related JIRA issue to work on the long term solution.
>
> Thanks
> Pavitra
>
> [1]:
>
> With patch [2] the DOM structure of all input/select* components 
> changes. So a componend with id="foo" that rendered a DOM that looked 
> like this (pseudo code),
>
> <rootDomNode id="foo__xc_>
>    ...
> <input id="foo">
>    ...
> </rootDomNode>
>
> will become something that looks like this,
>
> <rootDomNode id="foo">
> ...
> <input id="foo__ct_"> <!-- 'ct' short for content -->
> ...
> </rootDomNode>
>
> Though simple at first glance this change has a wide impact on most 
> input/select renderers as we need to,
>
>   - re-wire JS script handlers for most input/select* components to 
> use the new id
>   - rewire <label> nodes to account for change in id
>   - rewire message handlers to use the new id etc.
>
>
> On 12/29/2010 2:07 PM, Pavitra Subramaniam (JIRA) wrote:
>>       [ 
>> https://issues.apache.org/jira/browse/TRINIDAD-1922?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel 
>> ]
>>
>> Pavitra Subramaniam updated TRINIDAD-1922:
>> ------------------------------------------
>>
>>      Status: Patch Available  (was: Open)
>>
>>> In Facelets, Partial Refreshing<tr:inputText>  Not Working
>>> ----------------------------------------------------------
>>>
>>>                  Key: TRINIDAD-1922
>>>                  URL: 
>>> https://issues.apache.org/jira/browse/TRINIDAD-1922
>>>              Project: MyFaces Trinidad
>>>           Issue Type: Bug
>>>           Components: Components
>>>     Affects Versions: 2.0.0.3-core
>>>          Environment: Any browser
>>>             Reporter: Mamallan Uthaman
>>>
>>> Trinidad currently has an issue partial refreshing an<tr:inputText>. 
>>> This problem is specific to facelets where we use JSF Ajax apis. I 
>>> tested with the latest code from our trunk, and below is my  test page:
>>> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
>>> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
>>> <ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
>>>                  xmlns:f="http://java.sun.com/jsf/core"
>>>                  xmlns:tr="http://myfaces.apache.org/trinidad"
>>>                  xmlns:trd="http://myfaces.apache.org/trinidad/demo"
>>>                  xmlns:trh="http://myfaces.apache.org/trinidad/html">
>>> <tr:document id="d1" title="Client Behavior Support">
>>> <tr:form id="f1">
>>> <tr:panelHeader text="Ajax Issue"/>
>>> <tr:panelHorizontalLayout>
>>> <tr:commandLink text="Press" id="cb1" partialSubmit="true">
>>> <tr:setActionListener from="Success" to="#{sessionScope.status}"/>
>>> </tr:commandLink>
>>> <tr:inputText value="#{sessionScope.status}"  partialTriggers="cb1" 
>>> columns="6"/>
>>> </tr:panelHorizontalLayout>
>>> </tr:form>
>>> </tr:document>
>>> </ui:composition>


Re: [jira] Updated: (TRINIDAD-1922) In Facelets, Partial Refreshing Not Working

Posted by Pavitra Subramaniam <pa...@oracle.com>.
Thanks Blake! I noticed you also made the change to clirr-runner.txt :). 
Thanks for catching that too!

- Pavitra


On 12/30/2010 3:58 PM, Blake Sullivan wrote:
> OK.  It is committed.
>
> -- Blake
>
> On 12/30/10 10:58 AM, Pavitra Subramaniam wrote:
>> Hello,
>>
>> We discussed this issue a while back and decided that the best 
>> solution would be to ensure that the component's client Id be always 
>> set on the root DOM element. This change unfortunately is quite 
>> pervasive as explained in [1] below.
>>
>> The first patch (uploaded to JIRA issue) I had provided takes the 
>> approach of using the clientId actually used by the renderer when 
>> building the partial response for the component. If this patch is an 
>> acceptable short term fix, can this be committed so at least partial 
>> refreshes using JSF 2 Ajax is not entirely broken? I can open a 
>> related JIRA issue to work on the long term solution.
>>
>> Thanks
>> Pavitra
>>
>> [1]:
>>
>> With patch [2] the DOM structure of all input/select* components 
>> changes. So a componend with id="foo" that rendered a DOM that looked 
>> like this (pseudo code),
>>
>> <rootDomNode id="foo__xc_>
>>    ...
>> <input id="foo">
>>    ...
>> </rootDomNode>
>>
>> will become something that looks like this,
>>
>> <rootDomNode id="foo">
>> ...
>> <input id="foo__ct_"> <!-- 'ct' short for content -->
>> ...
>> </rootDomNode>
>>
>> Though simple at first glance this change has a wide impact on most 
>> input/select renderers as we need to,
>>
>>   - re-wire JS script handlers for most input/select* components to 
>> use the new id
>>   - rewire <label> nodes to account for change in id
>>   - rewire message handlers to use the new id etc.
>>
>>
>> On 12/29/2010 2:07 PM, Pavitra Subramaniam (JIRA) wrote:
>>>       [ 
>>> https://issues.apache.org/jira/browse/TRINIDAD-1922?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel 
>>> ]
>>>
>>> Pavitra Subramaniam updated TRINIDAD-1922:
>>> ------------------------------------------
>>>
>>>      Status: Patch Available  (was: Open)
>>>
>>>> In Facelets, Partial Refreshing<tr:inputText>  Not Working
>>>> ----------------------------------------------------------
>>>>
>>>>                  Key: TRINIDAD-1922
>>>>                  URL: 
>>>> https://issues.apache.org/jira/browse/TRINIDAD-1922
>>>>              Project: MyFaces Trinidad
>>>>           Issue Type: Bug
>>>>           Components: Components
>>>>     Affects Versions: 2.0.0.3-core
>>>>          Environment: Any browser
>>>>             Reporter: Mamallan Uthaman
>>>>
>>>> Trinidad currently has an issue partial refreshing 
>>>> an<tr:inputText>. This problem is specific to facelets where we use 
>>>> JSF Ajax apis. I tested with the latest code from our trunk, and 
>>>> below is my  test page:
>>>> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
>>>> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
>>>> <ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
>>>>                  xmlns:f="http://java.sun.com/jsf/core"
>>>>                  xmlns:tr="http://myfaces.apache.org/trinidad"
>>>>                  xmlns:trd="http://myfaces.apache.org/trinidad/demo"
>>>>                  xmlns:trh="http://myfaces.apache.org/trinidad/html">
>>>> <tr:document id="d1" title="Client Behavior Support">
>>>> <tr:form id="f1">
>>>> <tr:panelHeader text="Ajax Issue"/>
>>>> <tr:panelHorizontalLayout>
>>>> <tr:commandLink text="Press" id="cb1" partialSubmit="true">
>>>> <tr:setActionListener from="Success" to="#{sessionScope.status}"/>
>>>> </tr:commandLink>
>>>> <tr:inputText value="#{sessionScope.status}"  partialTriggers="cb1" 
>>>> columns="6"/>
>>>> </tr:panelHorizontalLayout>
>>>> </tr:form>
>>>> </tr:document>
>>>> </ui:composition>
>

Re: [jira] Updated: (TRINIDAD-1922) In Facelets, Partial Refreshing Not Working

Posted by Blake Sullivan <bl...@oracle.com>.
OK.  It is committed.

-- Blake

On 12/30/10 10:58 AM, Pavitra Subramaniam wrote:
> Hello,
>
> We discussed this issue a while back and decided that the best 
> solution would be to ensure that the component's client Id be always 
> set on the root DOM element. This change unfortunately is quite 
> pervasive as explained in [1] below.
>
> The first patch (uploaded to JIRA issue) I had provided takes the 
> approach of using the clientId actually used by the renderer when 
> building the partial response for the component. If this patch is an 
> acceptable short term fix, can this be committed so at least partial 
> refreshes using JSF 2 Ajax is not entirely broken? I can open a 
> related JIRA issue to work on the long term solution.
>
> Thanks
> Pavitra
>
> [1]:
>
> With patch [2] the DOM structure of all input/select* components 
> changes. So a componend with id="foo" that rendered a DOM that looked 
> like this (pseudo code),
>
> <rootDomNode id="foo__xc_>
>    ...
> <input id="foo">
>    ...
> </rootDomNode>
>
> will become something that looks like this,
>
> <rootDomNode id="foo">
> ...
> <input id="foo__ct_"> <!-- 'ct' short for content -->
> ...
> </rootDomNode>
>
> Though simple at first glance this change has a wide impact on most 
> input/select renderers as we need to,
>
>   - re-wire JS script handlers for most input/select* components to 
> use the new id
>   - rewire <label> nodes to account for change in id
>   - rewire message handlers to use the new id etc.
>
>
> On 12/29/2010 2:07 PM, Pavitra Subramaniam (JIRA) wrote:
>>       [ 
>> https://issues.apache.org/jira/browse/TRINIDAD-1922?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel 
>> ]
>>
>> Pavitra Subramaniam updated TRINIDAD-1922:
>> ------------------------------------------
>>
>>      Status: Patch Available  (was: Open)
>>
>>> In Facelets, Partial Refreshing<tr:inputText>  Not Working
>>> ----------------------------------------------------------
>>>
>>>                  Key: TRINIDAD-1922
>>>                  URL: 
>>> https://issues.apache.org/jira/browse/TRINIDAD-1922
>>>              Project: MyFaces Trinidad
>>>           Issue Type: Bug
>>>           Components: Components
>>>     Affects Versions: 2.0.0.3-core
>>>          Environment: Any browser
>>>             Reporter: Mamallan Uthaman
>>>
>>> Trinidad currently has an issue partial refreshing an<tr:inputText>. 
>>> This problem is specific to facelets where we use JSF Ajax apis. I 
>>> tested with the latest code from our trunk, and below is my  test page:
>>> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
>>> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
>>> <ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
>>>                  xmlns:f="http://java.sun.com/jsf/core"
>>>                  xmlns:tr="http://myfaces.apache.org/trinidad"
>>>                  xmlns:trd="http://myfaces.apache.org/trinidad/demo"
>>>                  xmlns:trh="http://myfaces.apache.org/trinidad/html">
>>> <tr:document id="d1" title="Client Behavior Support">
>>> <tr:form id="f1">
>>> <tr:panelHeader text="Ajax Issue"/>
>>> <tr:panelHorizontalLayout>
>>> <tr:commandLink text="Press" id="cb1" partialSubmit="true">
>>> <tr:setActionListener from="Success" to="#{sessionScope.status}"/>
>>> </tr:commandLink>
>>> <tr:inputText value="#{sessionScope.status}"  partialTriggers="cb1" 
>>> columns="6"/>
>>> </tr:panelHorizontalLayout>
>>> </tr:form>
>>> </tr:document>
>>> </ui:composition>


Re: [jira] Updated: (TRINIDAD-1922) In Facelets, Partial Refreshing Not Working

Posted by Pavitra Subramaniam <pa...@oracle.com>.
Hello,

We discussed this issue a while back and decided that the best solution 
would be to ensure that the component's client Id be always set on the 
root DOM element. This change unfortunately is quite pervasive as 
explained in [1] below.

The first patch (uploaded to JIRA issue) I had provided takes the 
approach of using the clientId actually used by the renderer when 
building the partial response for the component. If this patch is an 
acceptable short term fix, can this be committed so at least partial 
refreshes using JSF 2 Ajax is not entirely broken? I can open a related 
JIRA issue to work on the long term solution.

Thanks
Pavitra

[1]:

With patch [2] the DOM structure of all input/select* components 
changes. So a componend with id="foo" that rendered a DOM that looked 
like this (pseudo code),

<rootDomNode id="foo__xc_>
    ...
<input id="foo">
    ...
</rootDomNode>

will become something that looks like this,

<rootDomNode id="foo">
...
<input id="foo__ct_"> <!-- 'ct' short for content -->
...
</rootDomNode>

Though simple at first glance this change has a wide impact on most 
input/select renderers as we need to,

   - re-wire JS script handlers for most input/select* components to use 
the new id
   - rewire <label> nodes to account for change in id
   - rewire message handlers to use the new id etc.


On 12/29/2010 2:07 PM, Pavitra Subramaniam (JIRA) wrote:
>       [ https://issues.apache.org/jira/browse/TRINIDAD-1922?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
>
> Pavitra Subramaniam updated TRINIDAD-1922:
> ------------------------------------------
>
>      Status: Patch Available  (was: Open)
>
>    
>> In Facelets, Partial Refreshing<tr:inputText>  Not Working
>> ----------------------------------------------------------
>>
>>                  Key: TRINIDAD-1922
>>                  URL: https://issues.apache.org/jira/browse/TRINIDAD-1922
>>              Project: MyFaces Trinidad
>>           Issue Type: Bug
>>           Components: Components
>>     Affects Versions: 2.0.0.3-core
>>          Environment: Any browser
>>             Reporter: Mamallan Uthaman
>>
>> Trinidad currently has an issue partial refreshing an<tr:inputText>. This problem is specific to facelets where we use JSF Ajax apis. I tested with the latest code from our trunk, and below is my  test page:
>> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
>> <ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
>>                  xmlns:f="http://java.sun.com/jsf/core"
>>                  xmlns:tr="http://myfaces.apache.org/trinidad"
>>                  xmlns:trd="http://myfaces.apache.org/trinidad/demo"
>>                  xmlns:trh="http://myfaces.apache.org/trinidad/html">
>>      <tr:document id="d1" title="Client Behavior Support">
>>          <tr:form id="f1">
>>              <tr:panelHeader text="Ajax Issue"/>
>>              <tr:panelHorizontalLayout>
>>                  <tr:commandLink text="Press" id="cb1" partialSubmit="true">
>>                      <tr:setActionListener from="Success" to="#{sessionScope.status}"/>
>>                  </tr:commandLink>
>>                  <tr:inputText value="#{sessionScope.status}"  partialTriggers="cb1" columns="6"/>
>>              </tr:panelHorizontalLayout>
>>          </tr:form>
>>      </tr:document>
>> </ui:composition>
>>      
>