mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
[ADF-3775] APS 2 Process and Task view in the ADF Demo Application (#4035)
* [ADF-3775] Created breadcrumb component for layout demo * [ADF-3775] Created filter demo component * [ADF-3775] Created apps demo component * [ADF-3775] Created tasks list cloud demo component * [ADF-3775] Created tasks process cloud demo component * [ADF-3775] Created new cloud layout component * [ADF-3775] Improved translation * [ADF-3775] Fixed translation * [ADF-3775] Improved layout * Use the EditTaskFilters TaskFilterCloud should have a stream of filter Fix integration issues * Remove useless route Enable start task cloud button * Remove useless pages and handle start task error event * Fix wrong unit test * Use the Process Cloud menu name
This commit is contained in:
committed by
Eugenio Romano
parent
4302cfbd04
commit
ced1901c89
@@ -17,13 +17,17 @@
|
||||
|
||||
import { StorageService, JwtHelperService } from '@alfresco/adf-core';
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Observable } from 'rxjs';
|
||||
import { Observable, BehaviorSubject } from 'rxjs';
|
||||
import { TaskFilterCloudModel } from '../models/filter-cloud.model';
|
||||
|
||||
@Injectable()
|
||||
export class TaskFilterCloudService {
|
||||
|
||||
private filtersSubject: BehaviorSubject<TaskFilterCloudModel[]>;
|
||||
filters$: Observable<TaskFilterCloudModel[]>;
|
||||
|
||||
constructor(private storage: StorageService, private jwtService: JwtHelperService) {
|
||||
this.filtersSubject = new BehaviorSubject([]);
|
||||
this.filters$ = this.filtersSubject.asObservable();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -31,14 +35,12 @@ export class TaskFilterCloudService {
|
||||
* @param appName Name of the target app
|
||||
* @returns Observable of default filters just created
|
||||
*/
|
||||
public createDefaultFilters(appName: string): Observable<TaskFilterCloudModel[]> {
|
||||
public createDefaultFilters(appName: string) {
|
||||
let myTasksFilter = this.getMyTasksFilterInstance(appName);
|
||||
this.addFilter(myTasksFilter);
|
||||
|
||||
let completedTasksFilter = this.getCompletedTasksFilterInstance(appName);
|
||||
this.addFilter(completedTasksFilter);
|
||||
|
||||
return this.getTaskListFilters(appName);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -50,10 +52,13 @@ export class TaskFilterCloudService {
|
||||
const username = this.getUsername();
|
||||
let key = `task-filters-${appName}-${username}`;
|
||||
const filters = JSON.parse(this.storage.getItem(key) || '[]');
|
||||
return new Observable(function(observer) {
|
||||
observer.next(filters);
|
||||
observer.complete();
|
||||
});
|
||||
|
||||
if (filters.length === 0) {
|
||||
this.createDefaultFilters(appName);
|
||||
} else {
|
||||
this.addFiltersToStream(filters);
|
||||
}
|
||||
return this.filters$;
|
||||
}
|
||||
|
||||
getTaskFilterById(appName: string, id: string): TaskFilterCloudModel {
|
||||
@@ -69,7 +74,7 @@ export class TaskFilterCloudService {
|
||||
* @param filter The new filter to add
|
||||
* @returns Details of task filter just added
|
||||
*/
|
||||
addFilter(filter: TaskFilterCloudModel): Observable<TaskFilterCloudModel> {
|
||||
addFilter(filter: TaskFilterCloudModel) {
|
||||
const username = this.getUsername();
|
||||
const key = `task-filters-${filter.appName}-${username}`;
|
||||
let filters = JSON.parse(this.storage.getItem(key) || '[]');
|
||||
@@ -78,10 +83,11 @@ export class TaskFilterCloudService {
|
||||
|
||||
this.storage.setItem(key, JSON.stringify(filters));
|
||||
|
||||
return new Observable(function(observer) {
|
||||
observer.next(filter);
|
||||
observer.complete();
|
||||
});
|
||||
this.addFiltersToStream(filters);
|
||||
}
|
||||
|
||||
private addFiltersToStream(filters: TaskFilterCloudModel []) {
|
||||
this.filtersSubject.next(filters);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -107,9 +113,14 @@ export class TaskFilterCloudService {
|
||||
const username = this.getUsername();
|
||||
const key = `task-filters-${filter.appName}-${username}`;
|
||||
if (key) {
|
||||
let filters = JSON.parse(this.storage.getItem(key) || '[]');
|
||||
let filters: TaskFilterCloudModel[] = JSON.parse(this.storage.getItem(key) || '[]');
|
||||
filters = filters.filter((item) => item.id !== filter.id);
|
||||
this.storage.setItem(key, JSON.stringify(filters));
|
||||
if (filters.length === 0) {
|
||||
this.createDefaultFilters(filter.appName);
|
||||
} else {
|
||||
this.addFiltersToStream(filters);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -67,14 +67,6 @@ describe('TaskFiltersCloudComponent', () => {
|
||||
resolve(fakeGlobalFilter);
|
||||
});
|
||||
|
||||
let fakeGlobalEmptyFilter = {
|
||||
message: 'invalid data'
|
||||
};
|
||||
|
||||
let fakeGlobalEmptyFilterPromise = new Promise(function (resolve, reject) {
|
||||
resolve(fakeGlobalEmptyFilter);
|
||||
});
|
||||
|
||||
let mockErrorFilterList = {
|
||||
error: 'wrong request'
|
||||
};
|
||||
@@ -206,21 +198,6 @@ describe('TaskFiltersCloudComponent', () => {
|
||||
|
||||
}));
|
||||
|
||||
it('should be able to fetch and select the default filters if the input filter is not valid', (done) => {
|
||||
spyOn(taskFilterService, 'getTaskListFilters').and.returnValue(from(fakeGlobalEmptyFilterPromise));
|
||||
spyOn(component, 'createFilters').and.callThrough();
|
||||
|
||||
const appName = 'my-app-1';
|
||||
let change = new SimpleChange(null, appName, true);
|
||||
component.ngOnChanges({ 'appName': change });
|
||||
|
||||
component.success.subscribe((res) => {
|
||||
expect(res).toBeDefined();
|
||||
expect(component.createFilters).not.toHaveBeenCalled();
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should select the task filter based on the input by name param', async(() => {
|
||||
spyOn(taskFilterService, 'getTaskListFilters').and.returnValue(fakeGlobalFilterObservable);
|
||||
|
||||
|
@@ -80,12 +80,8 @@ export class TaskFiltersCloudComponent implements OnChanges {
|
||||
|
||||
this.filters$.subscribe(
|
||||
(res: TaskFilterCloudModel[]) => {
|
||||
if (res.length === 0) {
|
||||
this.createFilters(appName);
|
||||
} else {
|
||||
this.resetFilter();
|
||||
this.filters = res;
|
||||
}
|
||||
this.resetFilter();
|
||||
this.filters = Object.assign([], res);
|
||||
this.selectFilterAndEmit(this.filterParam);
|
||||
this.success.emit(res);
|
||||
},
|
||||
@@ -95,23 +91,6 @@ export class TaskFiltersCloudComponent implements OnChanges {
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create default filters by appId
|
||||
*/
|
||||
createFilters(appName?: string) {
|
||||
this.filters$ = this.taskFilterCloudService.createDefaultFilters(appName);
|
||||
|
||||
this.filters$.subscribe(
|
||||
(resDefault: TaskFilterCloudModel[]) => {
|
||||
this.resetFilter();
|
||||
this.filters = resDefault;
|
||||
},
|
||||
(errDefault: any) => {
|
||||
this.error.emit(errDefault);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
public selectFilter(newFilter: TaskFilterCloudModel) {
|
||||
if (newFilter) {
|
||||
this.currentFilter = this.filters.find( (filter: TaskFilterCloudModel, index) =>
|
||||
|
Reference in New Issue
Block a user