Заполнение динамического раскрывающегося списка Tempo с помощью конечной точки REST - malikovalibek/groovyForJira GitHub Wiki
Обзор Добавьте контент в рабочий журнал Tempo Dynamic Drop-downs, используя атрибуты, полученные с помощью конечной точки REST. Для раскрывающихся списков требуются ключи и значения в формате JSONP, которые можно предоставить с помощью этой конечной точки REST сценария.
пример Как менеджер проекта, я хочу добавить раскрывающийся список в окне рабочего журнала, чтобы можно было указать тип рабочего дня. Это раскрывающееся меню может содержать следующие значения: «Обычный рабочий день», «Ночной рабочий день» и «Рабочий день выходного дня». Я могу настроить этот сценарий для получения раскрывающихся значений с помощью конечной точки REST.
Хорошо знать Для этого скрипта требуется Tempo Timesheets Необходимо создать рабочий атрибут Tempo типа Dynamic Drop-down. URL-адрес API этого рабочего атрибута:, http:///rest/scriptrunner/latest/custom/tempoWorkTypeгде tempoWorkType- имя созданной конечной точки. Подробнее о динамических раскрывающихся списках . Доступные параметры можно настроить в зависимости от параметров запроса. Tempo автоматически предоставит имя функции обратного вызова. Tempo требует наличия ключей и значений для раскрывающегося списка в формате JSONP. 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 options = [ values: [ [ key : "TRIAGE", value: "Triage" ], [ key : "DEV", value: "Development" ], [ key : "QA", value: "Quality Assurance" ] ] ] 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() }