You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by ta...@apache.org on 2006/11/12 00:55:26 UTC

svn commit: r473830 - /portals/jetspeed-2/trunk/src/webapp/javascript/jetspeed/desktop/core.js

Author: taylor
Date: Sat Nov 11 15:55:26 2006
New Revision: 473830

URL: http://svn.apache.org/viewvc?view=rev&rev=473830
Log:
implemented jetspeed.om.PortletSelectorSearchContentListener for new Category Portlet Selector (not yet committed)

Modified:
    portals/jetspeed-2/trunk/src/webapp/javascript/jetspeed/desktop/core.js

Modified: portals/jetspeed-2/trunk/src/webapp/javascript/jetspeed/desktop/core.js
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/src/webapp/javascript/jetspeed/desktop/core.js?view=diff&rev=473830&r1=473829&r2=473830
==============================================================================
--- portals/jetspeed-2/trunk/src/webapp/javascript/jetspeed/desktop/core.js (original)
+++ portals/jetspeed-2/trunk/src/webapp/javascript/jetspeed/desktop/core.js Sat Nov 11 15:55:26 2006
@@ -213,7 +213,7 @@
         windowParams[ jetspeed.id.PORTLET_PROP_TOP ] = "0";
         windowParams[ jetspeed.id.PORTLET_PROP_EXCLUDE_PCONTENT ] = false;
         windowParams[ jetspeed.id.PORTLET_PROP_CONTENT_RETRIEVER ] = new jetspeed.om.DojoDebugContentRetriever();
-        windowParams[ jetspeed.id.PORTLET_PROP_WINDOW_STATE ] = "minimized" ;
+//        windowParams[ jetspeed.id.PORTLET_PROP_WINDOW_STATE ] = "minimized" ;
         var pwWidgetParams = jetspeed.widget.PortletWindow.prototype.staticDefineAsAltInitParameters( null, windowParams );
         jetspeed.ui.createPortletWindow( pwWidgetParams );
         pwWidgetParams.retrieveContent( null, null );
@@ -480,6 +480,16 @@
     jetspeed.url.retrieveContent( { url: getPortletsUrl, mimetype: mimetype }, contentListener, ajaxApiContext, jetspeed.debugContentDumpIds );
 };
 
+jetspeed.searchForPortletDefinitions = function(filter, catPortlets)
+{
+    var contentListener = new jetspeed.om.PortletSelectorSearchContentListener(catPortlets);
+    var queryString = "?action=getportlets&filter=" + filter;
+    var getPortletsUrl = jetspeed.url.basePortalUrl() + jetspeed.url.path.AJAX_API + queryString ;
+    var mimetype = "text/xml";
+    var ajaxApiContext = new jetspeed.om.Id( "getportlets", { } );
+    jetspeed.url.retrieveContent( { url: getPortletsUrl, mimetype: mimetype }, contentListener, ajaxApiContext, jetspeed.debugContentDumpIds );
+};
+
 jetspeed.addNewPortletDefinition = function( /* jetspeed.om.PortletDef */ portletDef, windowWidgetId, /* String */ psmlUrl )
 {
     var addToCurrentPage = true;
@@ -2656,11 +2666,12 @@
 });
 
 // ... jetspeed.om.PortletDef
-jetspeed.om.PortletDef = function( /* String */ portletName, /* String */ portletDisplayName, /* String */ portletDescription )
+jetspeed.om.PortletDef = function( /* String */ portletName, /* String */ portletDisplayName, /* String */ portletDescription, /* String */ portletImage)
 {
     this.portletName = portletName;
     this.portletDisplayName = portletDisplayName;
     this.portletDescription = portletDescription;
+    this.image = portletImage;
 };
 dojo.inherits( jetspeed.om.PortletDef, jetspeed.om.Id);
 dojo.lang.extend( jetspeed.om.PortletDef,
@@ -2668,6 +2679,7 @@
     portletName: null,
     portletDisplayName: null,
     portletDescription: null,
+    portletImage: null,
     getId: function()  // jetspeed.om.Id protocol
     {
         return this.portletName;
@@ -3209,8 +3221,73 @@
         var portletName = node.getAttribute( "name" );
         var portletDisplayName = node.getAttribute( "displayName" );
         var portletDescription = node.getAttribute( "description" );
+        var portletImage = node.getAttribute( "image" );
+        return new jetspeed.om.PortletDef( portletName, portletDisplayName, portletDescription, portletImage ) ;
+    }
+});
+
+// ... jetspeed.om.PortletSelectorSearchContentListener
+jetspeed.om.PortletSelectorSearchContentListener = function(finishedFunction)
+{
+    this.notifyFinished = finishedFunction;
+};
+dojo.lang.extend( jetspeed.om.PortletSelectorSearchContentListener,
+{
+    notifySuccess: function( /* XMLDocument */ data, /* String */ requestUrl, domainModelObject )
+    {
+        var portletList = this.parsePortlets( data );
+        if ( dojo.lang.isFunction( this.notifyFinished ) )
+        {
+            this.notifyFinished( domainModelObject, portletList );
+        }
+    },
+    notifyFailure: function( /* String */ type, /* String */ error, /* String */ requestUrl, domainModelObject )
+    {
+        dojo.raise( "PortletSelectorAjaxApiContentListener error [" + domainModelObject.toString() + "] url: " + requestUrl + " type: " + type + " error: " + error );
+    },
+
+    parsePortlets: function( /* XMLNode */ node )
+    {
+        var portletList = [];
+        var jsElements = node.getElementsByTagName( "js" );
+        if ( ! jsElements || jsElements.length > 1 )
+            dojo.raise( "unexpected zero or multiple <js> elements in portlet selector xml" );
+        var children = jsElements[0].childNodes;
         
-        return new jetspeed.om.PortletDef( portletName, portletDisplayName, portletDescription ) ;
+        for ( var i = 0 ; i < children.length ; i++ )
+        {
+            var child = children[i];
+            if ( child.nodeType != dojo.dom.ELEMENT_NODE )
+                continue;
+            var childLName = child.nodeName;
+            if ( childLName == "portlets" )
+            {
+                var portletsNode = child ;
+                var portletChildren = portletsNode.childNodes ;
+                for ( var pI = 0 ; pI < portletChildren.length ; pI++ )
+                {
+                    var pChild = portletChildren[pI];
+                    if ( pChild.nodeType != dojo.dom.ELEMENT_NODE )
+                        continue;
+                    var pChildLName = pChild.nodeName;
+                    if ( pChildLName == "portlet" )
+                    {
+                        var portletDef = this.parsePortletElement( pChild );
+                        //dojo.debug( "parsePortlets  portletDef  name=" + portletDef.getPortletName() + "  displayName=" + portletDef.getPortletDisplayName() + "  description=" + portletDef.getPortletDescription() ) ;
+                        portletList.push( portletDef ) ;
+                    }
+                }
+            }
+        }
+        return portletList ;
+    },
+    parsePortletElement: function( /* XMLNode */ node )
+    {
+        var portletName = node.getAttribute( "name" );
+        var portletDisplayName = node.getAttribute( "displayName" );
+        var portletDescription = node.getAttribute( "description" );
+        var portletImage = node.getAttribute( "image" );
+        return new jetspeed.om.PortletDef( portletName, portletDisplayName, portletDescription, portletImage ) ;
     }
 });
 



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