mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
[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:
@@ -15,7 +15,7 @@
|
|||||||
class="app-cloud-layout-overflow"
|
class="app-cloud-layout-overflow"
|
||||||
[appName]="editedFilter.appName"
|
[appName]="editedFilter.appName"
|
||||||
[appVersion]="editedFilter.appVersion"
|
[appVersion]="editedFilter.appVersion"
|
||||||
[initiator]="getInitiatorValue()"
|
[initiator]="editedFilter.initiator"
|
||||||
[processDefinitionId]="editedFilter.processDefinitionId"
|
[processDefinitionId]="editedFilter.processDefinitionId"
|
||||||
[processDefinitionName]="editedFilter.processDefinitionName"
|
[processDefinitionName]="editedFilter.processDefinitionName"
|
||||||
[processDefinitionKey]="editedFilter.processDefinitionKey"
|
[processDefinitionKey]="editedFilter.processDefinitionKey"
|
||||||
|
@@ -16,7 +16,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { Component, OnInit, OnDestroy } from '@angular/core';
|
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 { ActivatedRoute, Router } from '@angular/router';
|
||||||
import { UserPreferencesService, DataCellEvent } from '@alfresco/adf-core';
|
import { UserPreferencesService, DataCellEvent } from '@alfresco/adf-core';
|
||||||
import { CloudLayoutService, CloudServiceSettings } from './services/cloud-layout.service';
|
import { CloudLayoutService, CloudServiceSettings } from './services/cloud-layout.service';
|
||||||
@@ -60,7 +60,6 @@ export class ProcessesCloudDemoComponent implements OnInit, OnDestroy {
|
|||||||
private router: Router,
|
private router: Router,
|
||||||
private cloudLayoutService: CloudLayoutService,
|
private cloudLayoutService: CloudLayoutService,
|
||||||
private cloudProcessFiltersService: CloudProcessFiltersService,
|
private cloudProcessFiltersService: CloudProcessFiltersService,
|
||||||
private processFilterCloudService: ProcessFilterCloudService,
|
|
||||||
private userPreference: UserPreferencesService) {
|
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) {
|
onChangePageSize(event: Pagination) {
|
||||||
this.userPreference.paginationSize = event.maxItems;
|
this.userPreference.paginationSize = event.maxItems;
|
||||||
}
|
}
|
||||||
@@ -181,9 +176,7 @@ export class ProcessesCloudDemoComponent implements OnInit, OnDestroy {
|
|||||||
|
|
||||||
private loadFilter(model: ProcessFilterCloudModel) {
|
private loadFilter(model: ProcessFilterCloudModel) {
|
||||||
if (model && model.appName && model.id) {
|
if (model && model.appName && model.id) {
|
||||||
this.processFilterCloudService.getFilterById(model.appName, model.id).subscribe(filter => {
|
this.editedFilter = model;
|
||||||
this.editedFilter = Object.assign({}, filter, model);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -157,7 +157,6 @@ export class PeopleCloudComponent implements OnInit, OnChanges, OnDestroy {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ngOnChanges(changes: SimpleChanges): void {
|
ngOnChanges(changes: SimpleChanges): void {
|
||||||
|
|
||||||
if (this.valueChanged(changes.preSelectUsers)
|
if (this.valueChanged(changes.preSelectUsers)
|
||||||
|| this.valueChanged(changes.mode)
|
|| this.valueChanged(changes.mode)
|
||||||
|| this.valueChanged(changes.validate)
|
|| this.valueChanged(changes.validate)
|
||||||
|
@@ -89,7 +89,7 @@
|
|||||||
|
|
||||||
<div fxFlex="23%" *ngIf="processFilterProperty.type === 'people'">
|
<div fxFlex="23%" *ngIf="processFilterProperty.type === 'people'">
|
||||||
<adf-cloud-people
|
<adf-cloud-people
|
||||||
[preSelectUsers]="processFilterProperty.value"
|
[preSelectUsers]="initiatorOptions"
|
||||||
[title]="processFilterProperty.label"
|
[title]="processFilterProperty.label"
|
||||||
[validate]="true"
|
[validate]="true"
|
||||||
[appName]="appName"
|
[appName]="appName"
|
||||||
|
@@ -54,6 +54,7 @@ describe('EditProcessFilterCloudComponent', () => {
|
|||||||
name: 'FakeRunningProcess',
|
name: 'FakeRunningProcess',
|
||||||
icon: 'adjust',
|
icon: 'adjust',
|
||||||
id: 'mock-process-filter-id',
|
id: 'mock-process-filter-id',
|
||||||
|
initiator: 'user1,user2',
|
||||||
status: 'RUNNING',
|
status: 'RUNNING',
|
||||||
appName: 'mock-app-name',
|
appName: 'mock-app-name',
|
||||||
appVersion: 1,
|
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'} ]);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@@ -151,6 +151,7 @@ export class EditProcessFilterCloudComponent implements OnInit, OnChanges, OnDes
|
|||||||
processFilterActions: ProcessFilterAction[] = [];
|
processFilterActions: ProcessFilterAction[] = [];
|
||||||
toggleFilterActions: boolean = false;
|
toggleFilterActions: boolean = false;
|
||||||
appVersionOptions: ProcessFilterOptions[] = [];
|
appVersionOptions: ProcessFilterOptions[] = [];
|
||||||
|
initiatorOptions: IdentityUserModel[] = [];
|
||||||
|
|
||||||
private onDestroy$ = new Subject<boolean>();
|
private onDestroy$ = new Subject<boolean>();
|
||||||
isLoading: boolean = false;
|
isLoading: boolean = false;
|
||||||
@@ -267,6 +268,12 @@ export class EditProcessFilterCloudComponent implements OnInit, OnChanges, OnDes
|
|||||||
this.getAppVersionOptions();
|
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);
|
const defaultProperties = this.createProcessFilterProperties(this.processFilter);
|
||||||
let filteredProperties = defaultProperties.filter((filterProperty) => this.isValidProperty(this.filterProperties, filterProperty.key));
|
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) {
|
onChangedUser(users: IdentityUserModel[], processProperty: ProcessFilterProperties) {
|
||||||
this.getPropertyController(processProperty).setValue(users);
|
this.getPropertyController(processProperty).setValue(users.map( user => user.username).join(','));
|
||||||
}
|
}
|
||||||
|
|
||||||
hasError(property: ProcessFilterProperties): boolean {
|
hasError(property: ProcessFilterProperties): boolean {
|
||||||
|
@@ -17,7 +17,6 @@
|
|||||||
import { DateCloudFilterType } from '../../../models/date-cloud-filter.model';
|
import { DateCloudFilterType } from '../../../models/date-cloud-filter.model';
|
||||||
import { DateRangeFilterService } from '../../../common/date-range-filter/date-range-filter.service';
|
import { DateRangeFilterService } from '../../../common/date-range-filter/date-range-filter.service';
|
||||||
import { ComponentSelectionMode } from '../../../types';
|
import { ComponentSelectionMode } from '../../../types';
|
||||||
import { IdentityUserModel } from '@alfresco/adf-core';
|
|
||||||
|
|
||||||
export class ProcessFilterCloudModel {
|
export class ProcessFilterCloudModel {
|
||||||
|
|
||||||
@@ -32,7 +31,7 @@ export class ProcessFilterCloudModel {
|
|||||||
appVersion?: number | number[];
|
appVersion?: number | number[];
|
||||||
processName: string;
|
processName: string;
|
||||||
processInstanceId: string;
|
processInstanceId: string;
|
||||||
initiator: IdentityUserModel[];
|
initiator: string;
|
||||||
status: string;
|
status: string;
|
||||||
sort: string;
|
sort: string;
|
||||||
order: string;
|
order: string;
|
||||||
|
Reference in New Issue
Block a user