From fccdee5cbce42cfa4b6642b8cfb7be83a3d488ad Mon Sep 17 00:00:00 2001 From: Pavel Gnedov Date: Fri, 17 Feb 2023 02:37:31 +0700 Subject: [PATCH] =?UTF-8?q?=D0=9F=D1=80=D0=B8=D0=BD=D1=83=D0=B4=D0=B8?= =?UTF-8?q?=D1=82=D0=B5=D0=BB=D1=8C=D0=BD=D0=BE=D0=B5=20=D0=BE=D0=B1=D0=BD?= =?UTF-8?q?=D0=BE=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BA=D0=BE=D1=80?= =?UTF-8?q?=D0=BD=D0=B5=D0=B2=D1=8B=D1=85=20=D0=B7=D0=B0=D0=B4=D0=B0=D1=87?= =?UTF-8?q?=20=D0=B4=D0=BB=D1=8F=20=D0=B4=D0=BE=D1=81=D0=BA=D0=B8=20=D0=BE?= =?UTF-8?q?=D1=81=D0=BD=D0=BE=D0=B2=D0=B0=D0=BD=D0=BD=D0=BE=D0=B9=20=D0=BD?= =?UTF-8?q?=D0=B0=20=D0=B4=D0=B5=D1=80=D0=B5=D0=B2=D0=B5=20=D0=B7=D0=B0?= =?UTF-8?q?=D0=B4=D0=B0=D1=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../simple-kanban-board.controller.ts | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/dashboards/simple-kanban-board.controller.ts b/src/dashboards/simple-kanban-board.controller.ts index 09c1961..aafc98f 100644 --- a/src/dashboards/simple-kanban-board.controller.ts +++ b/src/dashboards/simple-kanban-board.controller.ts @@ -1,7 +1,11 @@ import { DynamicLoader } from '@app/event-emitter/configs/dynamic-loader'; +import { RedmineEventsGateway } from '@app/event-emitter/events/redmine-events.gateway'; import { ListIssuesByUsersLikeJiraWidgetService } from '@app/event-emitter/project-dashboard/widgets/list-issues-by-users-like-jira.widget.service'; import { ListIssuesByUsersWidgetService } from '@app/event-emitter/project-dashboard/widgets/list-issues-by-users.widget.service'; -import { RootIssueSubTreesWidgetService } from '@app/event-emitter/project-dashboard/widgets/root-issue-subtrees.widget.service'; +import { + RootIssueSubTreesWidgetNs, + RootIssueSubTreesWidgetService, +} from '@app/event-emitter/project-dashboard/widgets/root-issue-subtrees.widget.service'; import { Controller, Get, Param, Render } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; import { parse } from 'jsonc-parser'; @@ -18,6 +22,7 @@ export class SimpleKanbanBoardController { private listIssuesByUsersWidgetService: ListIssuesByUsersWidgetService, private listIssuesByUsersLikeJiraWidgetService: ListIssuesByUsersLikeJiraWidgetService, private issuesByTagsWidgetService: IssuesByTagsWidgetService, + private redmineEventsGateway: RedmineEventsGateway, ) { this.path = this.configService.get('simpleKanbanBoard.path'); } @@ -38,6 +43,25 @@ export class SimpleKanbanBoardController { return await this.getRawData(name); } + @Get('/tree/:name/refresh') + async refreshTree(@Param('name') name: string): Promise { + const cfg = this.dynamicLoader.load(name, { + path: this.path, + ext: 'jsonc', + parser: parse, + }); + const issues = [] as number[]; + issues.push(cfg.rootIssueId); + if (cfg.groups) { + const groups = cfg.groups as RootIssueSubTreesWidgetNs.Models.GroupCfg; + groups.fromIssues.forEach((group) => { + issues.push(group.issueId); + }); + } + this.redmineEventsGateway.addIssues(issues); + return { success: true }; + } + @Get('/by-users/:name/raw') async getByUsersRawData(@Param('name') name: string): Promise { const cfg = this.dynamicLoader.load(name, {