Author: Jeff Potts

Alfresco 2.9 Community highlights

I’ve finally been able to carve out some time to play with some of the new stuff in 2.9 Community. One of the most hyped features in 2.9 is Facebook integration. I covered that by creating a screencast last month. Today I take a brief look at Dynamic Content Models, XForms in the non-WCM interface (“ECM Forms”), blog integration, project spaces, and category-based navigation. I’ll dig into Google Gadgets, MS Office integration (including tagging), and other 2.9 features in a future post.

Dynamic content model/web client configuration

One of the painful things about making changes to the model, from an “Enterprise” perspective” has been that it requires a restart. For a production repository serving hundreds or thousands of users this could be a real problem. In 2.9 Community, you can store content model XML, message bundles, and web-client-config-custom.xml in the repository and then dynamically reload them without leaving the web client. This also includes the ability to deploy workflow content models.

You don’t have to do anything special to your existing extension files to get this to work. Just drop them in the appropriate Models, Messages, or Web Client Extension folder in the Data Dictionary and use the new Repo Admin Console or Web Client Config Console to reload.

On a related note, you can now deploy process definitions from within the repository as well by placing them in the “Workflow Definitions” folder in the Data Dictionary and then using the Workflow Console to deploy.

For more information, see the Dynamic Content Models page on the wiki.

XForms in the non-WCM interface (aka “ECM Forms”)

When web forms first made their appearance as part of the WCM release, people asked, “Can I use web forms outside of the context of a web project?”. Now you can. There is a new folder in the Data Dictionary called “Forms”. Navigate to the folder, click Create Form, upload your XSD, and you’re all set. To create content with the form, select the form from a list of available forms when creating content. Just like WCM web forms, the embedded XForms implementation, Chiba, inspects the XSD, provides a form to capture the content, and saves the data as XML.

In my build, the creation worked fine but editing the saved data did not. I’ll do some more digging on this and file a bug report if it is a problem. (UPDATE: Someone already entered a Jira issue on this).
It is curious why Alfresco chose to split out “Web Forms” from “ECM Forms” when they are conceptually and technically the same thing. In fact, the inability to associate a presentation template (XSLT, or Freemarker) with an ECM Form is frustrating. I suspect, but haven’t confirmed, that web form data transformation is embedded in the web client layer instead of in the service layer making it hard to reuse in other parts of the app. Unless this is addressed, you’ll have to rig up your own transformations using rule actions or some other alternative to transform form data from XML into some other format.

I tested the ECM Form functionality with an existing WCM web form and it worked fine (except for the update issue I mentioned). Note, however, that the File Picker is not supported in ECM Forms. (Again, in my mind the two ought to be functionality equivalent so hopefully Alfresco will close this gap shortly).

For more information, see the Forms Developer Guide on the wiki.

Blog integration

The blog integration module adds the ability to post HTML and text content from the Alfresco repository to a Typepad or WordPress blog. Because this is implemented using aspects, you can add this capability to any space in your repository. Or, you can use it from the “My Blog Posts” space in a Project Space (more on that shortly).

Installing the blog integration module adds the Java code that implements the actions for adding, deleting, and updating blog posts as well as a content model with two aspects: Blog Details and Blog Post. The Blog Details aspect gets added to any space from which you want to post content. It tracks information such as the type of blog, URL for the blog, blog user name, and blog password (stored and displayed in the clear!). The Blog Post aspect gets added to individual pieces of content. Alfresco updates this metadata with information about the post such as the blog post id, the URL to the post, and post/modified dates.

For more information, see the Blog Publishing User Guide on the wiki.

Project space

You’ll notice a new node under Company Home called “Projects”. A Project is a space (folder) with a set of collaborative tools including Blog Posts, Calendar, Document Library, Email Archive, Forums, and an Image Gallery.

When you open a space a project dashboard, of sorts, is displayed as well as an online presence dashlet. The project dashboard gives each of the collaboration tools a chance to report status such as the number of new documents added in the last X days or the calendar events for the week, etc.

The presence dashlet shows the online status (Skype or Yahoo) of the people that have been invited into the space (either individually or as a group). Incidentally, the messaging ID of a particular Alfresco user is just one of several new pieces of user metadata added with 2.9.

Let’s take a quick look at the collaborative tools that are included by default in a project space.

The Blog Posts tool uses the blog integration module already described to push content to a blog. The Blog Posts space adds a custom view that shows articles that have yet to be published and articles that have been updated since they were originally published.

The Calendar tool gives you a monthly, weekly, or daily view of events. The events are created and stored (as calendarEvent objects) in the repository. You can also subscribe to other project calendars within the repository which enables you to see events from more than one calendar at once. (This functionality was contributed by a partner, which is cool, but there’s more work to do integrating the UI into the existing web client style).

Document Library is just a normal space with a custom view for seeing recent changes.

Email Archive takes advantage of the new functionality that makes it possible to assign an email alias to any object in the repository. There really isn’t a difference between the Document Library and the Email Archive–you could email content to either space. The Email Archive just gives you a convenient container for all inbound emails related to a project.

The Forums tool is the same forum space that has been around a while. It gives you the ability to have multiple forums for threaded discussions related to your project.

The Image Gallery, not surprisingly, is a space for images. The interesting feature is the folder’s custom view. It’s a photo album with turnable pages. Any images added to the Image Gallery space automatically appear in the photo album. More form than function, the widget is an example of how you can use Alfresco’s new Flex SDK to add rich interfaces to the data in your repository.

A Project Space is really just a Space Template so removing or adding tools to the Project Space is just a matter of copying and modifying the New Project space template in the Data Dictionary.

For more information see the Project Spaces page on the wiki.

Category-based Navigation

Unfortunately, a problem with the category picker prevented me from fully testing this but if you click on the “Navigator” link in the sidebar you’ll see a new entry called “Categories”. If you click it, you’ll get a tree view of the categories currently configured in the repository. Clicking on each category should show content categorized to that category, essentially giving you the capability to treat the category hierarchy like a set of folders.

Try it on your own

I’d definitely encourage you to download and try out the Community Edition for yourself. I don’t recommend you run production solutions on Community, but it is a good way to try functionality that may make its way into the Enterprise release.

Successfully sync’ing a Treo 650 with Gutsy Gibbon

I finally got my Treo 650 to sync with my Gutsy Gibbon laptop. All the ingredients are on this page but there’s a little something for everyone there. You have to pick and choose to get it just right for your setup.

For me, the key steps were:

  1. Edit /etc/modules to add “visor” to the end of the file.
  2. Edit /etc/udev/60-symlinks.rules to comment out the “for Palm Pilots” rule.
  3. Edit /etc/udev/10-custom.rules to add the following:

BUS=="usb", SYSFS{product}=="*[vVisor]*", KERNEL=="ttyUSB[13579]", NAME="pilot", GROUP="dialout", MODE="0660"

As the instructions point out, be careful to use double equals (comparison) in the right places versus single equals (assignment).

Once that was in place, I just had to make sure the devices tab in gpilotd-settings was pointing to /dev/pilot and voila!

Acquia to provide vertical solutions, commercial support

In this CMSWire interview with Drupal founder Dries Buytaert we get a glimpse at what Dries’ new company, Acquia, is all about.

Acquia will provide added value to Drupal users by reducing risk and saving them time. Users who are cautious about deploying Drupal will have the option to purchase a commercial subscription from Acquia to help them maintain and monitor their Drupal website.

Dries goes on to say that Acquia will provide solutions built on top of Drupal, but the specific vertical (Media & Publishing, Education) and/or horizontal (Corporate Intranets) is still being finalized.

New optaros.com web site goes live

The new Optaros web site is live. It features blog posts from several of us around the company on topics like Next Generation Internet (NGI) applications, user-centric design, methodology, and content management as well as several case studies on solutions we’ve implemented for clients.
If you are a regular reader of this blog, you should continue to subscribe to this feed. Most posts will appear in both places so this blog will be a superset of my posts on optaros.com.

I encourage you to head over and take a look. In case you’re curious, the new site is built on Drupal.

Alfresco-Facebook integration screencast

Towards the end of the year there was a lot of coverage of Alfresco‘s announced Facebook integration, but if you weren’t at either of the user conferences, and if you didn’t get a chance to download, build, and install the Community Edition with the Facebook integration module, you may be wondering what it looks like. I put together a short (5 min) screencast to give you an idea. The screencast shows a new document library getting created in facebook followed by a document getting uploaded to the library. I then switch over to the Alfresco web client to show you how the files get stored in the Alfresco repository.

The screencast is on YouTube.

This is the first time I’ve put together a screencast. You have to kind of unfocus your eyes if you actually want to read what’s typed on the screen and there are a few places where my headset mic was too close to my mouth, but I don’t think either of those problems keeps you from getting the idea of how the Alfresco-Facebook integration works.

I used rev 1330 of Community 2.9 from Head. It may or may not have changed since then. If you want some of the configuration details, check out the Facebook page on the Alfresco wiki.

AIIM & Drupalcon in Boston 3/3 – 3/6

I’ll be at AIIM again this year in Boston March 3rd through 6th. It’s always a huge and diverse conference. If it has anything to do with content, it will be in Boston. You’ve got the imaging guys with their giant scanners, copiers, and printers, you’ve got the obscenely large booths from some of the closed source ECM folks, and you’ve got the more modest (but much more interesting!) booths from the open source contingent (Alfresco and Optaros will be in the same booth this year).

This year I was happy to learn that Drupalcon is going on at the same time and place as the AIIM conference so we’ll see a much-needed injection of people who care about open source content management at the event.