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