-
Notifications
You must be signed in to change notification settings - Fork 1
/
get_assignees_from_linked_tasks.js
43 lines (42 loc) · 2.35 KB
/
get_assignees_from_linked_tasks.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
(function($){
// Скрипт находит некоторые залинкованные таски, вытаскивает из них ассигнеров и рисует позади дескрипшна
// найти у задачи все связи
JIRA.SmartAjax.makeRequest({
url: '/rest/api/2/issue/'+JIRA.Issue.getIssueKey(),
data: {fields: ['issuelinks'] },
complete: function(xhr, textStatus, smartAjaxResult) {
var issuelinks = smartAjaxResult.data.fields.issuelinks;
// если запрос вернул нам массив со связями, перебираем их
if(issuelinks.length){
issuelinks.forEach(function(link){
// нам интересны только таски, прилинкованные inward связью
if(link.inwardIssue){
// к каждой связанной таске делаем запрос, дабы узнать номер, тему и исполнителя
JIRA.SmartAjax.makeRequest({
url: '/rest/api/2/issue/'+link.inwardIssue.key,
data: {fields: ['summary', 'assignee']},
complete: function(xhr, textStatus, smartAjaxResult){
// разбираем поля по няшным переменным
var issueKey = smartAjaxResult.data.key;
var summary = smartAjaxResult.data.fields.summary;
var assignee = smartAjaxResult.data.fields.assignee;
// если у задачи есть исполнитель, сохраняем только ФИО
if(assignee){
assignee = assignee['displayName'];
}
// если же задача неназначена, исполнитель будет null, а это смотрится некрасиво
else{
assignee = 'неизвестен'
}
// Полученные данные пририсовываем в конце описания задачи
$('#descriptionmodule').append('\
</p>\Прилинкованная таска: '+issueKey+': '+summary+'.\
Ведет ее сотрудник: '+assignee+'</p>')
}
});
}
});
}
}
});
})(AJS.$);