From 77bbecea8e39023be5793214bbb9b14d0355be70 Mon Sep 17 00:00:00 2001 From: Silviu Popa Date: Wed, 10 Jun 2020 11:45:02 +0300 Subject: [PATCH] [ACA_3292] - Add queued task as part of default task filter (#5747) * [ACA_3292] - Add queued task as default task filter * don't emit event if the filter is undefined * fix unit test Co-authored-by: Silviu Popa --- .../src/lib/i18n/en.json | 1 + .../task-filters-cloud.component.spec.ts | 14 ++++++++ .../task-filters-cloud.component.ts | 8 +++-- .../task-filter-cloud.service.spec.ts | 33 +++++++++++++------ .../services/task-filter-cloud.service.ts | 10 ++++++ 5 files changed, 54 insertions(+), 12 deletions(-) diff --git a/lib/process-services-cloud/src/lib/i18n/en.json b/lib/process-services-cloud/src/lib/i18n/en.json index 2659272b91..3b0ec58ace 100644 --- a/lib/process-services-cloud/src/lib/i18n/en.json +++ b/lib/process-services-cloud/src/lib/i18n/en.json @@ -98,6 +98,7 @@ }, "ADF_CLOUD_TASK_FILTERS": { "MY_TASKS": "My Tasks", + "QUEUED_TASKS": "Queued Tasks", "COMPLETED_TASKS": "Completed Tasks" }, "ADF_CLOUD_PROCESS_FILTERS": { diff --git a/lib/process-services-cloud/src/lib/task/task-filters/components/task-filters-cloud.component.spec.ts b/lib/process-services-cloud/src/lib/task/task-filters/components/task-filters-cloud.component.spec.ts index 2aa76fe96d..2cbf999fa1 100644 --- a/lib/process-services-cloud/src/lib/task/task-filters/components/task-filters-cloud.component.spec.ts +++ b/lib/process-services-cloud/src/lib/task/task-filters/components/task-filters-cloud.component.spec.ts @@ -272,6 +272,20 @@ describe('TaskFiltersCloudComponent', () => { expect(component.selectFilterAndEmit).toHaveBeenCalledWith(fakeGlobalFilter[1]); })); + it('should reset the filter when the param is undefined', async(() => { + spyOn(taskFilterService, 'getTaskListFilters').and.returnValue(fakeGlobalFilterObservable); + spyOn(component, 'selectFilterAndEmit'); + component.currentFilter = null; + + const filterName = undefined; + const change = new SimpleChange(null, filterName, false); + component.ngOnChanges({ 'filterParam': change }); + + fixture.detectChanges(); + expect(component.selectFilterAndEmit).toHaveBeenCalledWith(undefined); + expect(component.currentFilter).toEqual(undefined); + })); + it('should reload filters by appName on binding changes', () => { spyOn(component, 'getFilters').and.stub(); const appName = 'my-app-1'; diff --git a/lib/process-services-cloud/src/lib/task/task-filters/components/task-filters-cloud.component.ts b/lib/process-services-cloud/src/lib/task/task-filters/components/task-filters-cloud.component.ts index d0a17b324b..97970c0a6c 100644 --- a/lib/process-services-cloud/src/lib/task/task-filters/components/task-filters-cloud.component.ts +++ b/lib/process-services-cloud/src/lib/task/task-filters/components/task-filters-cloud.component.ts @@ -117,8 +117,12 @@ export class TaskFiltersCloudComponent implements OnInit, OnChanges, OnDestroy { } public selectFilterAndEmit(newParamFilter: FilterParamsModel) { - this.selectFilter(newParamFilter); - this.filterClick.emit(this.currentFilter); + if (newParamFilter) { + this.selectFilter(newParamFilter); + this.filterClick.emit(this.currentFilter); + } else { + this.currentFilter = undefined; + } } /** diff --git a/lib/process-services-cloud/src/lib/task/task-filters/services/task-filter-cloud.service.spec.ts b/lib/process-services-cloud/src/lib/task/task-filters/services/task-filter-cloud.service.spec.ts index c8fc8a1bd3..638467d51c 100644 --- a/lib/process-services-cloud/src/lib/task/task-filters/services/task-filter-cloud.service.spec.ts +++ b/lib/process-services-cloud/src/lib/task/task-filters/services/task-filter-cloud.service.spec.ts @@ -250,7 +250,7 @@ describe('Inject [LocalPreferenceCloudService] into the TaskFilterCloudService', it('should create default task filters if there are no task filter preferences', (done) => { const appName = 'fakeAppName'; service.getTaskListFilters(appName).subscribe((res) => { - expect(res.length).toEqual(2); + expect(res.length).toEqual(3); expect(res[0].name).toEqual('ADF_CLOUD_TASK_FILTERS.MY_TASKS'); expect(res[0].key).toEqual('my-tasks'); @@ -259,17 +259,24 @@ describe('Inject [LocalPreferenceCloudService] into the TaskFilterCloudService', expect(res[0].status).toEqual('ASSIGNED'); expect(res[0].assignee).toEqual(identityUserMock.username); - expect(res[1].name).toEqual('ADF_CLOUD_TASK_FILTERS.COMPLETED_TASKS'); - expect(res[1].key).toEqual('completed-tasks'); + expect(res[1].name).toEqual('ADF_CLOUD_TASK_FILTERS.QUEUED_TASKS'); + expect(res[1].key).toEqual('queued-tasks'); expect(res[1].appName).toEqual(appName); - expect(res[1].icon).toEqual('done'); - expect(res[1].status).toEqual('COMPLETED'); + expect(res[1].icon).toEqual('queue'); + expect(res[1].status).toEqual('CREATED'); + + expect(res[2].name).toEqual('ADF_CLOUD_TASK_FILTERS.COMPLETED_TASKS'); + expect(res[2].key).toEqual('completed-tasks'); + expect(res[2].appName).toEqual(appName); + expect(res[2].icon).toEqual('done'); + expect(res[2].status).toEqual('COMPLETED'); + done(); }); expect(getPreferencesSpy).toHaveBeenCalled(); const localData = JSON.parse(localStorage.getItem(`task-filters-${appName}-${identityUserMock.username}`)); - expect(localData.length).toEqual(2); + expect(localData.length).toEqual(3); expect(localData[0].name).toEqual('ADF_CLOUD_TASK_FILTERS.MY_TASKS'); expect(localData[0].key).toEqual('my-tasks'); @@ -278,10 +285,16 @@ describe('Inject [LocalPreferenceCloudService] into the TaskFilterCloudService', expect(localData[0].status).toEqual('ASSIGNED'); expect(localData[0].assignee).toEqual(identityUserMock.username); - expect(localData[1].name).toEqual('ADF_CLOUD_TASK_FILTERS.COMPLETED_TASKS'); - expect(localData[1].key).toEqual('completed-tasks'); + expect(localData[1].name).toEqual('ADF_CLOUD_TASK_FILTERS.QUEUED_TASKS'); + expect(localData[1].key).toEqual('queued-tasks'); expect(localData[1].appName).toEqual(appName); - expect(localData[1].icon).toEqual('done'); - expect(localData[1].status).toEqual('COMPLETED'); + expect(localData[1].icon).toEqual('queue'); + expect(localData[1].status).toEqual('CREATED'); + + expect(localData[2].name).toEqual('ADF_CLOUD_TASK_FILTERS.COMPLETED_TASKS'); + expect(localData[2].key).toEqual('completed-tasks'); + expect(localData[2].appName).toEqual(appName); + expect(localData[2].icon).toEqual('done'); + expect(localData[2].status).toEqual('COMPLETED'); }); }); diff --git a/lib/process-services-cloud/src/lib/task/task-filters/services/task-filter-cloud.service.ts b/lib/process-services-cloud/src/lib/task/task-filters/services/task-filter-cloud.service.ts index ebdff7814b..071212eaf5 100644 --- a/lib/process-services-cloud/src/lib/task/task-filters/services/task-filter-cloud.service.ts +++ b/lib/process-services-cloud/src/lib/task/task-filters/services/task-filter-cloud.service.ts @@ -276,6 +276,16 @@ export class TaskFilterCloudService { sort: 'createdDate', order: 'DESC' }), + new TaskFilterCloudModel({ + name: 'ADF_CLOUD_TASK_FILTERS.QUEUED_TASKS', + key: 'queued-tasks', + icon: 'queue', + appName: appName, + status: 'CREATED', + assignee: '', + sort: 'createdDate', + order: 'DESC' + }), new TaskFilterCloudModel({ name: 'ADF_CLOUD_TASK_FILTERS.COMPLETED_TASKS', key: 'completed-tasks',