Я пытаюсь создать пользовательскую панель управления jira.
Мое требование - извлечь все issues
из текущего спринта и категории в Open
, In Progress
& Closed
.
Чтобы получить все спринты проекта - API
https://host.com/rest/greenhopper/1.0/sprintquery/PROJECTID?
Я использовал приведенный ниже API для получения всех проблем.(Нет ничего лучше API для извлечения)
https://host.com/rest/greenhopper/1.0/sprintquery/ACTIVESPRINTID?includeFutureSprints=false&includeHistoricSprints=true&os_username=USERNAME&os_password=PASSWORD
Теперь я хотел отобразить эти детали в barChart
, используя ng2-charts
.
Ниже мой код.
cardsData = [
{ title: 'X', item: 'x', id: '22407' },
{ title: 'Y', item: 'y', id: '21756' },
];
ngOnInit() {
this.cardsData.map(x => {
if (x.id) {
this.lineChartLabels.push(x.title);
this.getActiveSprint(x.id);
}
});
}
getActiveSprint(id) {
this.service.getActiveSprintID(id).subscribe(response => {
const activeSprintID = response.sprints.slice(-1)[0].id;
this.getJiraItems(id, activeSprintID);
this.cardsData.filter((status) => {
return status.id === id;
}).map(x => x['activeSprintID'] = activeSprintID);
});
}
getJiraItems(RapidViewID: string, SprintID: string) {
this.httpSubscription = this.service.getJiraOpenIssues(RapidViewID, SprintID)
.subscribe((response) => {
const issuesNotCompletedInCurrentSprint = response.contents.issuesNotCompletedInCurrentSprint;
const completedIssues = response.contents.completedIssues.length;
const openIssue = [];
const inProgressIssue = [];
this.lineData.push(completedIssues);
issuesNotCompletedInCurrentSprint.filter((item) => {
if (item.statusId === '1') {
openIssue.push(item);
} else if (item.statusId === '3') {
inProgressIssue.push(item);
}
});
this.totalOpenIssue.push(openIssue.length);
this.totalInprogressIssue.push(inProgressIssue.length);
this.pieChartData = [openIssue.length, inProgressIssue.length, completedIssues];
this.cardsData.filter((status) => {
return status.title === 'JIRA OVERVIEW';
}).map(x => x['lineChartData'] = [
{ data: this.totalOpenIssue, label: 'Open' },
{ data: this.totalInprogressIssue, label: 'InProgress' },
{ data: this.lineData, label: 'Completed' }
]);
this.cardsData.filter((status) => {
return status.id === RapidViewID;
}).map(x => x['pieChartData'] = this.pieChartData);
this.isLoading = false;
});
}
Проблема в том, что данные не отображаются правильно для open
или in progress
элементов, которые также получили комментарии к комментариям, оставаясь illegal use of map property
.
Пожалуйста, помогите мне исправить мой код и удалить ненужные строки.