ECM, BI, and AI / Semantic Tech Open Source, HTML5/JS, Angular, Alfresco, CMIS, BI, Visualization, AI, Semantic Search, SPARQL/RDF/OWL

2. August 2012

FlexibleDashboard+Liferay: Collaborative BI dashboards managed in Liferay


FlexibleDashboard+Liferay is an open source BI dashboard app / framework which supports dashboards layouts (user/group) managed in Liferay that can mix pure Flex FlexibleDashboard pods and regular Liferay portlets. This used to be called FlexibleLiferay when it was only a Flex portal container / Liferay front end app for portals with only regular Liferay portlets.

Placeholder “flexpod” portlets from the “FlexibleDashboard+Liferay” category can be added to a page/tab in the regular Liferay web UI, to configure BI dashboards. Then in the FlexibleDashboard+Liferay Flex/AIR app the appropriate FlexibleDashboard Flex pod will be displayed instead of a portlet. A Flex pod means its a pure Flex module being displayed without being wrapped in a portlet / HTML.

All these FlexibleDashboard Flex pods are supported: bar/line chart, pie chart, grid and grid/chart with Spring ActionScript config of BlazeDS data sources, BIRT report, JasperReports report, OLAP pivot grid / XMLA query tool, Pentaho charts, calendar, local files, and HTML.

Current limitations: pod.xml file configures on a portlet basis, would be better to have configurable properties on a portlet instance basis. Also module SWF files load from the Flex/AIR app dir, not from portlet web app dirs.

26. June 2011

FlexSpaces, CMIS Spaces, and Portlets updates

 FlexSpaces 04 05 2011

FlexSpaces (Flex+AIR, Flex+Browser, portlets) RIA clients for Alfresco ECM

In March, FlexSpaces (Google Code, Alfresco Forge) was finally ported from Flex 3 to Flex 4. A first pass of moving from halo controls to spark controls was made, and it has a new look with the spark theme. In April the “04 05 2011” version of FlexSpaces added the optional capability to use Alfresco Share form xml configurations to configure view/edit mode Flex forms in a new tabbed properties dialog, thus supporting custom types, aspects, etc. See the readme-form-config.txt in the distributions for how to enable and use this configuration capability.  This version also changed to have the advanced search and properties dialogs resizable using skins from flexdevtips.    

In May, the portlets to run FlexSpaces in portals were updated. To keep them from getting outdated as quickly, they are now wrappers that reference a separate install of the “in-browser” non AIR version of FlexSpaces (that can be updated separately). The older FlexSpaces Liferay portlet supported Liferay 5.x, the new one supports Liferay 6.x.  This is available in the Liferay community plugins catalog. The FlexSpaces portlet and gadget for the GateIn portal were both updated. The FlexSpaces portlet for the original JBoss portal was also updated.

CMIS Spaces (Flex+AIR, Flex+Browser, portlet) RIA clients for content servers supporting the CMIS standard (Alfresco, IBM, EMC, Nuxeo, Microsoft SharePoint, Adobe Day CRX, etc.)

In April, CMIS Spaces, based on FlexSpaces, was ported from Flex 3 to Flex 4. CMIS Spaces has both atompub rest binding support (default, with more features hooked up in the UI) and web services SOAP binding support (optional, with only navigation and search features can be used through the UI, although the full featured data access backend code is present). Note that the ActionScript code for all the CMIS SOAP binding APIs was re-generated with FlashBuilder 4 / Flex 4.1 SDK / fiber (and this improved things to not have repeated code for types across the multiple CMIS SOAP web services).

In May, a Liferay 6.x wrapper portlet for using CMIS Spaces in a Liferay portal was introduced. This portlet references a separate install of the “in-browser” version of CMIS Spaces. Having these two parts allows CMIS Spaces, like Flex Spaces, to be updated separately and avoids the portlet getting out of date. The CMIS Spaces portlet is also in the Liferay catalog.

2. October 2009

FlexibleDashboard, FlexibleShare, FlexibleLiferay


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

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


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

30. August 2009

Liferay portlet for FlexSpaces

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 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
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 (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


30. November 2008

Liferay + FlexSpaces + Alfresco

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
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
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 (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)


Powered by WordPress