From a872c6d8faaf502a5fe871e064861edb80691ebc Mon Sep 17 00:00:00 2001 From: Maurizio Vitale Date: Thu, 24 Jan 2019 14:18:35 +0000 Subject: [PATCH] [ADF-3946] Add the GroupCloudComponent to the StartTaskCloudComponent (#4202) * Add GroupComponent to the start task cloud * [ADF-3946] Exported unexported componentes in group module * [ADF-3946] Used group module in start task module * Fix import * Fix build name * Fix build name unit tests * Fix unit test * Add space to rebuild travis --- .../process-services-cloud/group-cloud.component.md | 4 ++-- .../group/components/group-cloud.component.spec.ts | 6 +++--- .../lib/group/components/group-cloud.component.ts | 6 +++--- .../src/lib/process-services-cloud.module.ts | 4 +--- .../components/start-task-cloud.component.html | 4 ++++ .../components/start-task-cloud.component.spec.ts | 4 ++-- .../components/start-task-cloud.component.ts | 13 +++++++++++++ .../models/start-task-cloud-request.model.ts | 2 ++ .../start-task/models/task-details-cloud.model.ts | 2 ++ .../lib/task/start-task/start-task-cloud.module.ts | 2 ++ lib/process-services-cloud/src/public-api.ts | 1 + 11 files changed, 35 insertions(+), 13 deletions(-) diff --git a/docs/process-services-cloud/group-cloud.component.md b/docs/process-services-cloud/group-cloud.component.md index 7e8a66939c..76b8538ad7 100644 --- a/docs/process-services-cloud/group-cloud.component.md +++ b/docs/process-services-cloud/group-cloud.component.md @@ -13,7 +13,7 @@ Searches Groups. ```html ``` @@ -26,7 +26,7 @@ Searches Groups. | Name | Type | Default value | Description | | ---- | ---- | ------------- | ----------- | -| applicationName | `string` | | Name of the application. If specified this shows the users who have access to the app. | +| appName | `string` | | Name of the application. If specified this shows the users who have access to the app. | | mode | `string` | | User selection mode (single/multiple). | | preSelectGroups | [`GroupModel`](../../process-services-cloud/src/lib/group/models/group.model.ts)`[]` | \[] | Array of users to be pre-selected. This pre-selects all users in multi selection mode and only the first user of the array in single selection mode. | diff --git a/lib/process-services-cloud/src/lib/group/components/group-cloud.component.spec.ts b/lib/process-services-cloud/src/lib/group/components/group-cloud.component.spec.ts index 7e9b0341aa..7a43cf21bc 100644 --- a/lib/process-services-cloud/src/lib/group/components/group-cloud.component.spec.ts +++ b/lib/process-services-cloud/src/lib/group/components/group-cloud.component.spec.ts @@ -49,7 +49,7 @@ describe('GroupCloudComponent', () => { findGroupsByNameSpy = spyOn(service, 'findGroupsByName').and.returnValue(of(mockGroups)); getClientIdByApplicationNameSpy = spyOn(service, 'getClientIdByApplicationName').and.returnValue(of('mock-client-id')); checkGroupHasClientRoleMappingSpy = spyOn(service, 'checkGroupHasClientRoleMapping').and.returnValue(of(true)); - component.applicationName = 'mock-app-name'; + component.appName = 'mock-app-name'; }); it('should create GroupCloudComponent', () => { @@ -197,7 +197,7 @@ describe('GroupCloudComponent', () => { })); it('should list groups who have access to the app when appName is specified', async(() => { - component.applicationName = 'sample-app'; + component.appName = 'sample-app'; fixture.detectChanges(); let inputHTMLElement: HTMLInputElement = element.querySelector('input'); inputHTMLElement.focus(); @@ -213,7 +213,7 @@ describe('GroupCloudComponent', () => { it('should not list groups who do not have access to the app when appName is specified', async(() => { checkGroupHasClientRoleMappingSpy.and.returnValue(of(false)); - component.applicationName = 'sample-app'; + component.appName = 'sample-app'; fixture.detectChanges(); let inputHTMLElement: HTMLInputElement = element.querySelector('[data-automation-id="adf-cloud-group-search-input"]'); diff --git a/lib/process-services-cloud/src/lib/group/components/group-cloud.component.ts b/lib/process-services-cloud/src/lib/group/components/group-cloud.component.ts index 07d17a68a1..2f60b26794 100644 --- a/lib/process-services-cloud/src/lib/group/components/group-cloud.component.ts +++ b/lib/process-services-cloud/src/lib/group/components/group-cloud.component.ts @@ -48,7 +48,7 @@ export class GroupCloudComponent implements OnInit { /** Name of the application. If specified this shows the users who have access to the app. */ @Input() - applicationName: string; + appName: string; /** User selection mode (single/multiple). */ @Input() @@ -97,14 +97,14 @@ export class GroupCloudComponent implements OnInit { this.loadPreSelectGroups(); this.initSearch(); - if (this.applicationName) { + if (this.appName) { this.disableSearch(); this.loadClientId(); } } private async loadClientId() { - this.clientId = await this.groupService.getClientIdByApplicationName(this.applicationName).toPromise(); + this.clientId = await this.groupService.getClientIdByApplicationName(this.appName).toPromise(); if (this.clientId) { this.enableSearch(); } diff --git a/lib/process-services-cloud/src/lib/process-services-cloud.module.ts b/lib/process-services-cloud/src/lib/process-services-cloud.module.ts index 2ad550703f..2b9eeaec79 100644 --- a/lib/process-services-cloud/src/lib/process-services-cloud.module.ts +++ b/lib/process-services-cloud/src/lib/process-services-cloud.module.ts @@ -20,7 +20,6 @@ import { TRANSLATION_PROVIDER } from '@alfresco/adf-core'; import { AppListCloudModule } from './app/app-list-cloud.module'; import { TaskCloudModule } from './task/task-cloud.module'; import { ProcessCloudModule } from './process/process-cloud.module'; -import { GroupCloudModule } from './group/group-cloud.module'; @NgModule({ imports: [ @@ -41,8 +40,7 @@ import { GroupCloudModule } from './group/group-cloud.module'; exports: [ AppListCloudModule, ProcessCloudModule, - TaskCloudModule, - GroupCloudModule + TaskCloudModule ] }) export class ProcessServicesCloudModule { } diff --git a/lib/process-services-cloud/src/lib/task/start-task/components/start-task-cloud.component.html b/lib/process-services-cloud/src/lib/task/start-task/components/start-task-cloud.component.html index ef0600aaaa..da24f102b9 100644 --- a/lib/process-services-cloud/src/lib/task/start-task/components/start-task-cloud.component.html +++ b/lib/process-services-cloud/src/lib/task/start-task/components/start-task-cloud.component.html @@ -64,6 +64,10 @@
+ +
+ +
diff --git a/lib/process-services-cloud/src/lib/task/start-task/components/start-task-cloud.component.spec.ts b/lib/process-services-cloud/src/lib/task/start-task/components/start-task-cloud.component.spec.ts index 9d39722115..5e5cfad2ca 100644 --- a/lib/process-services-cloud/src/lib/task/start-task/components/start-task-cloud.component.spec.ts +++ b/lib/process-services-cloud/src/lib/task/start-task/components/start-task-cloud.component.spec.ts @@ -125,7 +125,7 @@ describe('StartTaskCloudComponent', () => { createTaskButton.click(); fixture.detectChanges(); fixture.whenStable().then(() => { - const taskRequest = new TaskDetailsCloudModel({ name: 'fakeName', assignee: 'currentUser'}); + const taskRequest = new TaskDetailsCloudModel({ name: 'fakeName', assignee: 'currentUser', candidateGroups: []}); expect(createNewTaskSpy).toHaveBeenCalledWith(taskRequest); }); })); @@ -137,7 +137,7 @@ describe('StartTaskCloudComponent', () => { createTaskButton.click(); fixture.detectChanges(); fixture.whenStable().then(() => { - const taskRequest = new TaskDetailsCloudModel({ name: 'fakeName', assignee: 'currentUser'}); + const taskRequest = new TaskDetailsCloudModel({ name: 'fakeName', assignee: 'currentUser', candidateGroups: []}); expect(createNewTaskSpy).toHaveBeenCalledWith(taskRequest); }); })); diff --git a/lib/process-services-cloud/src/lib/task/start-task/components/start-task-cloud.component.ts b/lib/process-services-cloud/src/lib/task/start-task/components/start-task-cloud.component.ts index e12dbda381..86745bacb6 100644 --- a/lib/process-services-cloud/src/lib/task/start-task/components/start-task-cloud.component.ts +++ b/lib/process-services-cloud/src/lib/task/start-task/components/start-task-cloud.component.ts @@ -84,6 +84,7 @@ export class StartTaskCloudComponent implements OnInit, OnDestroy { submitted = false; assigneeName: string; + candidateGroups: string [] = []; dateError: boolean; @@ -145,6 +146,8 @@ export class StartTaskCloudComponent implements OnInit, OnDestroy { newTask.appName = this.getAppName(); newTask.dueDate = this.getDueDate(); newTask.assignee = this.assigneeName; + + newTask.candidateGroups = this.candidateGroups; this.createNewTask(new TaskDetailsCloudModel(newTask)); } @@ -193,6 +196,16 @@ export class StartTaskCloudComponent implements OnInit, OnDestroy { this.assigneeName = null; } + onSelectGroup(group) { + this.candidateGroups.push(group.name); + } + + onRemoveGroup(group) { + this.candidateGroups = this.candidateGroups.filter( (name) => { + return name !== group.name; + }); + } + public whitespaceValidator(control: FormControl) { const isWhitespace = (control.value || '').trim().length === 0; const isValid = !isWhitespace; diff --git a/lib/process-services-cloud/src/lib/task/start-task/models/start-task-cloud-request.model.ts b/lib/process-services-cloud/src/lib/task/start-task/models/start-task-cloud-request.model.ts index 65380508bb..23dd6425aa 100644 --- a/lib/process-services-cloud/src/lib/task/start-task/models/start-task-cloud-request.model.ts +++ b/lib/process-services-cloud/src/lib/task/start-task/models/start-task-cloud-request.model.ts @@ -19,6 +19,7 @@ export class StartTaskCloudRequestModel { name: string; description: string; assignee: string; + candidateGroups: string []; priority: string; dueDate: Date; payloadType: string; @@ -30,6 +31,7 @@ export class StartTaskCloudRequestModel { this.assignee = obj.assignee || null; this.priority = obj.priority || null; this.dueDate = obj.dueDate || null; + this.candidateGroups = obj.candidateGroups || null; this.payloadType = 'CreateTaskPayload'; } } diff --git a/lib/process-services-cloud/src/lib/task/start-task/models/task-details-cloud.model.ts b/lib/process-services-cloud/src/lib/task/start-task/models/task-details-cloud.model.ts index edefbb1f67..4420346142 100644 --- a/lib/process-services-cloud/src/lib/task/start-task/models/task-details-cloud.model.ts +++ b/lib/process-services-cloud/src/lib/task/start-task/models/task-details-cloud.model.ts @@ -38,6 +38,7 @@ export class TaskDetailsCloudModel { processInstanceId: string; status: string; standAlone: boolean; + candidateGroups: string []; managerOfCandidateGroup: boolean; memberOfCandidateGroup: boolean; memberOfCandidateUsers: boolean; @@ -64,6 +65,7 @@ export class TaskDetailsCloudModel { this.processInstanceId = obj.processInstanceId || null; this.status = obj.status || null; this.standAlone = obj.standAlone || null; + this.candidateGroups = obj.candidateGroups || null; this.managerOfCandidateGroup = obj.managerOfCandidateGroup || null; this.memberOfCandidateGroup = obj.memberOfCandidateGroup || null; this.memberOfCandidateUsers = obj.memberOfCandidateUsers || null; diff --git a/lib/process-services-cloud/src/lib/task/start-task/start-task-cloud.module.ts b/lib/process-services-cloud/src/lib/task/start-task/start-task-cloud.module.ts index 3a6f4d24de..1b577e6f2a 100644 --- a/lib/process-services-cloud/src/lib/task/start-task/start-task-cloud.module.ts +++ b/lib/process-services-cloud/src/lib/task/start-task/start-task-cloud.module.ts @@ -25,6 +25,7 @@ import { StartTaskCloudComponent } from './components/start-task-cloud.component import { StartTaskCloudService } from './services/start-task-cloud.service'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { PeopleCloudComponent } from './components/people-cloud/people-cloud.component'; +import { GroupCloudModule } from '../../group/group-cloud.module'; @NgModule({ imports: [ @@ -41,6 +42,7 @@ import { PeopleCloudComponent } from './components/people-cloud/people-cloud.com MaterialModule, FormsModule, ReactiveFormsModule, + GroupCloudModule, FormModule ], declarations: [StartTaskCloudComponent, PeopleCloudComponent], diff --git a/lib/process-services-cloud/src/public-api.ts b/lib/process-services-cloud/src/public-api.ts index 97c52c1dfc..4d3fb0a707 100644 --- a/lib/process-services-cloud/src/public-api.ts +++ b/lib/process-services-cloud/src/public-api.ts @@ -19,3 +19,4 @@ export * from './lib/process-services-cloud.module'; export * from './lib/app/public-api'; export * from './lib/process/public-api'; export * from './lib/task/public-api'; +export * from './lib/group/public-api';