use a javascript method in commondLink for lesser html size
-----------------------------------------------------------

         Key: MYFACES-1032
         URL: http://issues.apache.org/jira/browse/MYFACES-1032
     Project: MyFaces
        Type: Improvement
  Components: General  
    Reporter: Mario Ivankovits
 Attachments: onclick_method.diff

The attached patch will introduce a new javascript method which will be used 
for the commandLink form submission handling.

The name of this new javascript method is "myfcs_sbmt" and will be rendered 
once (on first use) into the html.
It allows to pass in 4 parameters:
frm - form name
srcElement - the element issuing the onclick - the anchor tag in the current 
case
target - the target (not strictly necessary for the anchor, but useable for the 
future (commandButton) )
prms - a javascript hash array for the components f:params
See the resulting javascript below.

The resulting href-onclick tag will be
<a href="#" onclick="clear_navigation_3Atest();return 
myfcs_sbmt('navigation:test',this,'',{'p1':'pv1','p2':'pv2'})" 
id="navigation:test:_idJsp31">params</a>

Next thing to do will be to get rid of the clear_() method, but one after the 
other.

It would be REALLY GREAT if one of you developers can have a look at this (for 
sure) rather large patch. If you are happy it would be even MORE GREAT if you 
could apply it so that I can see how it works in wild life.
If everything is fine I will have a look how to get rid of the clear_ methods 
and move on to the commandButton. There is not much to win, but a little bit is 
better than nothing ;-)
Especially it would be nice if both use the same (centralized) methods to 
render their onClick things.


The new javascript (rendered without any newline in reality)

function myfcs_sbmt(frm,srcElem,target,prms)
{
        var formElement = document.forms[frm];
        document.forms[frm].elements['autoScroll'].value=getScrolling();
        formElement.elements[frm+':_link_hidden_'].value=srcElem.id;

        if (target != '')
        {
                formElement.target=target;
        }

        for (var paramName in prms)
        {
                formElement.elements[paramName].value=prms[paramName];
        }

        if(formElement.onsubmit)
        {
                var result=formElement.onsubmit(); 
                if( (typeof result == 'undefined') || result )
                {
                        formElement.submit();
                }
        }
        else
        {
                formElement.submit();
        }
        return false;
}

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to