/
Dynamic work attribute based on the user selection
To learn more about Tempo products, please visit our Help Center. For support, see our Support Portal.
Dynamic work attribute based on the user selection
You can create a REST endpoint in Scriptrunner and select the endpoint url as a dynamic work attribute.
The sample script grabs the userkey from the person to log time against and populates a different option list depending on the user selected. Define the url for the dynamic worklog attribute as:
http://localhost:8080/rest/scriptrunner/latest/custom/tempoWorkType?user={author}
In runtime the {author}
part will be replaced with the Jira userkey of the person to log time for. The script below catches the user information passed from Tempo and populates a list based on the user.
import com.onresolve.scriptrunner.runner.rest.common.CustomEndpointDelegate
import groovy.json.JsonBuilder
import groovy.transform.BaseScript
import javax.ws.rs.core.MultivaluedMap
import javax.ws.rs.core.Response
@BaseScript CustomEndpointDelegate delegate
tempoWorkType(httpMethod: "GET") { MultivaluedMap queryParams, String body ->
def callbackFn = queryParams.getFirst("callback")
def userkey = queryParams.getFirst("user")
def options = [
values: [
[
key : "none",
value: "No user did match the search"
]
]
]
switch (userkey)
{
case("JIRAUSER10000"):
options = [
values: [
[
key : "john",
value: "It is John"
]
]
]
break
case("JIRAUSER10128"):
options = [
values: [
[
key : "taylor",
value: "It is Taylor"
]
]
]
break
case("JIRAUSER10104"):
options = [
values: [
[
key : "bob",
value: "It is Bob"
]
]
]
break
}
def jsObjectOptions = new JsonBuilder(options).toPrettyString()
def resp = "${callbackFn} ( ${jsObjectOptions} )".toString()
// Adding 'application/javascript' is needed to prevent a browser error like this: script cannot be executed due to
// wrong MIME type.
// For example, the error in Chrome is: "Refused to execute script from '*' because its MIME type
// ('application/javascript') is not executable, and strict MIME type checking is enabled."
Response.ok(resp)
.header('Content-Type', 'application/javascript')
.build()
}
, multiple selections available,
Related content
Cascading dynamic work attributes - Data Center
Cascading dynamic work attributes - Data Center
Read with this
Searching for worklogs
Searching for worklogs
More like this
Why is there a time difference between my Jira worklog and my Tempo worklog?
Why is there a time difference between my Jira worklog and my Tempo worklog?
Read with this
Filtering by a worklog attribute
Filtering by a worklog attribute
More like this
Dynamic work attributes in Tempo Timesheets for Data Center
Dynamic work attributes in Tempo Timesheets for Data Center
More like this
Add worklog description and time spent as comment to the issue
Add worklog description and time spent as comment to the issue
More like this