Start of change IBM Content Navigator, Version 2.0.3         

What's new in version 2.0.3?

IBM® Content Navigator Version 2.0.3 includes new customization options for application and plug-in development.

What's new for developers

Enhancements to the sample plug-in
Custom favorites feature
You can create a custom pane. For an example of how to use a custom pane, see the SampleFavoritesPane and SamplePluginFavoritesFeature APIs.
Responsive design and CSS enhancements
Design enhancements in IBM Content Navigator Version 2.0.3 give users more space on the screen for their current task, whether they are completing an entry template or editing a property dialog box. The style changes continue to use the same document object model (DOM) and cascading style sheets (CSS) as previous releases, so if you developed custom plug-ins or styles to override IBM Content Navigator styles, those customizations will not change. Customizations of banners, logos, colors, and themes can be modified from the administration tool so that you do not need to customize these items manually. You can simply import a theme or modify settings in the administration tool.
Feature icons are SVG files
The icons that come with IBM Content Navigator Version 2.0.3 are Scalable Vector Graphics (SVG) images. These icons are colored at run time according to the theme colors that you specify in your custom CSS. You can create your own SVG icons. See Creating feature icons.
Plug-in resources cached on the web browser
Resources in plug-ins are cached on the web browser. This change can improve the performance of the plug-ins.

New customization options

Get a list of dependencies for a particular plug-in
You can obtain a list of plug-ins that are dependent on a particular plug-in by using the getPluginDependencies method in the com.ibm.ecm.extension.Plugin.java class. This method returns an array of plug-in IDs.
Connecting to a data source by creating a repository type plug-in
You can create a plug-in for a custom repository type to authenticate, search, and provide result sets for repository servers. For example, you might want to use a custom repository type to extend IBM Content Navigator for your client application to use repositories that do not store documents. The custom repository type enables repository-specific authentication and other actions for your repository server.
Plug-ins can provide request and response filters on plug-in services
In previous versions of IBM Content Navigator, request and response filters were limited to services that are defined in IBM Content Navigator. In IBM Content Navigator Version 2.0.3, you can apply a filter to a plug-in provided service.
New JSON classes in com.ibm.ecm.json
The following JSON classes can be used to format data:
  • JSONClassDefinitionResponse.java
  • JSONContentClassesResponse.java
  • JSONEditAttributesRequest.java
  • JSONItemAttributesResponse.java
  • JSONPrivilegesResponse.java
For more information, see com.ibm.ecm.json.
Entry templates are supported in the external data service (EDS) clientContext request parameter
You can include the active entry template's ID and name in the EDS context so that EDS implementations can return a different response if an entry template is active. For more information, see POST method and ecm.model._HasAttributesMixin.
EDS is supported on IBM CMIS provided repositories
You can now create and use EDS services on IBM CMIS provided repositories that work with the IBM Content Navigator connector.
EDS can be used for the following actions in an IBM CMIS repository:
  • addItem
  • checkIn
  • editAttributes
  • openContentClass
  • openItem
  • getDependentAttributeInfo
Implementing dependent choice lists in search criteria by using EDS or IBM Content Manager foreign keys
EDS and IBM Content Manager foreign keys can be used to provide dependent choice lists in search criteria.
Authenticating to a nonrepository data source
You can use custom authentication when container-based authentication is not an option for your use case.
Social features
Social features include likes (recommendations), tags, number of downloads (download counts), and comments. Social features are enabled when you install the social add-on to an object store on FileNet® P8 Version 5.2, and it will be enabled for all documents. For more information, see ecm.model.SocialItem and ecm.model.ContentItem.
FileNet P8 compound documents can be retrieved in result sets
You can retrieve FileNet P8 compound documents in IBM Content Navigator.
ACL services are supported for IBM CMIS for FileNet Content Manager and IBM CMIS for Content Manager

ACL services is a service that is provided in the OASIS Content Management Interoperability Services (CMIS) Version 1.0 OASIS Standard. You can use access ACL services to retrieve and modify security settings of individual objects (documents and folders) in the form of access control lists (ACLs). See http://docs.oasis-open.org/cmis/CMIS/v1.0/os/cmis-spec-v1.0.html#_Toc243905485.

Enhancements for integrating with task manager
Task manager is a Java Platform, Enterprise Edition REST application that enables you to schedule and run tasks. For more information, see ecm.model.AsyncTaskSchedule and ecm.model.AsyncTaskAudit.
File tracker API
Provides the ability to access file tracker applet functions. File tracking streamlines the process of adding documents to and checking documents out of and in to the repository. It also enables administrators to manage how documents are stored on users’ computers. For more information, see ecm.model.FileTracker.
New methods in the ecm.model.Repository object for providing repository object values for search
IBM Content Manager users only. OASIS CMIS users only. Values that the ecm.model.SearchConfiguration object needs from the Repository object are available directly in the ecm.model.Repository object. The ecm.model.SearchConfiguration object no longer uses the ecm.model.admin.RepositoryConfig object.
New model object to create a search by using queries
IBM Content Manager users only. OASIS CMIS users only. Search now accepts JSON that defines a search query. The ecm.model.SearchQuery object provides the ability to search repositories by using a query string. The query string must conform to the query language specifications of the underlying repository.
New entry template designer widget
Users with the appropriate privileges can create entry templates in IBM Content Navigator. For more information, see the ecm.widget.entryTemplateBuilder class.
Constructing URLs to customize what is displayed in the Work view
You can add parameters and values to a Work view URL to open and display a single in-basket, remove the tree view, and make other adjustments to how content is displayed when users access the Work view.
Constructing URLs to display the content list in a particular view mode
On a Favorites, Browse, Search, or Teamspace URL, you can add the defaultListView parameter to display the content list in a particular view mode: Details view, Magazine view, or Filmstrip view. If the specified view is not available on the desktop, the Details view is used as the default view.
Provide or override a custom search definition by using the searchCriteria parameter in a URL
You can pass custom search criteria to a saved search by using the searchCriteria URL parameter. You create and pass a JSON string array of property-value pairs to the URL. When the URL is invoked, users can modify the values in the search form, or you can additionally specify the runSearch=true parameter so that the URL invokes the search results directly.
Creating custom views by using the bookmark action handler
When you set up a custom view of a feature, for example, a custom teamspace, custom search pane, or custom document pane, the bookmark action handler (ecm.widget.layout.BookmarkActionsHandler) uses the custom features for folder and teamspace bookmarks if the custom features are set in the desktop.
Tip: The bookmark actions handler will use the first custom view that it finds for a custom feature. For example, if you define two different custom teamspace features in the same desktop, only the first one that is listed in the feature list will be used for bookmarks. You can override the entire bookmark layout per desktop. For an example of how to use a custom pane, see the sample favorites feature in the sample plug-in.
Providing a custom thumbnail generator
You can provide your own thumbnail generator. The function that you provide should return a base-64 encoded image to use in the HTML IMG element. For more information, see the addCustomThumbnailGenerator function. If you do not provide a custom thumbnail generator, the default thumbnail generator that is provided with IBM Content Navigator is used.
IDX SloshBucket widget
The new idx.widget.SloshBucket widget in IBM Dojo Extension for OneUI (IDX) now uses gridx and MemoryStore. The idx.widget.SloshBucket widget replaces the ecm.widget.SloshBucket widget.
Associating folders with entry templates
New classes are available to support a new dialog box that enables administrators to associate folders with one or more entry templates. When users add an item to a folder with one entry template association, that entry template is used to add the item into that folder. For more information, see ecm.model.EntryTemplateFolderAssociation.
Entry templates support IBM Content Manager object stores
Users can now add documents and folders to IBM Content Manager by using an entry template. For more information, see the ecm.model.EntryTemplate class.
Customizing the ContentViewer widget title
You can customize the text that is displayed to the left of the toolbar in the ContentViewer widget. For more information, see ecm.widget.viewer.ContentViewer.contentViewerTitle.
Mapping viewers to display previews according to MIME type
An isPreviewViewer method is added to the viewer definitions. When the following viewers are flagged as being a preview viewer by returning true for the isPreviewViewer method, when the preview action is invoked, a viewer map lookup is run and the matching viewer is used to display the preview:
  • ICC conversion viewer (To use the ICC conversion viewer, you must install it and map it in a custom viewer map.)
  • HTML conversion viewer
  • Adobe Reader viewer
  • PDF conversion viewer
  • Daeja ViewONE Professional viewer

The HTML conversion viewer will remain the default viewer for the preview if no other viewers match the MIME type.

For more information, see ecm.model.Desktop.getPreviewersForItem.
Added support to Atom (REST) bindings for IBM CMIS, which enables documents to be created with unique file names for the content stream (contentStreamFilename)
This enhancement enables implementations that are using either the setContentStream method or the appendContentStream method to create documents with unique content stream file names (contentStreamFilename) in the content-disposition header or Atom Publishing Protocol Slug header.

IBM CMIS users are able to create a document with unique values for the cmis:contentStreamFileName property and the chemistry:filename property.

Creating toolbars by instantiating toolbar objects
You can instantiate ecm.widget.Toolbar objects directly. You do not need to create a ContentList widget to create a toolbar.
Overriding the entry template destination ID when adding a document to the repository
You can pass in a destination folder for adding a document. You can specify for this value to override the destination that is defined by the entry template definition.

Deprecated API classes and methods

API changes in IBM Content Navigator Version 2.0.3 are backward-compatible with the IBM Content Navigator APIs that were available in version 2.0.1.
The following methods and classes in the Java APIs are deprecated starting in version 2.0.3:
Table 1. Deprecated IBM Content Navigator Java classes and methods
Deprecated classes and methods Comments
com.ibm.ecm.extension.PluginServiceCallbacks. getCMAnnotations(CMItem, String, int) method Deprecated as of version 2.0.2.1. This method is being removed because it has a dependency on the internal IBM Content Navigator CMObject class. Use the getCMAnnotationsXDO method, which returns an instance of dkXDO instead.
com.ibm.ecm.extension.PluginServiceCallbacks. getCMBookmarks(CMItem, String) method Deprecated as of version 2.0.2.1. This method is being removed because it has a dependency on the internal IBM Content Navigator CMObject class. Use the getCMBookmarksXDO method, which returns an instance of dkXDO instead.
com.ibm.ecm.extension.PluginServiceCallbacks. getCMDocument(String, String, DKRetrieveOptionsICM) method Deprecated as of version 2.0.2.1. This method is being removed because it has a dependency on the internal IBM Content Navigator CMItem class. Use the getCMDocumentDDO method, which returns an instance of DKDDO instead.
The following methods and classes in the JavaScript APIs are deprecated starting in version 2.0.3:
Table 2. IBM Content Navigator JavaScript classes and methods that are deprecated starting in Version 2.0.3
Deprecated methods and fields Comments
ecm.widget.SloshBucket Deprecated as of version 2.0.3. Use the idx.widget.SloshBucket class instead.
ecm.model.ContentItem.onCommentChanged Deprecated as of version 2.0.3. Use the ecm.model.ContentItem.onCollaborate function instead.
ecm.model.ContentItem.modifyPermissions Deprecated as of version 2.0.3. Use the Item model privModifyPermissions instead.
ecm.widget.layout.MainLayout.getBanner Deprecated as of version 2.0.3. Use direct access to the banner.
ecm.widget.layout.MainLayout.getGlobalToolbar Deprecated as of version 2.0.3. Use direct access to the global toolbar instead.
ecm.extension.PluginAction.getIcon Deprecated as of version 2.0.3. Plug-ins should provide an icon cascading style sheet class and override getIconClass to specify images for buttons and menu items. See the ToolbarSample.html sample for an example.
ecm.model.Comment.deleteComment(callback, errorback) Deprecated as of version 2.0.3. Use the ecm.model.SocialItem.deleteThis method instead.
ecm.model.Comment.isCommentDeletable Deprecated as of version 2.0.3. Use the ecm.model.SocialItem.isDeletable method instead.
ecm.model.Comment.isCommentEditable Deprecated as of version 2.0.3. Use the ecm.model.SocialItem.isEditable method instead.
ecm.model.Comment.isMyComment Deprecated as of version 2.0.3. Use the ecm.model.SocialItem.isMine method instead.
ecm.model.Comment.saveComment Deprecated as of version 2.0.3. Use the ecm.model.SocialItem.save method instead.
ecm.model.ContentItem.modifyPermissions Deprecated as of version 2.0.3. Use the ecm.model.Item.privModifyPermissions method instead.
ecm.model.ContentItem.onCommentChanged Deprecated as of version 2.0.3. Use the ecm.model.ContentItem.onCollaborate event instead.
ecm.model.Desktop.getViewerForItem(item, explicitMatchRequired) Deprecated as of version 2.0.3. Use the ecm.model.Desktop.getViewersForItem method instead.
ecm.model.Repository.editTeamspaceTemplate(teamspace, callback, updateUsers, updateRoles) Deprecated as of version 2.0.3. Use the ecm.model.Repository.editTeamspace method instead.
ecm.model._HasAttributesMixin. retrieveDependentAttributeDefinitions(attributes, childComponentValues, callback, isBackgroundRequest, onError) Deprecated as of version 2.0.3. Use retrieveAttributeDefinitions(callback, isBackgroundRequest, onError), retrieveAttributeDefinitionsForSearches(callback, includeSubclassDefinitions, onError), or retrieveDependentAttrDefs(params) instead.
ecm.widget.AddContentItemPropertiesPane.getFolderName Deprecated as of version 2.0.3. Use the getItemName method instead.
ecm.widget.GlobalToolbar Deprecated as of version 2.0.3. Use the ecm.widget.Toolbar class instead.
ecm.widget.layout.MainLayout.getBanner Deprecated as of version 2.0.3. Use direct access to the banner instead.
ecm.widget.layout.MainLayout.getGlobalToolbar Deprecated as of version 2.0.3. Use direct access to the global toolbar instead.
ecm.widget.layout.NavigatorMainLayout.openNewSearch (item, data) Deprecated as of version 2.0.3. Use the openSearch function and set data.openNewTab value to true.
ecm.widget.listView.modules.P8WorkToolbar Deprecated as of version 2.0.3. Use the ecm.widget.listview.modules.P8InbasketToolbar module instead.
ecm.widget.listView.modules.Toolbar Deprecated as of version 2.0.3. Use ecm.widget.listView.modules.Toolbar2 module instead.
End of change