mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
[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:
@@ -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"
|
||||||
|
@@ -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. |
|
||||||
|
@@ -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
|
||||||
|
@@ -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
|
||||||
|
|
||||||
|
@@ -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
|
||||||
|
@@ -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` -
|
||||||
|
@@ -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",
|
||||||
|
@@ -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 });
|
||||||
|
@@ -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',
|
||||||
|
@@ -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;
|
||||||
|
@@ -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',
|
||||||
|
@@ -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,
|
||||||
|
@@ -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;
|
||||||
|
@@ -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
|
||||||
|
@@ -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';
|
||||||
|
@@ -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',
|
||||||
|
@@ -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';
|
||||||
|
|
||||||
|
@@ -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', () => {
|
||||||
|
|
||||||
|
@@ -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({
|
||||||
|
@@ -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';
|
||||||
|
@@ -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");
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user