mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
The process filter should not be created twice (#1789)
This commit is contained in:
committed by
Mario Romano
parent
548054c05e
commit
3c25266bc9
@@ -46,12 +46,15 @@ describe('ActivitiFilters', () => {
|
|||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
logService = new LogServiceMock();
|
logService = new LogServiceMock();
|
||||||
activitiService = new ActivitiProcessService(null);
|
activitiService = new ActivitiProcessService(null, logService);
|
||||||
filterList = new ActivitiProcessFilters(null, activitiService, logService);
|
filterList = new ActivitiProcessFilters(null, activitiService, logService);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should return the filter task list', (done) => {
|
it('should return the filter task list', (done) => {
|
||||||
spyOn(activitiService, 'getProcessFilters').and.returnValue(Observable.fromPromise(fakeGlobalFilterPromise));
|
spyOn(activitiService, 'getProcessFilters').and.returnValue(Observable.fromPromise(fakeGlobalFilterPromise));
|
||||||
|
const appId = '1';
|
||||||
|
let change = new SimpleChange(null, appId);
|
||||||
|
filterList.ngOnChanges({ 'appId': change });
|
||||||
|
|
||||||
filterList.onSuccess.subscribe((res) => {
|
filterList.onSuccess.subscribe((res) => {
|
||||||
expect(res).toBeDefined();
|
expect(res).toBeDefined();
|
||||||
@@ -74,7 +77,8 @@ describe('ActivitiFilters', () => {
|
|||||||
spyOn(activitiService, 'getDeployedApplications').and.returnValue(Observable.fromPromise(fakeDeployedApplicationsPromise));
|
spyOn(activitiService, 'getDeployedApplications').and.returnValue(Observable.fromPromise(fakeDeployedApplicationsPromise));
|
||||||
spyOn(activitiService, 'getProcessFilters').and.returnValue(Observable.fromPromise(fakeGlobalFilterPromise));
|
spyOn(activitiService, 'getProcessFilters').and.returnValue(Observable.fromPromise(fakeGlobalFilterPromise));
|
||||||
|
|
||||||
filterList.appName = 'test';
|
let change = new SimpleChange(null, 'test');
|
||||||
|
filterList.ngOnChanges({ 'appName': change });
|
||||||
|
|
||||||
filterList.onSuccess.subscribe((res) => {
|
filterList.onSuccess.subscribe((res) => {
|
||||||
let deployApp: any = activitiService.getDeployedApplications;
|
let deployApp: any = activitiService.getDeployedApplications;
|
||||||
@@ -87,9 +91,12 @@ describe('ActivitiFilters', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('should emit an error with a bad response', (done) => {
|
it('should emit an error with a bad response', (done) => {
|
||||||
filterList.appId = 1;
|
|
||||||
spyOn(activitiService, 'getProcessFilters').and.returnValue(Observable.fromPromise(fakeErrorFilterPromise));
|
spyOn(activitiService, 'getProcessFilters').and.returnValue(Observable.fromPromise(fakeErrorFilterPromise));
|
||||||
|
|
||||||
|
const appId = '1';
|
||||||
|
let change = new SimpleChange(null, appId);
|
||||||
|
filterList.ngOnChanges({ 'appId': change });
|
||||||
|
|
||||||
filterList.onError.subscribe((err) => {
|
filterList.onError.subscribe((err) => {
|
||||||
expect(err).toBeDefined();
|
expect(err).toBeDefined();
|
||||||
done();
|
done();
|
||||||
@@ -99,9 +106,12 @@ describe('ActivitiFilters', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('should emit an error with a bad response', (done) => {
|
it('should emit an error with a bad response', (done) => {
|
||||||
filterList.appName = 'fake-app';
|
|
||||||
spyOn(activitiService, 'getDeployedApplications').and.returnValue(Observable.fromPromise(fakeErrorFilterPromise));
|
spyOn(activitiService, 'getDeployedApplications').and.returnValue(Observable.fromPromise(fakeErrorFilterPromise));
|
||||||
|
|
||||||
|
const appId = 'fake-app';
|
||||||
|
let change = new SimpleChange(null, appId);
|
||||||
|
filterList.ngOnChanges({ 'appName': change });
|
||||||
|
|
||||||
filterList.onError.subscribe((err) => {
|
filterList.onError.subscribe((err) => {
|
||||||
expect(err).toBeDefined();
|
expect(err).toBeDefined();
|
||||||
done();
|
done();
|
||||||
|
@@ -67,8 +67,6 @@ export class ActivitiProcessFilters implements OnInit, OnChanges {
|
|||||||
this.filter$.subscribe((filter: FilterProcessRepresentationModel) => {
|
this.filter$.subscribe((filter: FilterProcessRepresentationModel) => {
|
||||||
this.filters.push(filter);
|
this.filters.push(filter);
|
||||||
});
|
});
|
||||||
|
|
||||||
this.getFilters(this.appId, this.appName);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnChanges(changes: SimpleChanges) {
|
ngOnChanges(changes: SimpleChanges) {
|
||||||
@@ -84,19 +82,6 @@ export class ActivitiProcessFilters implements OnInit, OnChanges {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Return the task list filtered by appId or by appName
|
|
||||||
* @param appId
|
|
||||||
* @param appName
|
|
||||||
*/
|
|
||||||
getFilters(appId?: number, appName?: string) {
|
|
||||||
if (appName) {
|
|
||||||
this.getFiltersByAppName(appName);
|
|
||||||
} else {
|
|
||||||
this.getFiltersByAppId(appId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the filter list filtered by appId
|
* Return the filter list filtered by appId
|
||||||
* @param appId - optional
|
* @param appId - optional
|
||||||
@@ -104,12 +89,31 @@ export class ActivitiProcessFilters implements OnInit, OnChanges {
|
|||||||
getFiltersByAppId(appId?: number) {
|
getFiltersByAppId(appId?: number) {
|
||||||
this.activiti.getProcessFilters(appId).subscribe(
|
this.activiti.getProcessFilters(appId).subscribe(
|
||||||
(res: FilterProcessRepresentationModel[]) => {
|
(res: FilterProcessRepresentationModel[]) => {
|
||||||
this.resetFilter();
|
if (res.length === 0 && this.isFilterListEmpty()) {
|
||||||
res.forEach((filter) => {
|
this.activiti.createDefaultFilters(appId).subscribe(
|
||||||
this.filterObserver.next(filter);
|
(resDefault: FilterProcessRepresentationModel[]) => {
|
||||||
});
|
this.resetFilter();
|
||||||
this.selectFirstFilter();
|
resDefault.forEach((filter) => {
|
||||||
this.onSuccess.emit(res);
|
this.filterObserver.next(filter);
|
||||||
|
});
|
||||||
|
|
||||||
|
this.selectFirstFilter();
|
||||||
|
this.onSuccess.emit(resDefault);
|
||||||
|
},
|
||||||
|
(errDefault: any) => {
|
||||||
|
this.logService.error(errDefault);
|
||||||
|
this.onError.emit(errDefault);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
this.resetFilter();
|
||||||
|
res.forEach((filter) => {
|
||||||
|
this.filterObserver.next(filter);
|
||||||
|
});
|
||||||
|
|
||||||
|
this.selectFirstFilter();
|
||||||
|
this.onSuccess.emit(res);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
(err: any) => {
|
(err: any) => {
|
||||||
this.logService.error(err);
|
this.logService.error(err);
|
||||||
|
@@ -21,7 +21,6 @@ import { CoreModule, AlfrescoApiService } from 'ng2-alfresco-core';
|
|||||||
import { FilterRepresentationModel } from 'ng2-activiti-tasklist';
|
import { FilterRepresentationModel } from 'ng2-activiti-tasklist';
|
||||||
import { AlfrescoApi } from 'alfresco-js-api';
|
import { AlfrescoApi } from 'alfresco-js-api';
|
||||||
import {
|
import {
|
||||||
fakeEmptyFilters,
|
|
||||||
fakeFilters,
|
fakeFilters,
|
||||||
fakeError,
|
fakeError,
|
||||||
fakeApp1,
|
fakeApp1,
|
||||||
@@ -32,9 +31,11 @@ import {
|
|||||||
} from '../assets/activiti-process.service.mock';
|
} from '../assets/activiti-process.service.mock';
|
||||||
import { exampleProcess } from '../assets/activiti-process.model.mock';
|
import { exampleProcess } from '../assets/activiti-process.model.mock';
|
||||||
import { ProcessFilterRequestRepresentation } from '../models/process-instance-filter.model';
|
import { ProcessFilterRequestRepresentation } from '../models/process-instance-filter.model';
|
||||||
|
import { FilterProcessRepresentationModel } from '../models/filter-process.model';
|
||||||
import { ProcessInstanceVariable } from '../models/process-instance-variable.model';
|
import { ProcessInstanceVariable } from '../models/process-instance-variable.model';
|
||||||
import { ActivitiProcessService } from './activiti-process.service';
|
import { ActivitiProcessService } from './activiti-process.service';
|
||||||
|
|
||||||
|
declare let jasmine: any;
|
||||||
describe('ActivitiProcessService', () => {
|
describe('ActivitiProcessService', () => {
|
||||||
|
|
||||||
let service: ActivitiProcessService;
|
let service: ActivitiProcessService;
|
||||||
@@ -603,26 +604,18 @@ describe('ActivitiProcessService', () => {
|
|||||||
);
|
);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
it('should return the default filters when none are returned by the API', async(() => {
|
it('should return the default filters', (done) => {
|
||||||
getFilters = getFilters.and.returnValue(Promise.resolve(fakeEmptyFilters));
|
service.createDefaultFilters(1234).subscribe(
|
||||||
|
(res: FilterProcessRepresentationModel []) => {
|
||||||
service.getProcessFilters(null).subscribe(
|
expect(res).toBeDefined();
|
||||||
(res) => {
|
expect(res.length).toEqual(3);
|
||||||
expect(res.length).toBe(3);
|
expect(res[0].name).toEqual('Running');
|
||||||
|
expect(res[1].name).toEqual('Completed');
|
||||||
|
expect(res[2].name).toEqual('All');
|
||||||
|
done();
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}));
|
});
|
||||||
|
|
||||||
it('should create the default filters when none are returned by the API', async(() => {
|
|
||||||
getFilters = getFilters.and.returnValue(Promise.resolve(fakeEmptyFilters));
|
|
||||||
createFilter = createFilter.and.returnValue(Promise.resolve({}));
|
|
||||||
|
|
||||||
service.getProcessFilters(null).subscribe(
|
|
||||||
() => {
|
|
||||||
expect(createFilter).toHaveBeenCalledTimes(3);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}));
|
|
||||||
|
|
||||||
it('should pass on any error that is returned by the API', async(() => {
|
it('should pass on any error that is returned by the API', async(() => {
|
||||||
getFilters = getFilters.and.returnValue(Promise.reject(fakeError));
|
getFilters = getFilters.and.returnValue(Promise.reject(fakeError));
|
||||||
|
@@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import { Observable } from 'rxjs/Observable';
|
import { Observable } from 'rxjs/Observable';
|
||||||
import { AlfrescoApiService } from 'ng2-alfresco-core';
|
import { AlfrescoApiService, LogService } from 'ng2-alfresco-core';
|
||||||
import { ProcessInstance, ProcessDefinitionRepresentation } from '../models/index';
|
import { ProcessInstance, ProcessDefinitionRepresentation } from '../models/index';
|
||||||
import { ProcessFilterRequestRepresentation } from '../models/process-instance-filter.model';
|
import { ProcessFilterRequestRepresentation } from '../models/process-instance-filter.model';
|
||||||
import { ProcessInstanceVariable } from './../models/process-instance-variable.model';
|
import { ProcessInstanceVariable } from './../models/process-instance-variable.model';
|
||||||
@@ -29,7 +29,8 @@ declare var moment: any;
|
|||||||
@Injectable()
|
@Injectable()
|
||||||
export class ActivitiProcessService {
|
export class ActivitiProcessService {
|
||||||
|
|
||||||
constructor(private apiService: AlfrescoApiService) {
|
constructor(private apiService: AlfrescoApiService,
|
||||||
|
private logService: LogService) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -64,9 +65,6 @@ export class ActivitiProcessService {
|
|||||||
let filterModel = new FilterProcessRepresentationModel(filter);
|
let filterModel = new FilterProcessRepresentationModel(filter);
|
||||||
filters.push(filterModel);
|
filters.push(filterModel);
|
||||||
});
|
});
|
||||||
if (response && response.data && response.data.length === 0) {
|
|
||||||
return this.createDefaultFilters(appId);
|
|
||||||
}
|
|
||||||
return filters;
|
return filters;
|
||||||
})
|
})
|
||||||
.catch(err => this.handleError(err));
|
.catch(err => this.handleError(err));
|
||||||
@@ -77,29 +75,42 @@ export class ActivitiProcessService {
|
|||||||
* @param appId
|
* @param appId
|
||||||
* @returns {FilterRepresentationModel[]}
|
* @returns {FilterRepresentationModel[]}
|
||||||
*/
|
*/
|
||||||
private createDefaultFilters(appId: number): FilterProcessRepresentationModel[] {
|
public createDefaultFilters(appId: number): Observable<FilterProcessRepresentationModel[]> {
|
||||||
let filters: FilterProcessRepresentationModel[] = [];
|
let runnintFilter = this.getRunningFilterInstance(appId);
|
||||||
|
let runnintObservable = this.addFilter(runnintFilter);
|
||||||
|
|
||||||
let involvedTasksFilter = this.getRunningFilterInstance(appId);
|
let completedFilter = this.getCompletedFilterInstance(appId);
|
||||||
this.addFilter(involvedTasksFilter);
|
let completedObservable = this.addFilter(completedFilter);
|
||||||
filters.push(involvedTasksFilter);
|
|
||||||
|
|
||||||
let myTasksFilter = this.getCompletedFilterInstance(appId);
|
let allFilter = this.getAllFilterInstance(appId);
|
||||||
this.addFilter(myTasksFilter);
|
let allObservable = this.addFilter(allFilter);
|
||||||
filters.push(myTasksFilter);
|
|
||||||
|
|
||||||
let queuedTasksFilter = this.getAllFilterInstance(appId);
|
return Observable.create(observer => {
|
||||||
this.addFilter(queuedTasksFilter);
|
Observable.forkJoin(
|
||||||
filters.push(queuedTasksFilter);
|
runnintObservable,
|
||||||
|
completedObservable,
|
||||||
return filters;
|
allObservable
|
||||||
|
).subscribe(
|
||||||
|
(res) => {
|
||||||
|
let filters: FilterProcessRepresentationModel[] = [];
|
||||||
|
res.forEach((filter) => {
|
||||||
|
if (filter.name === runnintFilter.name) {
|
||||||
|
filters.push(runnintFilter);
|
||||||
|
} else if (filter.name === completedFilter.name) {
|
||||||
|
filters.push(completedFilter);
|
||||||
|
} else if (filter.name === allFilter.name) {
|
||||||
|
filters.push(allFilter);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
observer.next(filters);
|
||||||
|
observer.complete();
|
||||||
|
},
|
||||||
|
(err: any) => {
|
||||||
|
this.logService.error(err);
|
||||||
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Return a static Running filter instance
|
|
||||||
* @param appId
|
|
||||||
* @returns {FilterProcessRepresentationModel}
|
|
||||||
*/
|
|
||||||
private getRunningFilterInstance(appId: number): FilterProcessRepresentationModel {
|
private getRunningFilterInstance(appId: number): FilterProcessRepresentationModel {
|
||||||
return new FilterProcessRepresentationModel({
|
return new FilterProcessRepresentationModel({
|
||||||
'name': 'Running',
|
'name': 'Running',
|
||||||
@@ -147,7 +158,10 @@ export class ActivitiProcessService {
|
|||||||
*/
|
*/
|
||||||
addFilter(filter: FilterProcessRepresentationModel): Observable<FilterProcessRepresentationModel> {
|
addFilter(filter: FilterProcessRepresentationModel): Observable<FilterProcessRepresentationModel> {
|
||||||
return Observable.fromPromise(this.callApiAddFilter(filter))
|
return Observable.fromPromise(this.callApiAddFilter(filter))
|
||||||
.catch(err => this.handleError(err));
|
.map(res => res)
|
||||||
|
.map((response: FilterProcessRepresentationModel) => {
|
||||||
|
return response;
|
||||||
|
}).catch(err => this.handleError(err));
|
||||||
}
|
}
|
||||||
|
|
||||||
getProcess(id: string): Observable<ProcessInstance> {
|
getProcess(id: string): Observable<ProcessInstance> {
|
||||||
|
@@ -105,14 +105,33 @@ export class ActivitiFilters implements OnInit, OnChanges {
|
|||||||
getFiltersByAppId(appId?: string) {
|
getFiltersByAppId(appId?: string) {
|
||||||
this.activiti.getTaskListFilters(appId).subscribe(
|
this.activiti.getTaskListFilters(appId).subscribe(
|
||||||
(res: FilterRepresentationModel[]) => {
|
(res: FilterRepresentationModel[]) => {
|
||||||
this.resetFilter();
|
if (res.length === 0 && this.isFilterListEmpty()) {
|
||||||
res.forEach((filter) => {
|
this.activiti.createDefaultFilters(appId).subscribe(
|
||||||
this.filterObserver.next(filter);
|
(resDefault: FilterRepresentationModel[]) => {
|
||||||
});
|
this.resetFilter();
|
||||||
this.selectFirstFilter();
|
resDefault.forEach((filter) => {
|
||||||
this.onSuccess.emit(res);
|
this.filterObserver.next(filter);
|
||||||
|
});
|
||||||
|
|
||||||
|
this.selectFirstFilter();
|
||||||
|
this.onSuccess.emit(resDefault);
|
||||||
|
},
|
||||||
|
(errDefault: any) => {
|
||||||
|
this.logService.error(errDefault);
|
||||||
|
this.onError.emit(errDefault);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
this.resetFilter();
|
||||||
|
res.forEach((filter) => {
|
||||||
|
this.filterObserver.next(filter);
|
||||||
|
});
|
||||||
|
|
||||||
|
this.selectFirstFilter();
|
||||||
|
this.onSuccess.emit(res);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
(err) => {
|
(err: any) => {
|
||||||
this.logService.error(err);
|
this.logService.error(err);
|
||||||
this.onError.emit(err);
|
this.onError.emit(err);
|
||||||
}
|
}
|
||||||
|
@@ -26,14 +26,9 @@ import {
|
|||||||
} from '../models/filter.model';
|
} from '../models/filter.model';
|
||||||
import { Comment } from '../models/comment.model';
|
import { Comment } from '../models/comment.model';
|
||||||
|
|
||||||
declare let AlfrescoApi: any;
|
|
||||||
declare let jasmine: any;
|
declare let jasmine: any;
|
||||||
|
|
||||||
describe('ActivitiTaskListService', () => {
|
describe('ActivitiTaskListService', () => {
|
||||||
let fakeEmptyFilters = {
|
|
||||||
size: 0, total: 0, start: 0,
|
|
||||||
data: []
|
|
||||||
};
|
|
||||||
|
|
||||||
let fakeFilters = {
|
let fakeFilters = {
|
||||||
size: 2, total: 2, start: 0,
|
size: 2, total: 2, start: 0,
|
||||||
@@ -431,29 +426,50 @@ describe('ActivitiTaskListService', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should call the createDefaultFilter when the list is empty', (done) => {
|
it('should return the default filters', (done) => {
|
||||||
spyOn(service, 'createDefaultFilter');
|
service.createDefaultFilters('1234').subscribe(
|
||||||
|
(res: FilterRepresentationModel []) => {
|
||||||
service.getTaskListFilters().subscribe(
|
expect(res).toBeDefined();
|
||||||
(res) => {
|
expect(res.length).toEqual(4);
|
||||||
expect(service.createDefaultFilter).toHaveBeenCalled();
|
expect(res[0].name).toEqual('Involved Tasks');
|
||||||
|
expect(res[1].name).toEqual('My Tasks');
|
||||||
|
expect(res[2].name).toEqual('Queued Tasks');
|
||||||
|
expect(res[3].name).toEqual('Completed Tasks');
|
||||||
done();
|
done();
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
jasmine.Ajax.requests.mostRecent().respondWith({
|
jasmine.Ajax.requests.at(0).respondWith({
|
||||||
'status': 200,
|
'status': 200,
|
||||||
contentType: 'application/json',
|
contentType: 'application/json',
|
||||||
responseText: JSON.stringify(fakeEmptyFilters)
|
responseText: JSON.stringify({
|
||||||
|
id: '111', name: 'Involved Tasks', filter: { assignment: 'fake-involved' }
|
||||||
|
})
|
||||||
});
|
});
|
||||||
});
|
|
||||||
|
|
||||||
it('should return the default filters', () => {
|
jasmine.Ajax.requests.at(1).respondWith({
|
||||||
spyOn(service, 'addFilter');
|
'status': 200,
|
||||||
let filters = service.createDefaultFilter(null);
|
contentType: 'application/json',
|
||||||
expect(service.addFilter).toHaveBeenCalledTimes(4);
|
responseText: JSON.stringify({
|
||||||
expect(filters).toBeDefined();
|
id: '222', name: 'My Tasks', filter: { assignment: 'fake-assignee' }
|
||||||
expect(filters.length).toEqual(4);
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
jasmine.Ajax.requests.at(2).respondWith({
|
||||||
|
'status': 200,
|
||||||
|
contentType: 'application/json',
|
||||||
|
responseText: JSON.stringify({
|
||||||
|
id: '333', name: 'Queued Tasks', filter: { assignment: 'fake-candidate' }
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
jasmine.Ajax.requests.at(3).respondWith({
|
||||||
|
'status': 200,
|
||||||
|
contentType: 'application/json',
|
||||||
|
responseText: JSON.stringify({
|
||||||
|
id: '444', name: 'Completed Tasks', filter: { assignment: 'fake-involved' }
|
||||||
|
})
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should add a filter ', (done) => {
|
it('should add a filter ', (done) => {
|
||||||
|
@@ -61,9 +61,6 @@ export class ActivitiTaskListService {
|
|||||||
let filterModel = new FilterRepresentationModel(filter);
|
let filterModel = new FilterRepresentationModel(filter);
|
||||||
filters.push(filterModel);
|
filters.push(filterModel);
|
||||||
});
|
});
|
||||||
if (response && response.data && response.data.length === 0) {
|
|
||||||
return this.createDefaultFilter(appId);
|
|
||||||
}
|
|
||||||
return filters;
|
return filters;
|
||||||
}).catch(err => this.handleError(err));
|
}).catch(err => this.handleError(err));
|
||||||
}
|
}
|
||||||
@@ -204,26 +201,46 @@ export class ActivitiTaskListService {
|
|||||||
* @param appId
|
* @param appId
|
||||||
* @returns {FilterRepresentationModel[]}
|
* @returns {FilterRepresentationModel[]}
|
||||||
*/
|
*/
|
||||||
createDefaultFilter(appId: string): FilterRepresentationModel[] {
|
public createDefaultFilters(appId: string): Observable<FilterRepresentationModel[]> {
|
||||||
let filters: FilterRepresentationModel[] = [];
|
|
||||||
|
|
||||||
let involvedTasksFilter = this.getInvolvedTasksFilterInstance(appId);
|
let involvedTasksFilter = this.getInvolvedTasksFilterInstance(appId);
|
||||||
this.addFilter(involvedTasksFilter);
|
let involvedObservable = this.addFilter(involvedTasksFilter);
|
||||||
filters.push(involvedTasksFilter);
|
|
||||||
|
|
||||||
let myTasksFilter = this.getMyTasksFilterInstance(appId);
|
let myTasksFilter = this.getMyTasksFilterInstance(appId);
|
||||||
this.addFilter(myTasksFilter);
|
let myTaskObservable = this.addFilter(myTasksFilter);
|
||||||
filters.push(myTasksFilter);
|
|
||||||
|
|
||||||
let queuedTasksFilter = this.getQueuedTasksFilterInstance(appId);
|
let queuedTasksFilter = this.getQueuedTasksFilterInstance(appId);
|
||||||
this.addFilter(queuedTasksFilter);
|
let queuedObservable = this.addFilter(queuedTasksFilter);
|
||||||
filters.push(queuedTasksFilter);
|
|
||||||
|
|
||||||
let completedTasksFilter = this.getCompletedTasksFilterInstance(appId);
|
let completedTasksFilter = this.getCompletedTasksFilterInstance(appId);
|
||||||
this.addFilter(completedTasksFilter);
|
let completeObservable = this.addFilter(completedTasksFilter);
|
||||||
filters.push(completedTasksFilter);
|
|
||||||
|
|
||||||
return filters;
|
return Observable.create(observer => {
|
||||||
|
Observable.forkJoin(
|
||||||
|
involvedObservable,
|
||||||
|
myTaskObservable,
|
||||||
|
queuedObservable,
|
||||||
|
completeObservable
|
||||||
|
).subscribe(
|
||||||
|
(res) => {
|
||||||
|
let filters: FilterRepresentationModel[] = [];
|
||||||
|
res.forEach((filter) => {
|
||||||
|
if (filter.name === involvedTasksFilter.name) {
|
||||||
|
filters.push(involvedTasksFilter);
|
||||||
|
} else if (filter.name === myTasksFilter.name) {
|
||||||
|
filters.push(myTasksFilter);
|
||||||
|
} else if (filter.name === queuedTasksFilter.name) {
|
||||||
|
filters.push(queuedTasksFilter);
|
||||||
|
} else if (filter.name === completedTasksFilter.name) {
|
||||||
|
filters.push(completedTasksFilter);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
observer.next(filters);
|
||||||
|
observer.complete();
|
||||||
|
},
|
||||||
|
(err: any) => {
|
||||||
|
this.logService.error(err);
|
||||||
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user