You can add custom worklog fields (work attributes) to the Log Time dialog box. One type of custom worklog field is a drop-down list that retrieves list items from an external service. These externally sourced drop-down lists are called dynamic drop-downs. You define the list items in the external service, which connects to Tempo Timesheets.
Before you Begin
Learn about how JSONP works on the following IBM page: http://www.ibm.com/developerworks/library/wa-aj-jsonp1/
About this Task
In the procedure below, the following example is used:
You want to add a custom worklog field called Operations to the Log Time dialog box so that users can choose an operation from a drop-down list. Tempo Timesheets sends a request to an external service to fetch the list of operations. A URL is included in the request. In Tempo Timesheets, in the Administration section, on the Work Attributes page, the URL that is specified for the external service is in the following form:
Tempo Timesheets automatically appends
?callback=? to the URL when the request is sent to the external service. For example:
At run-time, a callback parameter is generated (for example,
fn), and the JSONP library replaces the second question mark in the URL with the callback parameter.
To configure an externally sourced drop-down list, set up the external service so that, when Tempo Timesheets sends the request, the external service returns a list of operations as a simple key-value list in the following JSONP (not JSON) code format:
Function and variables
In this example, the callback function name is 'fn'. The external service must use the callback parameter (see About this task above) as the callback function name.
Variables that Tempo Timesheets understands. An array that is called 'values' must be returned and must contain objects with 'key'-'value' pairs.
Making the returned values depend on another selected value
You can set up the external service to return different items for the drop-down list depending on the following parameters:
- The JIRA username of the user for whom time is logged. In this case, the URL in the request that Tempo Timesheets sends to the external service contains the JIRA username. For example:
taylor is the JIRA username of the person for whom time is logged.
- The issue that users log time to. In this case, the URL in the request that Tempo Timesheets sends to the external service contains the issue key. For example:
TO-21 is the key of the issue that the user logs time to.
The item that is selected in a custom field on the issue. In this case, the URL in the request that Tempo Timesheets sends to the external service contains the key of the item that is selected in the custom field on the issue. For example, for the Account custom field on the issue, the URL contains the key of the selected account. For example:
201500 is the key of the selected account.
- The account that the user selects in the Account field (work attribute) on the Log Time dialog box. In this case, the URL in the request that Tempo Timesheets sends to the external service contains the key of the selected account. For example:
201501 is the key of the selected account.