Hi Mike,

yes, I know - I did that for all my commits yesterday night, and this
last one just did some cleanup for the ones before. I should have
mentioned the jira-issue I created for the ones before in the commit
message for this one as well, though.

regards,

Martin

On 9/11/06, Mike Kienenberger <[EMAIL PROTECTED]> wrote:
Hey Martin,

We all kinda unofficially agreed while you were on vacation that we
need open JIRA issues for any non-trivial changes to core or tomahawk
:-)  Thus, we can create changelogs and release notes.



On 9/11/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
> Author: mmarinschek
> Date: Mon Sep 11 01:31:53 2006
> New Revision: 442124
>
> URL: http://svn.apache.org/viewvc?view=rev&rev=442124
> Log:
> more revamping of MyFaces JavaScript - submitForm method is now independent 
of form
>
> Modified:
>     
myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java
>     
myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtils.java
>     
myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/util/JavascriptUtils.java
>
> Modified: 
myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java
> URL: 
http://svn.apache.org/viewvc/myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java?view=diff&rev=442124&r1=442123&r2=442124
> ==============================================================================
> --- 
myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java
 (original)
> +++ 
myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java
 Mon Sep 11 01:31:53 2006
> @@ -35,6 +35,7 @@
>  import java.io.UnsupportedEncodingException;
>  import java.net.URLEncoder;
>  import java.util.Iterator;
> +import java.util.Map;
>
>  /**
>   * @author Manfred Geiler
> @@ -44,6 +45,7 @@
>      extends HtmlRenderer {
>      public static final String URL_STATE_MARKER = 
"JSF_URL_STATE_MARKER=DUMMY";
>      public static final int URL_STATE_MARKER_LEN = URL_STATE_MARKER.length();
> +    private static final String FIRST_LINK_ON_PAGE = 
"org.apache.MyFaces.FIRST_LINK_ON_PAGE";
>
>      //private static final Log log = 
LogFactory.getLog(HtmlLinkRenderer.class);
>
> @@ -214,17 +216,24 @@
>          }
>          else
>          {
> -            renderFormSubmitScriptIfNecessary(facesContext, formInfo);
> +            renderFormSubmitScriptIfNecessary(facesContext);
>
>              StringBuffer params = addChildParameters(component, nestingForm);
>
>              String target = getTarget(component);
>
> -            onClick.append("return 
myFaces_submitForm_").append(JavascriptUtils.getValidJavascriptName(formName,false)).append("('").
> -                    append(clientId).append("',").
> +            onClick.append("return ").
> +                    
append(HtmlRendererUtils.SUBMIT_FORM_FN_NAME).append("('").
> +                    append(formName).append("','").
> +                    append(clientId).append("'");
> +
> +            if(params.length()>2 || target != null)
> +            {
> +                onClick.append(",").
>                      append(params).append(",").
> -                    append(target == null ? "null" : ("'" + target + "'")).
> -                    append(");");
> +                    append(target == null ? "null" : ("'" + target + "'"));
> +            }
> +            onClick.append(");");
>
>              //add id parameter for decode to form - todo: better do that 
dynamically instead of referring to the form
>              String hiddenFieldName = 
HtmlRendererUtils.getHiddenCommandLinkFieldName(formInfo);
> @@ -236,19 +245,18 @@
>          writer.writeAttribute(HTML.ONCLICK_ATTR, onClick.toString(), null);
>      }
>
> -    private static void renderFormSubmitScriptIfNecessary(FacesContext 
facesContext, FormInfo formInfo)
> +    private static void renderFormSubmitScriptIfNecessary(FacesContext 
facesContext)
>          throws IOException {
>
> -        if 
(facesContext.getExternalContext().getRequestMap().get(getFormSubmitScriptName(formInfo))
 == null)
> +        Map map = facesContext.getExternalContext().getRequestMap();
> +        Boolean firstLink = (Boolean) map.get(FIRST_LINK_ON_PAGE);
> +
> +        if(firstLink == null || firstLink.equals(Boolean.TRUE))
>          {
> -            HtmlRendererUtils.renderFormSubmitScript(facesContext, formInfo);
> -            
facesContext.getExternalContext().getRequestMap().put(getFormSubmitScriptName(formInfo),
 Boolean.TRUE);
> -        }
> -    }
> +            map.put(FIRST_LINK_ON_PAGE,Boolean.FALSE);
> +            HtmlRendererUtils.renderFormSubmitScript(facesContext);
>
> -    private static String getFormSubmitScriptName(FormInfo formInfo)
> -    {
> -        return "FORM_SUBMIT_SCRIPT_FOR_"+formInfo.getFormName();
> +        }
>      }
>
>      private String getTarget(UIComponent component)
>
> Modified: 
myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtils.java
> URL: 
http://svn.apache.org/viewvc/myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtils.java?view=diff&rev=442124&r1=442123&r2=442124
> ==============================================================================
> --- 
myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtils.java
 (original)
> +++ 
myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtils.java
 Mon Sep 11 01:31:53 2006
> @@ -53,6 +53,8 @@
>
>      public static final String CLEAR_HIDDEN_FIELD_FN_NAME =
>          "clearFormHiddenParams";
> +    private static final String SET_HIDDEN_INPUT_FN_NAME = 
"oamSetHiddenInput";
> +    public static final String SUBMIT_FORM_FN_NAME = "oamSubmitForm";
>
>      private HtmlRendererUtils() {
>          // utility class, do not instantiate
> @@ -802,17 +804,32 @@
>
>      public static void 
appendClearHiddenCommandFormParamsFunctionCall(ScriptContext context, String 
formName) {
>
> -        context.prettyLine();
> -        context.append("if(window.");
> -        
context.append(HtmlRendererUtils.getClearHiddenCommandFormParamsFunctionName(formName));
> -        context.append("!=undefined)");
> -        context.append("{");
> -        
context.append(HtmlRendererUtils.getClearHiddenCommandFormParamsFunctionName(formName)).append("('").append(formName).append("');");
> -        context.append("}");
> +        if(formName == null)
> +        {
> +            context.prettyLine();
> +            context.append("var clearFn = ");
> +            
context.append(HtmlRendererUtils.getClearHiddenCommandFormParamsFunctionName(formName));
> +            context.append(";");
> +            context.prettyLine();
> +            context.append("if(eval('window.'+clearFn)!=undefined)");
> +            context.append("{");
> +            context.append("eval('window.'+clearFn+'(formName)');");
> +            context.append("}");
> +        }
> +        else
> +        {
> +            context.prettyLine();
> +            context.append("if(window.");
> +            
context.append(HtmlRendererUtils.getClearHiddenCommandFormParamsFunctionName(formName));
> +            context.append("!=undefined)");
> +            context.append("{");
> +            
context.append(HtmlRendererUtils.getClearHiddenCommandFormParamsFunctionName(formName)).append("('").append(formName).append("');");
> +            context.append("}");
> +        }
>      }
>
>
> -    public static void renderFormSubmitScript(FacesContext facesContext, 
FormInfo formInfo)
> +    public static void renderFormSubmitScript(FacesContext facesContext)
>              throws IOException
>      {
>          ResponseWriter writer = facesContext.getResponseWriter();
> @@ -827,77 +844,92 @@
>          context.prettyLine();
>          context.increaseIndent();
>
> -        prepareScript(context, formInfo, autoScroll);
> +        prepareScript(context, autoScroll);
>
>          writer.writeText(context.toString(),null);
>
>          writer.endElement(HTML.SCRIPT_ELEM);
>      }
>
> -    private static void prepareScript(ScriptContext context, FormInfo 
formInfo, boolean autoScroll)
> +    private static void prepareScript(ScriptContext context, boolean 
autoScroll)
>      {
> -        String formName = formInfo.getFormName();
>
> -        context.append("function myFaces_submitForm_").append(
> -                
JavascriptUtils.getValidJavascriptName(formName,false)).append("(linkId, target, 
params)");
> +        context.prettyLine();
> +
> +        context.append("function ");
> +        context.append(SET_HIDDEN_INPUT_FN_NAME).append("(formname, name, 
value)");
> +        context.append("{");
> +        context.append("var form = document.forms[formname];");
> +        context.prettyLine();
> +        context.append("if(form.elements[name]==undefined)");
> +        context.append("{");
> +        context.append("var newInput = document.createElement['input'];");
> +        context.prettyLine();
> +        context.append("newInput.setAttribute('type','hidden');");
> +        context.prettyLine();
> +        context.append("newInput.setAttribute('name',name);");
> +        context.prettyLine();
> +        context.append("newInput.setAttribute('value',value);");
> +        context.prettyLine();
> +        context.append("form.appendChild(newInput);");
> +        context.append("}");
> +        context.append("else");
> +        context.append("{");
> +        context.append("form.elements[name].value=value;");
> +        context.append("}");
> +
> +        context.append("}");
> +
> +        context.prettyLine();
> +
> +        context.append("function ");
> +        context.append(SUBMIT_FORM_FN_NAME).append("(formName, linkId, target, 
params)");
>          context.append("{");
>
>          //call the script to clear the form 
(clearFormHiddenParams_<formName>) method
> -        
HtmlRendererUtils.appendClearHiddenCommandFormParamsFunctionCall(context, 
formName);
> +        
HtmlRendererUtils.appendClearHiddenCommandFormParamsFunctionCall(context, null);
>
>          if (autoScroll)
>          {
> -            JavascriptUtils.appendAutoScrollAssignment(context, formName);
> +            JavascriptUtils.appendAutoScrollAssignment(context, null);
>          }
>
>          context.prettyLine();
>
>          context.append("if(target!=undefined && target != null)");
>          context.append("{");
> -        context.append("document.forms['"+formName+"'].target=target;");
> +        context.append("document.forms[formName].target=target;");
>          context.append("}");
>
>          context.append("if(params!=undefined && params != null)");
>          context.append("{");
>          context.append("for(var i=0; i<params.length; i++)");
>          context.append("{");
> -        
context.append("if(document.forms['").append(formName).append("'].elements[params[i][0]]==undefined)");
> -        context.append("{");
> -        context.append("var form = document.forms['"+formName+"'];");
> -        context.prettyLine();
> -        context.append("var newInput = document.createElement['input'];");
> -        context.prettyLine();
> -        context.append("newInput.setAttribute('type','hidden');");
> -        context.prettyLine();
> -        context.append("newInput.setAttribute('name',params[i][0]);");
> -        context.prettyLine();
> -        context.append("newInput.setAttribute('value',params[i][1]);");
> -        context.prettyLine();
> -        context.append("form.appendChild(newInput);");
> -        context.append("}");
> +        context.append(SET_HIDDEN_INPUT_FN_NAME).append("(formName,params[i][0], 
params[i][1]);");
>          context.append("}");
>          context.append("}");
>
>          context.prettyLine();
>
> -        context.append("document.forms['"+formName+"'].elements['"+
> -                
HtmlRendererUtils.getHiddenCommandLinkFieldName(formInfo)+"'].value=linkId;");
> +        context.append(SET_HIDDEN_INPUT_FN_NAME);
> +        context.append("(formName,formName 
+'"+NamingContainer.SEPARATOR_CHAR+
> +                
"'+'"+HtmlRendererUtils.HIDDEN_COMMANDLINK_FIELD_NAME+"',linkId);");
>
>          context.prettyLine();
>          context.prettyLine();
>
> -        context.append("if(document.forms['"+formName+"'].onsubmit)");
> +        context.append("if(document.forms[formName].onsubmit)");
>          context.append("{");
> -        context.append("var 
result=document.forms['"+formName+"'].onsubmit();");
> +        context.append("var result=document.forms[formName].onsubmit();");
>          context.prettyLine();
>          context.append("if( (typeof result == 'undefined') || result )");
>          context.append("{");
> -        context.append("document.forms['"+formName+"'].submit();");
> +        context.append("document.forms[formName].submit();");
>          context.append("}");
>          context.append("}");
>          context.append("else ");
>          context.append("{");
> -        context.append("document.forms['"+formName+"'].submit();");
> +        context.append("document.forms[formName].submit();");
>          context.append("}");
>          //return false, so that browser does not handle the click
>          context.append("return false;");
> @@ -1075,10 +1107,18 @@
>       */
>      public static String getClearHiddenCommandFormParamsFunctionName(
>          String formName) {
> -        return 
JavascriptUtils.getValidJavascriptNameAsInRI(CLEAR_HIDDEN_FIELD_FN_NAME
> -            + "_"
> -            + formName
> -            .replace(NamingContainer.SEPARATOR_CHAR, '_'));
> +        if(formName == null)
> +        {
> +            return "'" +CLEAR_HIDDEN_FIELD_FN_NAME
> +                + 
"_'+formName.replace('"+NamingContainer.SEPARATOR_CHAR+"','_')";
> +        }
> +         else
> +        {
> +            return 
JavascriptUtils.getValidJavascriptNameAsInRI(CLEAR_HIDDEN_FIELD_FN_NAME
> +                + "_"
> +                + formName
> +                .replace(NamingContainer.SEPARATOR_CHAR, '_'));
> +        }
>      }
>
>      /**
>
> Modified: 
myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/util/JavascriptUtils.java
> URL: 
http://svn.apache.org/viewvc/myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/util/JavascriptUtils.java?view=diff&rev=442124&r1=442123&r2=442124
> ==============================================================================
> --- 
myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/util/JavascriptUtils.java
 (original)
> +++ 
myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/util/JavascriptUtils.java
 Mon Sep 11 01:31:53 2006
> @@ -285,13 +285,26 @@
>
>      public static void 
appendAutoScrollAssignment(HtmlRendererUtils.ScriptContext scriptContext, String 
formName)
>      {
> -        scriptContext.prettyLine();
> -        
scriptContext.append("if(window."+AUTO_SCROLL_FUNCTION+"!=undefined)");
> -        scriptContext.append("{");
> -        
scriptContext.append("document.forms['").append(formName).append("']");
> -        
scriptContext.append(".elements['").append(AUTO_SCROLL_PARAM).append("']");
> -        
scriptContext.append(".value=").append(AUTO_SCROLL_FUNCTION).append("();");
> -        scriptContext.append("}");
> +        if(formName == null)
> +        {
> +            scriptContext.prettyLine();
> +            
scriptContext.append("if(window."+AUTO_SCROLL_FUNCTION+"!=undefined)");
> +            scriptContext.append("{");
> +            scriptContext.append("document.forms[formName]");
> +            
scriptContext.append(".elements['").append(AUTO_SCROLL_PARAM).append("']");
> +            
scriptContext.append(".value=").append(AUTO_SCROLL_FUNCTION).append("();");
> +            scriptContext.append("}");
> +        }
> +        else
> +        {
> +            scriptContext.prettyLine();
> +            
scriptContext.append("if(window."+AUTO_SCROLL_FUNCTION+"!=undefined)");
> +            scriptContext.append("{");
> +            
scriptContext.append("document.forms['").append(formName).append("']");
> +            
scriptContext.append(".elements['").append(AUTO_SCROLL_PARAM).append("']");
> +            
scriptContext.append(".value=").append(AUTO_SCROLL_FUNCTION).append("();");
> +            scriptContext.append("}");
> +        }
>      }
>
>      /**
>
>
>



--

http://www.irian.at

Your JSF powerhouse -
JSF Consulting, Development and
Courses in English and German

Professional Support for Apache MyFaces

Reply via email to