In D6, WDK has introduced many new features/functionalities to give rich UI/better navigation and improved performances. D6 includes the following functionalities
- Configuration service modifications
- Right-click context menus
- Presets
- Field tab-through order configuration
- Auto complete
- Keyboard shortcuts
- Remove checkboxes
- Multi-object select (ACLs, Properties, Lifecycles)
- Assigning relationships
- Emphasizing lifecycles
- Dynamic filters (e.g., Starts With)
New Webtop Interface
1.1 Configuration service modifications
D6 has introduced a new concept of merging the XML file, rather than extending the file. In earlier versions to make any change in the component, it was required to extend the configuration file and then make the necessary changes. Even to insert one argument, it was required to copy all the arguments. This made applications brittle and difficult to maintain during upgrade. Each customized application essentially required its own WDK stack.
Now, In D6 it is possible to modify the configuration file rather than override it. This mechanism insulates the custom application from upgrades and allows the developer to modify additions made at any level in the configuration hierarchy. That is, if an element is defined in WDK layer and custom application needs to modify that element, than modify the configuration file at WDK layer. It is possible to modify a component definition to add, remove, or replace parts of the WDK component definition. The element to be modified can be component/action/application/menuconfigid etc.
Syntax for modification of file is
<config>
<scope scopename=scopevalue>
<primaryelement modifies="[primaryelementid:]configfile| [primaryelementid:]scopeclause">
<insert [path=elementpath]>
<element></element>
</insert>
<insertafter path=elementpath>
<element></element>
</insertafter>
<insertbefore path=elementpath>
<element></element>
</insertbefore>
<replace path=elementpath>
<element></element>
</replace>
<remove path=elementpath/>
</primaryelement>
</scope>
</config>
Here path specifies the place where the value is to be inserted. The path is relative to the primary element using dot notation and should locate a unique element in configuration file.
The following modifications can be made on the referenced configuration definition: insert,
Configuring WDK Applications
| Operation element Description
|
<insert> | Inserts one or more elements at the end of the referenced element’s children. If no path is defined, the specified elements are inserted at the end of the specified primary element’s children. |
<insertbefore> | Inserts one or more elements before the referenced element |
<insertafter> | Inserts one or more elements after the referenced element |
<replace> | Replaces the referenced element with the specified element(s) |
<remove> | Hides the referenced element from the current Scope |
The operational element has been described as examples in sample application.
1.2 Right-click context menus
Webtop D6 provides access to commonly used commands via a context menu available on the right click of object. D6 has introduced this functionality similar to Streamline view and toolbar. D6 has removed the checkboxex and has enabled the row selection. Context menus work in datagrids configured for row selection. Context menus are defined in the <menuconfig > element of an action configuration file. That is, the actions that are to be made available on right click of folder are defined in dm_folder_actions.xml. Similarly for all the types, corresponding context menu has been defined in their action file.
In action file under <menuconfig >, <actionmenuitem> identifies an action that can be performed on the object type that is specified in the scope of the configuration file. It is possible to disable row selection for complete application by making changes in app.xml. To do this, set the value of <richui> element to false.
<desktopui>
<datagrid>
<richui>false</richui>
</datagrid>
</desktopui>
It is also possible to disable the row selection mode only for selected datagrid. This is explained in sample application.
1.3 Key-Board Shortcuts (hotkeys)
D6 has introduced the concept of hotkeys which provides a new mechanism for users to activate commands using the keyboard. Hotkeys are supported for the following controls:
• button
• link
• menuitem
• actionbutton
• actionlink
• actionmenuitem
• actionimage
Custom controls that extend these control tags inherit hotkey support if they add the appropriate
attributes to the tag library. Hotkeys are enabled by default. To disable hotkeys for entire application, make changes in app.xml. Set the value of <enabled> element to false.
<hotkeys>
<enabled>false</enabled>
</hotkeys>
For configuring a hotkey on individual control, refer to Sample application.
1.4 Presets
WDK 6 has come up with a new feature called “Presets”. This is an important and useful feature. A preset determines the selections or actions available in particular situations. Presets allow user to configure menu /format/type /lifecycle/workflow selection for different users, groups, roles or location. The item or set of items is called the preset’s scope. Creating a preset offers a way to reduce screen options to those options that are relevant to the user’s task in the particular situation. A preset is assigned to a particular item or set of items.
This feature has reduced the need of customizing the application on different scopes. For e.g. you what to display one menu to administrator, one to users and one to users working in particular cabinet. To this previously it was required to build the same component according to different scopes. Now it is possible to build one component and then enable/disable it according to the scopes defined through Preset editor.
Presets are created in webtop through Preset Editor. Navigate to Administration/Preset Editor.
To give users the ability to create presets using the presets editor, assign those users the role
dmc_wdk_presets_coordinator. This role is auto created in repository at the time of installation of content server. The WDK Docapp creates a presets folder, owner, and permission set. The presets folder is /Resources/Registry/Presets/Webtop. The owner of the presets folder is the user dmc_wdk_presets_owner. The folder is assigned the permission set ACL dmc_wdk_presets_acl.
Advantages of using Preset:
Ø Configurable context-based availability of actions, menus, workflows, permissions, auto-attributing, etc.
Ø Based on users, groups, roles, locations, applications
Ø Presets are set at runtime by the business user.
Presets can be disabled for an application by making the following change in xml
<presets>
<filter clientenv='not portal'>
<enabled>true</enabled>
</filter>
</presets>
Preset can also be added to component definition to specify the configuration element that should be user configurable through the presets editor. For example, the checkin component definition adds a format filter item to the definition as follows:
<preset_item id="format_filter">
<selection>
<entries>
<entry></entry>
</entries>
</selection>
</preset_item>
If the user’s context matches the scope of a preset (custom setting) that contains the format filter, then the user will see only the available formats for that preset definition.
Preset has been further described with an example in sample application.
Webtop installs a preset called Webtop Express preset at the time of Content server installation.
The Webtop Express preset is intended for users who need only limited access to repositories. This preset is scoped for the users who are defined in express_user role. Administrators who belong to the dmc_wdk_presets_coordinator role can edit the Webtop Express preset.
1.5 Field tab-through order configuration
WDK supports the tabindex HTML attribute to determine order in which controls will be navigated with the Tab key between form fields and other UI elements in the browser.
For example, a given form may support a business process in which the user wants to tab vertically through multiple fields. A different form may require tabbing horizontally through a set of fields. In compliance with the HTML 4.01 specification, WDK will generate a tabindex attribute on HTML elements that overrides this default behavior.
It is possible to turn on/off tabindex support for given environments in app.xml
<tab_ordering>
<filter clientenv='not portal' >
<enabled>true</enabled>
</filter>
<filter clientenv='portal' >
<enabled>false</enabled>
</filter>
</tab_ordering>
1.6 AutoComplete
Autocompletion for attribute controls is supported for drop-down list and text controls. Value
assistance is read from the data dictionary, and the completion list for open lists is stored in the
repository by attribute name for each user and is not specific to object type or repository.
Autocompletion can be disabled for the entire application by making changes in app.xml as
<auto_complete>
<enabled>true</enabled>
</auto_complete>
Autocompletion can also be configured through preferences on user basis.
WDK describes the following attributes defined for control on which Autocompletion feature can be configured.
• autocompleteid
Key that is used to store the autocomplete list in the user preferences.
• autocompleteenabled
Boolean that enables or disables autocompletion on the control
• maxautocompletesuggestionsize
Specifies the number of matching suggestions to display to the user. Default = 10
Implementation is shown in Sample Application.
1.7 Starts With
Datagrid items can be filtered using the Starts with filter, which is generated by a datacolumnbeginswith control within a datagrid tag or within a datadropdownlist on the JSP page. Filtering is case insensitive by default.
1.8 Subscribing another user to a repository item
In D6 One user can subscribe another user to a repository item.
1.9 Export to .csv
It is now possible to export metadata about repository lists, including directory locations and search results. The information is saved as a .CSV file, which can be opened in Microsoft Excel or another editor.
1.10 Congurable read notications
A user can select any object in a list view and turn on read notification to notify the user when
the document has been read. The default event for notification is dm_getfile, and the minimum
permission for read notification is configured in webcomponent/app.xml.
<readnotification>
<event>dm_getfile</event>
<minpermit>read_permit</minpermit>
</readnotification>
1.11 Preferences persistence
WDK 6 provides a new server-based model for saving user preferences that reduces reliance on
cookies and provides portability of preferences. This improves reliability and keeps the user
experience consistent when using more than one client machine.
Preferences are stored for a user in repository that is configured in app.xml as
<preferencesrepository>.<repository>
For some of the configuration preference can be cookie only , that is not stored in repository, for e.g. Login cookies are used before the user’s preferences are downloaded from the preference repository, so they are specified as non repository preferences in app.xml.
<preferencesrepository>
<non_repository_preferences>
<preference>component[id=login].username</preference>
</ non_repository_preferences>
</preferencesrepository>
For information on configuring a preferences repository and non‑stored preferences, refer
Preferences are stored for the first username that the user uses to log into a repository. For example, if the user logs into the WDK‑based application with the user ID of kasanr and then logs into another repository as the user testuser, the user preferences are stored under the ID kasanr. The object in the preference repository will be kasanr.preferences. The preferences are stored as name/value pairs.
1.12 Lookup Methods
The configuration lookup methods lookupString, lookupInteger, and lookupBoolean have an
optional parameter consultPreference. Set to false to look up a configuration value from the
component definition and bypass a lookup of the user preference when the lookup is not needed.
1.13 Datagrid Enhancements
1.13.1 Row Selection
Users can now click rows to select objects rather than a checkbox at the left margin. This feature is enabled by default.
1.13.2 New Controls
New controls for better control and look of datagrid have been introduced like
a)datagridRowBreak- Specifies a break in a DatagridRow control.
b)datagridRowModifier- Hides or disables contained controls when its parent datagrid’s rowselection attribute is true.
c)datagridRowTd- Data cells in a datagrid control. Outputs <td> HTML tags with a marker class.
d)datagridTh- Column heads in a datagrid control. Outputs <th> HTML tags with a marker class and <div> HTML
tags that constrain each cell’s content.
1.13.3 Multiobject select
Users can shift-click to select contiguous rows or ctrl-click to create a discontiguous selection. ACLs, properties, and lifecycles can now be applied to several items at a time using multi‑object selection. By selecting multiple objects, WDK will show the common properties of the objects and will allow to select same lifecycle, permissions and properties to the object.
1.13.4 Resizable columns
User can resize the columns according to the requirements on the screen. To enable the column resizing user needs to add attribute ( resizable=”true”) for headers of columns
<dmf:datagridTh resizable="true">
. . .
</dmf:datagridTh>
1.13.5 Fixed column headers
Headings now stay in place while the user scrolls through the items in the datagrid. To enable this
behavior, custom components will need to implement header rows using the new element <dmf:datagrid fixedheaders=”true”>
…
</dmf:datagrid>
To globally disable fixed column headers, add the following element to /custom/app.xml:
<desktopui>
<datagrid>
<fixedheaders>false</fixedheaders>
</datagrid>
</desktopui>
1.14 Lifecycle enhancements
Lifecycle is now displayed on the Properties Screen (part of the default attribute set). Lifecycle Users are able to apply a lifecycle on documents at creation time (and Import, Create, Checkin), or later, via the Properties screen. The process of applying a lifecycle to a document has been enhanced to include the ability to specify the initial lifecycle state and the alias set. The current success/error messages for the lifecycle‑related actions displayed on the Message Bar that involve a lifecycle state change (Apply, Detach, Promote, Demote, Suspend and Resume) will be
enriched to contain pertinent information about the object lifecycle state (previous and current).
1.15 Assigning relationships
A user can create a relationship between any two documents in the repository. A relationship is a connection between two items in a repository. Relationships allow Webtop to process the items together. Relationships also allow users to access certain items by first accessing other related items. For example, if a document has been annotated by several reviewers and if each annotation has a relationship to the original document, a user can access the annotations by viewing the document’s relationships.
Invalid Actions hidden by default
The actions that are invalid can be made hidden for an application by defining
<display>
< hideinvalidactions >true</ hideinvalidactions >
</display>
In app.xml. This is by default true, that is, if the action is invalid it won’t be displayed even if the attribute showifinvalid is marked as true in control. It overrides the setting of control.
6.16 Search enhancements
Search functionality now includes the following:
• Savings the results for others to use
Last search results are saved and can be viewed by clicking on last results.
• Real time query monitoring (with ECI Webtop Extended Search option)
• Clustering results according to certain properties (with ECI Webtop Extended Searchoption)
• Ability to perform a combined database search on properties and full text searchon strings
• User interface enhancements
No comments:
Post a Comment