From 9f2faee027ed69341d793978e985dff998b9b980 Mon Sep 17 00:00:00 2001 From: arditdomi <32884230+arditdomi@users.noreply.github.com> Date: Thu, 21 May 2020 15:30:56 +0100 Subject: [PATCH] [ACA-3326] Create the default filters following the new order (#5713) * [ACA-3326] Change default filters order * [ACA-3326] Make selectRunningFilter method deprecated * [ACA-3326] Add filter index as optional --- .../components/process-filters.component.ts | 1 + .../services/process-filter.service.ts | 35 +++++---- .../services/task-filter.service.spec.ts | 8 +- .../task-list/services/task-filter.service.ts | 73 +++++++++++-------- 4 files changed, 67 insertions(+), 50 deletions(-) diff --git a/lib/process-services/src/lib/process-list/components/process-filters.component.ts b/lib/process-services/src/lib/process-list/components/process-filters.component.ts index 4ef01a0fe4..19cda3b08c 100644 --- a/lib/process-services/src/lib/process-list/components/process-filters.component.ts +++ b/lib/process-services/src/lib/process-list/components/process-filters.component.ts @@ -173,6 +173,7 @@ export class ProcessFiltersComponent implements OnInit, OnChanges { /** * Select the Running filter + * @deprecated in 3.9.0, Use the filterParam Input() with a running filter instance instead */ selectRunningFilter() { this.selectProcessFilter(this.processFilterService.getRunningFilterInstance(null)); diff --git a/lib/process-services/src/lib/process-list/services/process-filter.service.ts b/lib/process-services/src/lib/process-list/services/process-filter.service.ts index 6a8b0b1b92..dc605104a1 100644 --- a/lib/process-services/src/lib/process-list/services/process-filter.service.ts +++ b/lib/process-services/src/lib/process-list/services/process-filter.service.ts @@ -88,20 +88,21 @@ export class ProcessFilterService { * @returns Default filters just created */ public createDefaultFilters(appId: number): Observable { - const runningFilter = this.getRunningFilterInstance(appId); + const runningFilter = this.getRunningFilterInstance(appId, 0); const runningObservable = this.addProcessFilter(runningFilter); - const completedFilter = this.getCompletedFilterInstance(appId); + const completedFilter = this.getCompletedFilterInstance(appId, 1); const completedObservable = this.addProcessFilter(completedFilter); - const allFilter = this.getAllFilterInstance(appId); + const allFilter = this.getAllFilterInstance(appId, 2); const allObservable = this.addProcessFilter(allFilter); return new Observable((observer) => { - forkJoin( - runningObservable, - completedObservable, - allObservable + forkJoin([ + runningObservable, + completedObservable, + allObservable + ] ).subscribe( (res) => { const filters: FilterProcessRepresentationModel[] = []; @@ -129,45 +130,51 @@ export class ProcessFilterService { /** * Creates and returns a filter that matches "running" process instances. * @param appId ID of the target app + * @param index of the filter (optional) * @returns Filter just created */ - public getRunningFilterInstance(appId: number): FilterProcessRepresentationModel { - return new FilterProcessRepresentationModel({ + public getRunningFilterInstance(appId: number, index?: number): FilterProcessRepresentationModel { + return new FilterProcessRepresentationModel({ 'name': 'Running', 'appId': appId, 'recent': true, 'icon': 'glyphicon-random', - 'filter': { 'sort': 'created-desc', 'name': '', 'state': 'running' } + 'filter': { 'sort': 'created-desc', 'name': '', 'state': 'running' }, + index }); } /** * Returns a static Completed filter instance. * @param appId ID of the target app + * @param index of the filter (optional) * @returns Details of the filter */ - private getCompletedFilterInstance(appId: number): FilterProcessRepresentationModel { + private getCompletedFilterInstance(appId: number, index?: number): FilterProcessRepresentationModel { return new FilterProcessRepresentationModel({ 'name': 'Completed', 'appId': appId, 'recent': false, 'icon': 'glyphicon-ok-sign', - 'filter': { 'sort': 'created-desc', 'name': '', 'state': 'completed' } + 'filter': { 'sort': 'created-desc', 'name': '', 'state': 'completed' }, + index }); } /** * Returns a static All filter instance. * @param appId ID of the target app + * @param index of the filter (optional) * @returns Details of the filter */ - private getAllFilterInstance(appId: number): FilterProcessRepresentationModel { + private getAllFilterInstance(appId: number, index?: number): FilterProcessRepresentationModel { return new FilterProcessRepresentationModel({ 'name': 'All', 'appId': appId, 'recent': true, 'icon': 'glyphicon-th', - 'filter': { 'sort': 'created-desc', 'name': '', 'state': 'all' } + 'filter': { 'sort': 'created-desc', 'name': '', 'state': 'all' }, + index }); } diff --git a/lib/process-services/src/lib/task-list/services/task-filter.service.spec.ts b/lib/process-services/src/lib/task-list/services/task-filter.service.spec.ts index 9fad274caa..ab593d38a6 100644 --- a/lib/process-services/src/lib/task-list/services/task-filter.service.spec.ts +++ b/lib/process-services/src/lib/task-list/services/task-filter.service.spec.ts @@ -129,9 +129,9 @@ describe('Activiti Task filter Service', () => { service.createDefaultFilters(1234).subscribe((res: FilterRepresentationModel []) => { expect(res).toBeDefined(); expect(res.length).toEqual(4); - expect(res[0].name).toEqual('Involved Tasks'); + expect(res[0].name).toEqual('My Tasks'); expect(res[0].id).toEqual(111); - expect(res[1].name).toEqual('My Tasks'); + expect(res[1].name).toEqual('Involved Tasks'); expect(res[1].id).toEqual(222); expect(res[2].name).toEqual('Queued Tasks'); expect(res[2].id).toEqual(333); @@ -144,7 +144,7 @@ describe('Activiti Task filter Service', () => { 'status': 200, contentType: 'application/json', responseText: JSON.stringify({ - appId: 1001, id: 111, name: 'Involved Tasks', icon: 'fake-icon', recent: false + appId: 1001, id: 111, name: 'My Tasks', icon: 'fake-icon', recent: false }) }); @@ -152,7 +152,7 @@ describe('Activiti Task filter Service', () => { 'status': 200, contentType: 'application/json', responseText: JSON.stringify({ - appId: 1001, id: 222, name: 'My Tasks', icon: 'fake-icon', recent: false + appId: 1001, id: 222, name: 'Involved Tasks', icon: 'fake-icon', recent: false }) }); diff --git a/lib/process-services/src/lib/task-list/services/task-filter.service.ts b/lib/process-services/src/lib/task-list/services/task-filter.service.ts index 65e75b7c72..e749176772 100644 --- a/lib/process-services/src/lib/task-list/services/task-filter.service.ts +++ b/lib/process-services/src/lib/task-list/services/task-filter.service.ts @@ -36,24 +36,25 @@ export class TaskFilterService { * @returns Array of default filters just created */ public createDefaultFilters(appId: number): Observable { - const involvedTasksFilter = this.getInvolvedTasksFilterInstance(appId); - const involvedObservable = this.addFilter(involvedTasksFilter); - - const myTasksFilter = this.getMyTasksFilterInstance(appId); + const myTasksFilter = this.getMyTasksFilterInstance(appId, 0); const myTaskObservable = this.addFilter(myTasksFilter); - const queuedTasksFilter = this.getQueuedTasksFilterInstance(appId); + const involvedTasksFilter = this.getInvolvedTasksFilterInstance(appId, 1); + const involvedObservable = this.addFilter(involvedTasksFilter); + + const queuedTasksFilter = this.getQueuedTasksFilterInstance(appId, 2); const queuedObservable = this.addFilter(queuedTasksFilter); - const completedTasksFilter = this.getCompletedTasksFilterInstance(appId); + const completedTasksFilter = this.getCompletedTasksFilterInstance(appId, 3); const completeObservable = this.addFilter(completedTasksFilter); return new Observable((observer) => { - forkJoin( - involvedObservable, - myTaskObservable, - queuedObservable, - completeObservable + forkJoin([ + myTaskObservable, + involvedObservable, + queuedObservable, + completeObservable + ] ).subscribe( (res) => { const filters: FilterRepresentationModel[] = []; @@ -155,63 +156,71 @@ export class TaskFilterService { } } - /** - * Creates and returns a filter for "Involved" task instances. - * @param appId ID of the target app - * @returns The newly created filter - */ - getInvolvedTasksFilterInstance(appId: number): FilterRepresentationModel { - return new FilterRepresentationModel({ - 'name': 'Involved Tasks', - 'appId': appId, - 'recent': false, - 'icon': 'glyphicon-align-left', - 'filter': {'sort': 'created-desc', 'name': '', 'state': 'open', 'assignment': 'involved'} - }); - } - /** * Creates and returns a filter for "My Tasks" task instances. * @param appId ID of the target app + * @param index of the filter (optional) * @returns The newly created filter */ - getMyTasksFilterInstance(appId: number): FilterRepresentationModel { + getMyTasksFilterInstance(appId: number, index?: number): FilterRepresentationModel { return new FilterRepresentationModel({ 'name': 'My Tasks', 'appId': appId, 'recent': false, 'icon': 'glyphicon-inbox', - 'filter': {'sort': 'created-desc', 'name': '', 'state': 'open', 'assignment': 'assignee'} + 'filter': {'sort': 'created-desc', 'name': '', 'state': 'open', 'assignment': 'assignee'}, + index + }); + } + + /** + * Creates and returns a filter for "Involved" task instances. + * @param appId ID of the target app + * @param index of the filter (optional) + * @returns The newly created filter + */ + getInvolvedTasksFilterInstance(appId: number, index?: number): FilterRepresentationModel { + return new FilterRepresentationModel({ + 'name': 'Involved Tasks', + 'appId': appId, + 'recent': false, + 'icon': 'glyphicon-align-left', + 'filter': {'sort': 'created-desc', 'name': '', 'state': 'open', 'assignment': 'involved'}, + index }); } /** * Creates and returns a filter for "Queued Tasks" task instances. * @param appId ID of the target app + * @param index of the filter (optional) * @returns The newly created filter */ - getQueuedTasksFilterInstance(appId: number): FilterRepresentationModel { + getQueuedTasksFilterInstance(appId: number, index?: number): FilterRepresentationModel { return new FilterRepresentationModel({ 'name': 'Queued Tasks', 'appId': appId, 'recent': false, 'icon': 'glyphicon-record', - 'filter': {'sort': 'created-desc', 'name': '', 'state': 'open', 'assignment': 'candidate'} + 'filter': {'sort': 'created-desc', 'name': '', 'state': 'open', 'assignment': 'candidate'}, + index }); } /** * Creates and returns a filter for "Completed" task instances. * @param appId ID of the target app + * @param index of the filter (optional) * @returns The newly created filter */ - getCompletedTasksFilterInstance(appId: number): FilterRepresentationModel { + getCompletedTasksFilterInstance(appId: number, index?: number): FilterRepresentationModel { return new FilterRepresentationModel({ 'name': 'Completed Tasks', 'appId': appId, 'recent': true, 'icon': 'glyphicon-ok-sign', - 'filter': {'sort': 'created-desc', 'name': '', 'state': 'completed', 'assignment': 'involved'} + 'filter': {'sort': 'created-desc', 'name': '', 'state': 'completed', 'assignment': 'involved'}, + index }); }