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';