23 February 2018

1. Core

1.1. Caching Client Resources

TVCs now support caching of client resources (*.js, *.css, *.png) using Service Worker technology. As a result, these resources are served from client cache instead of making network requests. By default, this feature is turned off.

Read more in Caching Client Resources.

1.2. Simplified Logging of Variables

Often it’s desirable to include variables in the logged message. The string needs to the be constructed. This can be done in a variety of ways. For example, String.format(), StringBuilder and pure string concatenation can be used. Ideally the string concatenation should only be done if the string actually will be written to the log files in order to improve performance. Logging statements are therefore wrapped in if statements checking if the log level is set to for instance debug.

An alternate approach is to use this signature:

void logger.debug(String format, Object... args);

The first parameter contains the format of the string to log. Use {} in the string to indicate where to insert variables. Variables are supplied as varargs. Make sure that the number of occurrences of {} matches the number of supplied variables.

This makes it possible to transform code looking like:

if (logger.isDebugEnabled()) {
    logger.debug(String.format("Using custom request-processor '%s'", requestProcessorClass));
}

if (logger.isDebugEnabled()) {
    logger.debug("Loaded pagination range from user preferences: " + range);
}

Into this code:

logger.debug("Using custom request-processor '{}'", requestProcessorClass);
logger.debug("Loaded pagination range from user preferences: {}", range);
Equivalent methods are available for all log levels (ERROR, WARN, INFO and so on).

2. Structure Browser

2.1. Truncated Cell Content

The More Link, used when truncating cell content either to a fixed text length or automatically to fit the content of the cell, has been replaced with a tooltip. The tooltip will automatically appear on mouse over.

image
Figure 1. (Show More) link replaced with 'on over' Tooltip
<TextLength>0</TextLength>

3. Workflow

3.1. Copy Trigger

Built-in Copy Trigger to update content object of workflow with values from task.

copy built-in trigger does only support owner and description basic properties and all attribute to update in context object.

e.g.

{
    ...

    "triggers": [
        {
            ...

            "trigger": "copy",
            "config": {
                "copy": {
                   "owner": ["description", "attribute_Notes"],
                   "modified": "attribute_Notes",
                   "attribute_TVCCollaborationTitle": "attribute_Notes"
                }
			},
            "privileged": true
        }

        ...
    ],

    ...
}

3.2. Absence and Delegation

Users can updated their Absence dates and Delegatee to be assigned for any future active Workflow tasks during that period can be configured in Myspace�s Profile Action page.

In Absence and Delegation, only when the tasks are about to be activated the delegatee is assigned to the task.

The Delegator name will be shown for the delegated tasks in task list view.

image
Figure 2. Absence and Delegation

3.3. Add Task Configuration

Defines the add task operation behavior for context task. Default behavior is true.

It defines following behavior.

  • Whether the task configuration should be used for Add Task workflow operation.

  • Whether + icon will be displayed to add the parallel and serial task.

e.g.

{
    ...

    "adhoc": true,

    ...
}
{
    ...

    "adhoc": {
       "add" : true,
       "serial" : true,
       "parallel" : true
    },

    ...
}

4. Wiki

4.1. Remove and Delete Multiple Wiki Pages

Multiple Wiki pages can be removed and deleted simultaneously. These commands can be found under 'Actions' present in the 'Administrate' tab. The existing functionality to delete and remove pages via the context menu has not been changed.

image
Figure 3. Commands to delete and remove pages