This document explains the organisation of the JS modules of the Social Business Toolkit. The JS modules can be categorised for providing high level and low level APIs.
The high-level APIs expose helpers for performing various high level operations for various services from IBM
® social software. For eg., there are high level APIs to get collegues for a perticular profile from IBM Connections. This API consume various low level helpers like endpoint, proxy, stringUtils, logging etc. The high level wrappers provided by SDK cover services from the following social softwares from IBM
- IBM Connections: Profiles, Communities, ActivityStreams, Files.
- IBM SmartCloud™: Profiles, Communites, Files. (Note that the underlying implementation of the high level wrappers for communities and files service are same for IBM Connections and IBM SmartCloud. However, the implementation for profiles services are different for the two social softwares)
- UI Grids: helpers to construct reusable user interfaces from data coming from IBM Connections.
- XML / XPath helpers - Utilities for performing XML parsing and xpath related operations.
- Json helpers - Utilities for parsing json data.
- Proxy - Utilities for proxy server support to modify the target url to point to the proxy servlet, which redirects the network call to the social software.
- Endpoint - Implementation of the endpoint used by the SDK.
- Dojo / Dojo AMD / JQuery libraries - Some modules which use library dependent APIs like Dojo and JQuery.
- Transport - Implementation of the transport layer which actually makes the network call from the client to the proxy servlet, used by the SDK. This implementation is library specific, based on either Dojo or JQuery.
- Authenticators - Helpers for performing authentication related tasks such as opening of authentication dialogs.
All the js modules are present in the sbt.war web application and are present inside the WebContent/js/sdk folder. They are further organized in the following hierarchy -
|_bridges/dojo||JS modules which are dependent on older versions of Dojo which do not comply to AMD specifications like Dojo 1.4|
|_bridges/dojo-amd||JS modules which are dependent on newer versions of Dojo which comply to AMD specifications like Dojo 1.8|
|_bridges/jquery||JS modules which are dependent on JQuery|
|dojo||JS UI modules dependent on Dojo|
|sbt || Location for all low level and high level JS APIs. All modules under this location are library agnostic.|
|sbt/authenticator||JS modules related to authentication (high level API)|
|sbt/base||JS modules which implements some abstractions for JS modules providing high level APIs for Connections and SmartCloud.|
|sbt/connections||JS modules related to IBM Connections (high level API). There are various modules related to various services provided by Connections like profileService, profileConstants refer to profile service of IBM Connections.|
|sbt/connections/controls|| JS modules related to UI controls for various Connection services (high level API). The modules are further categorized under various services.|
|sbt/smartcloud||High level JS modules related to SmartCloud|
|sbt/smartcloud/controls|| JS modules related to UI controls for various SmartCloud services (high level API). |