You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by gm...@apache.org on 2007/01/28 16:19:09 UTC

svn commit: r500808 - in /myfaces/tomahawk/trunk/sandbox/core/src/main: java/org/apache/myfaces/custom/ppr/ resources/org/apache/myfaces/custom/ppr/resource/ tld/

Author: gmuellan
Date: Sun Jan 28 07:19:08 2007
New Revision: 500808

URL: http://svn.apache.org/viewvc?view=rev&rev=500808
Log:
Added new attribute "showDebugMessages" to ppr in order to get rid of ugly js-alert messages in production environments.

Modified:
    myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroup.java
    myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroupRenderer.java
    myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroupTag.java
    myfaces/tomahawk/trunk/sandbox/core/src/main/resources/org/apache/myfaces/custom/ppr/resource/ppr.js
    myfaces/tomahawk/trunk/sandbox/core/src/main/tld/myfaces_sandbox.tld

Modified: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroup.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroup.java?view=diff&rev=500808&r1=500807&r2=500808
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroup.java (original)
+++ myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroup.java Sun Jan 28 07:19:08 2007
@@ -40,7 +40,9 @@
 	
 	private String _inlineLoadingMessage;
 
-	public PPRPanelGroup()
+    private Boolean _showDebugMessages = new Boolean(false);
+
+    public PPRPanelGroup()
 	{
 		setRendererType(DEFAULT_RENDERER_TYPE);
 	}
@@ -98,7 +100,22 @@
 		this._inlineLoadingMessage = inlineLoadingMessage;
 	}
 
-	public void restoreState(FacesContext context, Object state)
+    public Boolean getShowDebugMessages()
+    {
+         if (_showDebugMessages != null)
+        {
+            return _showDebugMessages;
+        }
+        ValueBinding vb = getValueBinding("showDebugMessages");
+        return vb != null ? (Boolean) vb.getValue(getFacesContext()) : null;
+    }
+
+    public void setShowDebugMessages(Boolean showDebugMessages)
+    {
+        _showDebugMessages = showDebugMessages;
+    }
+
+    public void restoreState(FacesContext context, Object state)
 	{
 
 		Object[] values = (Object[]) state;
@@ -106,16 +123,18 @@
 		_partialTriggers = (String) values[1];
 		_partialTriggerPattern = (String) values[2];
         _periodicalUpdate = (Integer) values[3];
+        _showDebugMessages = (Boolean) values[4];
 
     }
 
 	public Object saveState(FacesContext context)
 	{
-		Object[] values = new Object[4];
+		Object[] values = new Object[5];
 		values[0] = super.saveState(context);
 		values[1] = _partialTriggers;
 		values[2] = _partialTriggerPattern;
         values[3] = _periodicalUpdate;
+        values[4] = _showDebugMessages;
         return values;
 	}
 }

Modified: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroupRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroupRenderer.java?view=diff&rev=500808&r1=500807&r2=500808
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroupRenderer.java (original)
+++ myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroupRenderer.java Sun Jan 28 07:19:08 2007
@@ -66,7 +66,7 @@
 		FormInfo fi = RendererUtils.findNestingForm(pprGroup, facesContext);
 		if (fi == null)
 		{
-			throw new FacesException("PPRPanelGroup must be embedded in an form.");
+			throw new FacesException("PPRPanelGroup must be embedded in a form.");
 		}
 
 		if (!facesContext.getExternalContext().getRequestMap().containsKey(PPR_INITIALIZED))
@@ -85,6 +85,9 @@
 				PPRPanelGroup.class,
 				PPR_JS_FILE);
         }
+
+        StringBuffer script = new StringBuffer();
+        String pprCtrlReference = "dojo.byId('"+ fi.getFormName() + "').myFacesPPRCtrl";
         
         if (!facesContext.getExternalContext().getRequestMap().containsKey(PPR_INITIALIZED  +
                     "." +
@@ -95,20 +98,20 @@
                     fi.getFormName(),
                     Boolean.TRUE);
 
-            renderInlineScript(facesContext, pprGroup,
-                    "dojo.byId('" +
-                    fi.getFormName() +
-                    "').myFacesPPRCtrl =" +
-                    MY_FACES_PPR_INIT_CODE + "('" + fi.getFormName() + "');");
+            script.append(pprCtrlReference + "=" +
+                    MY_FACES_PPR_INIT_CODE + "('" + fi.getFormName() + "',"+ pprGroup.getShowDebugMessages().booleanValue()+");\n");
+
+            renderInlineScript(facesContext, pprGroup, script.toString());
         }
 
         String clientId = pprGroup.getClientId(facesContext);
 
         if (pprGroup.getPeriodicalUpdate() != null)
         {
-            String script = "dojo.byId('"+ fi.getFormName() + "').myFacesPPRCtrl.startPeriodicalUpdate("+ pprGroup.getPeriodicalUpdate() +",'"+ clientId +"');";
+            script = new StringBuffer();
+            script.append(pprCtrlReference + ".startPeriodicalUpdate("+ pprGroup.getPeriodicalUpdate() +",'"+ clientId +"');");
 
-            renderInlineScript(facesContext, pprGroup, script);
+            renderInlineScript(facesContext, pprGroup, script.toString());
         }
 
         String partialTriggerId;
@@ -120,32 +123,23 @@
 		String partialTriggerPattern = pprGroup.getPartialTriggerPattern();
 		if(partialTriggerPattern != null && partialTriggerPattern.trim().length()>0) 
 		{
-			renderInlineScript(facesContext, pprGroup,
-                    "dojo.byId('" +
-                    fi.getFormName() +
-                    "').myFacesPPRCtrl." +
-                    ADD_PARTIAL_TRIGGER_PATTERN_FUNCTION +
-						"('" +
-						partialTriggerPattern +
-						"','" +
-						clientId +
-						"');");
+            script = new StringBuffer();
+            script.append(pprCtrlReference + "." + ADD_PARTIAL_TRIGGER_PATTERN_FUNCTION +
+						    "('" + partialTriggerPattern + "','" + clientId + "');");
+
+            renderInlineScript(facesContext, pprGroup, script.toString());
 		}
 		
 		String inlineLoadingMessage = pprGroup.getInlineLoadingMessage();
 		
 		if(inlineLoadingMessage!= null && inlineLoadingMessage.trim().length()>0)
 		{
-			renderInlineScript(facesContext, pprGroup,
-                    "dojo.byId('" +
-                    fi.getFormName() +
-                    "').myFacesPPRCtrl." +
-                    ADD_INLINE_LOADING_MESSAGE_FUNCTION +
-						"('" +
-						inlineLoadingMessage +
-						"','" +
-						clientId +
-						"');");
+            script = new StringBuffer();
+            script.append(pprCtrlReference + "." + ADD_INLINE_LOADING_MESSAGE_FUNCTION +
+						        "('" + inlineLoadingMessage + "','" + clientId + "');");
+
+            renderInlineScript(facesContext, pprGroup, script.toString());
+
 		}
 		
 		if(partialTriggers!= null && partialTriggers.trim().length()>0)
@@ -162,16 +156,12 @@
 				if (partialTriggerComponent != null)
 				{
 					partialTriggerClientId = partialTriggerComponent.getClientId(facesContext);
-					renderInlineScript(facesContext, pprGroup,
-	                    "dojo.byId('" +
-	                    fi.getFormName() +
-	                    "').myFacesPPRCtrl." +
-	                    ADD_PARTIAL_TRIGGER_FUNCTION +
-							"('" +
-							partialTriggerClientId +
-							"','" +
-							clientId +
-							"');");
+                    script = new StringBuffer();
+                    script.append(pprCtrlReference + "." + ADD_PARTIAL_TRIGGER_FUNCTION +
+							            "('" + partialTriggerClientId + "','" + clientId + "');");
+
+                    renderInlineScript(facesContext, pprGroup, script.toString());
+
 				}
 				else
 				{

Modified: myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroupTag.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroupTag.java?view=diff&rev=500808&r1=500807&r2=500808
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroupTag.java (original)
+++ myfaces/tomahawk/trunk/sandbox/core/src/main/java/org/apache/myfaces/custom/ppr/PPRPanelGroupTag.java Sun Jan 28 07:19:08 2007
@@ -35,6 +35,8 @@
 
     private String _periodicalUpdate;
 
+    private String _showDebugMessages;
+
     public String getComponentType()
 	{
 		return PPRPanelGroup.COMPONENT_TYPE;
@@ -50,6 +52,7 @@
 		super.release();
 		_partialTriggers = null;
         _periodicalUpdate = null;
+        _showDebugMessages = null;
     }
 
 	protected void setProperties(UIComponent component)
@@ -60,6 +63,7 @@
 		setStringProperty(component, "partialTriggerPattern", _partialTriggerPattern);
 		setStringProperty(component, "inlineLoadingMessage", _inlineLoadingMessage);
         setIntegerProperty(component,"periodicalUpdate", _periodicalUpdate);
+        setBooleanProperty(component, "showDebugMessages", _showDebugMessages);
     }
 
 	public String getPartialTriggers()
@@ -91,5 +95,11 @@
     public void setPeriodicalUpdate(String periodicalUpdate)
     {
         _periodicalUpdate = periodicalUpdate;
+    }
+
+
+    public void setShowDebugMessages(String showDebugMessages)
+    {
+        _showDebugMessages = showDebugMessages;
     }
 }

Modified: myfaces/tomahawk/trunk/sandbox/core/src/main/resources/org/apache/myfaces/custom/ppr/resource/ppr.js
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core/src/main/resources/org/apache/myfaces/custom/ppr/resource/ppr.js?view=diff&rev=500808&r1=500807&r2=500808
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core/src/main/resources/org/apache/myfaces/custom/ppr/resource/ppr.js (original)
+++ myfaces/tomahawk/trunk/sandbox/core/src/main/resources/org/apache/myfaces/custom/ppr/resource/ppr.js Sun Jan 28 07:19:08 2007
@@ -16,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+
 //Declare the myfaces package in the JS Context
 
 dojo.provide("org.apache.myfaces");
@@ -24,8 +25,10 @@
 
 //Define the Partial Page Rendering Controller Class
 
-org.apache.myfaces.PPRCtrl = function(formId)
+org.apache.myfaces.PPRCtrl = function(formId, showDebugMessages)
 {
+    org.apache.myfaces.PPRCtrl.showDebugMessages = showDebugMessages;
+                                
     if(typeof window.myFacesPartialTriggers == "undefined")
 	{
     	window.myFacesPartialTriggers = new Array;
@@ -38,6 +41,7 @@
 	{
     	window.myFacesInlineLoadingMessage = new Array;
     }
+
     this.replaceFormSubmitFunction(formId);
 
     this.addButtonOnClickHandlers();
@@ -72,7 +76,7 @@
     }
 };
 
-// starting point of automatically partial page refresh
+// init function of automatically partial page refresh
 
 org.apache.myfaces.PPRCtrl.prototype.startPeriodicalUpdate = function(refreshTimeout, refreshZoneId)
 {
@@ -85,7 +89,7 @@
 //Callback Method which handles the AJAX Response
 
 org.apache.myfaces.PPRCtrl.prototype.handleCallback = function(type, data, evt)
-{
+{      
     if(type == "load")
     {
 	    var componentUpdates = data.getElementsByTagName("component");
@@ -93,7 +97,7 @@
 	    var domElement = null;
 		for (var i = 0; i < componentUpdates.length; i++)
 		{
-			componentUpdate = componentUpdates[i];
+			componentUpdate = componentUpdates[i];           
 			domElement = dojo.byId(componentUpdate.getAttribute("id"));
 			//todo - doesn't work with tables in IE
 			domElement.innerHTML = componentUpdate.firstChild.data;
@@ -105,7 +109,7 @@
 	    
 		if(stateElem)
 		{
-			var stateUpdate = dojo.dom.firstElement(stateElem,'INPUT');
+            var stateUpdate = dojo.dom.firstElement(stateElem,'INPUT');
 		
 			if(stateUpdate)
 			{
@@ -123,13 +127,13 @@
 						domElement.value = stateUpdate.getAttribute('value');
 					}
 				}
-				else if (stateUpdateId !='jsf_tree')
+				else if (stateUpdateId !='jsf_tree' && org.apache.myfaces.PPRCtrl.showDebugMessages)
 					alert("server didn't return appropriate element for state-update. returned element-id: "+
 						  stateUpdate.getAttribute('id')+", value : "+stateUpdate.getAttribute('value'));
 			}
 		}
-    }
-    else
+    } 
+    else if(org.apache.myfaces.PPRCtrl.showDebugMessages)
     {
         alert("an Error occured during the ajax-request " + data.message);
     }
@@ -265,7 +269,8 @@
 org.apache.myfaces.PPRCtrl.prototype.replaceFormSubmitFunction = function(formId)
 {
     this.form = dojo.byId(formId);
-    if(typeof this.form == "undefined" || this.form.tagName.toLowerCase() != "form")
+    if( (typeof this.form == "undefined" || this.form.tagName.toLowerCase() != "form")
+            && org.apache.myfaces.PPRCtrl.showDebugMessages)
     {
         alert("MyFaces PPR Engine: Form with id:" + formId + " not found!");
         return;

Modified: myfaces/tomahawk/trunk/sandbox/core/src/main/tld/myfaces_sandbox.tld
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox/core/src/main/tld/myfaces_sandbox.tld?view=diff&rev=500808&r1=500807&r2=500808
==============================================================================
--- myfaces/tomahawk/trunk/sandbox/core/src/main/tld/myfaces_sandbox.tld (original)
+++ myfaces/tomahawk/trunk/sandbox/core/src/main/tld/myfaces_sandbox.tld Sun Jan 28 07:19:08 2007
@@ -1234,6 +1234,15 @@
                          No partialTriggers are needed. 
             </description>
         </attribute>
+        <attribute>
+			<name>showDebugMessages</name>
+			<required>false</required>
+			<rtexprvalue>false</rtexprvalue>
+			<type>java.lang.Boolean</type>
+            <description>If false, alert messages which can be fired after a ppr response are not displayed in the browser.
+                         May switched to true in test environments. Default: false
+            </description>
+        </attribute>
     </tag>
 
 	<tag>