From 1db7c93ed333b5016fcc7e5947228db9e9e34b51 Mon Sep 17 00:00:00 2001 From: crupest Date: Fri, 22 Feb 2019 23:09:07 +0800 Subject: Develop link feature on todo page. --- .../ClientApp/src/app/todo-list-page/todo-list.service.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'Timeline/ClientApp/src/app/todo-list-page/todo-list.service.ts') diff --git a/Timeline/ClientApp/src/app/todo-list-page/todo-list.service.ts b/Timeline/ClientApp/src/app/todo-list-page/todo-list.service.ts index 619e9a6b..ed28bc59 100644 --- a/Timeline/ClientApp/src/app/todo-list-page/todo-list.service.ts +++ b/Timeline/ClientApp/src/app/todo-list-page/todo-list.service.ts @@ -29,6 +29,7 @@ export interface WorkItem { id: number; title: string; closed: boolean; + detailUrl: string; } @Injectable({ @@ -41,20 +42,21 @@ export class TodoListService { constructor(private client: HttpClient) { } - private getAzureDevOpsPat(): Observable { + private getAzureDevOpsAccessInfo(): Observable { return this.client.get('/api/TodoPage/AzureDevOpsAccessInfo'); } getWorkItemList(): Observable { - return this.getAzureDevOpsPat().pipe( + return this.getAzureDevOpsAccessInfo().pipe( switchMap( accessInfo => { + const baseUrl = `https://dev.azure.com/${accessInfo.organization}/${accessInfo.project}/`; const headers = new HttpHeaders({ 'Accept': 'application/json', 'Authorization': `Basic ${btoa(accessInfo.username + ':' + accessInfo.personalAccessToken)}` }); return this.client.post( - `https://dev.azure.com/${accessInfo.organization}/${accessInfo.project}/_apis/wit/wiql?api-version=5.0`, { + `${baseUrl}_apis/wit/wiql?api-version=5.0`, { query: 'SELECT [System.Id] FROM workitems WHERE [System.TeamProject] = @project' }, { headers: headers }).pipe( switchMap(result => result.workItems), @@ -62,7 +64,8 @@ export class TodoListService { map(result => { id: result.id, title: result.fields[TodoListService.titleFieldName], - closed: ((result.fields[TodoListService.stateFieldName]).toLowerCase() === 'closed') + closed: ((result.fields[TodoListService.stateFieldName]).toLowerCase() === 'closed'), + detailUrl: `${baseUrl}_workitems/edit/${result.id}/` }), toArray() ); -- cgit v1.2.3