Skip to main content
Kinetic Community

Kinetic Request Bundle Guide

Kinetic Request facilitates complete customization of branding and theming through the use of Kinetic Bundles.  A Bundle specifies the look and feel for a Kinetic Request instance using standard web technologies such as HTML, CSS, and Javascript.  A single Kinetic Request instance can front end multiple themes or identities by implementing and referencing multiple Bundles for the application.

Details

A Bundle is a self contained collection of files intended to simplify the improvement of web-based Kinetic Request interfaces. These files are stored with the Kinetic Request web application, and help to define both interface architecture (such as how to retrieve dynamic Kinetic Request information) and the interface look and feel. The Kinetic Bundle strategy leverages common web technologies (HTML, CSS, Javascript) together with JSP to implement a fully brandable service interface.  A Bundle represents a consistent web presence or identity for the Kinetic Request application, and allows a single Kinetic Request installation to serve multiple themes and brands.
 
A Bundle includes multiple Packages, which represent a single view or console. For example, a very light Bundle may only include a simple base Package that defines a branded display page for service items. A typical Bundle would also include a portal, or catalog console that defines the presentation of services offered by the catalog. An even more complicated Bundle may include additional Packages to implement a fulfillment console, submission console, or reporting console. In addition to functional Packages such as these, all bundles will contain two "special" Packages: the common Package and the core Package. The common Package includes files that are intended to be used by multiple packages within the bundle, such as shared CSS stylesheets, header/footer definitions, etc. The core package includes the core files necessary to implement the Bundle framework.

Organization

Files within a Kinetic Bundle can typically be described as one of four types: configuration, framework, interface, or resource.
 
Configuration files are used to abstract values that can or should be changed when a package is implemented. This ensures that there is a single point of modification when a package is deployed to a new server or environment, significantly improving modularity.
 
Framework files are those that facilitate the framework or architecture of the Bundle (or package), and are almost always JSP fragment files.
 
Interface files are files, typically JSP or JSP fragment, that represent the actual content that is rendered when a display request is made to the Bundle.
 
Resource files are the CSS, Images, and Javascript that are referenced by a Bundle's interface files.

Directory Structure

The bundle is broken down into just a few top level directories, with supporting files and directories within each.
 
The common directory contains resources that global to the application so all pages have the same look and feel. These resources might be an image library, stylesheets for colors, a header and footer page fragment, etc... The files in this directory are likely to be changed frequently, especially when the bundle is in development.
 
The core directory also contains resources that are global to the application, but these files are likely not to change. This directory should contain all the data models that other JSP pages use, as well as the 'include' files that load up all the required external stylesheets and external javascript pages that other JSP pages use.
 
The libraries directory should contain any external libraries that the bundle depends on, such as JQuery if the bundle uses the JQuery js library. Another example is the 'ars-table' widget that displays data in a customizable table format.
 
The packages directory contains all the modules that make up the bundle. A 'base' package will always be provided with a bundle. The base package contains the files used by most of the service catalog - the service items, review page, custom confirmation pages, etc... This is also the place where the main catalog launcher, or portal page will live as well. Any resources that are specific to these pages should be placed in the base package, such as styles or javascript that are specific to service items, or portal page. If the styles or javascript functions are generic and can be reused by other pages, they should be moved to the 'common' directory described above. Any other items such as fulfillment consoles, submission consoles, report consoles, etc..., can be added on as a 'package', and should be placed in the packages directory.

See Also

The Benefiting from Kinetic Bundles KEG-2012 presentation.

The Klean bundle, a bare-bones bundle intended for bottom up development.