Skip to content

Commit 2b029dc

Browse files
Added feature to integrate aq entities with 3rd party systems (#123)
* added initial version of feature that provides abilites to add links to tests from others systems * added references to test, issue, testrun * added publish results form * added workflow status support * added publish service to propogate statuses to jira * added ability to add ref on the create issue dialog * added dialog to add/change reference on publish * added returning an empty array if entity id was undefined * added abilities to add/remove ref on the issue create modal * removed redundant components * updated changelog and verion rised to 1.3.0
1 parent cbc9f0a commit 2b029dc

File tree

79 files changed

+2173
-192
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+2173
-192
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# CHANGELOG
22

3+
## 1.3.0 (2021-02-26)
4+
- Added feature that allows to link aquality entities (tests, issues and test runs) with 3rd party systems like Jira, Xray, TestRail and etc. In this version only Jira and Xray support has been added.
5+
36
## 1.2.2 (2021-01-19)
47
- Fix of an issue with switching between detailed/non-detailed view on the dashboard
58

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "aquality-tracking-ui",
3-
"version": "1.2.2",
3+
"version": "1.3.0",
44
"scripts": {
55
"ng": "ng",
66
"start": "ng serve",

src/app/app.component.spec.ts

Lines changed: 0 additions & 35 deletions
This file was deleted.

src/app/pages/administration/main/administration.child.module.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,11 @@ import { PermissionsService } from 'src/app/services/permissions/current-permiss
1414
import { UserService } from 'src/app/services/user/user.services';
1515
import { GuardService } from 'src/app/services/guard.service';
1616
import { AdministrationProjectManagerGuard, AdministrationProjectGuard, AdministrationGlobalGuard } from 'src/app/shared/guards/administration-guard.service';
17-
17+
import { IntegrationSystemsComponent } from '../projects/integrations/systems/integration-systems.component';
18+
import { IntegrationsComponent } from '../projects/integrations/integrations/integrations.component';
19+
import { TtsStatusComponent } from '../projects/integrations/tts-status/tts-status.component';
20+
import { WorkflowStatusesComponent } from '../projects/integrations/workflow-statuses/workflow-statuses.component';
21+
import { SystemViewComponent } from '../projects/integrations/system-view/system-view.component';
1822
@NgModule({
1923
imports: [
2024
administrationChildRouting,
@@ -27,7 +31,12 @@ import { AdministrationProjectManagerGuard, AdministrationProjectGuard, Administ
2731
AdministrationResolutionsComponent,
2832
ImportBodyPatternsComponent,
2933
APITokenComponent,
30-
AdministrationProjectSettingsComponent
34+
AdministrationProjectSettingsComponent,
35+
IntegrationSystemsComponent,
36+
IntegrationsComponent,
37+
TtsStatusComponent,
38+
WorkflowStatusesComponent,
39+
SystemViewComponent
3140
],
3241
providers: [
3342
ProjectService,

src/app/pages/administration/main/administration.child.routing.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { APITokenComponent } from '../projects/api-token/api-token.component';
55
import { AdministrationPermissionsComponent } from '../projects/permissions/administration.permissions.component';
66
import { AdministrationResolutionsComponent } from '../projects/resolutions/administration.resolutions.component';
77
import { AdministrationUsersComponent } from '../global/users/administration.users.component';
8+
import { IntegrationsComponent } from '../projects/integrations/integrations/integrations.component'
89
import {
910
AdministrationProjectManagerGuard,
1011
AdministrationGlobalGuard,
@@ -18,11 +19,12 @@ const administrationChildRoutes: Routes = [
1819
{
1920
path: 'project', canActivate: [AdministrationProjectGuard],
2021
children: [
21-
{ path: 'permissions', component: AdministrationPermissionsComponent, canActivate: [AdministrationProjectManagerGuard]},
22-
{ path: 'resolutions', component: AdministrationResolutionsComponent, canActivate: [AdministrationProjectManagerGuard]},
23-
{ path: 'importBodyPatterns', component: ImportBodyPatternsComponent, canActivate: [AdministrationProjectManagerGuard]},
24-
{ path: 'apiToken', component: APITokenComponent, canActivate: [AdministrationProjectManagerGuard]},
25-
{ path: 'projectSettings', component: AdministrationProjectSettingsComponent, canActivate: [AdministrationProjectManagerGuard]}
22+
{ path: 'permissions', component: AdministrationPermissionsComponent, canActivate: [AdministrationProjectManagerGuard] },
23+
{ path: 'resolutions', component: AdministrationResolutionsComponent, canActivate: [AdministrationProjectManagerGuard] },
24+
{ path: 'importBodyPatterns', component: ImportBodyPatternsComponent, canActivate: [AdministrationProjectManagerGuard] },
25+
{ path: 'apiToken', component: APITokenComponent, canActivate: [AdministrationProjectManagerGuard] },
26+
{ path: 'projectSettings', component: AdministrationProjectSettingsComponent, canActivate: [AdministrationProjectManagerGuard] },
27+
{ path: 'integrations', component: IntegrationsComponent, canActivate: [AdministrationProjectManagerGuard] }
2628
]
2729
}, {
2830
path: 'global', canActivate: [AdministrationGlobalGuard],

src/app/pages/administration/main/administration.component.html

Lines changed: 13 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -8,40 +8,28 @@
88
[routerLinkActiveOptions]="{ exact: false }" routerLinkActive="active">
99
Application Settings
1010
</mat-list-item>
11-
<mat-list-item *ngIf="globalEditor" id='users-administration' routerLink="global/users" [routerLinkActiveOptions]="{ exact: false }"
12-
routerLinkActive="active">
11+
<mat-list-item *ngIf="globalEditor" id='users-administration' routerLink="global/users"
12+
[routerLinkActiveOptions]="{ exact: false }" routerLinkActive="active">
1313
Users
1414
</mat-list-item>
1515
</mat-nav-list>
16-
16+
1717
<mat-nav-list>
1818
<div class="sidebar-header">
1919
<span class="sidebar-header">Project</span>
2020
</div>
21-
<mat-list-item *ngIf="localManager" id='projectSettings-administration' routerLink="project/projectSettings"
22-
[routerLinkActiveOptions]="{ exact: false }" routerLinkActive="active">
23-
Settings
24-
</mat-list-item>
25-
<mat-list-item *ngIf="localManager" id='permissions-administration' routerLink="project/permissions"
26-
[routerLinkActiveOptions]="{ exact: false }" routerLinkActive="active">
27-
Permissions
28-
</mat-list-item>
29-
<mat-list-item *ngIf="localManager" id='resolutions-administration' routerLink="project/resolutions"
30-
[routerLinkActiveOptions]="{ exact: false }" routerLinkActive="active">
31-
Resolutions
32-
</mat-list-item>
33-
<mat-list-item *ngIf="localManager" id='body-pattern-administration' routerLink="project/importBodyPatterns"
34-
[routerLinkActiveOptions]="{ exact: false }" routerLinkActive="active">
35-
Unique Body Patterns
36-
</mat-list-item>
37-
<mat-list-item *ngIf="localManager" id='api-token-administration' routerLink="project/apiToken"
38-
[routerLinkActiveOptions]="{ exact: false }" routerLinkActive="active">
39-
API Token
40-
</mat-list-item>
21+
22+
<div *ngIf="localManager">
23+
<mat-list-item *ngFor="let item of projectSettingItems" id='{{item.id}}'
24+
routerLink="{{item.routerLink}}" [routerLinkActiveOptions]="{ exact: false }"
25+
routerLinkActive="active">
26+
{{item.name}}
27+
</mat-list-item>
28+
</div>
4129
</mat-nav-list>
4230
</div>
43-
31+
4432
<div class="col-sm-10 content">
4533
<router-outlet></router-outlet>
4634
</div>
47-
</div>
35+
</div>

src/app/pages/administration/main/administration.component.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { Project } from '../../../shared/models/project';
33
import { ProjectService } from 'src/app/services/project/project.service';
44
import { ELocalPermissions, PermissionsService, EGlobalPermissions } from 'src/app/services/permissions/current-permissions.service';
55
import { UserService } from 'src/app/services/user/user.services';
6+
import { ProjectSettingItem } from '../projects/project-setting-item';
67

78
@Component({
89
templateUrl: './administration.component.html',
@@ -16,13 +17,21 @@ export class AdministrationComponent implements OnInit {
1617
localManager: boolean;
1718
localEditor: boolean;
1819

20+
projectSettingItems: ProjectSettingItem[] = [
21+
{ id: 'projectSettings-administration', name: 'Settings', routerLink: 'project/projectSettings' },
22+
{ id: 'permissions-administration', name: 'Permissions', routerLink: 'project/permissions' },
23+
{ id: 'resolutions-administration', name: 'Resolutions', routerLink: 'project/resolutions' },
24+
{ id: 'body-pattern-administration', name: 'Unique Body Patterns', routerLink: 'project/importBodyPatterns' },
25+
{ id: 'api-token-administration', name: 'API Token', routerLink: 'project/apiToken' },
26+
{ id: 'integrations-administration', name: 'Integrations', routerLink: 'project/integrations' }
27+
]
28+
1929
constructor(
2030
private projectService: ProjectService,
2131
public userService: UserService,
2232
private permissionsService: PermissionsService
2333
) { }
2434

25-
2635
async ngOnInit() {
2736
this.projects = await this.projectService.getProjects(this.project);
2837
this.globalEditor = await this.permissionsService.hasPermissions([EGlobalPermissions.admin, EGlobalPermissions.manager]);

src/app/pages/administration/main/administration.module.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { ProjectService } from 'src/app/services/project/project.service';
77
import { UserService } from 'src/app/services/user/user.services';
88
import { PermissionsService } from 'src/app/services/permissions/current-permissions.service';
99
import { GuardService } from 'src/app/services/guard.service';
10+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
1011

1112
@NgModule({
1213
imports: [
@@ -21,7 +22,9 @@ import { GuardService } from 'src/app/services/guard.service';
2122
UserService,
2223
PermissionsService,
2324
AdministrationGuard,
24-
GuardService
25+
GuardService,
26+
FormsModule,
27+
ReactiveFormsModule
2528
],
2629
})
2730

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<div class="contatiner">
2+
<div class="row">
3+
<div *ngIf="projects" class="col-md-12 form-row">
4+
5+
<div class="col-md-1 p-2">
6+
Project:
7+
</div>
8+
9+
<div class="col-md-5 p-2">
10+
<lookup-autocomplete id="project-selector" [small]=true placeholder="Select Project"
11+
[allowEmptyValue]="false" [propertiesToShow]="['name']" [array]="projects" [model]="selectedProject"
12+
(modelChange)="onProjectChange($event)"></lookup-autocomplete>
13+
</div>
14+
</div>
15+
</div>
16+
17+
<app-integration-systems *ngIf='isProjectSelected()' [projectId]='selectedProject.id'></app-integration-systems>
18+
</div>

src/app/pages/administration/projects/integrations/integrations/integrations.component.scss

Whitespace-only changes.

0 commit comments

Comments
 (0)