You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-user@portals.apache.org by Jiri De Jagere <ji...@gmail.com> on 2013/07/10 15:36:42 UTC

List spaces for user in velocity macro

Hi,


I'm developing my own header and footer for a Jetspeed-based application. I've found the API calls to list the pages for a particular view, but I can't find how to list the available folders and links (spaces).

Could someone please point me in the right direction?


Thanks!


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


Re: List spaces for user in velocity macro

Posted by Jiri De Jagere <ji...@gmail.com>.
Thanks David!


I did not have the jetspeed-portlet.xml at all. Now it works.


Kind regards,


jiri

On 11 Jul 2013, at 17:37, David Taylor <da...@gmail.com> wrote:

> Make sure you have this declaration in your WEB-INF/jetspeed-portlet.xml
> descriptor:
> 
> <js:services>
>    <js:service name='SpacesService' />
>  </js:services>
> 
> 
> On Thu, Jul 11, 2013 at 7:40 AM, Jiri De Jagere <ji...@gmail.com> wrote:
> 
>> Hi David and all,
>> 
>> 
>> As David recommended I'm looking at the portlet approach rather than the
>> velocity extension.
>> 
>> I've been trying to reproduce a subset of the j2-admin spaces
>> functionality (list only). My portlet has the following code in its init
>> method, very similar to the j2-admin SpacesList portlet.
>> 
>> 
>> 
>> PortletContext ctx = getPortletContext();
>> spacesService = (Spaces)
>> ctx.getAttribute(CommonPortletServices.CPS_SPACES_SERVICE);
>> 
>> if (spacesService == null)
>> {
>>        throw new PortletException("Could not get instance of portal
>> spaces service component");
>> }
>> 
>> 
>> 
>> Unfortunately for me the spacesService always results in null. I can't
>> seem to access any of the Jetspeed services. Do I require any additional
>> configuration?
>> 
>> Any suggestions?
>> 
>> 
>> Thanks!
>> 
>> 
>> jiri
>> 
>> On 10 Jul 2013, at 19:57, Jiri De Jagere <ji...@gmail.com> wrote:
>> 
>>> Thank you David.
>>> 
>>> I had found the pages example. I'll consider either developing my own
>> portlet to produce the html I need or the extension approach as you
>> suggested.
>>> 
>>> 
>>> Kind regards,
>>> 
>>> 
>>> Jiri
>>> 
>>> On 10 Jul 2013, at 19:30, David Taylor <da...@gmail.com>
>> wrote:
>>> 
>>>> This response is probably much more info than you need, sorry for
>>>> blabbering on, but thought some background might help...
>>>> 
>>>> In version 2.2.1, we introduced Spaces, the Space and PageNavigators,
>> and
>>>> the new JetUI framework. One of the differences between the old layout
>>>> approach, and the new spaces/navigator approach, is navigations. With
>> the
>>>> old layout approach, menus, and navigations are all provided via the
>>>> SiteManager, which in turn filters your view of the site navigations
>> using
>>>> the Jetspeed Profile. So in layouts, you will often see macros like
>>>> #PageMenu (shown below) using the $site context variable. All the
>>>> navigational menus are preprocessed by the SiteManager, and Profiler,
>>>> before returning their result. With 2.2.1, and the introduction of Space
>>>> navigation, spaces bypassed the Site Manager and went directly to  the
>>>> PageManager API, retrieving folders underneath spaces. The idea was to
>>>> simplify the entire view of the portal. So... if you want to use spaces,
>>>> you usually configure your portal, during the initial custom build of
>> your
>>>> portal, to use the Jetui pipeline
>>>> 
>>>> mvn jetspeed:mvn -Dtarget=ui
>>>> 
>>>> or
>>>> 
>>>> mvn jetspeed:mvn -Dtarget=min-ui
>>>> 
>>>> 
>>>> where as, if you were to create a project based on the original layouts,
>>>> you would do:
>>>> 
>>>> mvn jetspeed:mvn -Dtarget=demo
>>>> 
>>>> or
>>>> 
>>>> mvn jetspeed:mvn -Dtarget=min
>>>> 
>>>> 
>>>> What Im getting at here is the old layouts don't make the spaces model
>>>> available to you. In fact, they use completely different folder roots as
>>>> you can see here
>>>> 
>> http://svn.apache.org/viewvc/portals/jetspeed-2/portal/tags/JETSPEED-RELEASE-2.2.2/applications/jetspeed/src/main/webapp/WEB-INF/there
>>>> are actually 4 folder trees, 2 for jetui, 2 for original site manager
>>>> 
>>>> So if you want to use Spaces without the Jetui build, and with old
>> layouts,
>>>> Its  definitely possible, but would take some extension work. You would
>>>> need to make the Space manager available to your decorators as a
>> velocity
>>>> context variable ...
>>>> 
>>>> Note that the Jetui pipeline, which supports spaces, only makes use of
>> the
>>>> decorator CSS, not the actual vm code for decorators. One of the
>>>> motivations behind Jetui was to simplify Jetspeed - and use simple
>> portlets
>>>> for layout and decorator code without introducing extra technologies
>> like
>>>> learning about Jetpseed layouts and decorators
>>>> 
>>>> 
>>>> #macro(PagesMenu)
>>>> #set($_pages = $site.getMenu("pages").elements)
>>>> <div id="pages-menu" class="menu">#foreach($_page in $_pages)
>>>> #if($_page.isSelected($site))
>>>>  #set($_cssClass = "link page-link selected")
>>>> #else
>>>>  #set($_cssClass = "link page-link")
>>>> #end
>>>> <a href="portal${_page.url}" class="$!{_cssClass}"
>>>> 
>> title="${_page.getTitle($preferedLocale)}">$_page.getTitle($preferedLocale)</a><span
>>>> class="separator"></span>#end
>>>> </div>
>>>> #end
>>>> 
>>>> 
>>>> 
>>>> On Wed, Jul 10, 2013 at 9:23 AM, Jiri De Jagere <ji...@gmail.com>
>> wrote:
>>>> 
>>>>> Hi David,
>>>>> 
>>>>> 
>>>>> I had found the Jetspeed API docs and (think I) understand how to use
>>>>> them. The examples are quite useful. Thanks for those!
>>>>> 
>>>>> The challenge I have is that I'm trying to put my own responsive ui in
>>>>> front of Jetspeed. Because of that I would actually prefer a
>> velocity-based
>>>>> approach to work them into my header container. I have not yet
>> discovered
>>>>> how to access and use spaces and page manager from velocity though. If
>> you
>>>>> could share such an example, that would be really helpful!
>>>>> 
>>>>> 
>>>>> Kind regards,
>>>>> 
>>>>> 
>>>>> Jiri
>>>>> 
>>>>> On 10 Jul 2013, at 17:51, David Taylor <da...@gmail.com>
>> wrote:
>>>>> 
>>>>>> There are Javadocs online for all the Jetspeed API:
>>>>>> 
>>>>>> Spaces:
>>>>>> 
>>>>> 
>> http://portals.apache.org/jetspeed-2/apidocs/org/apache/jetspeed/spaces/Spaces.html
>>>>>> Page Manager (folders):
>>>>>> 
>>>>> 
>> http://portals.apache.org/jetspeed-2/apidocs/org/apache/jetspeed/page/PageManager.html
>>>>>> 
>>>>>> There are examples of using these APIs in the J2-Admin application.
>> For
>>>>>> example, the Spaces Manager is actually a portlet, not a layout:
>>>>>> 
>>>>>> 
>>>>> 
>> http://www.jarvana.com/jarvana/view/org/apache/portals/jetspeed-2/j2-admin/2.2.2/j2-admin-2.2.2.war!/WEB-INF/view/spaces/spaces-manager.jsp?format=ok
>>>>>> 
>>>>>> Portlet Applications can make use of Jetspeed API services by
>> declaring
>>>>> the
>>>>>> services they want to use in the jetspeed-portlet.xml deployment
>>>>> descriptor
>>>>>> 
>>>>>> <js:services>
>>>>>> <js:service name='PageManager' />
>>>>>> <js:service name='SpacesService' />
>>>>>> 
>>>>>> Then, in your portlet's init method, the portlet context provides
>> access
>>>>> to
>>>>>> all of your declared services:
>>>>>> (from org.apache.jetspeed.portlets.spaces.SpacesList portlet in
>> j2-admin
>>>>>> app):
>>>>>> 
>>>>>> public void init(PortletConfig config) throws PortletException
>>>>>> {
>>>>>>     super.init(config);
>>>>>>     PortletContext context = getPortletContext();
>>>>>>     spacesService = (Spaces)
>>>>>> context.getAttribute(CommonPortletServices.CPS_SPACES_SERVICE);
>>>>>> 
>>>>>> This is how the Space Manager was implemented in  Jetspeed 2.2.1. If
>> you
>>>>>> are more interested in developing your header with velocity templates
>> and
>>>>>> layouts, let me know, I can give examples of that approach too
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> On Wed, Jul 10, 2013 at 6:36 AM, Jiri De Jagere <ji...@gmail.com>
>>>>> wrote:
>>>>>> 
>>>>>>> Hi,
>>>>>>> 
>>>>>>> 
>>>>>>> I'm developing my own header and footer for a Jetspeed-based
>>>>> application.
>>>>>>> I've found the API calls to list the pages for a particular view,
>> but I
>>>>>>> can't find how to list the available folders and links (spaces).
>>>>>>> 
>>>>>>> Could someone please point me in the right direction?
>>>>>>> 
>>>>>>> 
>>>>>>> Thanks!
>>>>>>> 
>>>>>>> 
>>>>>>> Jiri
>>>>>>> ---------------------------------------------------------------------
>>>>>>> To unsubscribe, e-mail: jetspeed-user-unsubscribe@portals.apache.org
>>>>>>> For additional commands, e-mail:
>> jetspeed-user-help@portals.apache.org
>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> --
>>>>>> David
>>>>> 
>>>>> 
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: jetspeed-user-unsubscribe@portals.apache.org
>>>>> For additional commands, e-mail: jetspeed-user-help@portals.apache.org
>>>>> 
>>>>> 
>>>> 
>>>> 
>>>> --
>>>> David
>>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: jetspeed-user-unsubscribe@portals.apache.org
>> For additional commands, e-mail: jetspeed-user-help@portals.apache.org
>> 
>> 
> 
> 
> -- 
> David


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


Re: List spaces for user in velocity macro

Posted by David Taylor <da...@gmail.com>.
Make sure you have this declaration in your WEB-INF/jetspeed-portlet.xml
descriptor:

 <js:services>
    <js:service name='SpacesService' />
  </js:services>


On Thu, Jul 11, 2013 at 7:40 AM, Jiri De Jagere <ji...@gmail.com> wrote:

> Hi David and all,
>
>
> As David recommended I'm looking at the portlet approach rather than the
> velocity extension.
>
> I've been trying to reproduce a subset of the j2-admin spaces
> functionality (list only). My portlet has the following code in its init
> method, very similar to the j2-admin SpacesList portlet.
>
>
>
> PortletContext ctx = getPortletContext();
> spacesService = (Spaces)
> ctx.getAttribute(CommonPortletServices.CPS_SPACES_SERVICE);
>
> if (spacesService == null)
> {
>         throw new PortletException("Could not get instance of portal
> spaces service component");
> }
>
>
>
> Unfortunately for me the spacesService always results in null. I can't
> seem to access any of the Jetspeed services. Do I require any additional
> configuration?
>
> Any suggestions?
>
>
> Thanks!
>
>
> jiri
>
> On 10 Jul 2013, at 19:57, Jiri De Jagere <ji...@gmail.com> wrote:
>
> > Thank you David.
> >
> > I had found the pages example. I'll consider either developing my own
> portlet to produce the html I need or the extension approach as you
> suggested.
> >
> >
> > Kind regards,
> >
> >
> > Jiri
> >
> > On 10 Jul 2013, at 19:30, David Taylor <da...@gmail.com>
> wrote:
> >
> >> This response is probably much more info than you need, sorry for
> >> blabbering on, but thought some background might help...
> >>
> >> In version 2.2.1, we introduced Spaces, the Space and PageNavigators,
> and
> >> the new JetUI framework. One of the differences between the old layout
> >> approach, and the new spaces/navigator approach, is navigations. With
> the
> >> old layout approach, menus, and navigations are all provided via the
> >> SiteManager, which in turn filters your view of the site navigations
> using
> >> the Jetspeed Profile. So in layouts, you will often see macros like
> >> #PageMenu (shown below) using the $site context variable. All the
> >> navigational menus are preprocessed by the SiteManager, and Profiler,
> >> before returning their result. With 2.2.1, and the introduction of Space
> >> navigation, spaces bypassed the Site Manager and went directly to  the
> >> PageManager API, retrieving folders underneath spaces. The idea was to
> >> simplify the entire view of the portal. So... if you want to use spaces,
> >> you usually configure your portal, during the initial custom build of
> your
> >> portal, to use the Jetui pipeline
> >>
> >> mvn jetspeed:mvn -Dtarget=ui
> >>
> >> or
> >>
> >> mvn jetspeed:mvn -Dtarget=min-ui
> >>
> >>
> >> where as, if you were to create a project based on the original layouts,
> >> you would do:
> >>
> >> mvn jetspeed:mvn -Dtarget=demo
> >>
> >> or
> >>
> >> mvn jetspeed:mvn -Dtarget=min
> >>
> >>
> >> What Im getting at here is the old layouts don't make the spaces model
> >> available to you. In fact, they use completely different folder roots as
> >> you can see here
> >>
> http://svn.apache.org/viewvc/portals/jetspeed-2/portal/tags/JETSPEED-RELEASE-2.2.2/applications/jetspeed/src/main/webapp/WEB-INF/there
> >> are actually 4 folder trees, 2 for jetui, 2 for original site manager
> >>
> >> So if you want to use Spaces without the Jetui build, and with old
> layouts,
> >> Its  definitely possible, but would take some extension work. You would
> >> need to make the Space manager available to your decorators as a
> velocity
> >> context variable ...
> >>
> >> Note that the Jetui pipeline, which supports spaces, only makes use of
> the
> >> decorator CSS, not the actual vm code for decorators. One of the
> >> motivations behind Jetui was to simplify Jetspeed - and use simple
> portlets
> >> for layout and decorator code without introducing extra technologies
> like
> >> learning about Jetpseed layouts and decorators
> >>
> >>
> >> #macro(PagesMenu)
> >> #set($_pages = $site.getMenu("pages").elements)
> >> <div id="pages-menu" class="menu">#foreach($_page in $_pages)
> >> #if($_page.isSelected($site))
> >>   #set($_cssClass = "link page-link selected")
> >> #else
> >>   #set($_cssClass = "link page-link")
> >> #end
> >> <a href="portal${_page.url}" class="$!{_cssClass}"
> >>
> title="${_page.getTitle($preferedLocale)}">$_page.getTitle($preferedLocale)</a><span
> >> class="separator"></span>#end
> >> </div>
> >> #end
> >>
> >>
> >>
> >> On Wed, Jul 10, 2013 at 9:23 AM, Jiri De Jagere <ji...@gmail.com>
> wrote:
> >>
> >>> Hi David,
> >>>
> >>>
> >>> I had found the Jetspeed API docs and (think I) understand how to use
> >>> them. The examples are quite useful. Thanks for those!
> >>>
> >>> The challenge I have is that I'm trying to put my own responsive ui in
> >>> front of Jetspeed. Because of that I would actually prefer a
> velocity-based
> >>> approach to work them into my header container. I have not yet
> discovered
> >>> how to access and use spaces and page manager from velocity though. If
> you
> >>> could share such an example, that would be really helpful!
> >>>
> >>>
> >>> Kind regards,
> >>>
> >>>
> >>> Jiri
> >>>
> >>> On 10 Jul 2013, at 17:51, David Taylor <da...@gmail.com>
> wrote:
> >>>
> >>>> There are Javadocs online for all the Jetspeed API:
> >>>>
> >>>> Spaces:
> >>>>
> >>>
> http://portals.apache.org/jetspeed-2/apidocs/org/apache/jetspeed/spaces/Spaces.html
> >>>> Page Manager (folders):
> >>>>
> >>>
> http://portals.apache.org/jetspeed-2/apidocs/org/apache/jetspeed/page/PageManager.html
> >>>>
> >>>> There are examples of using these APIs in the J2-Admin application.
> For
> >>>> example, the Spaces Manager is actually a portlet, not a layout:
> >>>>
> >>>>
> >>>
> http://www.jarvana.com/jarvana/view/org/apache/portals/jetspeed-2/j2-admin/2.2.2/j2-admin-2.2.2.war!/WEB-INF/view/spaces/spaces-manager.jsp?format=ok
> >>>>
> >>>> Portlet Applications can make use of Jetspeed API services by
> declaring
> >>> the
> >>>> services they want to use in the jetspeed-portlet.xml deployment
> >>> descriptor
> >>>>
> >>>> <js:services>
> >>>>  <js:service name='PageManager' />
> >>>>  <js:service name='SpacesService' />
> >>>>
> >>>> Then, in your portlet's init method, the portlet context provides
> access
> >>> to
> >>>> all of your declared services:
> >>>> (from org.apache.jetspeed.portlets.spaces.SpacesList portlet in
> j2-admin
> >>>> app):
> >>>>
> >>>>  public void init(PortletConfig config) throws PortletException
> >>>>  {
> >>>>      super.init(config);
> >>>>      PortletContext context = getPortletContext();
> >>>>      spacesService = (Spaces)
> >>>> context.getAttribute(CommonPortletServices.CPS_SPACES_SERVICE);
> >>>>
> >>>> This is how the Space Manager was implemented in  Jetspeed 2.2.1. If
> you
> >>>> are more interested in developing your header with velocity templates
> and
> >>>> layouts, let me know, I can give examples of that approach too
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> On Wed, Jul 10, 2013 at 6:36 AM, Jiri De Jagere <ji...@gmail.com>
> >>> wrote:
> >>>>
> >>>>> Hi,
> >>>>>
> >>>>>
> >>>>> I'm developing my own header and footer for a Jetspeed-based
> >>> application.
> >>>>> I've found the API calls to list the pages for a particular view,
> but I
> >>>>> can't find how to list the available folders and links (spaces).
> >>>>>
> >>>>> Could someone please point me in the right direction?
> >>>>>
> >>>>>
> >>>>> Thanks!
> >>>>>
> >>>>>
> >>>>> Jiri
> >>>>> ---------------------------------------------------------------------
> >>>>> To unsubscribe, e-mail: jetspeed-user-unsubscribe@portals.apache.org
> >>>>> For additional commands, e-mail:
> jetspeed-user-help@portals.apache.org
> >>>>>
> >>>>>
> >>>>
> >>>>
> >>>> --
> >>>> David
> >>>
> >>>
> >>> ---------------------------------------------------------------------
> >>> To unsubscribe, e-mail: jetspeed-user-unsubscribe@portals.apache.org
> >>> For additional commands, e-mail: jetspeed-user-help@portals.apache.org
> >>>
> >>>
> >>
> >>
> >> --
> >> David
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: jetspeed-user-unsubscribe@portals.apache.org
> For additional commands, e-mail: jetspeed-user-help@portals.apache.org
>
>


-- 
David

Re: List spaces for user in velocity macro

Posted by Jiri De Jagere <ji...@gmail.com>.
Hi David and all,


As David recommended I'm looking at the portlet approach rather than the velocity extension.

I've been trying to reproduce a subset of the j2-admin spaces functionality (list only). My portlet has the following code in its init method, very similar to the j2-admin SpacesList portlet.



PortletContext ctx = getPortletContext();
spacesService = (Spaces) ctx.getAttribute(CommonPortletServices.CPS_SPACES_SERVICE);
		
if (spacesService == null)
{
	throw new PortletException("Could not get instance of portal spaces service component");
}



Unfortunately for me the spacesService always results in null. I can't seem to access any of the Jetspeed services. Do I require any additional configuration?

Any suggestions?


Thanks!


jiri

On 10 Jul 2013, at 19:57, Jiri De Jagere <ji...@gmail.com> wrote:

> Thank you David.
> 
> I had found the pages example. I'll consider either developing my own portlet to produce the html I need or the extension approach as you suggested. 
> 
> 
> Kind regards,
> 
> 
> Jiri
> 
> On 10 Jul 2013, at 19:30, David Taylor <da...@gmail.com> wrote:
> 
>> This response is probably much more info than you need, sorry for
>> blabbering on, but thought some background might help...
>> 
>> In version 2.2.1, we introduced Spaces, the Space and PageNavigators, and
>> the new JetUI framework. One of the differences between the old layout
>> approach, and the new spaces/navigator approach, is navigations. With the
>> old layout approach, menus, and navigations are all provided via the
>> SiteManager, which in turn filters your view of the site navigations using
>> the Jetspeed Profile. So in layouts, you will often see macros like
>> #PageMenu (shown below) using the $site context variable. All the
>> navigational menus are preprocessed by the SiteManager, and Profiler,
>> before returning their result. With 2.2.1, and the introduction of Space
>> navigation, spaces bypassed the Site Manager and went directly to  the
>> PageManager API, retrieving folders underneath spaces. The idea was to
>> simplify the entire view of the portal. So... if you want to use spaces,
>> you usually configure your portal, during the initial custom build of your
>> portal, to use the Jetui pipeline
>> 
>> mvn jetspeed:mvn -Dtarget=ui
>> 
>> or
>> 
>> mvn jetspeed:mvn -Dtarget=min-ui
>> 
>> 
>> where as, if you were to create a project based on the original layouts,
>> you would do:
>> 
>> mvn jetspeed:mvn -Dtarget=demo
>> 
>> or
>> 
>> mvn jetspeed:mvn -Dtarget=min
>> 
>> 
>> What Im getting at here is the old layouts don't make the spaces model
>> available to you. In fact, they use completely different folder roots as
>> you can see here
>> http://svn.apache.org/viewvc/portals/jetspeed-2/portal/tags/JETSPEED-RELEASE-2.2.2/applications/jetspeed/src/main/webapp/WEB-INF/there
>> are actually 4 folder trees, 2 for jetui, 2 for original site manager
>> 
>> So if you want to use Spaces without the Jetui build, and with old layouts,
>> Its  definitely possible, but would take some extension work. You would
>> need to make the Space manager available to your decorators as a velocity
>> context variable ...
>> 
>> Note that the Jetui pipeline, which supports spaces, only makes use of the
>> decorator CSS, not the actual vm code for decorators. One of the
>> motivations behind Jetui was to simplify Jetspeed - and use simple portlets
>> for layout and decorator code without introducing extra technologies like
>> learning about Jetpseed layouts and decorators
>> 
>> 
>> #macro(PagesMenu)
>> #set($_pages = $site.getMenu("pages").elements)
>> <div id="pages-menu" class="menu">#foreach($_page in $_pages)
>> #if($_page.isSelected($site))
>>   #set($_cssClass = "link page-link selected")
>> #else
>>   #set($_cssClass = "link page-link")
>> #end
>> <a href="portal${_page.url}" class="$!{_cssClass}"
>> title="${_page.getTitle($preferedLocale)}">$_page.getTitle($preferedLocale)</a><span
>> class="separator"></span>#end
>> </div>
>> #end
>> 
>> 
>> 
>> On Wed, Jul 10, 2013 at 9:23 AM, Jiri De Jagere <ji...@gmail.com> wrote:
>> 
>>> Hi David,
>>> 
>>> 
>>> I had found the Jetspeed API docs and (think I) understand how to use
>>> them. The examples are quite useful. Thanks for those!
>>> 
>>> The challenge I have is that I'm trying to put my own responsive ui in
>>> front of Jetspeed. Because of that I would actually prefer a velocity-based
>>> approach to work them into my header container. I have not yet discovered
>>> how to access and use spaces and page manager from velocity though. If you
>>> could share such an example, that would be really helpful!
>>> 
>>> 
>>> Kind regards,
>>> 
>>> 
>>> Jiri
>>> 
>>> On 10 Jul 2013, at 17:51, David Taylor <da...@gmail.com> wrote:
>>> 
>>>> There are Javadocs online for all the Jetspeed API:
>>>> 
>>>> Spaces:
>>>> 
>>> http://portals.apache.org/jetspeed-2/apidocs/org/apache/jetspeed/spaces/Spaces.html
>>>> Page Manager (folders):
>>>> 
>>> http://portals.apache.org/jetspeed-2/apidocs/org/apache/jetspeed/page/PageManager.html
>>>> 
>>>> There are examples of using these APIs in the J2-Admin application. For
>>>> example, the Spaces Manager is actually a portlet, not a layout:
>>>> 
>>>> 
>>> http://www.jarvana.com/jarvana/view/org/apache/portals/jetspeed-2/j2-admin/2.2.2/j2-admin-2.2.2.war!/WEB-INF/view/spaces/spaces-manager.jsp?format=ok
>>>> 
>>>> Portlet Applications can make use of Jetspeed API services by declaring
>>> the
>>>> services they want to use in the jetspeed-portlet.xml deployment
>>> descriptor
>>>> 
>>>> <js:services>
>>>>  <js:service name='PageManager' />
>>>>  <js:service name='SpacesService' />
>>>> 
>>>> Then, in your portlet's init method, the portlet context provides access
>>> to
>>>> all of your declared services:
>>>> (from org.apache.jetspeed.portlets.spaces.SpacesList portlet in j2-admin
>>>> app):
>>>> 
>>>>  public void init(PortletConfig config) throws PortletException
>>>>  {
>>>>      super.init(config);
>>>>      PortletContext context = getPortletContext();
>>>>      spacesService = (Spaces)
>>>> context.getAttribute(CommonPortletServices.CPS_SPACES_SERVICE);
>>>> 
>>>> This is how the Space Manager was implemented in  Jetspeed 2.2.1. If you
>>>> are more interested in developing your header with velocity templates and
>>>> layouts, let me know, I can give examples of that approach too
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> On Wed, Jul 10, 2013 at 6:36 AM, Jiri De Jagere <ji...@gmail.com>
>>> wrote:
>>>> 
>>>>> Hi,
>>>>> 
>>>>> 
>>>>> I'm developing my own header and footer for a Jetspeed-based
>>> application.
>>>>> I've found the API calls to list the pages for a particular view, but I
>>>>> can't find how to list the available folders and links (spaces).
>>>>> 
>>>>> Could someone please point me in the right direction?
>>>>> 
>>>>> 
>>>>> Thanks!
>>>>> 
>>>>> 
>>>>> Jiri
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: jetspeed-user-unsubscribe@portals.apache.org
>>>>> For additional commands, e-mail: jetspeed-user-help@portals.apache.org
>>>>> 
>>>>> 
>>>> 
>>>> 
>>>> --
>>>> David
>>> 
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: jetspeed-user-unsubscribe@portals.apache.org
>>> For additional commands, e-mail: jetspeed-user-help@portals.apache.org
>>> 
>>> 
>> 
>> 
>> -- 
>> David
> 


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


Re: List spaces for user in velocity macro

Posted by Jiri De Jagere <ji...@gmail.com>.
Thank you David.

I had found the pages example. I'll consider either developing my own portlet to produce the html I need or the extension approach as you suggested. 


Kind regards,


Jiri

On 10 Jul 2013, at 19:30, David Taylor <da...@gmail.com> wrote:

> This response is probably much more info than you need, sorry for
> blabbering on, but thought some background might help...
> 
> In version 2.2.1, we introduced Spaces, the Space and PageNavigators, and
> the new JetUI framework. One of the differences between the old layout
> approach, and the new spaces/navigator approach, is navigations. With the
> old layout approach, menus, and navigations are all provided via the
> SiteManager, which in turn filters your view of the site navigations using
> the Jetspeed Profile. So in layouts, you will often see macros like
> #PageMenu (shown below) using the $site context variable. All the
> navigational menus are preprocessed by the SiteManager, and Profiler,
> before returning their result. With 2.2.1, and the introduction of Space
> navigation, spaces bypassed the Site Manager and went directly to  the
> PageManager API, retrieving folders underneath spaces. The idea was to
> simplify the entire view of the portal. So... if you want to use spaces,
> you usually configure your portal, during the initial custom build of your
> portal, to use the Jetui pipeline
> 
> mvn jetspeed:mvn -Dtarget=ui
> 
> or
> 
> mvn jetspeed:mvn -Dtarget=min-ui
> 
> 
> where as, if you were to create a project based on the original layouts,
> you would do:
> 
> mvn jetspeed:mvn -Dtarget=demo
> 
> or
> 
> mvn jetspeed:mvn -Dtarget=min
> 
> 
> What Im getting at here is the old layouts don't make the spaces model
> available to you. In fact, they use completely different folder roots as
> you can see here
> http://svn.apache.org/viewvc/portals/jetspeed-2/portal/tags/JETSPEED-RELEASE-2.2.2/applications/jetspeed/src/main/webapp/WEB-INF/there
> are actually 4 folder trees, 2 for jetui, 2 for original site manager
> 
> So if you want to use Spaces without the Jetui build, and with old layouts,
> Its  definitely possible, but would take some extension work. You would
> need to make the Space manager available to your decorators as a velocity
> context variable ...
> 
> Note that the Jetui pipeline, which supports spaces, only makes use of the
> decorator CSS, not the actual vm code for decorators. One of the
> motivations behind Jetui was to simplify Jetspeed - and use simple portlets
> for layout and decorator code without introducing extra technologies like
> learning about Jetpseed layouts and decorators
> 
> 
> #macro(PagesMenu)
> #set($_pages = $site.getMenu("pages").elements)
> <div id="pages-menu" class="menu">#foreach($_page in $_pages)
> #if($_page.isSelected($site))
>    #set($_cssClass = "link page-link selected")
> #else
>    #set($_cssClass = "link page-link")
> #end
> <a href="portal${_page.url}" class="$!{_cssClass}"
> title="${_page.getTitle($preferedLocale)}">$_page.getTitle($preferedLocale)</a><span
> class="separator"></span>#end
> </div>
> #end
> 
> 
> 
> On Wed, Jul 10, 2013 at 9:23 AM, Jiri De Jagere <ji...@gmail.com> wrote:
> 
>> Hi David,
>> 
>> 
>> I had found the Jetspeed API docs and (think I) understand how to use
>> them. The examples are quite useful. Thanks for those!
>> 
>> The challenge I have is that I'm trying to put my own responsive ui in
>> front of Jetspeed. Because of that I would actually prefer a velocity-based
>> approach to work them into my header container. I have not yet discovered
>> how to access and use spaces and page manager from velocity though. If you
>> could share such an example, that would be really helpful!
>> 
>> 
>> Kind regards,
>> 
>> 
>> Jiri
>> 
>> On 10 Jul 2013, at 17:51, David Taylor <da...@gmail.com> wrote:
>> 
>>> There are Javadocs online for all the Jetspeed API:
>>> 
>>> Spaces:
>>> 
>> http://portals.apache.org/jetspeed-2/apidocs/org/apache/jetspeed/spaces/Spaces.html
>>> Page Manager (folders):
>>> 
>> http://portals.apache.org/jetspeed-2/apidocs/org/apache/jetspeed/page/PageManager.html
>>> 
>>> There are examples of using these APIs in the J2-Admin application. For
>>> example, the Spaces Manager is actually a portlet, not a layout:
>>> 
>>> 
>> http://www.jarvana.com/jarvana/view/org/apache/portals/jetspeed-2/j2-admin/2.2.2/j2-admin-2.2.2.war!/WEB-INF/view/spaces/spaces-manager.jsp?format=ok
>>> 
>>> Portlet Applications can make use of Jetspeed API services by declaring
>> the
>>> services they want to use in the jetspeed-portlet.xml deployment
>> descriptor
>>> 
>>> <js:services>
>>>   <js:service name='PageManager' />
>>>   <js:service name='SpacesService' />
>>> 
>>> Then, in your portlet's init method, the portlet context provides access
>> to
>>> all of your declared services:
>>> (from org.apache.jetspeed.portlets.spaces.SpacesList portlet in j2-admin
>>> app):
>>> 
>>>   public void init(PortletConfig config) throws PortletException
>>>   {
>>>       super.init(config);
>>>       PortletContext context = getPortletContext();
>>>       spacesService = (Spaces)
>>> context.getAttribute(CommonPortletServices.CPS_SPACES_SERVICE);
>>> 
>>> This is how the Space Manager was implemented in  Jetspeed 2.2.1. If you
>>> are more interested in developing your header with velocity templates and
>>> layouts, let me know, I can give examples of that approach too
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> On Wed, Jul 10, 2013 at 6:36 AM, Jiri De Jagere <ji...@gmail.com>
>> wrote:
>>> 
>>>> Hi,
>>>> 
>>>> 
>>>> I'm developing my own header and footer for a Jetspeed-based
>> application.
>>>> I've found the API calls to list the pages for a particular view, but I
>>>> can't find how to list the available folders and links (spaces).
>>>> 
>>>> Could someone please point me in the right direction?
>>>> 
>>>> 
>>>> Thanks!
>>>> 
>>>> 
>>>> Jiri
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: jetspeed-user-unsubscribe@portals.apache.org
>>>> For additional commands, e-mail: jetspeed-user-help@portals.apache.org
>>>> 
>>>> 
>>> 
>>> 
>>> --
>>> David
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: jetspeed-user-unsubscribe@portals.apache.org
>> For additional commands, e-mail: jetspeed-user-help@portals.apache.org
>> 
>> 
> 
> 
> -- 
> David


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


Re: List spaces for user in velocity macro

Posted by David Taylor <da...@gmail.com>.
This response is probably much more info than you need, sorry for
blabbering on, but thought some background might help...

In version 2.2.1, we introduced Spaces, the Space and PageNavigators, and
the new JetUI framework. One of the differences between the old layout
approach, and the new spaces/navigator approach, is navigations. With the
old layout approach, menus, and navigations are all provided via the
SiteManager, which in turn filters your view of the site navigations using
the Jetspeed Profile. So in layouts, you will often see macros like
#PageMenu (shown below) using the $site context variable. All the
navigational menus are preprocessed by the SiteManager, and Profiler,
before returning their result. With 2.2.1, and the introduction of Space
navigation, spaces bypassed the Site Manager and went directly to  the
PageManager API, retrieving folders underneath spaces. The idea was to
simplify the entire view of the portal. So... if you want to use spaces,
you usually configure your portal, during the initial custom build of your
portal, to use the Jetui pipeline

mvn jetspeed:mvn -Dtarget=ui

or

mvn jetspeed:mvn -Dtarget=min-ui


where as, if you were to create a project based on the original layouts,
you would do:

mvn jetspeed:mvn -Dtarget=demo

or

mvn jetspeed:mvn -Dtarget=min


What Im getting at here is the old layouts don't make the spaces model
available to you. In fact, they use completely different folder roots as
you can see here
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/tags/JETSPEED-RELEASE-2.2.2/applications/jetspeed/src/main/webapp/WEB-INF/there
are actually 4 folder trees, 2 for jetui, 2 for original site manager

So if you want to use Spaces without the Jetui build, and with old layouts,
Its  definitely possible, but would take some extension work. You would
need to make the Space manager available to your decorators as a velocity
context variable ...

Note that the Jetui pipeline, which supports spaces, only makes use of the
decorator CSS, not the actual vm code for decorators. One of the
motivations behind Jetui was to simplify Jetspeed - and use simple portlets
for layout and decorator code without introducing extra technologies like
learning about Jetpseed layouts and decorators


#macro(PagesMenu)
#set($_pages = $site.getMenu("pages").elements)
<div id="pages-menu" class="menu">#foreach($_page in $_pages)
#if($_page.isSelected($site))
    #set($_cssClass = "link page-link selected")
#else
    #set($_cssClass = "link page-link")
#end
<a href="portal${_page.url}" class="$!{_cssClass}"
title="${_page.getTitle($preferedLocale)}">$_page.getTitle($preferedLocale)</a><span
class="separator"></span>#end
</div>
#end



On Wed, Jul 10, 2013 at 9:23 AM, Jiri De Jagere <ji...@gmail.com> wrote:

> Hi David,
>
>
> I had found the Jetspeed API docs and (think I) understand how to use
> them. The examples are quite useful. Thanks for those!
>
> The challenge I have is that I'm trying to put my own responsive ui in
> front of Jetspeed. Because of that I would actually prefer a velocity-based
> approach to work them into my header container. I have not yet discovered
> how to access and use spaces and page manager from velocity though. If you
> could share such an example, that would be really helpful!
>
>
> Kind regards,
>
>
> Jiri
>
> On 10 Jul 2013, at 17:51, David Taylor <da...@gmail.com> wrote:
>
> > There are Javadocs online for all the Jetspeed API:
> >
> > Spaces:
> >
> http://portals.apache.org/jetspeed-2/apidocs/org/apache/jetspeed/spaces/Spaces.html
> > Page Manager (folders):
> >
> http://portals.apache.org/jetspeed-2/apidocs/org/apache/jetspeed/page/PageManager.html
> >
> > There are examples of using these APIs in the J2-Admin application. For
> > example, the Spaces Manager is actually a portlet, not a layout:
> >
> >
> http://www.jarvana.com/jarvana/view/org/apache/portals/jetspeed-2/j2-admin/2.2.2/j2-admin-2.2.2.war!/WEB-INF/view/spaces/spaces-manager.jsp?format=ok
> >
> > Portlet Applications can make use of Jetspeed API services by declaring
> the
> > services they want to use in the jetspeed-portlet.xml deployment
> descriptor
> >
> > <js:services>
> >    <js:service name='PageManager' />
> >    <js:service name='SpacesService' />
> >
> > Then, in your portlet's init method, the portlet context provides access
> to
> > all of your declared services:
> > (from org.apache.jetspeed.portlets.spaces.SpacesList portlet in j2-admin
> > app):
> >
> >    public void init(PortletConfig config) throws PortletException
> >    {
> >        super.init(config);
> >        PortletContext context = getPortletContext();
> >        spacesService = (Spaces)
> > context.getAttribute(CommonPortletServices.CPS_SPACES_SERVICE);
> >
> > This is how the Space Manager was implemented in  Jetspeed 2.2.1. If you
> > are more interested in developing your header with velocity templates and
> > layouts, let me know, I can give examples of that approach too
> >
> >
> >
> >
> >
> >
> >
> >
> > On Wed, Jul 10, 2013 at 6:36 AM, Jiri De Jagere <ji...@gmail.com>
> wrote:
> >
> >> Hi,
> >>
> >>
> >> I'm developing my own header and footer for a Jetspeed-based
> application.
> >> I've found the API calls to list the pages for a particular view, but I
> >> can't find how to list the available folders and links (spaces).
> >>
> >> Could someone please point me in the right direction?
> >>
> >>
> >> Thanks!
> >>
> >>
> >> Jiri
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: jetspeed-user-unsubscribe@portals.apache.org
> >> For additional commands, e-mail: jetspeed-user-help@portals.apache.org
> >>
> >>
> >
> >
> > --
> > David
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: jetspeed-user-unsubscribe@portals.apache.org
> For additional commands, e-mail: jetspeed-user-help@portals.apache.org
>
>


-- 
David

Re: List spaces for user in velocity macro

Posted by Jiri De Jagere <ji...@gmail.com>.
Hi David,


I had found the Jetspeed API docs and (think I) understand how to use them. The examples are quite useful. Thanks for those!

The challenge I have is that I'm trying to put my own responsive ui in front of Jetspeed. Because of that I would actually prefer a velocity-based approach to work them into my header container. I have not yet discovered how to access and use spaces and page manager from velocity though. If you could share such an example, that would be really helpful!


Kind regards,


Jiri

On 10 Jul 2013, at 17:51, David Taylor <da...@gmail.com> wrote:

> There are Javadocs online for all the Jetspeed API:
> 
> Spaces:
> http://portals.apache.org/jetspeed-2/apidocs/org/apache/jetspeed/spaces/Spaces.html
> Page Manager (folders):
> http://portals.apache.org/jetspeed-2/apidocs/org/apache/jetspeed/page/PageManager.html
> 
> There are examples of using these APIs in the J2-Admin application. For
> example, the Spaces Manager is actually a portlet, not a layout:
> 
> http://www.jarvana.com/jarvana/view/org/apache/portals/jetspeed-2/j2-admin/2.2.2/j2-admin-2.2.2.war!/WEB-INF/view/spaces/spaces-manager.jsp?format=ok
> 
> Portlet Applications can make use of Jetspeed API services by declaring the
> services they want to use in the jetspeed-portlet.xml deployment descriptor
> 
> <js:services>
>    <js:service name='PageManager' />
>    <js:service name='SpacesService' />
> 
> Then, in your portlet's init method, the portlet context provides access to
> all of your declared services:
> (from org.apache.jetspeed.portlets.spaces.SpacesList portlet in j2-admin
> app):
> 
>    public void init(PortletConfig config) throws PortletException
>    {
>        super.init(config);
>        PortletContext context = getPortletContext();
>        spacesService = (Spaces)
> context.getAttribute(CommonPortletServices.CPS_SPACES_SERVICE);
> 
> This is how the Space Manager was implemented in  Jetspeed 2.2.1. If you
> are more interested in developing your header with velocity templates and
> layouts, let me know, I can give examples of that approach too
> 
> 
> 
> 
> 
> 
> 
> 
> On Wed, Jul 10, 2013 at 6:36 AM, Jiri De Jagere <ji...@gmail.com> wrote:
> 
>> Hi,
>> 
>> 
>> I'm developing my own header and footer for a Jetspeed-based application.
>> I've found the API calls to list the pages for a particular view, but I
>> can't find how to list the available folders and links (spaces).
>> 
>> Could someone please point me in the right direction?
>> 
>> 
>> Thanks!
>> 
>> 
>> Jiri
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: jetspeed-user-unsubscribe@portals.apache.org
>> For additional commands, e-mail: jetspeed-user-help@portals.apache.org
>> 
>> 
> 
> 
> -- 
> David


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


Re: List spaces for user in velocity macro

Posted by David Taylor <da...@gmail.com>.
There are Javadocs online for all the Jetspeed API:

Spaces:
http://portals.apache.org/jetspeed-2/apidocs/org/apache/jetspeed/spaces/Spaces.html
Page Manager (folders):
http://portals.apache.org/jetspeed-2/apidocs/org/apache/jetspeed/page/PageManager.html

There are examples of using these APIs in the J2-Admin application. For
example, the Spaces Manager is actually a portlet, not a layout:

http://www.jarvana.com/jarvana/view/org/apache/portals/jetspeed-2/j2-admin/2.2.2/j2-admin-2.2.2.war!/WEB-INF/view/spaces/spaces-manager.jsp?format=ok

Portlet Applications can make use of Jetspeed API services by declaring the
services they want to use in the jetspeed-portlet.xml deployment descriptor

 <js:services>
    <js:service name='PageManager' />
    <js:service name='SpacesService' />

Then, in your portlet's init method, the portlet context provides access to
all of your declared services:
(from org.apache.jetspeed.portlets.spaces.SpacesList portlet in j2-admin
app):

    public void init(PortletConfig config) throws PortletException
    {
        super.init(config);
        PortletContext context = getPortletContext();
        spacesService = (Spaces)
context.getAttribute(CommonPortletServices.CPS_SPACES_SERVICE);

This is how the Space Manager was implemented in  Jetspeed 2.2.1. If you
are more interested in developing your header with velocity templates and
layouts, let me know, I can give examples of that approach too








On Wed, Jul 10, 2013 at 6:36 AM, Jiri De Jagere <ji...@gmail.com> wrote:

> Hi,
>
>
> I'm developing my own header and footer for a Jetspeed-based application.
> I've found the API calls to list the pages for a particular view, but I
> can't find how to list the available folders and links (spaces).
>
> Could someone please point me in the right direction?
>
>
> Thanks!
>
>
> Jiri
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: jetspeed-user-unsubscribe@portals.apache.org
> For additional commands, e-mail: jetspeed-user-help@portals.apache.org
>
>


-- 
David