[ACA-4220] - preselect initator values by username (#6860)

* [ACA-4220] - preselect initator values by username

* add unit test

* fix demoshell process filters

* revert app.config

* fix build

Co-authored-by: Silviu Constantin Popa <silviucpopa@L3700101120.ness.com>
This commit is contained in:
Silviu Popa
2021-03-30 12:59:54 +03:00
committed by GitHub
parent 452fc3c278
commit 4df448567b
7 changed files with 24 additions and 15 deletions

View File

@@ -15,7 +15,7 @@
class="app-cloud-layout-overflow"
[appName]="editedFilter.appName"
[appVersion]="editedFilter.appVersion"
[initiator]="getInitiatorValue()"
[initiator]="editedFilter.initiator"
[processDefinitionId]="editedFilter.processDefinitionId"
[processDefinitionName]="editedFilter.processDefinitionName"
[processDefinitionKey]="editedFilter.processDefinitionKey"

View File

@@ -16,7 +16,7 @@
*/
import { Component, OnInit, OnDestroy } from '@angular/core';
import { EditProcessFilterCloudComponent, ProcessFilterAction, ProcessFilterCloudModel, ProcessFilterCloudService } from '@alfresco/adf-process-services-cloud';
import { EditProcessFilterCloudComponent, ProcessFilterAction, ProcessFilterCloudModel } from '@alfresco/adf-process-services-cloud';
import { ActivatedRoute, Router } from '@angular/router';
import { UserPreferencesService, DataCellEvent } from '@alfresco/adf-core';
import { CloudLayoutService, CloudServiceSettings } from './services/cloud-layout.service';
@@ -60,7 +60,6 @@ export class ProcessesCloudDemoComponent implements OnInit, OnDestroy {
private router: Router,
private cloudLayoutService: CloudLayoutService,
private cloudProcessFiltersService: CloudProcessFiltersService,
private processFilterCloudService: ProcessFilterCloudService,
private userPreference: UserPreferencesService) {
}
@@ -102,10 +101,6 @@ export class ProcessesCloudDemoComponent implements OnInit, OnDestroy {
}
}
getInitiatorValue(): string {
return this.editedFilter.initiator?.map(initiator => initiator.username).join(',');
}
onChangePageSize(event: Pagination) {
this.userPreference.paginationSize = event.maxItems;
}
@@ -181,9 +176,7 @@ export class ProcessesCloudDemoComponent implements OnInit, OnDestroy {
private loadFilter(model: ProcessFilterCloudModel) {
if (model && model.appName && model.id) {
this.processFilterCloudService.getFilterById(model.appName, model.id).subscribe(filter => {
this.editedFilter = Object.assign({}, filter, model);
});
this.editedFilter = model;
}
}
}

View File

@@ -157,7 +157,6 @@ export class PeopleCloudComponent implements OnInit, OnChanges, OnDestroy {
}
ngOnChanges(changes: SimpleChanges): void {
if (this.valueChanged(changes.preSelectUsers)
|| this.valueChanged(changes.mode)
|| this.valueChanged(changes.validate)

View File

@@ -89,7 +89,7 @@
<div fxFlex="23%" *ngIf="processFilterProperty.type === 'people'">
<adf-cloud-people
[preSelectUsers]="processFilterProperty.value"
[preSelectUsers]="initiatorOptions"
[title]="processFilterProperty.label"
[validate]="true"
[appName]="appName"

View File

@@ -54,6 +54,7 @@ describe('EditProcessFilterCloudComponent', () => {
name: 'FakeRunningProcess',
icon: 'adjust',
id: 'mock-process-filter-id',
initiator: 'user1,user2',
status: 'RUNNING',
appName: 'mock-app-name',
appVersion: 1,
@@ -893,5 +894,15 @@ describe('EditProcessFilterCloudComponent', () => {
});
});
it('should build initiator as object array', () => {
component.appName = 'fake';
component.filterProperties = ['appName', 'initiator'];
const taskFilterIdChange = new SimpleChange(undefined, 'mock-task-filter-id', true);
component.ngOnChanges({ 'id': taskFilterIdChange });
fixture.detectChanges();
expect(component.initiatorOptions).toEqual([ { username: 'user1' }, { username: 'user2'} ]);
});
});
});

View File

@@ -151,6 +151,7 @@ export class EditProcessFilterCloudComponent implements OnInit, OnChanges, OnDes
processFilterActions: ProcessFilterAction[] = [];
toggleFilterActions: boolean = false;
appVersionOptions: ProcessFilterOptions[] = [];
initiatorOptions: IdentityUserModel[] = [];
private onDestroy$ = new Subject<boolean>();
isLoading: boolean = false;
@@ -267,6 +268,12 @@ export class EditProcessFilterCloudComponent implements OnInit, OnChanges, OnDes
this.getAppVersionOptions();
}
if (this.filterProperties.includes('initiator')) {
this.initiatorOptions = !!this.processFilter.initiator
? this.processFilter.initiator.split(',').map( username => Object.assign({}, { username: username }))
: [];
}
const defaultProperties = this.createProcessFilterProperties(this.processFilter);
let filteredProperties = defaultProperties.filter((filterProperty) => this.isValidProperty(this.filterProperties, filterProperty.key));
@@ -368,7 +375,7 @@ export class EditProcessFilterCloudComponent implements OnInit, OnChanges, OnDes
}
onChangedUser(users: IdentityUserModel[], processProperty: ProcessFilterProperties) {
this.getPropertyController(processProperty).setValue(users);
this.getPropertyController(processProperty).setValue(users.map( user => user.username).join(','));
}
hasError(property: ProcessFilterProperties): boolean {

View File

@@ -17,7 +17,6 @@
import { DateCloudFilterType } from '../../../models/date-cloud-filter.model';
import { DateRangeFilterService } from '../../../common/date-range-filter/date-range-filter.service';
import { ComponentSelectionMode } from '../../../types';
import { IdentityUserModel } from '@alfresco/adf-core';
export class ProcessFilterCloudModel {
@@ -32,7 +31,7 @@ export class ProcessFilterCloudModel {
appVersion?: number | number[];
processName: string;
processInstanceId: string;
initiator: IdentityUserModel[];
initiator: string;
status: string;
sort: string;
order: string;