Tuesday, February 10, 2009

New Features

 

In D6, WDK has introduced many new features/functionalities to give rich UI/better navigation and improved performances. D6 includes the following functionalities

  1. Configuration service modifications
  2. Right-click context menus
  3. Presets
  4. Field tab-through order configuration
  5. Auto complete
  6. Keyboard shortcuts
  7. Remove checkboxes
  8. Multi-object select (ACLs, Properties, Lifecycles)
  9. Assigning relationships
  10. Emphasizing lifecycles
  11. Dynamic filters (e.g., Starts With)

New Webtop Interface

clip_image002

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 Congurable read notications

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