[
https://issues.apache.org/jira/browse/MYFACES-2640?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12862569#action_12862569
]
Werner Punz commented on MYFACES-2640:
--------------------------------------
Hello Mark thanks for all your code and suggestions one by one
Ok first to the fuzzy elements
Myfaces can only support what the spec gives and what the spec clearly not
breaks, eg. Extensions are possible but not totally different behavior.
A fuzzy element execute or render on javascript level is a definitive no go.
But for such cases you can use libraries like jquery or dojo query which
support things like that
I will give you some pseudo code (dojo query, since I am more familiar with
that one):
var executeList = dojo.query("#*myId");
var identifiers = [];
for(var cnt = 0; cnt <executeList.length; cnt++ {
identifiers.push(executeList[cnt])
}
return executeList.join(" ");
This is pseudo code, I am not sure if I got the query right, but you get the
idea,
as I said for the request and response object I am bound to the spec, I cannot
extend
it for fuzzy elements within execute and render on the official api level.
I also cannot recommend to rely on specifics within myfaces, you will
definitely break compatibiltiy to Mojarra.
As for your reported bugs, I will check them one by one, and comment or merge
them in case by case, I will do that after the weekend, probably moday or
tuesday.
> (JSF.js) Ajax Render component problem, replace with whole fragment not one
> element.
> ------------------------------------------------------------------------------------
>
> Key: MYFACES-2640
> URL: https://issues.apache.org/jira/browse/MYFACES-2640
> Project: MyFaces Core
> Issue Type: Bug
> Components: JSR-314
> Affects Versions: 2.0.0-beta-3
> Environment: tomcat 6.0.20 java (mac os x )
> Reporter: Mark Li
> Original Estimate: 4h
> Remaining Estimate: 4h
>
> after ajax submit, jsf.js will re-render some element depending on
> jsf.ajax.request({render:" some elements "});
> but this js code will cause some problem.
> jsf.js:
> myfaces._impl._util._Utils.replaceHtmlItem = function (request, context,
> itemIdToReplace, newTag, form) {
> ......
> var fragment = range.createContextualFragment(newTag);
> evalNode = item.parentNode.replaceChild(fragment, item)
> .....
> }
> sometime fragment will has more than one childNodes, or the childNode not has
> clientId, but the childNode of childNode has clientId.
> this will cause html unstable.
> Please fix it.
> this is my suggestion:
> myfaces._impl._util._Utils.replaceHtmlItem = function (request, context,
> itemIdToReplace, newTag, form) {
> .............
> Orginal:
> var fragment = range.createContextualFragment(newTag);
> evalNode = item.parentNode.replaceChild(fragment, item)
> fix:
> var fragment = range.createContextualFragment(newTag);
> var replaceItem =
> myfaces._impl._util._Utils.findHtmlItemFromFragment(fragment,
> itemIdToReplace);
> if(replaceItem == null)replaceItem = fragment;
> evalNode = item.parentNode.replaceChild(replaceItem, item)
> ..................
> }
> myfaces._impl._util._Utils.findHtmlItemFromFragment = function(fragment,
> itemId){
> if(fragment.childNodes == null)
> return null;
> for(var i = 0; i < fragment.childNodes.length ; i++ ){
> var c = fragment.childNodes[i];
> if(c.id == itemId)
> return c;
> }
> for(var i = 0; i < fragment.childNodes.length ; i++ ){
> var c = fragment.childNodes[i];
> var item =
> myfaces._impl._util._Utils.findHtmlItemFromFragment(c, itemId);
> if(item != null)
> return item;
> }
> return null;
> };
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.