Author: woonsan
Date: Tue Dec 15 12:02:53 2009
New Revision: 890773

URL: http://svn.apache.org/viewvc?rev=890773&view=rev
Log:
JS2-1084: Fixing close button action just after adding a portlet window.

Modified:
    
portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/javascript/jetspeed/jetui/jetui-portal.js
    
portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/jetui/engine/portal.js

Modified: 
portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/javascript/jetspeed/jetui/jetui-portal.js
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/javascript/jetspeed/jetui/jetui-portal.js?rev=890773&r1=890772&r2=890773&view=diff
==============================================================================
--- 
portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/javascript/jetspeed/jetui/jetui-portal.js
 (original)
+++ 
portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/javascript/jetspeed/jetui/jetui-portal.js
 Tue Dec 15 12:02:53 2009
@@ -236,27 +236,85 @@
         },
         
         /**
+         * @method onPortletRemoveComplete
+         */
+        onPortletRemoveComplete : function(id, o, args) {
+            var id = id; // Transaction ID.
+            var data = o.responseText; // Response data. 
+            var windowId = args.complete[0];
+            var window = Y.one("[id='" + windowId + "']");
+            if (window) {
+                var parent = window.get('parentNode');
+                window.remove();
+                if (parent.get('children').size() == 0)
+                {
+                    var drop = new Y.DD.Drop({
+                        node: parent,
+                        groups: ['portlets']            
+                    });
+                }
+            }
+        },
+        
+        /**
+         * @method removePortlet
+         */
+        removePortlet : function(e) {
+            if (!JETUI_YUI || !JETUI_YUI.portalInstance)
+                return;
+            var portal = JETUI_YUI.portalInstance;
+            var windowId = null;
+            if (e instanceof String) {
+                windowId = e;
+            } else {
+                var windowId = e.currentTarget.getAttribute("id");
+                windowId = windowId.replace(/^jetspeed-close-/, "");
+            }
+            var uri = portal.portalContextPath + 
"/services/pagelayout/fragment/" + windowId + "/?_type=json";
+            var config = {
+                    on: { complete: portal.onPortletRemoveComplete },
+                    method: "DELETE",
+                    headers: { "X-Portal-Path" : portal.portalPagePath },
+                    arguments: { complete: [ windowId ] }
+                };
+            var request = Y.io(uri, config);
+        },
+        
+        /**
          * @method onPortletRenderComplete
          */
         onPortletRenderComplete : function(id, o, args) {
+            if (!JETUI_YUI || !JETUI_YUI.portalInstance)
+                return;
+            var portal = JETUI_YUI.portalInstance;
             var id = id;
             var v = args.complete;
-            var data = o.responseText;
-            var title = o.getResponseHeader("JS_PORTLET_TITLE");
-            var children = v.getElementsByTagName("DIV");
+            var windowId = v.get("id");
+            var titleElem = null;
+            var closeElem = null;
+            var contentElem = null;
+            var children = v.getElementsByTagName("*");
             children.each(function(v, k) {
                 if (v.hasClass("PTitleContent")) {
-                    v.setContent(title);
+                    titleElem = v;
                 } else if (v.hasClass("PContent")) {
-                    v.setContent(data);
+                    contentElem = v;
+                } else if (/^jetspeed-close/.test("" + v.get("id"))) {
+                    closeElem = v;
                 }
             });
-            children = v.getElementsByTagName("H2");
-            children.each(function(v, k) {
-                if (v.hasClass("PTitleContent")) {
-                    v.setContent(title);
-                }
-            });            
+            var title = o.getResponseHeader("JS_PORTLET_TITLE");
+            if (titleElem) {
+                titleElem.setContent(title);
+            }
+            if (closeElem) {
+                closeElem.setAttribute("id", "jetspeed-close-" + windowId);
+                closeElem.on('click', portal.removePortlet);
+            }
+            var portletContent = o.responseText;
+            if (contentElem) {
+                contentElem.setContent(portletContent);
+            }
         },
         
         /**
@@ -274,6 +332,7 @@
             v.setAttribute("name", fragment.name);
             v.setAttribute("row", fragment.properties.row);
             v.setAttribute("column", fragment.properties.column);
+            
             var portlet = Y.JetUI.Portlet.attach(v);
             var dragGroups = ['portlets'];
             var dragMode = 'intersect';
@@ -298,7 +357,6 @@
             var uri = portal.portalContextPath + "/portlet" + 
portal.portalPagePath + "?entity=" + fragment.id;
             var request = Y.io(uri, { on: { complete: 
this.onPortletRenderComplete }, arguments: { complete: v } } );
         }
-        
     });
     
     /**

Modified: 
portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/jetui/engine/portal.js
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/jetui/engine/portal.js?rev=890773&r1=890772&r2=890773&view=diff
==============================================================================
--- 
portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/jetui/engine/portal.js
 (original)
+++ 
portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/jetui/engine/portal.js
 Tue Dec 15 12:02:53 2009
@@ -176,42 +176,10 @@
                });
         }
     });
-
-    var onRemoveComplete = function(id, o, args) { 
-       var id = id; // Transaction ID. 
-       var data = o.responseText; // Response data. 
-       var windowId = args.complete[0];
-       var window = Y.one("[id='" + windowId + "']");
-       if (window) {
-               var parent = window.get('parentNode');
-               window.remove();
-               if (parent.get('children').size() == 0)
-               {
-                       var drop = new Y.DD.Drop({
-                       node: parent,
-                       groups: ['portlets']            
-                       });
-               }
-       }
-    };
     
-    var onClickRemove = function(e) {
-        var portal = JETUI_YUI.portalInstance;
-        var windowId =  e.currentTarget.getAttribute('id');
-        windowId = windowId.replace("jetspeed-close-", "");
-        var uri = portal.portalContextPath + "/services/pagelayout/fragment/" 
+ windowId + "/?_type=json";
-        var config = {
-                on: { complete: onRemoveComplete },
-                method: "DELETE",
-                headers: { "X-Portal-Path" : portal.portalPagePath },
-                arguments: { complete: [ windowId ] }
-            };
-        var request = Y.io(uri, config);
-    };
-
     var closeWindows = Y.Node.all('.portlet-action-close');
     closeWindows.each(function(v, k) {
-        v.on('click', onClickRemove);
+        v.on('click', portal.removePortlet);
     });
         
        Y.DD.DDM.on('drag:drophit', function(e) {



---------------------------------------------------------------------
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