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: [email protected]
For additional commands, e-mail: [email protected]