mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
[AAE-12288] Enable Environment Id filtering support (#8360)
* [AAE-12288] Add environment context to process-instances, user-tasks and service-tasks * [AAE-12288] Add environment type * [AAE-12288] add unit tests for environment aware logic * [AAE-12288] remove mock barrel import and remove code duplication * [AAE-12288] Update docs
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
Title: Edit Process Filter Cloud component
|
||||
Added: v3.0.0
|
||||
Status: Experimental
|
||||
Last reviewed: 2019-04-10
|
||||
Last reviewed: 2023-04-03
|
||||
---
|
||||
|
||||
# [Edit Process Filter Cloud component](../../../lib/process-services-cloud/src/lib/process/process-filters/components/edit-process-filter-cloud.component.ts "Defined in edit-process-filter-cloud.component.ts")
|
||||
@@ -47,6 +47,8 @@ Shows/edits process filter details.
|
||||
| appName | `string` | "" | The name of the application. |
|
||||
| filterProperties | `string[]` | | List of process filter properties to display |
|
||||
| id | `string` | | Id of the process instance filter. |
|
||||
| environmentId | `string` | | Environment Id of the process instance filter. |
|
||||
| environmentList | `string[]` | | List of environments. |
|
||||
| role | `string` | "" | roles to filter the apps |
|
||||
| showFilterActions | `boolean` | true | Toggles editing of process filter actions. |
|
||||
| showProcessFilterName | `boolean` | true | Toggles the appearance of the process filter name . |
|
||||
|
@@ -2,7 +2,7 @@
|
||||
Title: Edit Task Filter Cloud component
|
||||
Added: v3.0.0
|
||||
Status: Experimental
|
||||
Last reviewed: 2019-03-27
|
||||
Last reviewed: 2023-04-03
|
||||
---
|
||||
|
||||
# [Edit Task Filter Cloud component](../../../lib/process-services-cloud/src/lib/task/task-filters/components/edit-task-filters/edit-task-filter-cloud.component.ts "Defined in edit-task-filter-cloud.component.ts")
|
||||
@@ -47,6 +47,8 @@ Edits task filter details.
|
||||
| appName | `string` | "" | (required) Name of the app. |
|
||||
| filterProperties | `string[]` | \[] | List of task filter properties to display. |
|
||||
| id | `string` | | (required) ID of the task filter. |
|
||||
| environmentId | `string` | | Environment Id of the task filter. |
|
||||
| environmentList | `string[]` | | List of environments. |
|
||||
| processInstanceId | `string` | | processInstanceId of the task filter. |
|
||||
| role | `string` | "" | user role. |
|
||||
| showFilterActions | `boolean` | true | Toggles the filter actions. |
|
||||
|
@@ -2,7 +2,7 @@
|
||||
Title: Apps Process Cloud Service
|
||||
Added: v3.0.0
|
||||
Status: Experimental
|
||||
Last reviewed: 2019-01-09
|
||||
Last reviewed: 2023-04-03
|
||||
---
|
||||
|
||||
# [Apps Process Cloud Service](../../../lib/process-services-cloud/src/lib/app/services/apps-process-cloud.service.ts "Defined in apps-process-cloud.service.ts")
|
||||
@@ -24,6 +24,11 @@ Gets details of deployed apps for the current user.
|
||||
|
||||
- **loadApps**()<br/>
|
||||
|
||||
- **getApplicationLabel**(application: `ApplicationInstanceModel`, environmentList?: `Environment[]`): `string`<br/>
|
||||
Gets application label.
|
||||
- application:_ `ApplicationInstanceModel` - Required application
|
||||
- environmentList:_ `Environment[]` - (Optional) to add environment name in front of application name
|
||||
- **Returns** `string` - The application label.
|
||||
## Details
|
||||
|
||||
This service implements some features of the [Apps process service](../../core/services/apps-process.service.md)
|
||||
|
@@ -15,6 +15,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { fakeEnvironmentList } from '../../common/mock/environment.mock';
|
||||
import { ApplicationInstanceModel } from '../models/application-instance.model';
|
||||
|
||||
export const fakeApplicationInstance: ApplicationInstanceModel[] = [
|
||||
@@ -22,3 +23,9 @@ export const fakeApplicationInstance: ApplicationInstanceModel[] = [
|
||||
{ name: 'application-new-2', createdAt: '2018-09-21T12:31:39.000Z', status: 'Pending', theme: 'theme-2', icon: 'favorite_border' },
|
||||
{ name: 'application-new-3', createdAt: '2018-09-21T12:31:39.000Z', status: 'Pending' }
|
||||
];
|
||||
|
||||
export const fakeApplicationInstanceWithEnvironment: ApplicationInstanceModel[] = [
|
||||
{ name: 'application-new-1', environmentId: fakeEnvironmentList[0].id, createdAt: '2018-09-21T12:31:39.000Z', status: 'Running', theme: 'theme-2', icon: 'favorite_border' },
|
||||
{ name: 'application-new-2', environmentId: fakeEnvironmentList[1].id,createdAt: '2018-09-21T12:31:39.000Z', status: 'Pending', theme: 'theme-2', icon: 'favorite_border' },
|
||||
{ name: 'application-new-3', environmentId: fakeEnvironmentList[2].id,createdAt: '2018-09-21T12:31:39.000Z', status: 'Pending' }
|
||||
];
|
||||
|
@@ -27,6 +27,7 @@ export interface ApplicationInstanceModel {
|
||||
description?: string;
|
||||
connectors?: any;
|
||||
descriptor?: Descriptor;
|
||||
environmentId?: string;
|
||||
}
|
||||
|
||||
export interface Descriptor {
|
||||
|
@@ -20,9 +20,10 @@ import { throwError } from 'rxjs';
|
||||
import { setupTestBed, AppConfigService, AlfrescoApiService, CoreTestingModule } from '@alfresco/adf-core';
|
||||
import { HttpErrorResponse } from '@angular/common/http';
|
||||
import { AppsProcessCloudService } from './apps-process-cloud.service';
|
||||
import { fakeApplicationInstance } from '../mock/app-model.mock';
|
||||
import { fakeApplicationInstance, fakeApplicationInstanceWithEnvironment } from '../mock/app-model.mock';
|
||||
import { ProcessServiceCloudTestingModule } from '../../testing/process-service-cloud.testing.module';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { fakeEnvironmentList } from '../../common/mock/environment.mock';
|
||||
|
||||
describe('AppsProcessCloudService', () => {
|
||||
|
||||
@@ -103,4 +104,15 @@ describe('AppsProcessCloudService', () => {
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
it('should return label with application name', () => {
|
||||
const applicationLabel = service.getApplicationLabel(fakeApplicationInstance[0]);
|
||||
expect(applicationLabel).toBe('application-new-1');
|
||||
});
|
||||
|
||||
it('should return label with application name and environment name', () => {
|
||||
const applicationLabel = service.getApplicationLabel(fakeApplicationInstanceWithEnvironment[0], fakeEnvironmentList);
|
||||
expect(applicationLabel).toBe('application-new-1 (test-env-name-1)');
|
||||
});
|
||||
});
|
||||
|
@@ -21,6 +21,7 @@ import { map, catchError } from 'rxjs/operators';
|
||||
import { AlfrescoApiService, AppConfigService, LogService } from '@alfresco/adf-core';
|
||||
import { Oauth2Auth } from '@alfresco/js-api';
|
||||
import { ApplicationInstanceModel } from '../models/application-instance.model';
|
||||
import { Environment } from '../../common/interface/environment.interface';
|
||||
|
||||
@Injectable({ providedIn: 'root' })
|
||||
export class AppsProcessCloudService {
|
||||
@@ -58,6 +59,16 @@ export class AppsProcessCloudService {
|
||||
this.deployedApps = apps;
|
||||
}
|
||||
|
||||
getApplicationLabel(application: ApplicationInstanceModel, environmentList?: Environment[]): string {
|
||||
const envName = environmentList?.find((env: Environment) => env.id === application.environmentId)?.name;
|
||||
|
||||
if (application.environmentId && environmentList && envName) {
|
||||
return `${application.name} (${envName})`;
|
||||
} else {
|
||||
return application.name;
|
||||
}
|
||||
}
|
||||
|
||||
private getApplicationsByStatus(status: string, role?: string): Observable<ApplicationInstanceModel[]> {
|
||||
if (status === '') {
|
||||
return of([]);
|
||||
|
18
lib/process-services-cloud/src/lib/common/index.ts
Normal file
18
lib/process-services-cloud/src/lib/common/index.ts
Normal file
@@ -0,0 +1,18 @@
|
||||
/*!
|
||||
* @license
|
||||
* Copyright 2019 Alfresco Software, Ltd.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
export * from './public-api';
|
@@ -0,0 +1,21 @@
|
||||
/*!
|
||||
* @license
|
||||
* Copyright 2019 Alfresco Software, Ltd.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
export interface Environment {
|
||||
id: string;
|
||||
name: string;
|
||||
}
|
18
lib/process-services-cloud/src/lib/common/interface/index.ts
Normal file
18
lib/process-services-cloud/src/lib/common/interface/index.ts
Normal file
@@ -0,0 +1,18 @@
|
||||
/*!
|
||||
* @license
|
||||
* Copyright 2019 Alfresco Software, Ltd.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
export * from './public-api';
|
@@ -0,0 +1,18 @@
|
||||
/*!
|
||||
* @license
|
||||
* Copyright 2019 Alfresco Software, Ltd.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
export * from './environment.interface';
|
@@ -0,0 +1,33 @@
|
||||
/*!
|
||||
* @license
|
||||
* Copyright 2019 Alfresco Software, Ltd.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Environment } from '../interface/environment.interface';
|
||||
|
||||
export const fakeEnvironmentList: Environment[] = [
|
||||
{
|
||||
id: 'test-env-1',
|
||||
name: 'test-env-name-1'
|
||||
},
|
||||
{
|
||||
id: 'test-env-2',
|
||||
name: 'test-env-name-2'
|
||||
},
|
||||
{
|
||||
id: 'test-env-3',
|
||||
name: 'test-env-name-3'
|
||||
}
|
||||
];
|
18
lib/process-services-cloud/src/lib/common/public-api.ts
Normal file
18
lib/process-services-cloud/src/lib/common/public-api.ts
Normal file
@@ -0,0 +1,18 @@
|
||||
/*!
|
||||
* @license
|
||||
* Copyright 2019 Alfresco Software, Ltd.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
export * from './interface/index';
|
@@ -21,6 +21,7 @@ export class TaskQueryCloudRequestModel {
|
||||
appName: string;
|
||||
appVersion?: string;
|
||||
assignee?: string;
|
||||
environmentId?: string;
|
||||
claimedDate?: string;
|
||||
createdDate?: Date;
|
||||
createdFrom?: string;
|
||||
@@ -56,6 +57,7 @@ export class TaskQueryCloudRequestModel {
|
||||
this.appName = obj.appName;
|
||||
this.appVersion = obj.appVersion;
|
||||
this.assignee = obj.assignee;
|
||||
this.environmentId = obj.environmentId;
|
||||
this.claimedDate = obj.claimedDate;
|
||||
this.createdDate = obj.createdDate;
|
||||
this.createdFrom = obj.createdFrom;
|
||||
|
@@ -30,7 +30,7 @@ import { ProcessFiltersCloudModule } from '../process-filters-cloud.module';
|
||||
import { ProcessFilterCloudModel } from '../models/process-filter-cloud.model';
|
||||
import { ProcessFilterCloudService } from '../services/process-filter-cloud.service';
|
||||
import { AppsProcessCloudService } from '../../../app/services/apps-process-cloud.service';
|
||||
import { fakeApplicationInstance } from './../../../app/mock/app-model.mock';
|
||||
import { fakeApplicationInstance, fakeApplicationInstanceWithEnvironment } from './../../../app/mock/app-model.mock';
|
||||
import moment from 'moment';
|
||||
import { PROCESS_FILTERS_SERVICE_TOKEN } from '../../../services/cloud-token.service';
|
||||
import { LocalPreferenceCloudService } from '../../../services/local-preference-cloud.service';
|
||||
@@ -41,6 +41,7 @@ import { MatIconTestingModule } from '@angular/material/icon/testing';
|
||||
import { ProcessDefinitionCloud } from '../../../models/process-definition-cloud.model';
|
||||
import { mockAppVersions } from '../mock/process-filters-cloud.mock';
|
||||
import { DATE_FORMAT_CLOUD } from '../../../models/date-format-cloud.model';
|
||||
import { fakeEnvironmentList } from '../../../common/mock/environment.mock';
|
||||
|
||||
describe('EditProcessFilterCloudComponent', () => {
|
||||
let component: EditProcessFilterCloudComponent;
|
||||
@@ -1161,4 +1162,13 @@ describe('EditProcessFilterCloudComponent', () => {
|
||||
expect(component.initiatorOptions).toEqual([{ username: 'user1' }, { username: 'user2' }]);
|
||||
});
|
||||
});
|
||||
|
||||
it('should add environment name to each application selector option label', () => {
|
||||
component.environmentList = fakeEnvironmentList;
|
||||
component.environmentId = fakeEnvironmentList[0].id;
|
||||
|
||||
getRunningApplicationsSpy.and.returnValue(of(fakeApplicationInstanceWithEnvironment));
|
||||
component.getRunningApplications();
|
||||
expect(component.applicationNames[0].label).toBe('application-new-1 (test-env-name-1)');
|
||||
});
|
||||
});
|
||||
|
@@ -30,6 +30,7 @@ import { ProcessFilterDialogCloudComponent } from './process-filter-dialog-cloud
|
||||
import { ProcessCloudService } from '../../services/process-cloud.service';
|
||||
import { DateCloudFilterType, DateRangeFilter } from '../../../models/date-cloud-filter.model';
|
||||
import { IdentityUserModel } from '../../../people/models/identity-user.model';
|
||||
import { Environment } from '../../../common/interface/environment.interface';
|
||||
|
||||
export const PROCESS_FILTER_ACTION_SAVE = 'save';
|
||||
export const PROCESS_FILTER_ACTION_SAVE_AS = 'saveAs';
|
||||
@@ -76,6 +77,14 @@ export class EditProcessFilterCloudComponent implements OnInit, OnChanges, OnDes
|
||||
@Input()
|
||||
actions = DEFAULT_ACTIONS;
|
||||
|
||||
/** Environment ID of the application. */
|
||||
@Input()
|
||||
environmentId: string;
|
||||
|
||||
/** List of environments. */
|
||||
@Input()
|
||||
environmentList: Environment[] = [];
|
||||
|
||||
/** Toggles editing of process filter actions. */
|
||||
@Input()
|
||||
showFilterActions = true;
|
||||
@@ -118,6 +127,10 @@ export class EditProcessFilterCloudComponent implements OnInit, OnChanges, OnDes
|
||||
this.id = value.id;
|
||||
}
|
||||
|
||||
if (value?.environmentId) {
|
||||
this.environmentId = value.environmentId;
|
||||
}
|
||||
|
||||
this.processFilterProperties = this.createAndFilterProperties();
|
||||
this.processFilterActions = this.createAndFilterActions();
|
||||
|
||||
@@ -400,7 +413,7 @@ export class EditProcessFilterCloudComponent implements OnInit, OnChanges, OnDes
|
||||
.subscribe((applications) => {
|
||||
if (applications && applications.length > 0) {
|
||||
applications.map((application) => {
|
||||
this.applicationNames.push({ label: application.name, value: application.name });
|
||||
this.applicationNames.push({ label: this.appsProcessCloudService.getApplicationLabel(application, this.environmentList), value: application.name });
|
||||
});
|
||||
}
|
||||
});
|
||||
@@ -625,6 +638,11 @@ export class EditProcessFilterCloudComponent implements OnInit, OnChanges, OnDes
|
||||
key: 'id',
|
||||
value: 'id'
|
||||
},
|
||||
{
|
||||
label: 'EnvironmentId',
|
||||
key: 'environmentId',
|
||||
value: 'environmentId'
|
||||
},
|
||||
{
|
||||
label: 'ADF_CLOUD_EDIT_PROCESS_FILTER.LABEL.PROCESS_NAME',
|
||||
key: 'name',
|
||||
|
@@ -46,6 +46,7 @@ export class ProcessFilterCloudModel {
|
||||
startedDateType: DateCloudFilterType;
|
||||
suspendedDateType: DateCloudFilterType;
|
||||
completedDate: Date;
|
||||
environmentId?: string;
|
||||
|
||||
private dateRangeFilterService = new DateRangeFilterService();
|
||||
private _completedFrom: string;
|
||||
@@ -60,6 +61,7 @@ export class ProcessFilterCloudModel {
|
||||
this.id = obj.id || Math.random().toString(36).substring(2, 9);
|
||||
this.name = obj.name || null;
|
||||
this.key = obj.key || null;
|
||||
this.environmentId = obj.environmentId;
|
||||
this.icon = obj.icon || null;
|
||||
this.index = obj.index || null;
|
||||
this.appName = obj.appName || obj.appName === '' ? obj.appName : null;
|
||||
|
@@ -61,7 +61,12 @@ export class ProcessFilterCloudService {
|
||||
value = value || {};
|
||||
const result = {
|
||||
appName: appName || value['appName'],
|
||||
id: id || value['id']
|
||||
id: id || value['id'],
|
||||
...(
|
||||
value['environmentId'] && {
|
||||
environmentId: value['environmentId']
|
||||
}
|
||||
)
|
||||
};
|
||||
|
||||
for (const prop of filterProperties) {
|
||||
|
@@ -67,6 +67,10 @@ export class ProcessListCloudComponent extends DataTableSchema<ProcessListDataCo
|
||||
@Input()
|
||||
id: string = '';
|
||||
|
||||
/** Filter the processes to display only the ones with this environment ID. */
|
||||
@Input()
|
||||
environmentId: string = '';
|
||||
|
||||
/** Filter the processes to display only the ones with this name. */
|
||||
@Input()
|
||||
name: string = '';
|
||||
@@ -455,6 +459,7 @@ export class ProcessListCloudComponent extends DataTableSchema<ProcessListDataCo
|
||||
skipCount: this.skipCount,
|
||||
initiator: this.initiator,
|
||||
id: this.id,
|
||||
environmentId: this.environmentId,
|
||||
name: this.name,
|
||||
processDefinitionId: this.processDefinitionId,
|
||||
processDefinitionName: this.processDefinitionName,
|
||||
|
@@ -22,6 +22,7 @@ export class ProcessQueryCloudRequestModel {
|
||||
appVersion?: number | string;
|
||||
initiator?: null;
|
||||
id?: string;
|
||||
environmentId?: string;
|
||||
name?: string;
|
||||
processDefinitionId?: string;
|
||||
processDefinitionName?: string;
|
||||
@@ -50,6 +51,7 @@ export class ProcessQueryCloudRequestModel {
|
||||
this.appVersion = obj.appVersion;
|
||||
this.initiator = obj.initiator;
|
||||
this.id = obj.id;
|
||||
this.environmentId = obj.environmentId;
|
||||
this.name = obj.name;
|
||||
this.processDefinitionId = obj.processDefinitionId;
|
||||
this.processDefinitionName = obj.processDefinitionName;
|
||||
|
@@ -31,6 +31,7 @@ import { MatDialog } from '@angular/material/dialog';
|
||||
import { IdentityUserModel } from '../../../../people/models/identity-user.model';
|
||||
import { IdentityGroupModel } from '../../../../group/models/identity-group.model';
|
||||
import { MatSelectChange } from '@angular/material/select';
|
||||
import { Environment } from '../../../../common/interface/environment.interface';
|
||||
|
||||
/* eslint-disable @typescript-eslint/naming-convention */
|
||||
|
||||
@@ -67,6 +68,10 @@ export abstract class BaseEditTaskFilterCloudComponent<T> implements OnInit, OnC
|
||||
@Input()
|
||||
id: string;
|
||||
|
||||
/** List of environments. */
|
||||
@Input()
|
||||
environmentList: Environment[] = [];
|
||||
|
||||
/** processInstanceId of the task filter. */
|
||||
@Input()
|
||||
processInstanceId: string;
|
||||
@@ -99,14 +104,6 @@ export abstract class BaseEditTaskFilterCloudComponent<T> implements OnInit, OnC
|
||||
@Input()
|
||||
sortProperties: string[] = [];
|
||||
|
||||
/** Task Filter to use*/
|
||||
@Input()
|
||||
taskFilter: T;
|
||||
|
||||
/** Emitted when a task filter property changes. */
|
||||
@Output()
|
||||
filterChange = new EventEmitter<T>();
|
||||
|
||||
/** Emitted when a filter action occurs (i.e Save, Save As, Delete). */
|
||||
@Output()
|
||||
action = new EventEmitter<TaskFilterAction>();
|
||||
@@ -129,8 +126,15 @@ export abstract class BaseEditTaskFilterCloudComponent<T> implements OnInit, OnC
|
||||
label: 'ADF_CLOUD_TASK_FILTERS.STATUS.ALL'
|
||||
};
|
||||
|
||||
@Input()
|
||||
taskFilter: T;
|
||||
|
||||
changedTaskFilter: T;
|
||||
|
||||
/** Emitted when a task filter property changes. */
|
||||
@Output()
|
||||
filterChange = new EventEmitter<T>();
|
||||
|
||||
protected onDestroy$ = new Subject<boolean>();
|
||||
isLoading: boolean = false;
|
||||
|
||||
@@ -244,7 +248,7 @@ export abstract class BaseEditTaskFilterCloudComponent<T> implements OnInit, OnC
|
||||
.subscribe((applications) => {
|
||||
if (applications && applications.length > 0) {
|
||||
applications.map((application) => {
|
||||
this.applicationNames.push({ label: application.name, value: application.name });
|
||||
this.applicationNames.push({ label: this.appsProcessCloudService.getApplicationLabel(application, this.environmentList), value: application.name });
|
||||
});
|
||||
}
|
||||
});
|
||||
|
@@ -26,7 +26,7 @@ import { TASK_FILTERS_SERVICE_TOKEN } from '../../../../services/cloud-token.ser
|
||||
import { LocalPreferenceCloudService } from '../../../../services/local-preference-cloud.service';
|
||||
import { ProcessServiceCloudTestingModule } from '../../../../testing/process-service-cloud.testing.module';
|
||||
import { AppsProcessCloudService } from '../../../../app/services/apps-process-cloud.service';
|
||||
import { fakeApplicationInstance } from '../../../../app/mock/app-model.mock';
|
||||
import { fakeApplicationInstance, fakeApplicationInstanceWithEnvironment } from '../../../../app/mock/app-model.mock';
|
||||
import { TaskFiltersCloudModule } from '../../task-filters-cloud.module';
|
||||
import { ServiceTaskFilterCloudService } from '../../services/service-task-filter-cloud.service';
|
||||
import { TaskCloudService } from '../../../services/task-cloud.service';
|
||||
@@ -36,6 +36,8 @@ import { EditServiceTaskFilterCloudComponent } from './edit-service-task-filter-
|
||||
import { MatIconTestingModule } from '@angular/material/icon/testing';
|
||||
import { ProcessDefinitionCloud } from '../../../../models/process-definition-cloud.model';
|
||||
import { TaskFilterDialogCloudComponent } from '../task-filter-dialog/task-filter-dialog-cloud.component';
|
||||
import { fakeEnvironmentList } from '../../../../common/mock/environment.mock';
|
||||
import { mockApplicationTaskFilterProperties } from '../../mock/edit-task-filter-cloud.mock';
|
||||
|
||||
describe('EditServiceTaskFilterCloudComponent', () => {
|
||||
let component: EditServiceTaskFilterCloudComponent;
|
||||
@@ -750,4 +752,15 @@ describe('EditServiceTaskFilterCloudComponent', () => {
|
||||
expect(restoreDefaultFiltersSpy).not.toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
|
||||
it('should add environment name to each application selector option label', () => {
|
||||
component.appName = fakeApplicationInstance[0].name;
|
||||
component.environmentList = fakeEnvironmentList;
|
||||
|
||||
getRunningApplicationsSpy.and.returnValue(of(fakeApplicationInstanceWithEnvironment));
|
||||
spyOn(component, 'createTaskFilterProperties').and.returnValue(mockApplicationTaskFilterProperties);
|
||||
|
||||
const filteredProperties = component.createAndFilterProperties();
|
||||
expect(filteredProperties[0].options[0].label).toBe('application-new-1 (test-env-name-1)');
|
||||
});
|
||||
});
|
||||
|
@@ -108,3 +108,28 @@ export const mockCreatedDateFilter = {
|
||||
to: '_createdTo'
|
||||
}
|
||||
};
|
||||
|
||||
export const mockApplicationsSelectorOptions = [
|
||||
{
|
||||
label: 'application-new-1 (test-env-name-1)',
|
||||
value: 'application-new-1'
|
||||
},
|
||||
{
|
||||
label: 'application-new-1 (test-env-name-1)',
|
||||
value: 'application-new-1'
|
||||
},
|
||||
{
|
||||
label: 'application-new-1 (test-env-name-1)',
|
||||
value: 'application-new-1'
|
||||
}
|
||||
];
|
||||
|
||||
export const mockApplicationTaskFilterProperties = [
|
||||
{
|
||||
label: 'test-label',
|
||||
type: 'select',
|
||||
key: 'appName',
|
||||
value: mockApplicationsSelectorOptions[0].value,
|
||||
options: mockApplicationsSelectorOptions
|
||||
}
|
||||
];
|
||||
|
@@ -29,6 +29,7 @@ export class TaskFilterCloudModel {
|
||||
id: string;
|
||||
name: string;
|
||||
key: string;
|
||||
environmentId?: string;
|
||||
icon: string;
|
||||
index: number;
|
||||
appName: string;
|
||||
@@ -72,6 +73,7 @@ export class TaskFilterCloudModel {
|
||||
this.id = obj.id || Math.random().toString(36).substr(2, 9);
|
||||
this.name = obj.name || null;
|
||||
this.key = obj.key || null;
|
||||
this.environmentId = obj.environmentId || null;
|
||||
this.icon = obj.icon || null;
|
||||
this.index = obj.index || null;
|
||||
this.appName = obj.appName || obj.appName === '' ? obj.appName : null;
|
||||
@@ -191,6 +193,7 @@ export class TaskFilterCloudModel {
|
||||
export interface ServiceTaskFilterCloudModel {
|
||||
id?: string;
|
||||
name?: string;
|
||||
environmentId?: string;
|
||||
key?: string;
|
||||
icon?: string;
|
||||
index?: number;
|
||||
|
@@ -81,6 +81,7 @@ export class ServiceTaskListCloudComponent extends BaseTaskListCloudComponent {
|
||||
skipCount: this.skipCount,
|
||||
sorting: this.sorting,
|
||||
id: this.queryParams?.serviceTaskId,
|
||||
environmentId: this.queryParams?.environmentId,
|
||||
activityName: this.queryParams?.activityName,
|
||||
activityType: this.queryParams?.activityType,
|
||||
completedDate: this.queryParams?.completedDate,
|
||||
|
@@ -89,6 +89,10 @@ export class TaskListCloudComponent extends BaseTaskListCloudComponent<ProcessLi
|
||||
@Input()
|
||||
name: string = '';
|
||||
|
||||
/** Filter the tasks to display only the ones with this environment ID. */
|
||||
@Input()
|
||||
environmentId: string;
|
||||
|
||||
/** Filter the tasks. Display only tasks with parentTaskId equal to the supplied value. */
|
||||
@Input()
|
||||
parentTaskId: string = '';
|
||||
@@ -190,6 +194,7 @@ export class TaskListCloudComponent extends BaseTaskListCloudComponent<ProcessLi
|
||||
assignee: this.assignee,
|
||||
id: this.id,
|
||||
name: this.name,
|
||||
environmentId: this.environmentId,
|
||||
parentTaskId: this.parentTaskId,
|
||||
processDefinitionName: this.processDefinitionName,
|
||||
processDefinitionId: this.processDefinitionId,
|
||||
|
@@ -20,6 +20,7 @@ import { TaskListCloudSortingModel } from '../../../models/task-list-sorting.mod
|
||||
export interface ServiceTaskQueryCloudRequestModel {
|
||||
appName: string;
|
||||
appVersion?: string;
|
||||
environmentId?: string;
|
||||
id?: string;
|
||||
status?: string;
|
||||
maxItems: number;
|
||||
|
@@ -26,6 +26,7 @@ export * from './lib/services/public-api';
|
||||
export * from './lib/rich-text-editor/public-api';
|
||||
|
||||
export * from './lib/types';
|
||||
export * from './lib/common/index';
|
||||
export * from './lib/pipes/process-name-cloud.pipe';
|
||||
export * from './lib/pipes/process-services-cloud-pipe.module';
|
||||
export * from './lib/models/process-definition-cloud.model';
|
||||
|
Reference in New Issue
Block a user