Author: woonsan
Date: Tue May 25 08:48:08 2010
New Revision: 947963

URL: http://svn.apache.org/viewvc?rev=947963&view=rev
Log:
JS2-1194: Adding page refresh option when adding a portlet by the metadata 
value of "jetui.refresh.page.on.add.portle" of a portlet definition.
When the metadata is true, the toolbox portlet will refresh the page.

Modified:
    
portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp

Modified: 
portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp?rev=947963&r1=947962&r2=947963&view=diff
==============================================================================
--- 
portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp
 (original)
+++ 
portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp
 Tue May 25 08:48:08 2010
@@ -412,11 +412,27 @@ YUI().use('jetui-portal', 'io', 'json', 
             var nameNode = clone.one('div');
             var portletDisplayName = def.displayNames[0].value;
             nameNode.setContent(portletDisplayName);
-
+            
+            var refreshOnAdd = false;
+            var metadataFields = def.metadata.fields;
+            if (metadataFields) {
+                for (var j = 0; j < metadataFields.length; j++) {
+                    var field = metadataFields[j];
+                    if (field.name == "jetui.refresh.page.on.add.portlet") {
+                        refreshOnAdd = ("TRUE" == ("" + 
field.value).toUpperCase());
+                        break;
+                    }
+                }
+            }
+            
             <c:choose>
                    <c:when test="${editAccess}">
                        var addLink = clone.one("[name='add']");
-                       
Y.Node.getDOMNode(addLink).setAttribute("portletUniqueName", def.uniqueName);
+                       var addLinkNode = Y.Node.getDOMNode(addLink);
+                       addLinkNode.setAttribute("portletUniqueName", 
def.uniqueName);
+                       if (refreshOnAdd) {
+                           addLinkNode.setAttribute("refreshOnAdd", "" + 
refreshOnAdd);
+                       }
                        addLink.on("click", addPortlet);
                    </c:when>
                    <c:otherwise>
@@ -523,6 +539,7 @@ YUI().use('jetui-portal', 'io', 'json', 
         var id = id;
         var data = o.responseText;
         var dataOut = null;
+        var refreshOnAdd = args.complete[0];
 
         try {
             dataOut = Y.JSON.parse(data);
@@ -534,9 +551,9 @@ YUI().use('jetui-portal', 'io', 'json', 
             Y.log("Error: " + e.message);
             return;
         }
-
+        
         var portal = (JETUI_YUI ? JETUI_YUI.getPortalInstance() : null);
-        if (portal) {
+        if (portal && !refreshOnAdd) {
                portal.addPortlet(dataOut);
         } else {
             location.href = location.href;
@@ -546,11 +563,13 @@ YUI().use('jetui-portal', 'io', 'json', 
     var addPortlet = function(e) {
         var a = Y.Node.getDOMNode(e.target);
         var portletUniqueName = a.getAttribute("portletUniqueName");
+        var refreshOnAdd = ("true" == a.getAttribute("refreshOnAdd"));
 
         if (portletUniqueName) {
             var uri = 
"${portalContextPath}/services/pagelayout/fragment/portlet/" + 
portletUniqueName + "/?_type=json";
             var config = {
                     on: { complete: onAddPortletComplete },
+                    arguments: { complete: [ refreshOnAdd ] },
                     method: "POST",
                     headers: { "X-Portal-Path" : "${portalPagePath}" },
                     data: "minrowscol=true"



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscr...@portals.apache.org
For additional commands, e-mail: jetspeed-dev-h...@portals.apache.org

Reply via email to