Tuesday, April 12, 2011

Rich Text Editor in IBM v6.1

Business Need

In the todays world it is most common that CxO of a company would like to intract with public and employees over blogs, wikis... So it is imperative that that Content management system should have a most elegent content contribution interface with all the features of normal document autoring and aswell trouble free.

I took 3 tools for my analysis, they are

1. Ephox EditLive
2. TineyMce
3. CKEditor

Ephox EditLive

Pros:
# Most powerfull Rich Text Editor in the market with all essential features
# Good Support as it is licenced
# Good Code organization and easy to develop custom feature

Cons:
# Applet based so requires right version of JRE with all the clients
# Linking external CSS file for the style definition in portal context is tricky and required static definition at the configuration XML.

TineyMce

Pros:
# Rich in Features
# Javascript based and hence no dependecy with client side plugin
# Good architecture

Cons:
# Support is not good
# Custom development requires deep expertise
# Integration is not easy

CKEditor
Pros:
# Javascript based and hence no dependecy with client side plugin
# Easy to do Custom development
# Easy to Integrate

Cons:
# Poor Documentation and support
# Results in some allignment problem if the custom development involves custome tags.

If the organization objective is to find a tool for requires almost all employes of the organization to author a content, It is necessary to avoid dependency with client side plugins. In such case RTE based on the normal Javascript is better option. So essentially we are narrowed down to TineyMCE and CKEditor. Given this choise CKEditor look favourable in terms of cost to production with most decent features in place. If the content autoring requires support of custom tags, TineyMCe would be the better solution among all. On the otherway If number of contributor is less , Editlive is perfect option as the posibility to end with plugin problem is limited.

Ideal solution:

Inorder to better utilize the power of Editlive and to get the rouboustness of TinyMCE it is beter to make TinyMCE as a fallback for the Editlive. Fortunately Ephox is working on this fallback scenario and there is more challenge for them to meet the markup compatibility between two RTEs.

Inline Editing in WPS 6.1

Recently I was analysing the oppurtunity to utilize IBM Inline Edit mechanism given in Websphere Portal.

For example while implementing a Inline edit for List structure, we look for following features.

1.Create new content
2.Edit current content
3.Publish(Approve) content
4.Expire content
5.Delete content
6.Disable Authoring Components in Production

For any project above five operations are very basic functional needs. When started analysing we were so disapointed with the features provided by IBM.

Create Content & Approve Action

I have included the Authoring Tools component for Create content in the header of ther Menu component. This would result in rendering of button to create content. Rendering in proper we have a button in the list. On click of button well it took us to form based on the underlying authoring templeate. So far the behaviour is normal. After we will the form with values, we have been given the option to Save. Here is the problem, Upon the click of Save button the content is saved as Draft content. As we know menu component can only search published content, the the content just saved is not falling under the current search result and hence it does not appear in the rendering side. As there is no chance to render the draft content, we have no way to see Approve(Publish) button.

Workarround:

Bypass Draft. We must publish the content as soon as content is authored by clicking “Save and Approve”. (Not a better choise because all contents forced to go live)

Edit Content & Expire Content

Ok. It satisfies the core need of editing the current content.

There is no option in Authoring Tools component to render the expire button. Other way they can give it as part of Edit form. But even in edit form it fails to give option “Move to Next Workflow”.

Workarround:

For Next workflow: We have to move away from IBM inline edit and forced us to use Our own Custom implementation based on WCM API.

Delete Content

Perfectly OK. Good luck to IBM(So far we have not found issues)

Limitation to Disable Authoring Components in Production Site

Currently there is no parameter(configuration) available to stop rendering the Authoring links in production. Becaue of this Create, Edit, Delete buttons are rendered. This I feel is not a good practice

Workarround:

The quick and dirty option is to clear the reference to Authoring Tools from Menu component. Offcoure in this case we need to maintain different MenuComponent design for Authoring environment and Production environment. (We have be coutious if syndinacion is enabled, if enabled the only option is to lock the Menucomponent in Producion, so that syndication will not override locked contents). Alternatevely we can clear Authoring template and lock it.

Let’s hope future versions of WPS addresses these basic requirement.