mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
[ACA-3706] implement startedBy process filter property (#6077)
* [ACA-3706] implement startedBy filter property * fix lint * [ACA-3706] implement startedBy filter * replace initiator with people cloud component * small changes * fix user selection mode * revert unnecesary change * fix e2e * fix process filter e2e tests * fix more e2e Co-authored-by: Silviu Popa <p3701014@L3700101120.ness.com>
This commit is contained in:
@@ -13,7 +13,7 @@
|
||||
fxFlex
|
||||
class="app-cloud-layout-overflow"
|
||||
[appName]="editedFilter.appName"
|
||||
[initiator]="editedFilter.initiator"
|
||||
[initiator]="getInitiatorValue()"
|
||||
[processDefinitionId]="editedFilter.processDefinitionId"
|
||||
[processDefinitionName]="editedFilter.processDefinitionName"
|
||||
[processDefinitionKey]="editedFilter.processDefinitionKey"
|
||||
|
@@ -116,6 +116,10 @@ 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;
|
||||
}
|
||||
|
@@ -61,7 +61,7 @@ export class ProcessListCloudConfiguration {
|
||||
{
|
||||
'key': 'entry.initiator',
|
||||
'type': 'text',
|
||||
'title': 'ADF_CLOUD_PROCESS_LIST.PROPERTIES.INITIATOR',
|
||||
'title': 'ADF_CLOUD_PROCESS_LIST.PROPERTIES.STARTED_BY',
|
||||
'sortable': true
|
||||
},
|
||||
{
|
||||
|
@@ -145,15 +145,15 @@ describe('Process list cloud', () => {
|
||||
await expect(await processCloudDemoPage.processListCloudComponent().getDataTable().checkListIsSorted('DESC', 'Status')).toBe(true);
|
||||
});
|
||||
|
||||
it('[C305054] Should display processes ordered by initiator when Initiator is selected from sort dropdown', async () => {
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setFilter({ status: 'ALL', sort: 'Initiator', order: 'ASC' });
|
||||
it('[C305054] Should display processes ordered by started by when Started By is selected from sort dropdown', async () => {
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setFilter({ status: 'ALL', sort: 'Started by', order: 'ASC' });
|
||||
await processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded();
|
||||
|
||||
await expect(await processCloudDemoPage.processListCloudComponent().getDataTable().checkListIsSorted('ASC', 'Initiator')).toBe(true);
|
||||
await expect(await processCloudDemoPage.processListCloudComponent().getDataTable().checkListIsSorted('ASC', 'Started by')).toBe(true);
|
||||
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setFilter({ order: 'DESC'});
|
||||
await processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded();
|
||||
await expect(await processCloudDemoPage.processListCloudComponent().getDataTable().checkListIsSorted('DESC', 'Initiator')).toBe(true);
|
||||
await expect(await processCloudDemoPage.processListCloudComponent().getDataTable().checkListIsSorted('DESC', 'Started by')).toBe(true);
|
||||
});
|
||||
|
||||
it('[C305054] Should display processes ordered by processdefinitionid date when ProcessDefinitionId is selected from sort dropdown', async () => {
|
||||
|
@@ -150,7 +150,7 @@ describe('Process filters cloud', () => {
|
||||
it('[C306887] Should be able to filter by appName', async () => {
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().openFilter();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setAppNameDropDown(candidateBaseApp);
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setProperty('initiator', testUser.username);
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setInitiator(`${testUser.firstName} ${testUser.lastName}`);
|
||||
|
||||
await processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded();
|
||||
await processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(runningProcessInstance.entry.name);
|
||||
@@ -160,14 +160,14 @@ describe('Process filters cloud', () => {
|
||||
it('[C306889] Should be able to see "No process found" when using an app with no processes in the appName field', async () => {
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().openFilter();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setAppNameDropDown('subprocessapp');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setProperty('initiator', testUser.username);
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setInitiator(`${testUser.firstName} ${testUser.lastName}`);
|
||||
|
||||
await expect(await processListPage.getDisplayedProcessListTitle()).toEqual('No Processes Found');
|
||||
});
|
||||
|
||||
it('[C306890] Should be able to filter by initiator', async () => {
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().openFilter();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setProperty('initiator', testUser.username);
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setInitiator(`${testUser.firstName} ${testUser.lastName}`);
|
||||
|
||||
await processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded();
|
||||
await processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(runningProcessInstance.entry.name);
|
||||
|
@@ -126,7 +126,7 @@ describe('Process Header cloud component', () => {
|
||||
await processCloudDemoPage.processFilterCloudComponent.clickCompletedProcessesFilter();
|
||||
await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toBe(PROCESSES.COMPLETED);
|
||||
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setFilter({ initiator: testUser.username });
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setFilter({ initiator: `${testUser.firstName} ${testUser.lastName}` });
|
||||
await processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded();
|
||||
await processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(childCompleteProcess.entry.name);
|
||||
|
||||
|
@@ -96,7 +96,8 @@ describe('Process list cloud', () => {
|
||||
await processCloudDemoPage.processFilterCloudComponent.isProcessFiltersListVisible();
|
||||
await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toEqual(PROCESSES.RUNNING);
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().openFilter();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setProperty('initiator', testUser.username);
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setInitiator(`${testUser.firstName} ${testUser.lastName}`);
|
||||
await processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded();
|
||||
await processCloudDemoPage.processListCloudComponent().selectRowById(processInstances[0]);
|
||||
await processCloudDemoPage.processListCloudComponent().getDataTable().checkNoRowIsSelected();
|
||||
});
|
||||
@@ -108,7 +109,7 @@ describe('Process list cloud', () => {
|
||||
await processCloudDemoPage.processFilterCloudComponent.isProcessFiltersListVisible();
|
||||
await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toEqual(PROCESSES.RUNNING);
|
||||
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setFilter({ 'initiator': testUser.username });
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setFilter({ 'initiator': `${testUser.firstName} ${testUser.lastName}`});
|
||||
await processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded();
|
||||
await processCloudDemoPage.processListCloudComponent().selectRowById(processInstances[0]);
|
||||
await processCloudDemoPage.processListCloudComponent().checkRowIsSelectedById(processInstances[0]);
|
||||
@@ -124,7 +125,7 @@ describe('Process list cloud', () => {
|
||||
await tasksCloudDemoPage.clickAppButton();
|
||||
await processCloudDemoPage.processFilterCloudComponent.isProcessFiltersListVisible();
|
||||
await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toEqual(PROCESSES.RUNNING);
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setFilter({ 'initiator': testUser.username });
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setFilter({ 'initiator': `${testUser.firstName} ${testUser.lastName}`});
|
||||
await processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded();
|
||||
await processCloudDemoPage.processListCloudComponent().selectRowById(processInstances[0]);
|
||||
await processCloudDemoPage.processListCloudComponent().checkRowIsSelectedById(processInstances[0]);
|
||||
@@ -141,7 +142,7 @@ describe('Process list cloud', () => {
|
||||
await tasksCloudDemoPage.clickAppButton();
|
||||
await processCloudDemoPage.processFilterCloudComponent.isProcessFiltersListVisible();
|
||||
await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toEqual(PROCESSES.RUNNING);
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setFilter({ 'initiator': testUser.username });
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setFilter({ 'initiator': `${testUser.firstName} ${testUser.lastName}`});
|
||||
await processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded();
|
||||
await processCloudDemoPage.processListCloudComponent().checkCheckboxById(processInstances[0]);
|
||||
await processCloudDemoPage.processListCloudComponent().checkRowIsCheckedById(processInstances[0]);
|
||||
@@ -158,7 +159,7 @@ describe('Process list cloud', () => {
|
||||
await tasksCloudDemoPage.enableMultiSelection();
|
||||
await tasksCloudDemoPage.clickAppButton();
|
||||
await processCloudDemoPage.processFilterCloudComponent.isProcessFiltersListVisible();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setFilter({ 'initiator': testUser.username });
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setFilter({ 'initiator': `${testUser.firstName} ${testUser.lastName}`});
|
||||
await processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded();
|
||||
await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toEqual(PROCESSES.RUNNING);
|
||||
await browser.sleep(1000);
|
||||
@@ -182,7 +183,7 @@ describe('Process list cloud', () => {
|
||||
await tasksCloudDemoPage.clickAppButton();
|
||||
await processCloudDemoPage.processFilterCloudComponent.isProcessFiltersListVisible();
|
||||
await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toEqual(PROCESSES.RUNNING);
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setFilter({ 'initiator': testUser.username });
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setFilter({ 'initiator': `${testUser.firstName} ${testUser.lastName}`});
|
||||
await processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded();
|
||||
await processCloudDemoPage.processListCloudComponent().checkCheckboxById(processInstances[0]);
|
||||
await processCloudDemoPage.processListCloudComponent().checkRowIsCheckedById(processInstances[0]);
|
||||
|
@@ -18,6 +18,7 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { AlfrescoApiService } from './alfresco-api.service';
|
||||
import { Observable, from } from 'rxjs';
|
||||
import { Oauth2Auth } from '@alfresco/js-api';
|
||||
|
||||
export const JSON_TYPE = ['application/json'];
|
||||
|
||||
@@ -33,7 +34,7 @@ export interface OAuth2RequestParams {
|
||||
export class OAuth2Service {
|
||||
constructor(private alfrescoApiService: AlfrescoApiService) {}
|
||||
|
||||
get apiClient() {
|
||||
get apiClient(): Oauth2Auth {
|
||||
return this.alfrescoApiService.getInstance().oauth2Auth;
|
||||
}
|
||||
|
||||
|
@@ -14,6 +14,7 @@
|
||||
"COMPLETED_BY": "Completed By",
|
||||
"ID": "Id",
|
||||
"INITIATOR": "Initiator",
|
||||
"STARTED_BY": "Started by",
|
||||
"APP_NAME": "Application Name",
|
||||
"BUSINESS_KEY": "Business Key",
|
||||
"DESCRIPTION": "Description",
|
||||
@@ -208,6 +209,7 @@
|
||||
"PROCESS_NAME": "Process Name",
|
||||
"APP_VERSION": "AppReleaseVersion",
|
||||
"STARTED_DATE": "Started Date",
|
||||
"STARTED_BY": "Started by",
|
||||
"COMPLETED_DATE": "Completed Date",
|
||||
"DATE_RANGE": {
|
||||
"NO_DATE": "No Date",
|
||||
|
@@ -72,6 +72,16 @@
|
||||
[options]="processFilterProperty.dateFilterOptions"
|
||||
(dateTypeChange)="onDateTypeChange($event, processFilterProperty)"
|
||||
(dateChanged)="onDateRangeFilterChanged($event, processFilterProperty)"></adf-cloud-date-range-filter>
|
||||
|
||||
<div fxFlex="23%" *ngIf="isUserSelectType(processFilterProperty)">
|
||||
<adf-cloud-people
|
||||
[preSelectUsers]="processFilterProperty.value"
|
||||
[title]="processFilterProperty.label"
|
||||
[validate]="true"
|
||||
[appName]="appName"
|
||||
[mode]="processFilterProperty.selectionMode"
|
||||
(changedUsers)="onChangedUser($event, processFilterProperty)"></adf-cloud-people>
|
||||
</div>
|
||||
</ng-container>
|
||||
</div>
|
||||
</form>
|
||||
|
@@ -19,7 +19,7 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { SimpleChange } from '@angular/core';
|
||||
import { By } from '@angular/platform-browser';
|
||||
|
||||
import { setupTestBed } from '@alfresco/adf-core';
|
||||
import { setupTestBed, AlfrescoApiService } from '@alfresco/adf-core';
|
||||
import { ProcessServiceCloudTestingModule } from '../../../testing/process-service-cloud.testing.module';
|
||||
import { MatDialog } from '@angular/material/dialog';
|
||||
import { of } from 'rxjs';
|
||||
@@ -48,6 +48,7 @@ describe('EditProcessFilterCloudComponent', () => {
|
||||
let processService: ProcessCloudService;
|
||||
let getRunningApplicationsSpy: jasmine.Spy;
|
||||
let getProcessFilterByIdSpy: jasmine.Spy;
|
||||
let alfrescoApiService: AlfrescoApiService;
|
||||
|
||||
const fakeFilter = new ProcessFilterCloudModel({
|
||||
name: 'FakeRunningProcess',
|
||||
@@ -61,6 +62,12 @@ describe('EditProcessFilterCloudComponent', () => {
|
||||
sort: 'id'
|
||||
});
|
||||
|
||||
const mock = {
|
||||
oauth2Auth: {
|
||||
callCustomApi: () => Promise.resolve(fakeApplicationInstance)
|
||||
}
|
||||
};
|
||||
|
||||
setupTestBed({
|
||||
imports: [
|
||||
TranslateModule.forRoot(),
|
||||
@@ -79,6 +86,7 @@ describe('EditProcessFilterCloudComponent', () => {
|
||||
service = TestBed.inject(ProcessFilterCloudService);
|
||||
appsService = TestBed.inject(AppsProcessCloudService);
|
||||
processService = TestBed.inject(ProcessCloudService);
|
||||
alfrescoApiService = TestBed.inject(AlfrescoApiService);
|
||||
dialog = TestBed.inject(MatDialog);
|
||||
spyOn(dialog, 'open').and.returnValue({
|
||||
afterClosed() {
|
||||
@@ -91,6 +99,7 @@ describe('EditProcessFilterCloudComponent', () => {
|
||||
});
|
||||
getProcessFilterByIdSpy = spyOn(service, 'getFilterById').and.returnValue(of(fakeFilter));
|
||||
getRunningApplicationsSpy = spyOn(appsService, 'getDeployedApplicationsByStatus').and.returnValue(of(fakeApplicationInstance));
|
||||
spyOn(alfrescoApiService, 'getInstance').and.returnValue(mock);
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
|
@@ -23,10 +23,9 @@ import { debounceTime, filter, takeUntil, finalize, switchMap } from 'rxjs/opera
|
||||
import { Subject, Observable } from 'rxjs';
|
||||
import moment from 'moment-es6';
|
||||
import { Moment } from 'moment';
|
||||
|
||||
import { AppsProcessCloudService } from '../../../app/services/apps-process-cloud.service';
|
||||
import { ProcessFilterCloudModel, ProcessFilterProperties, ProcessFilterAction, ProcessFilterOptions, ProcessSortFilterProperties } from '../models/process-filter-cloud.model';
|
||||
import { TranslationService, UserPreferencesService, UserPreferenceValues } from '@alfresco/adf-core';
|
||||
import { IdentityUserModel, TranslationService, UserPreferencesService, UserPreferenceValues } from '@alfresco/adf-core';
|
||||
import { ProcessFilterCloudService } from '../services/process-filter-cloud.service';
|
||||
import { ProcessFilterDialogCloudComponent } from './process-filter-dialog-cloud.component';
|
||||
import { ApplicationInstanceModel } from '../../../app/models/application-instance.model';
|
||||
@@ -333,6 +332,10 @@ export class EditProcessFilterCloudComponent implements OnInit, OnChanges, OnDes
|
||||
);
|
||||
}
|
||||
|
||||
onChangedUser(users: IdentityUserModel[], processProperty: ProcessFilterProperties) {
|
||||
this.getPropertyController(processProperty).setValue(users);
|
||||
}
|
||||
|
||||
hasError(property: ProcessFilterProperties): boolean {
|
||||
return this.getPropertyController(property).errors && this.getPropertyController(property).errors.invalid;
|
||||
}
|
||||
@@ -492,6 +495,10 @@ export class EditProcessFilterCloudComponent implements OnInit, OnChanges, OnDes
|
||||
return property.type === 'number';
|
||||
}
|
||||
|
||||
isUserSelectType(property: ProcessFilterProperties): boolean {
|
||||
return property.type === 'people';
|
||||
}
|
||||
|
||||
isDisabledAction(action: ProcessFilterAction): boolean {
|
||||
return this.isDisabledForDefaultFilters(action) ? true : this.hasFormChanged(action);
|
||||
}
|
||||
@@ -589,7 +596,7 @@ export class EditProcessFilterCloudComponent implements OnInit, OnChanges, OnDes
|
||||
value: 'status'
|
||||
},
|
||||
{
|
||||
label: 'ADF_CLOUD_EDIT_PROCESS_FILTER.LABEL.INITIATOR',
|
||||
label: 'ADF_CLOUD_EDIT_PROCESS_FILTER.LABEL.STARTED_BY',
|
||||
key: 'initiator',
|
||||
value: 'initiator'
|
||||
},
|
||||
@@ -670,12 +677,6 @@ export class EditProcessFilterCloudComponent implements OnInit, OnChanges, OnDes
|
||||
value: currentProcessFilter.processDefinitionName || '',
|
||||
options: this.processDefinitionNames
|
||||
}),
|
||||
new ProcessFilterProperties({
|
||||
label: 'ADF_CLOUD_EDIT_PROCESS_FILTER.LABEL.INITIATOR',
|
||||
type: 'text',
|
||||
key: 'initiator',
|
||||
value: currentProcessFilter.initiator || ''
|
||||
}),
|
||||
new ProcessFilterProperties({
|
||||
label: 'ADF_CLOUD_EDIT_PROCESS_FILTER.LABEL.STATUS',
|
||||
type: 'select',
|
||||
@@ -714,6 +715,13 @@ export class EditProcessFilterCloudComponent implements OnInit, OnChanges, OnDes
|
||||
type: 'date',
|
||||
key: 'completedDate',
|
||||
value: currentProcessFilter.completedDate || false
|
||||
}),
|
||||
new ProcessFilterProperties({
|
||||
label: 'ADF_CLOUD_EDIT_PROCESS_FILTER.LABEL.STARTED_BY',
|
||||
type: 'people',
|
||||
key: 'initiator',
|
||||
value: currentProcessFilter.initiator,
|
||||
selectionMode: 'multiple'
|
||||
}),
|
||||
new ProcessFilterProperties({
|
||||
label: 'ADF_CLOUD_EDIT_PROCESS_FILTER.LABEL.COMPLETED_DATE',
|
||||
|
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
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 {
|
||||
|
||||
@@ -30,7 +32,7 @@ export class ProcessFilterCloudModel {
|
||||
appVersion?: number;
|
||||
processName: string;
|
||||
processInstanceId: string;
|
||||
initiator: string;
|
||||
initiator: IdentityUserModel[];
|
||||
status: string;
|
||||
sort: string;
|
||||
order: string;
|
||||
@@ -168,6 +170,7 @@ export class ProcessFilterProperties {
|
||||
attributes?: { [key: string]: string; };
|
||||
options?: ProcessFilterOptions[];
|
||||
dateFilterOptions?: DateCloudFilterType[];
|
||||
selectionMode?: ComponentSelectionMode;
|
||||
|
||||
constructor(obj?: any) {
|
||||
if (obj) {
|
||||
@@ -178,6 +181,7 @@ export class ProcessFilterProperties {
|
||||
this.attributes = obj.attributes || null;
|
||||
this.options = obj.options || null;
|
||||
this.dateFilterOptions = obj.dateFilterOptions || null;
|
||||
this.selectionMode = obj.selectionMode || null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -28,6 +28,7 @@ import { ProcessFilterDialogCloudComponent } from './components/process-filter-d
|
||||
import { AppListCloudModule } from './../../app/app-list-cloud.module';
|
||||
import { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';
|
||||
import { ProcessCommonModule } from '../../common/process-common.module';
|
||||
import { PeopleCloudModule } from '../../people/people-cloud.module';
|
||||
|
||||
@NgModule({
|
||||
imports: [
|
||||
@@ -39,7 +40,8 @@ import { ProcessCommonModule } from '../../common/process-common.module';
|
||||
MaterialModule,
|
||||
AppListCloudModule,
|
||||
CoreModule,
|
||||
ProcessCommonModule
|
||||
ProcessCommonModule,
|
||||
PeopleCloudModule
|
||||
],
|
||||
declarations: [ProcessFiltersCloudComponent, EditProcessFilterCloudComponent, ProcessFilterDialogCloudComponent],
|
||||
exports: [ProcessFiltersCloudComponent, EditProcessFilterCloudComponent, ProcessFilterDialogCloudComponent],
|
||||
|
@@ -301,7 +301,13 @@ export abstract class BaseEditTaskFilterCloudComponent implements OnInit, OnChan
|
||||
}
|
||||
|
||||
onChangedUser(users: IdentityUserModel[], userProperty: TaskFilterProperties) {
|
||||
this.getPropertyController(userProperty).setValue(users[0]);
|
||||
let selectedUsers;
|
||||
if (userProperty.selectionMode === 'single') {
|
||||
selectedUsers = users[0];
|
||||
} else {
|
||||
selectedUsers = users;
|
||||
}
|
||||
this.getPropertyController(userProperty).setValue(selectedUsers);
|
||||
}
|
||||
|
||||
onAssignedChange(assignedValue: IdentityUserModel) {
|
||||
|
@@ -529,7 +529,8 @@ describe('EditTaskFilterCloudComponent', () => {
|
||||
key: 'completedBy',
|
||||
label: '',
|
||||
type: 'people',
|
||||
value: null
|
||||
value: null,
|
||||
selectionMode: 'single'
|
||||
});
|
||||
|
||||
fixture.detectChanges();
|
||||
|
@@ -19,6 +19,7 @@ import { EditProcessFilterDialogPage } from './dialog/edit-process-filter-dialog
|
||||
import { BrowserVisibility } from '../../core/utils/browser-visibility';
|
||||
import { BrowserActions } from '../../core/utils/browser-actions';
|
||||
import { DropdownPage } from '../../core/pages/material/dropdown.page';
|
||||
import { PeopleCloudComponentPage } from './people-cloud-component.page';
|
||||
|
||||
export class EditProcessFilterCloudComponentPage {
|
||||
|
||||
@@ -39,6 +40,7 @@ export class EditProcessFilterCloudComponentPage {
|
||||
sortDropdown = new DropdownPage(this.locatorSortDropdown);
|
||||
orderDropdown = new DropdownPage(this.locatorOrderDropdown);
|
||||
processDefinitionNameDropdown = new DropdownPage(this.locatorProcessDefinitionNameDropdown);
|
||||
peopleCloudComponent = new PeopleCloudComponentPage();
|
||||
|
||||
editProcessFilterDialogPage = new EditProcessFilterDialogPage();
|
||||
|
||||
@@ -133,6 +135,10 @@ export class EditProcessFilterCloudComponentPage {
|
||||
await this.setProperty('processName', option);
|
||||
}
|
||||
|
||||
async setInitiator(value: string): Promise<void> {
|
||||
await this.peopleCloudComponent.searchAssigneeAndSelect(value);
|
||||
}
|
||||
|
||||
async getProcessInstanceId(): Promise<string> {
|
||||
return this.getProperty('processInstanceId');
|
||||
}
|
||||
@@ -205,7 +211,7 @@ export class EditProcessFilterCloudComponentPage {
|
||||
if (status) { await this.setStatusFilterDropDown(status); }
|
||||
if (sort) { await this.setSortFilterDropDown(sort); }
|
||||
if (order) { await this.setOrderFilterDropDown(order); }
|
||||
if (initiator) { await this.setProperty('initiator', initiator); }
|
||||
if (initiator) { await this.setInitiator(initiator); }
|
||||
if (processName) { await this.setProcessName(processName); }
|
||||
await this.openFilter();
|
||||
}
|
||||
|
Reference in New Issue
Block a user