Links
TrackStudio Enterprise 3.1
Up | Next
Receiving E-Mail Notification when Tasks Change

This topic describes how to create an e-mail notification rule.

To create an e-mail notification rule:

  1. Choose a project or bug for which you want to enable e-mail notifications.
  2. Click the Task Management -> Filters tab.
  3. Choose a filter that will return tasks or messages you want the user to receive via email notification.
  4. Click the Filters -> Notifications tab.
  5. Choose the e-mail notification recipient.
  6. Click the Save button.
  7. Choose the E-Mail Template.
  8. Click the Save button.

Enabling notification to the All filter for a certain bug or task is similar to using the "watch" mode in some systems -- i.e. a user will get email notifications whenever there is a change in the task status or any messages are added.

To get e-mail notifications both when a new task is added and when some other user (not him/herself) adds a message (bug-note), use the following filter:

Section 
Column 
Condition 
Message Settings 
Submitter 
is not Current user 

To get e-mail notifications only if the handler of the task, use the filter:

Section 
Column 
Condition 
Task Settings 
Handler 
is Current user 

To get e-mail notifications both when a high-priority task is added and when the John Smith adds some messages to the task:

Section 
Column 
Condition 
Task Settings 
Priority 
High 
Message Settings 
Submitter 
Customer 

To get e-mail notifications when other users add a message to the task for which the handler is the subscribed user:

Section 
Column 
Condition 
Task Settings 
Handler 
is Current user 
Message Settings 
Submitter 
is not Current user 

Use the e-mail notification rule based on the following script to send e-mail notification only when a handler has been changed. This script will return 1 when you change a handler adding a task or message -- 0 otherwise.

int ret = 0;

Collection messages = task.getMessages();
Collections.reverse(messages);
String oldHandler = task.getParent() != null ? task.getParent().getHandlerId() : "null";

if (messages.isEmpty() && !oldHandler.equals(task.getHandlerId()))
     ret = 1;

for(Iterator it = messages.iterator(); it.hasNext();) {
    String newHandler = it.next().getHandlerId();
    if (newHandler == null) newHandler = "null";
    if (!newHandler.equals(oldHandler)) {
       ret = 1;
    } else {
       ret = 0;
    }
    oldHandler = newHandler;
}
return ret;

Use the e-mail notification rule based on the following script to send an e-mail notification only when the user adds a message and not when the user modifies task properties. The following script will return 1 when the task has been modified by adding a message, or 0 when the task has been modified using Task->Edit.

int ret = 0;

Collection messages = task.getMessages();
java.sql.Timestamp taskDate = task.getUpdatedate();

for(Iterator it = messages.iterator(); it.hasNext();) {
    java.sql.Timestamp date = it.next().getTime();
    if (date.equals(taskDate)) {
       ret=1;
       break;
    }
}
return ret;

To get the time difference (in seconds) between two consecutive messages:

 int ret = 0;

 Collection messages = task.getMessages();
 Collections.reverse(messages);

 java.sql.Timestamp oldDate =
      task.getSubmitdate();
 long diff = 0;

 for(Iterator it = messages.iterator();
     it.hasNext();) {

    java.sql.Timestamp newDate =
       it.next().getTime();
    diff = newDate.getTime() - oldDate.getTime();
    oldDate = newDate;

 }
 return diff/1000;
Copyright (c) 2002-2005. All rights reserved.