The main purpose of Aikau is to provide a library of widgets that can be easily assembled into a web application for accessing a repository. The aim is not to replace Share but it was necessary to migrate away from its original implementation, which was based around the Surf paradigms of pages, templates, components and web scripts, towards a solution that provided for rapid development and customization.
The main goals of Aikau are:
- Provide a library of fine-grained, decoupled widgets that completely encapsulate all of their function, styling and localization behavior.
- To make it easy to unit test those widgets across multiple browsers.
- To be able to dynamically build pages both for and within the running UI and render them without restarting any servers.
- To provide a foundation on which our business partners and customers can build their own solutions.
Building on previous work
- Using MD5 checksums to allow browsers to safely cache resources indefinitely
- Encoding images directly into CSS files.
All of these features are leveraged in the improvements and this makes it easier to produce faster, more reliable pages, in less time for the Alfresco Share and the Alfresco Share in the Cloud web applications.
When you render a web you are normally expected to take care of the styling by using separately referenced CSS files. For example, you might import a theme style sheet for the framework that you are using.
Although Share was originally built using YUI2, JQuery plugins have also been introduced and it can not be restricted to using Dojo. The UI framework is designed to easily support widgets provided by other libraries and by design it is possible to swap out Dojo widgets for those provided by other libraries. A mechanism exists for wrapping our existing YUI2-centric widgets to that they can be referenced in the JSON model for the page. The Calendar of any Share site uses a combination of the YUI2, JQuery and Dojo libraries.
Aikau use in Share
The library of Aikau widgets continues to grow. The following components are already implemented using Aikau:
- Live Search
- Filtered Search Page
- Search Management Page
- Site Management Page
- Analytics and Reporting Widgets
- Page Creator
- Document List Prototype
Aikau GitHub project
Aikau is available as an open-source project on GitHub.
A comprehensive Aikau tutorial is available on GitHub.
Aikau widget library documentation
The documentation for the Aikau widget library can be found on the Developer web site.