Archive for the ‘Portals / Portlets’ Category

FlexibleDashboard, FlexibleShare, FlexibleLiferay

Friday, October 2nd, 2009

FlexibleDashboard+AIR

FlexibleDashboard (new google code project)
1. Has both Flex+Browser and Flex+AIR versions
2. Based on the non doc mgt code from FlexibleShare
3. Based on esria dashboard / adobe flex devnet dashboard sample with added flexmdi cascade/tile (esria pod drag/drop in tile mode)
4. Flex+Browser pods: line, bar, pie charts, form, todo list, JasperReports viewer, Pentaho dashboard, BlazeDS samples, external Flex app SWFLoader, calendar, iframe html (iframe has not hiding issues)
5. Flex+AIR additional pods: webkit HTML, web browser, Google gadgets, Liferay portlets, local files browser

FlexibleShare
1. Now has Flex+Browser in addition to Flex+AIR
2. Adds Alfresco, Alfresco Share, LiveCycle Content Services features to FlexibleDashboard

FlexibleLiferay+AIR

FlexibleLiferay (new google code project)
(Flex+AIR based portal container application for Liferay)
1. Can display regular Liferay portlets (JSR-168, JSR-286, HTML/Ajax etc.)
2. All of Liferay backend, standards it supports can be leveraged
3. Can display Flex portlets (swfs) without html wrapper (no need for special handling of restarting when resize portlet) from within a portlet war
4. Leverage Liferay app catalog to also manage Flex portlets
5. Leverage Liferay security / authentication (ldap, sso, etc.) to also manage Flex portlets
6. Flex portlets can take advantage of AIR specific features (native desktop file drag / drop, native clipboard, local files, offline db)
7. No Flex+Browser version yet due to iframe issues

FlexibleLiferay Implementation:
1. Uses BlazeDS to remote to some Java Apis added via Liferay Ext environment (used Liferay 5.2.3)
2. Built on top of FlexibleDashboard

FlexibleLiferay Implemented:
1. Sign in (Login dialog), Sign out
2. My Places menu
3. Display of tabs for pages in selected place
4. Display of a Liferay pod (uses HTML with Liferay widget) for each portlet in selected page

Both a FlexSpaces/Alfresco Gadget and Portlet for the GateIn Portal

Friday, September 11th, 2009

FlexSpaces Gadget on GateIn gadget dashboard

I recently added both a FlexSpaces/Alfresco Gadget (Google) and a Portlet for the new GateIn (eXo+JBoss) Portal. See Alfresco Forge for downloads, Google Code  for source.  See previous posts on other portlets ( Liferay Portal portletJBoss Portal portlet).

The gadget and the portlet  work on both app server versions (Tomcat, JBoss AS) of the GateIn beta1. (I had to add a tld file to get the portlet to work on JBoss).

The gadget can be used on dashboard layouts. The portlet can be used in other layouts. In the screenshot, the FlexSpaces gadget is maximized, so it doesn’t look like the usual gadget layout. The beta1 seemed to not allow saving an edit to change from a 3 column to a 1 or 2 column. (FlexSpaces can made to take up less space by setting the show header area preference to false, and hiding the tree with the show / tree menu). Also the beta1 didn’t display default values for the FlexSpaces gadget when the edit UI mode is used, so editng the gadget xml is easier (This is only on gadgets, regular portet preferences UI edit mode was fine).

See the readmes in the flexspaces-gadget.zip file and the flexspacesGateInPortlet.zip file for setup instructions.

JBoss Portal Portlet for FlexSpaces/Alfresco

Monday, September 7th, 2009

 FlexSpaces JBoss Portal portlet

In addition to a Liferay portlet, I recently added a JBoss Portal portlet for FlexSpaces (Alfresco Forge, Google Code).  See previous post about the Liferay portlet since some of the same things apply (setting up two app servers, pointers to SSO info, etc.).

How to setup:
1. Install Alfresco community or enterprise (I used Alfresco 3.2 community bundled with Tomcat)
2. Start alfresco user admin pw admin, install flexspaces 0.91+ webscripts, see readmeWebScripts.txt
3. shutdown Alfresco
4. Install a JBoss Portal community or enterprise (I used 2.7.2 community bundled with a 4.2.3 JBoss app server)
5. Change port 8080 to 9080 and port 8009 to 9009 in jboss-portal-2.7.2/server/default/deploy/jboss-web.deployer/server.xml
to not conflict with ports in alfresco running in a separate app server
6. Copy flexspaces-jboss-portlet.war to jboss-portal-2.7.2/server/default/deploy/
7. start jboss portal with jboss-portal-2.7.2\bin\run.bat
8. run http://localhost:9080/portal and log in with admin/admin (so portlet edit UI will be enabled)
9. startup alfresco
10. in jboss portal switch to FlexSpaces tab, click on “Edit” on the flexspaces portlet and setup alfresco url  if needed and other options and click update.
11. log into FlexSpaces portlet (admin/admin or other user/pw)

JBoss+eXo GateIn Portal (See GateIn website)
I tried the FlexSpaces JBoss portlet with the beta1 of GateIn and it didn’t work. I am looking into creating a FlexSpaces portlet and a gadget for this new portal)

Steve

Liferay portlet for FlexSpaces

Sunday, August 30th, 2009

FlexSpaces Liferay portletFlexSpaces Liferay portlet config

FlexSpaces 0.93 was recent released (Alfresco Forge, Google Code).  This now includes a Liferay portlet (runs FlexSpaces inside a portlet), fixes progress bar color in new styling/skinning from 0.92, adds short-term state save for portlet resize / browser refresh (config only enabled in portlet pkg), adds additional parms/flashvars to support config in portlet preferences dialogs, adds parms to enable adding sso.  A JBoss Portal portlet will be available later. Also will have portlets for CMIS Spaces.

The Liferay portlet is also available from the Liferay website community plugins download area and also from within Liferay itself: Add Application / Install More Applications (use refresh button at bottom to refresh plugin list)  (Note: installing the integratedsemantics.zip web scripts in Alfresco is still required, see readmeWebScripts.txt)

The FlexSpaces Liferay portlet configuration UI allows setting what views to show (doclib, search, tasks, wcm) and the Alfresco web script URL.

This portlet was developed/tested with Liferay 5.2.3 and Alfresco 3.2 running in separate Tomcats. Running Liferay and Alfresco in separate Tomcats is recommended (easier, can switch to new versions independently, and is more scalable). To adapt the FlexSpaces portlet to Liferay 5.1.x, etc. look at the source inside the Liferay Flash portlet war for your version of Liferay and adapt the jsps (different dtds) and  maybe the java file of the FlexSpaces portlet.

How to setup:
1. Install Alfresco enterprise or community
2. Start alfresco user admin pw admin, install flexspaces 0.91+ webscripts, see readmeWebScripts.txt
3. Install a separate Liferay 5.2.x tomcat bundle from liferay.com
4. I changed all the ports in <liferay>/<tomcat>/conf/server.xml to start with 9 instead of 8 (8005->9005, 8080->9080 twice, 8009->9009) to not conflict with tomcat running alfresco
5. Start liferay tomcat and login bruno@7cogs.com (password: bruno)
6. Within Liferay install the FlexSpaces portlet: Add Application / Install More Applications (use refresh button at bottom to refresh plugin list) and click add on FlexSpaces item from the Alfresco or Flex category
7. Configure the portlet in its configuration UI to have the views wanted and for your Alfresco web script URL (may need different host,port), and save.
8. Login to the FlexSpaces portlet (user: admin, pw: admin)
9. The FlexSpaces portlet also works with LiveCycle Content Services ES:
a. in the portlet configuration UI set the Alfresco webscript URL in to http://localhost:8080/contentspace/service and set show tasks to false
b. in FlexSpacesConfig.xml set is LiveCycleContentServices to true, serverVersion to 2.1 for LC 8.2.1, and set useSessionData to false (need to do some more work to get the short term state save to work with LC CS, and avoid the re-login on portlet resize)

Haven’t tried using SSO approaches yet:
1. Rivet Logic STAr (Secure Token Authentication rivet amp for Alfresco) used with AWPr
2. Jonas Yuan / Cignex LDAP ADS and SSO CAS  and also blog post on a combined install
3. Sourcesense Alfresco OpenSSO integration
Other references
1. Luis Sala’s portlet dev wiki page and blog
2. Jeff Pott’s blog

Steve

FlexibleShare+AIR (dashboard/portal for Alfresco, LiveCycle): build1 available

Tuesday, May 19th, 2009

A first build and source for FlexibleShare+AIR, an open source, Flex based dashboard/portal container focused on document management (Alfresco, Adobe LiveCycle Content Services ES), collaboration (Alfresco Share),  and BI/charting/reporting, is now available on the Alfresco Forge and on Google Code.

As a Flex based dashboard for FlexSpaces view pods (doc mgt, wcm, search, workflow tasks), its further along. (Note that the WCM pod is commented out in data/pods.xml).

The Flex based pods (blog, wiki, discussions, doclib, calendar) for Share back-end are prototypes. No commenting/reply feature yet. The calendar doesn’t hook into the Share backend yet. The Share dashboard html pod runs the Share overall dashboard (no pods for individual Surf dashlets yet).  (Note that you need to confgure Share pods with the correct site short url name in the siteUrlName attributes in pods.xml)

The Charting, Pentaho charting, JasperReports report viewer pods are samples only (additional BI/reporting capabilities to come). Liferay html pod runs the full Liferay portal (no pods for individual Liferay portlets yet).

FlexibleShare uses the Esria dashboard sample. I still need to look into leveraging the  Anvil project to provide more modular support for loading Flex portlets. (Note see previous blog post with more details on FlexibleShare)

Do to use of AIR, you can drag desktop files into FlexibleShare folder views. Regular AIR drag / drop also allows you to drag files from the local files pod to folder view pods and between folder view pods. Calais semantic auto-tagging, tag suggesting can be used in Doclib pods and in the search pod (switch from having the “simplesearch” pod to the “search” pod in pods.xml), and setup the Calais key / set enableCalais in FlexSpacesConfig.xml

To get FlexibleShare to run on LiveCycle Content Services (8.2.1), FlexSpacesConfig.xml needs to be changed following its LiveCycle comments (different setting for alfresoUrlPart, set isLiveCycleContentService value to true, and set serverVersion to 2.1 to reflect its embedded Alfreso. Also in data/pods.xml comment out the tasks pod, and remove the pods in Share section. Note: for FlexibleShare on LiveCycle on non localhost, currently need to recompile with service-config.xml changed.

FlexibleShare Document Management (WCM pod not shown) screenshot (click on for larger):

FlexibleShare+AIR  document management

FlexibleShare Collaboration screenshot (click on for larger):

FlexibleShare+AIR Alfresco Share Collaboration

First FlexibleShare prototype sneak peak

Thursday, January 29th, 2009

Here is a screencam of an early prototype of FlexibleShare, an open source Flex  based portal container / dashboard with Flex based pods for open source enterprise SW (Alfresco ECM, Alfresco Share,  reporting/BI, BPM, portals):

FlexibleShare prototype

This will initially focus on Flex+AIR, and later will have Flex+Browser support.  Also plan to enable the pods to be used as Adobe Genesis Tiles.  (Note: the Flex based pods for Alfresco ECM will support Adobe LiveCycle Content Services ES too).

Overview of  the prototype:

The prototype currently uses the Esria dashboard sample (inside a Flex+AIR application) as its portal container (also looking at the Anvil project to provide more modular support for loading Flex portlets).

Alfresco ECM / FlexSpaces tab:
The first tab in the prototype screencam has pods based on FlexSpaces (Doc Lib, Search, Tasks, WCM, Local Files). The cool thing in AIR is that desktop drag / drop into the Doc Lib and WCM pods just “works”. The Local Files pod takes advantage of AIR apis to access local files and drag / drop from it into the Doc Lib and WCM pods works too.  FlexSpaces support for Calais integration semantic tagging is also supported if enabled.

Flex-ification of Alfesco Share tab:
This tab has the early beginnings of some Flex UI (blog, wiki, discussions, site doc lib, calendar) for Alfresco Share backend. For the calendar, I am using code based on Ely’s interactive calendar. For the overall Share dashboard and Share site dashboards, using the AIR webkit HTML control to display them (so Ajax Surf dashlets can be used in them). Update: for blog, wiki, discussions, now working on more specific UI  instead of FolderViews (instead will have post/comment tree,  selected item content viewer pane, etc.) Update: Later will look into pods for individual Surf dashlets.

JasperReports tab:
This tab is using a modified version of the flex based JasperReports flash viewer to display jrpxml files.

Charts tab:
This has left in pods from the ESRIA dashboard sample. These use the Quietly Scheming chart animation effects.

Pentaho tab:
This is based on a Flex version of the Pentaho dashboard sample.

Liferay tab:
This runs Liferay in a AIR webkit HTML control. Update: later will look into pods for individual Liferay portlets.

CMIS:
Update: Will look into pod for CMIS api repositories with drag / drop from desktop and with Alfresco pods

Adobe Genesis MAX 2008 presentation recording now on Adobe TV

Monday, January 12th, 2009

Adobe TV added about 50 more MAX 2008 presentation recordings today including:

Genesis MAX 2008 presentation recording. This recording has both a presentation and a demo in it. (Genesis MAX 2008 presentation slides on SlideShare)

Also see my previous blog post on Adobe Genesis / Flex Portals / Open Source / FlexibleShare

Liferay + FlexSpaces + Alfresco

Sunday, November 30th, 2008

HOW TO: FlexSpaces in Liferay IFrame portlet

liferay iframe flexspaces

screencam video demo

I just tried a quick test of running FlexSpaces+Browser in a Liferay IFrame portlet. It worked! All features of flexspaces worked:

  • Doc library, search, tasks, wcm views
  • Drag/drop of files between dual panes, internal cut/copy/paste between spaces
  • File upload, file download, file viewing, preview, play video
  • Checkin, checkout, edit, cancel checkout, update, make versionable, version history panel
  • Icon, thumbnail, grid list, cover flow view modes
  • Search, advanced search, tag cloud, category navigation
  • Create space, properties edit, tags/categories edit
  • Make pdf, make flash, start workflow
  • Coming flexspaces 0.8 features with Calais integraion (auto-tag, manual semantic tag properties edit, multiple semantic tag clouds)

Issues noticed: works best when portlet maximized, when not, doesn’t use full portlet area, when switching portlet between regular and max size looses login, liferay dialog not always on top of iframe/flash. Things might work better with the Liferay Flash portlet.

(Update 8/16/09: Added short term state save/restore in SharedObject of ticket/doclibPath/tabIndex in FlexSpaces. Now works much better (don’t loose login, view state when resize portlet. Used Liferay Flash portlet instead of IFrame portlet. Also Liferay dialogs z order was fine. Also would work with flexspaces webapp installed in either Liferay tomcat or in Alfresco tomcat (just different Flash portlet swf url config) )

Didn’t try more integrated approaches yet:
Webscripts as Liferay portlets on ecmarchitect.com
Full Integration of Liferay 5.1.2, Alfresco 3.0 E, SSO, LDAP
Use Liferay Flash portlet instead of iframe portlet

Config used: Alfresco enterprise 3.0 in one tomcat, Liferay 5.1.2 in another tomcat, windows vista

How to:
0. Install Alfresco enterprise or labs
1. Normal install of flexspaces+browser flexspaces dir in alfresco tomcat webapps area, flexspaces+browser 0.7
2. Flexspaces webscripts installed in alfresco, flexspaces 0.7 webscripts
3. Install separate liferay + tomcat bundle from liferay.com
4. I changed all the ports in liferay tomcat conf/server.xml to start with 9 instead of 8 (9080, etc.) to not conflict with tomcat running alfresco
4. Start alfresco tomcat
5. Start liferay tomcat and login test@liferay.com (password: test)
6. With liferay “Add application” add a IFrame portlet from the Sample category
7. Configure the portlet to have the source url: http://localhost:8080/flexspaces/FlexSpaces.html
8. Title of portlet can be changed to “FlexSpaces” by clicking on “IFrame” text in the title and editing
9. If portlets of the FlexSpaces individual views instead of all 4 views in one portlet, (or 2 views only in one portal, etc.) the srcUrl args doclib=true&search=true&tasks=false&wcm=false to FlexSpaces.swf can be used like in the flexspaces 0.7 page site components for share (See FlexSpaces Share integration blog post with screenshots)

Steve

Adobe Code Name Genesis / Flex Portals / Open Source

Saturday, November 15th, 2008

Genesis Presentation

Adobe is going to give more details about Genesis, their enterprise / collaborative / mashup AIR client next week at Adobe MAX. This client is supposed to be a free download with for pay SAAS collaborative services, and have an app catalog.

Although I assume it won’t be open source, I am curious how open and flexible it will be. Can it be used as a general flex based portal container? Can you customize the container or only just plug in Tiles? What apis will it have? Could you use it without their services and tie in your own SSO ?

I could  do the portlets for the FlexibleShare project I have started on as Genesis Tiles  (for Alfresco ECM, Alfresco Share collaboration, open source BI/reporting, etc).  Maybe also have an open source Flex portal container supporting the Adobe Genesis Tile api  (and support both Flex+AIR and Flex+Browser containers. Note: html embedded in Flex works best in AIR).

I have been prototyping using the Esria dashboard sample as a Flex based container with FlexSpaces components in pods (Alfresco DocLib, Search, Tasks, WCM). It works in AIR including drag/drop of desktop files into FlexSpaces pods. The DocLib and Search pods also support Adobe LiveCycle Content Services ES. The Alfresco Share UI works in this prototype currently in an HTML pod. I will be starting Flex versions of the Alfresco Share collaboration components (wiki, blog, calendar, discussions). Also have a JasperReports viewer pod based on a modified version of the flex based JasperReports flash viewer.  There is also a Flex based Pentaho dashboard sample available.  BIRT reports could be viewed as html or pdf, or with the Actuate interactive viewer.

The open source Anvil project (Flex MDI portal / Java backend framework) could be leveraged.  Also found an interesting article about Flex based portals: “A new way to look at Portals“.

Some Genesis links
Blog: Code Name Genesis - The Future of the Enterprise Desktop
Demo of an early Genesis prototype
The Future of the Enterprise Desktop: The Elevator Pitch
Office 2.0 Conference: Adobe Genesis Unveiling
Teblog: Adobe Genesis addresses real needs
Adobe readying new mashup tool for business users | ITworld

Update: Newer Genesis Links
Genesis page on Adobe Labs
Genesis Overview Slides on SlideShare from Adobe MAX 2008
update 1/12/09: Genesis presentation at Adobe MAX 2008 on Adobe TV

FlexibleShare

Tuesday, November 11th, 2008

Something new is on the way: FlexibleShare

Flex based version of Alfresco Share / Flex based Portal Container  (Open Source)

1. Dashboard dashlet/portlet drag /drop in Flex
2. Portlets in Flex and HTML/Ajax
3. Leverages FlexSpaces components
4. Leverages Alfresco Share (site model, rest apis, surf, dashlets),
5. Additonal Flex components for wikis, blogs, discussions, calendar
6. Leverage Liferay, (supports jsr-168, wsrp) in a later stage
7. Reporting/BI (JasperReports, Pentaho, BIRT)
8. BPM (JBoss jBPM in Alfresco)
9. Desktop drag/drop of files with AIR

Registered a google code project  http://code.google.com/p/flexibleshare/ and an Alfresco forge project http://forge.alfresco.com/projects/flexibleshare/

Note on the name: Alfresco Share and Surf are already “flexible” (in the able to adapt to new situations sense). Also you can implement Share/Surf components/dashlets with Flex  (as I did with the FlexSpaces page site components).  The difference with FlexibleShare is that the container itself is in Flex and the primary way for implementing dashlet/portlet UI is Flex (and Flex+AIR). Surf dashlets and Liferay portlets in HTML/Ajax are still supported.

Also used “Flexible” to sound like the book Flexible Rails (Flex+Ruby on Rails).  With FlexibleShare although the server scripting would tend to be the usual web scripts in JavaScript, also  supporting Groovy/Grails would be interesting and fit in with the Java and Spring use in Alfresco.  The Alfresco forge has a Groovy integration (although it needs some updating for Alfresco 3.0).

Other things: the use of a web-tier Flex compiler (like the Flex plugin for Grails does) could be used to allow Flex forms/UI to be added (and compiled automatically) without having to use a development tool. BlazeDS support like in this plugin would also be nice too for higher performance data transfer.

Update: See description of  FlexibleShare prototyping mentioned in my Genesis / Flex Portals / Open Source blog post.