[ACA-3687] Implement Process definition name filter dropdown in Process List (#5870)

* [ACA-3687] Implement Process definition name filtr

* Updated docs

* Updated mock
This commit is contained in:
Mercy Chrysolite
2020-07-30 14:00:39 +05:30
committed by GitHub
parent f6bf60eb49
commit 46f3f0f1d1
22 changed files with 100 additions and 14 deletions

View File

@@ -15,6 +15,7 @@
[appName]="editedFilter.appName" [appName]="editedFilter.appName"
[initiator]="editedFilter.initiator" [initiator]="editedFilter.initiator"
[processDefinitionId]="editedFilter.processDefinitionId" [processDefinitionId]="editedFilter.processDefinitionId"
[processDefinitionName]="editedFilter.processDefinitionName"
[processDefinitionKey]="editedFilter.processDefinitionKey" [processDefinitionKey]="editedFilter.processDefinitionKey"
[id]="editedFilter.processInstanceId" [id]="editedFilter.processInstanceId"
[status]="editedFilter.status" [status]="editedFilter.status"

View File

@@ -63,6 +63,7 @@ when the process list is empty:
| presetColumn | `string` | | Custom preset column schema in JSON format. | | presetColumn | `string` | | Custom preset column schema in JSON format. |
| processDefinitionId | `string` | "" | Filter the processes to display only the ones with this process definition ID. | | processDefinitionId | `string` | "" | Filter the processes to display only the ones with this process definition ID. |
| processDefinitionKey | `string` | "" | Filter the processes to display only the ones with this process definition key. | | processDefinitionKey | `string` | "" | Filter the processes to display only the ones with this process definition key. |
| processDefinitionName | `string` | "" | Filter the processes to display only the ones with this process definition name. |
| selectionMode | `string` | "single" | Row selection mode. Can be "none", "single" or "multiple". For multiple mode, you can use Cmd (macOS) or Ctrl (Win) modifier key to toggle selection for multiple rows. | | selectionMode | `string` | "single" | Row selection mode. Can be "none", "single" or "multiple". For multiple mode, you can use Cmd (macOS) or Ctrl (Win) modifier key to toggle selection for multiple rows. |
| showActions | `boolean` | false | Toggles the data actions column. | | showActions | `boolean` | false | Toggles the data actions column. |
| showContextMenu | `boolean` | false | Toggles custom context menu for the component. | | showContextMenu | `boolean` | false | Toggles custom context menu for the component. |

View File

@@ -51,7 +51,7 @@ Starts a process.
| cancel | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`ProcessInstanceCloud`](../../../lib/process-services-cloud/src/lib/process/start-process/models/process-instance-cloud.model.ts)`>` | Emitted when the starting process is cancelled | | cancel | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`ProcessInstanceCloud`](../../../lib/process-services-cloud/src/lib/process/start-process/models/process-instance-cloud.model.ts)`>` | Emitted when the starting process is cancelled |
| error | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`ProcessInstanceCloud`](../../../lib/process-services-cloud/src/lib/process/start-process/models/process-instance-cloud.model.ts)`>` | Emitted when an error occurs. | | error | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`ProcessInstanceCloud`](../../../lib/process-services-cloud/src/lib/process/start-process/models/process-instance-cloud.model.ts)`>` | Emitted when an error occurs. |
| formContentClicked | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`ContentLinkModel`](../../../lib/core/form/components/widgets/core/content-link.model.ts)`>` | Emitted when form content is clicked. | | formContentClicked | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`ContentLinkModel`](../../../lib/core/form/components/widgets/core/content-link.model.ts)`>` | Emitted when form content is clicked. |
| processDefinitionSelection | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`ProcessDefinitionCloud`](../../../lib/process-services-cloud/src/lib/process/start-process/models/process-definition-cloud.model.ts)`>` | Emitted when process definition selection changes. | | processDefinitionSelection | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`ProcessDefinitionCloud`](../../../lib/process-services-cloud/src/lib/models/process-definition-cloud.model.ts)`>` | Emitted when process definition selection changes. |
| success | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`ProcessInstanceCloud`](../../../lib/process-services-cloud/src/lib/process/start-process/models/process-instance-cloud.model.ts)`>` | Emitted when the process is successfully started. | | success | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`ProcessInstanceCloud`](../../../lib/process-services-cloud/src/lib/process/start-process/models/process-instance-cloud.model.ts)`>` | Emitted when the process is successfully started. |
## Details ## Details

View File

@@ -18,7 +18,7 @@ processNameCloudPipe.transform('Example - %{processDefinition} - %{datetime}', n
| Name | Type | Default value | Description | | Name | Type | Default value | Description |
| ---- | ---- | ------------- | ----------- | | ---- | ---- | ------------- | ----------- |
| processNameFormat | string | undefined | The process name format including the preferred identifiers to be used | | processNameFormat | string | undefined | The process name format including the preferred identifiers to be used |
| selectedProcessDefinition | [`ProcessDefinitionCloud`](../../../lib/process-services-cloud/src/lib/process/start-process/models/process-definition-cloud.model.ts) | undefined | (optional) The selected process definition | | selectedProcessDefinition | [`ProcessDefinitionCloud`](../../../lib/process-services-cloud/src/lib/models/process-definition-cloud.model.ts) | undefined | (optional) The selected process definition |
## Details ## Details

View File

@@ -23,6 +23,10 @@ Manages cloud process instances.
- _appName:_ `string` - - _appName:_ `string` -
- **Returns** `string` - - **Returns** `string` -
- **getProcessDefinitions**(appName: `string`): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`ProcessDefinitionCloud`](../../../lib/process-services-cloud/src/lib/models/process-definition-cloud.model.ts)`[]>`<br/>
Gets the process definitions associated with an app.
- _appName:_ `string` - Name of the target app
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`ProcessDefinitionCloud`](../../../lib/process-services-cloud/src/lib/models/process-definition-cloud.model.ts)`[]>` - Array of process definitions
- **getProcessInstanceById**(appName: `string`, processInstanceId: `string`): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`ProcessInstanceCloud`](../../../lib/process-services-cloud/src/lib/process/start-process/models/process-instance-cloud.model.ts)`>`<br/> - **getProcessInstanceById**(appName: `string`, processInstanceId: `string`): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`ProcessInstanceCloud`](../../../lib/process-services-cloud/src/lib/process/start-process/models/process-instance-cloud.model.ts)`>`<br/>
Gets details of a process instance. Gets details of a process instance.
- _appName:_ `string` - Name of the app - _appName:_ `string` - Name of the app

View File

@@ -28,10 +28,10 @@ Gets process definitions and starts processes.
- _appName:_ `string` - - _appName:_ `string` -
- **Returns** `string` - - **Returns** `string` -
- **getProcessDefinitions**(appName: `string`): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`ProcessDefinitionCloud`](../../../lib/process-services-cloud/src/lib/process/start-process/models/process-definition-cloud.model.ts)`[]>`<br/> - **getProcessDefinitions**(appName: `string`): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`ProcessDefinitionCloud`](../../../lib/process-services-cloud/src/lib/models/process-definition-cloud.model.ts)`[]>`<br/>
Gets the process definitions associated with an app. Gets the process definitions associated with an app.
- _appName:_ `string` - Name of the target app - _appName:_ `string` - Name of the target app
- **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`ProcessDefinitionCloud`](../../../lib/process-services-cloud/src/lib/process/start-process/models/process-definition-cloud.model.ts)`[]>` - Array of process definitions - **Returns** [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`ProcessDefinitionCloud`](../../../lib/process-services-cloud/src/lib/models/process-definition-cloud.model.ts)`[]>` - Array of process definitions
- **startCreatedProcess**(appName: `string`, createdProcessInstanceId: `string`, payload: [`ProcessPayloadCloud`](../../../lib/process-services-cloud/src/lib/process/start-process/models/process-payload-cloud.model.ts)): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`ProcessInstanceCloud`](../../../lib/process-services-cloud/src/lib/process/start-process/models/process-instance-cloud.model.ts)`>`<br/> - **startCreatedProcess**(appName: `string`, createdProcessInstanceId: `string`, payload: [`ProcessPayloadCloud`](../../../lib/process-services-cloud/src/lib/process/start-process/models/process-payload-cloud.model.ts)): [`Observable`](http://reactivex.io/documentation/observable.html)`<`[`ProcessInstanceCloud`](../../../lib/process-services-cloud/src/lib/process/start-process/models/process-instance-cloud.model.ts)`>`<br/>
Starts an already created process using the process instance id. Starts an already created process using the process instance id.
- _appName:_ `string` - - _appName:_ `string` -

View File

@@ -17,6 +17,7 @@
"DESCRIPTION": "Description", "DESCRIPTION": "Description",
"LAST_MODIFIED": "Last Modified", "LAST_MODIFIED": "Last Modified",
"PROCESS_NAME": "Process Name", "PROCESS_NAME": "Process Name",
"PROCESS_DEFINITION_NAME": "Process Definition Name",
"PARENT_TASK_ID": "Parent Task Id", "PARENT_TASK_ID": "Parent Task Id",
"PROCESS_DEF_ID": "Process Definition Id", "PROCESS_DEF_ID": "Process Definition Id",
"PROCESS_DEF_KEY": "Process Definition Key", "PROCESS_DEF_KEY": "Process Definition Key",
@@ -158,6 +159,7 @@
"SORT": "Sort", "SORT": "Sort",
"DIRECTION": "Direction", "DIRECTION": "Direction",
"PROCESS_DEF_ID": "ProcessDefinitionId", "PROCESS_DEF_ID": "ProcessDefinitionId",
"PROCESS_DEF_NAME": "ProcessDefinitionName",
"PROCESS_DEF_KEY": "ProcessDefinitionKey", "PROCESS_DEF_KEY": "ProcessDefinitionKey",
"LAST_MODIFIED": "LastModified", "LAST_MODIFIED": "LastModified",
"LAST_MODIFIED_DATE_FORM": "LastModifiedFrom", "LAST_MODIFIED_DATE_FORM": "LastModifiedFrom",

View File

@@ -35,6 +35,7 @@ import { AbstractControl } from '@angular/forms';
import { PROCESS_FILTERS_SERVICE_TOKEN } from '../../../services/cloud-token.service'; import { PROCESS_FILTERS_SERVICE_TOKEN } from '../../../services/cloud-token.service';
import { LocalPreferenceCloudService } from '../../../services/local-preference-cloud.service'; import { LocalPreferenceCloudService } from '../../../services/local-preference-cloud.service';
import { TranslateModule } from '@ngx-translate/core'; import { TranslateModule } from '@ngx-translate/core';
import { ProcessCloudService } from '../../services/process-cloud.service';
describe('EditProcessFilterCloudComponent', () => { describe('EditProcessFilterCloudComponent', () => {
let component: EditProcessFilterCloudComponent; let component: EditProcessFilterCloudComponent;
@@ -42,6 +43,7 @@ describe('EditProcessFilterCloudComponent', () => {
let fixture: ComponentFixture<EditProcessFilterCloudComponent>; let fixture: ComponentFixture<EditProcessFilterCloudComponent>;
let dialog: MatDialog; let dialog: MatDialog;
let appsService: AppsProcessCloudService; let appsService: AppsProcessCloudService;
let processService: ProcessCloudService;
let getRunningApplicationsSpy: jasmine.Spy; let getRunningApplicationsSpy: jasmine.Spy;
let getProcessFilterByIdSpy: jasmine.Spy; let getProcessFilterByIdSpy: jasmine.Spy;
@@ -74,6 +76,7 @@ describe('EditProcessFilterCloudComponent', () => {
component = fixture.componentInstance; component = fixture.componentInstance;
service = TestBed.inject(ProcessFilterCloudService); service = TestBed.inject(ProcessFilterCloudService);
appsService = TestBed.inject(AppsProcessCloudService); appsService = TestBed.inject(AppsProcessCloudService);
processService = TestBed.inject(ProcessCloudService);
dialog = TestBed.inject(MatDialog); dialog = TestBed.inject(MatDialog);
spyOn(dialog, 'open').and.returnValue({ spyOn(dialog, 'open').and.returnValue({
afterClosed() { afterClosed() {
@@ -414,6 +417,22 @@ describe('EditProcessFilterCloudComponent', () => {
}); });
})); }));
it('should fetch process definitions when processDefinitionName filter property is set', async(() => {
const processSpy = spyOn(processService, 'getProcessDefinitions').and.returnValue(of([{ id: 'fake-id', name: 'fake-name' }]));
fixture.detectChanges();
component.filterProperties = ['processDefinitionName'];
fixture.detectChanges();
const processFilterIdChange = new SimpleChange(null, 'mock-process-filter-id', true);
component.ngOnChanges({ 'id': processFilterIdChange });
fixture.detectChanges();
const controller = component.editProcessFilterForm.get('processDefinitionName');
fixture.detectChanges();
fixture.whenStable().then(() => {
expect(processSpy).toHaveBeenCalled();
expect(controller).toBeDefined();
});
}));
it('should display default sort properties', async(() => { it('should display default sort properties', async(() => {
const processFilterIdChange = new SimpleChange(null, 'mock-process-filter-id', true); const processFilterIdChange = new SimpleChange(null, 'mock-process-filter-id', true);
component.ngOnChanges({ 'id': processFilterIdChange }); component.ngOnChanges({ 'id': processFilterIdChange });

View File

@@ -30,6 +30,8 @@ import { TranslationService, UserPreferencesService, UserPreferenceValues } from
import { ProcessFilterCloudService } from '../services/process-filter-cloud.service'; import { ProcessFilterCloudService } from '../services/process-filter-cloud.service';
import { ProcessFilterDialogCloudComponent } from './process-filter-dialog-cloud.component'; import { ProcessFilterDialogCloudComponent } from './process-filter-dialog-cloud.component';
import { ApplicationInstanceModel } from '../../../app/models/application-instance.model'; import { ApplicationInstanceModel } from '../../../app/models/application-instance.model';
import { ProcessCloudService } from '../../services/process-cloud.service';
import { ProcessDefinitionCloud } from '../../../models/process-definition-cloud.model';
@Component({ @Component({
selector: 'adf-cloud-edit-process-filter', selector: 'adf-cloud-edit-process-filter',
@@ -42,6 +44,7 @@ export class EditProcessFilterCloudComponent implements OnInit, OnChanges, OnDes
public static ACTION_SAVE_AS = 'saveAs'; public static ACTION_SAVE_AS = 'saveAs';
public static ACTION_DELETE = 'delete'; public static ACTION_DELETE = 'delete';
public static APPLICATION_NAME: string = 'appName'; public static APPLICATION_NAME: string = 'appName';
public static PROCESS_DEFINITION_NAME: string = 'processDefinitionName';
public static APP_RUNNING_STATUS: string = 'RUNNING'; public static APP_RUNNING_STATUS: string = 'RUNNING';
public static LAST_MODIFIED: string = 'lastModified'; public static LAST_MODIFIED: string = 'lastModified';
public static SORT: string = 'sort'; public static SORT: string = 'sort';
@@ -108,6 +111,7 @@ export class EditProcessFilterCloudComponent implements OnInit, OnChanges, OnDes
EditProcessFilterCloudComponent.ACTION_DELETE EditProcessFilterCloudComponent.ACTION_DELETE
]; ];
applicationNames: any[] = []; applicationNames: any[] = [];
processDefinitionNames: any[] = [];
formHasBeenChanged = false; formHasBeenChanged = false;
editProcessFilterForm: FormGroup; editProcessFilterForm: FormGroup;
processFilterProperties: ProcessFilterProperties[] = []; processFilterProperties: ProcessFilterProperties[] = [];
@@ -124,7 +128,8 @@ export class EditProcessFilterCloudComponent implements OnInit, OnChanges, OnDes
private userPreferencesService: UserPreferencesService, private userPreferencesService: UserPreferencesService,
private translateService: TranslationService, private translateService: TranslationService,
private processFilterCloudService: ProcessFilterCloudService, private processFilterCloudService: ProcessFilterCloudService,
private appsProcessCloudService: AppsProcessCloudService) { private appsProcessCloudService: AppsProcessCloudService,
private processCloudService: ProcessCloudService) {
} }
ngOnInit() { ngOnInit() {
@@ -198,10 +203,14 @@ export class EditProcessFilterCloudComponent implements OnInit, OnChanges, OnDes
createAndFilterProperties(): ProcessFilterProperties[] { createAndFilterProperties(): ProcessFilterProperties[] {
this.checkMandatoryFilterProperties(); this.checkMandatoryFilterProperties();
if (this.checkForApplicationNameProperty()) { if (this.checkForProperty(EditProcessFilterCloudComponent.APPLICATION_NAME)) {
this.applicationNames = []; this.applicationNames = [];
this.getRunningApplications(); this.getRunningApplications();
} }
if (this.checkForProperty(EditProcessFilterCloudComponent.PROCESS_DEFINITION_NAME)) {
this.processDefinitionNames = [];
this.getProcessDefinitions();
}
const defaultProperties = this.createProcessFilterProperties(this.processFilter); const defaultProperties = this.createProcessFilterProperties(this.processFilter);
let filteredProperties = defaultProperties.filter((filterProperty: ProcessFilterProperties) => this.isValidProperty(this.filterProperties, filterProperty)); let filteredProperties = defaultProperties.filter((filterProperty: ProcessFilterProperties) => this.isValidProperty(this.filterProperties, filterProperty));
if (!this.hasSortProperty()) { if (!this.hasSortProperty()) {
@@ -219,8 +228,8 @@ export class EditProcessFilterCloudComponent implements OnInit, OnChanges, OnDes
} }
} }
checkForApplicationNameProperty(): boolean { checkForProperty(property: string): boolean {
return this.filterProperties ? this.filterProperties.indexOf(EditProcessFilterCloudComponent.APPLICATION_NAME) >= 0 : false; return this.filterProperties ? this.filterProperties.indexOf(property) >= 0 : false;
} }
private isValidProperty(filterProperties: string[], filterProperty: ProcessFilterProperties): boolean { private isValidProperty(filterProperties: string[], filterProperty: ProcessFilterProperties): boolean {
@@ -316,6 +325,18 @@ export class EditProcessFilterCloudComponent implements OnInit, OnChanges, OnDes
}); });
} }
getProcessDefinitions() {
this.processCloudService.getProcessDefinitions(this.appName)
.pipe(takeUntil(this.onDestroy$))
.subscribe((processDefinitions: ProcessDefinitionCloud[]) => {
if (processDefinitions && processDefinitions.length > 0) {
processDefinitions.map((processDefinition) => {
this.processDefinitionNames.push({ label: processDefinition.name, value: processDefinition.name });
});
}
});
}
executeFilterActions(action: ProcessFilterAction): void { executeFilterActions(action: ProcessFilterAction): void {
if (action.actionType === EditProcessFilterCloudComponent.ACTION_SAVE) { if (action.actionType === EditProcessFilterCloudComponent.ACTION_SAVE) {
this.save(action); this.save(action);
@@ -538,6 +559,13 @@ export class EditProcessFilterCloudComponent implements OnInit, OnChanges, OnDes
key: 'processName', key: 'processName',
value: currentProcessFilter.processName || '' value: currentProcessFilter.processName || ''
}), }),
new ProcessFilterProperties({
label: 'ADF_CLOUD_EDIT_PROCESS_FILTER.LABEL.PROCESS_DEF_NAME',
type: 'select',
key: 'processDefinitionName',
value: currentProcessFilter.processDefinitionName || '',
options: this.processDefinitionNames
}),
new ProcessFilterProperties({ new ProcessFilterProperties({
label: 'ADF_CLOUD_EDIT_PROCESS_FILTER.LABEL.INITIATOR', label: 'ADF_CLOUD_EDIT_PROCESS_FILTER.LABEL.INITIATOR',
type: 'text', type: 'text',

View File

@@ -30,6 +30,7 @@ export class ProcessFilterCloudModel {
sort: string; sort: string;
order: string; order: string;
processDefinitionId: string; processDefinitionId: string;
processDefinitionName: string;
processDefinitionKey: string; processDefinitionKey: string;
lastModified: Date; lastModified: Date;
lastModifiedTo: Date; lastModifiedTo: Date;
@@ -51,6 +52,7 @@ export class ProcessFilterCloudModel {
this.sort = obj.sort || null; this.sort = obj.sort || null;
this.order = obj.order || null; this.order = obj.order || null;
this.processDefinitionId = obj.processDefinitionId || null; this.processDefinitionId = obj.processDefinitionId || null;
this.processDefinitionName = obj.processDefinitionName || null;
this.processDefinitionKey = obj.processDefinitionKey || null; this.processDefinitionKey = obj.processDefinitionKey || null;
this.lastModified = obj.lastModified || null; this.lastModified = obj.lastModified || null;
this.lastModifiedTo = obj.lastModifiedTo || null; this.lastModifiedTo = obj.lastModifiedTo || null;

View File

@@ -51,6 +51,7 @@ describe('ProcessFilterCloudService', () => {
order: 'DESC', order: 'DESC',
index: 2, index: 2,
processName: 'process-name', processName: 'process-name',
processDefinitionName: 'process-def-name',
processInstanceId: 'processinstanceid', processInstanceId: 'processinstanceid',
initiator: 'mockuser', initiator: 'mockuser',
processDefinitionId: 'processDefid', processDefinitionId: 'processDefid',

View File

@@ -67,6 +67,10 @@ export class ProcessListCloudComponent extends DataTableSchema implements OnChan
@Input() @Input()
processDefinitionId: string = ''; processDefinitionId: string = '';
/** Filter the processes to display only the ones with this process definition name. */
@Input()
processDefinitionName: string = '';
/** Filter the processes to display only the ones with this process definition key. */ /** Filter the processes to display only the ones with this process definition key. */
@Input() @Input()
processDefinitionKey: string = ''; processDefinitionKey: string = '';
@@ -291,6 +295,7 @@ export class ProcessListCloudComponent extends DataTableSchema implements OnChan
id: this.id, id: this.id,
name: this.name, name: this.name,
processDefinitionId: this.processDefinitionId, processDefinitionId: this.processDefinitionId,
processDefinitionName: this.processDefinitionName,
processDefinitionKey: this.processDefinitionKey, processDefinitionKey: this.processDefinitionKey,
status: this.status, status: this.status,
businessKey: this.businessKey, businessKey: this.businessKey,

View File

@@ -24,6 +24,7 @@ export class ProcessQueryCloudRequestModel {
id?: string; id?: string;
name?: string; name?: string;
processDefinitionId?: string; processDefinitionId?: string;
processDefinitionName?: string;
processDefinitionKey?: string; processDefinitionKey?: string;
status?: string; status?: string;
startDate?: string; startDate?: string;
@@ -42,6 +43,7 @@ export class ProcessQueryCloudRequestModel {
this.id = obj.id; this.id = obj.id;
this.name = obj.name; this.name = obj.name;
this.processDefinitionId = obj.processDefinitionId; this.processDefinitionId = obj.processDefinitionId;
this.processDefinitionName = obj.processDefinitionName;
this.processDefinitionKey = obj.processDefinitionKey; this.processDefinitionKey = obj.processDefinitionKey;
this.status = obj.status; this.status = obj.status;
this.startDate = obj.startDate; this.startDate = obj.startDate;

View File

@@ -21,6 +21,7 @@ import { Observable, Subject, throwError } from 'rxjs';
import { map } from 'rxjs/operators'; import { map } from 'rxjs/operators';
import { ProcessInstanceCloud } from '../start-process/models/process-instance-cloud.model'; import { ProcessInstanceCloud } from '../start-process/models/process-instance-cloud.model';
import { BaseCloudService } from '../../services/base-cloud.service'; import { BaseCloudService } from '../../services/base-cloud.service';
import { ProcessDefinitionCloud } from '../../models/process-definition-cloud.model';
@Injectable({ @Injectable({
providedIn: 'root' providedIn: 'root'
@@ -57,6 +58,26 @@ export class ProcessCloudService extends BaseCloudService {
} }
} }
/**
* Gets the process definitions associated with an app.
* @param appName Name of the target app
* @returns Array of process definitions
*/
getProcessDefinitions(appName: string): Observable<ProcessDefinitionCloud[]> {
if (appName || appName === '') {
const url = `${this.getBasePath(appName)}/rb/v1/process-definitions`;
return this.get(url).pipe(
map((res: any) => {
return res.list.entries.map((processDefs) => new ProcessDefinitionCloud(processDefs.entry));
})
);
} else {
this.logService.error('AppName is mandatory for querying task');
return throwError('AppName not configured');
}
}
/** /**
* Cancels a process. * Cancels a process.
* @param appName Name of the app * @param appName Name of the app

View File

@@ -27,7 +27,7 @@ import { FormModel, ContentLinkModel } from '@alfresco/adf-core';
import { MatAutocompleteTrigger } from '@angular/material/autocomplete'; import { MatAutocompleteTrigger } from '@angular/material/autocomplete';
import { ProcessPayloadCloud } from '../models/process-payload-cloud.model'; import { ProcessPayloadCloud } from '../models/process-payload-cloud.model';
import { debounceTime, takeUntil, switchMap, filter, distinctUntilChanged, tap } from 'rxjs/operators'; import { debounceTime, takeUntil, switchMap, filter, distinctUntilChanged, tap } from 'rxjs/operators';
import { ProcessDefinitionCloud } from '../models/process-definition-cloud.model'; import { ProcessDefinitionCloud } from '../../../models/process-definition-cloud.model';
import { Subject, Observable } from 'rxjs'; import { Subject, Observable } from 'rxjs';
import { TaskVariableCloud } from '../../../form/models/task-variable-cloud.model'; import { TaskVariableCloud } from '../../../form/models/task-variable-cloud.model';
import { ProcessNameCloudPipe } from '../../../pipes/process-name-cloud.pipe'; import { ProcessNameCloudPipe } from '../../../pipes/process-name-cloud.pipe';

View File

@@ -17,7 +17,7 @@
import { ProcessInstanceCloud } from '../models/process-instance-cloud.model'; import { ProcessInstanceCloud } from '../models/process-instance-cloud.model';
import { ProcessPayloadCloud } from '../models/process-payload-cloud.model'; import { ProcessPayloadCloud } from '../models/process-payload-cloud.model';
import { ProcessDefinitionCloud } from '../models/process-definition-cloud.model'; import { ProcessDefinitionCloud } from '../../../models/process-definition-cloud.model';
export const fakeProcessInstance: ProcessInstanceCloud = { export const fakeProcessInstance: ProcessInstanceCloud = {
appName: 'simple-app', appName: 'simple-app',

View File

@@ -17,7 +17,6 @@
export * from './components/start-process-cloud.component'; export * from './components/start-process-cloud.component';
export * from './models/process-definition-cloud.model';
export * from './models/process-instance-cloud.model'; export * from './models/process-instance-cloud.model';
export * from './models/process-payload-cloud.model'; export * from './models/process-payload-cloud.model';

View File

@@ -20,8 +20,8 @@ import { of, throwError } from 'rxjs';
import { setupTestBed, AlfrescoApiService } from '@alfresco/adf-core'; import { setupTestBed, AlfrescoApiService } from '@alfresco/adf-core';
import { StartProcessCloudService } from './start-process-cloud.service'; import { StartProcessCloudService } from './start-process-cloud.service';
import { fakeProcessPayload } from '../mock/start-process.component.mock'; import { fakeProcessPayload } from '../mock/start-process.component.mock';
import { ProcessDefinitionCloud } from '../../../models/process-definition-cloud.model';
import { HttpErrorResponse, HttpClientModule } from '@angular/common/http'; import { HttpErrorResponse, HttpClientModule } from '@angular/common/http';
import { ProcessDefinitionCloud } from '../models/process-definition-cloud.model';
describe('StartProcessCloudService', () => { describe('StartProcessCloudService', () => {

View File

@@ -21,7 +21,7 @@ import { Observable, throwError } from 'rxjs';
import { map } from 'rxjs/operators'; import { map } from 'rxjs/operators';
import { ProcessInstanceCloud } from '../models/process-instance-cloud.model'; import { ProcessInstanceCloud } from '../models/process-instance-cloud.model';
import { ProcessPayloadCloud } from '../models/process-payload-cloud.model'; import { ProcessPayloadCloud } from '../models/process-payload-cloud.model';
import { ProcessDefinitionCloud } from '../models/process-definition-cloud.model'; import { ProcessDefinitionCloud } from '../../../models/process-definition-cloud.model';
import { BaseCloudService } from '../../../services/base-cloud.service'; import { BaseCloudService } from '../../../services/base-cloud.service';
@Injectable({ @Injectable({

View File

@@ -26,3 +26,4 @@ export * from './lib/services/public-api';
export * from './lib/types'; export * from './lib/types';
export * from './lib/pipes/process-name-cloud.pipe'; export * from './lib/pipes/process-name-cloud.pipe';
export * from './lib/pipes/process-services-cloud-pipe.module'; export * from './lib/pipes/process-services-cloud-pipe.module';
export * from './lib/models/process-definition-cloud.model';

View File

@@ -8,7 +8,7 @@ var jsyaml = require("js-yaml");
var remark = require("remark"); var remark = require("remark");
var frontMatter = require("remark-frontmatter"); var frontMatter = require("remark-frontmatter");
var mdCompact = require("mdast-util-compact"); var mdCompact = require("mdast-util-compact");
var minimatch = require("Minimatch"); var minimatch = require("minimatch");
var si = require("./sourceInfoClasses"); var si = require("./sourceInfoClasses");