[ADF-2884] Task List - Custom apps display all tasks (#3329)

* [ADF-2884] Handled filterParam input change
Changed component selector

* [ADF-2884] Modified/Added tests

* [ADF-2884] Deprecated old selectors

* [ADF-2884] Added deprecated version

* [ADF-2884] Improved filter finding condition
This commit is contained in:
Deepak Paul
2018-05-18 20:46:48 +05:30
committed by Eugenio Romano
parent 07440731fa
commit bdf0a455dc
6 changed files with 59 additions and 23 deletions

View File

@@ -258,7 +258,7 @@ describe('TaskFiltersComponent', () => {
it('should emit an event when a filter is selected', (done) => {
let currentFilter = fakeGlobalFilter[0];
component.filters = fakeGlobalFilter;
component.filterClick.subscribe((filter: FilterRepresentationModel) => {
expect(filter).toBeDefined();
expect(filter).toEqual(currentFilter);
@@ -289,6 +289,32 @@ describe('TaskFiltersComponent', () => {
expect(component.getFiltersByAppId).toHaveBeenCalledWith(appId);
});
it('should change current filter when filterParam (id) changes', (done) => {
component.filters = fakeGlobalFilter;
component.currentFilter = null;
component.filterClick.subscribe((filter: FilterRepresentationModel) => {
expect(filter).toEqual(fakeGlobalFilter[0]);
expect(component.currentFilter).toEqual(filter);
done();
});
const change = new SimpleChange(null, {id : fakeGlobalFilter[0].id}, true);
component.ngOnChanges({ 'filterParam': change });
});
it('should change current filter when filterParam (name) changes', (done) => {
component.filters = fakeGlobalFilter;
component.currentFilter = null;
component.filterClick.subscribe((filter: FilterRepresentationModel) => {
expect(filter).toEqual(fakeGlobalFilter[0]);
expect(component.currentFilter).toEqual(filter);
done();
});
const change = new SimpleChange(null, {name : fakeGlobalFilter[0].name}, true);
component.ngOnChanges({ 'filterParam': change });
});
it('should reload filters by app name on binding changes', () => {
spyOn(component, 'getFiltersByAppName').and.stub();
const appName = 'fake-app-name';
@@ -301,17 +327,18 @@ describe('TaskFiltersComponent', () => {
it('should return the current filter after one is selected', () => {
let filter = fakeGlobalFilter[1];
component.filters = fakeGlobalFilter;
expect(component.currentFilter).toBeUndefined();
component.selectFilter(filter);
expect(component.getCurrentFilter()).toBe(filter);
});
it('should load Default list when no appid or taskid are provided', () => {
it('should load default list when appid is null', () => {
spyOn(component, 'getFiltersByAppId').and.stub();
let change = new SimpleChange(null, null, true);
component.ngOnChanges({ 'appName': change });
component.ngOnChanges({ 'appId': change });
expect(component.getFiltersByAppId).toHaveBeenCalled();
});

View File

@@ -22,8 +22,11 @@ import { FilterParamsModel, FilterRepresentationModel } from '../models/filter.m
import { TaskFilterService } from './../services/task-filter.service';
import { TaskListService } from './../services/tasklist.service';
/**
* @deprecated: in 2.4.0 'adf-filters' and 'taskListService-filters' selectors were deprecated, use adf-task-filters instead.
*/
@Component({
selector: 'adf-filters, taskListService-filters',
selector: 'adf-task-filters, adf-filters, taskListService-filters',
templateUrl: './task-filters.component.html',
styleUrls: ['task-filters.component.scss']
})
@@ -73,18 +76,18 @@ export class TaskFiltersComponent implements OnInit, OnChanges {
ngOnInit() { }
ngOnChanges(changes: SimpleChanges) {
let appId = changes['appId'];
if (appId && (appId.currentValue || appId.currentValue === null)) {
this.getFiltersByAppId(appId.currentValue);
return;
}
let appName = changes['appName'];
if (appName && appName !== null && appName.currentValue) {
const appName = changes['appName'];
const appId = changes['appId'];
if (appName && appName.currentValue) {
this.getFiltersByAppName(appName.currentValue);
return;
} else if (appId) {
this.getFiltersByAppId(appId.currentValue);
}
this.getFiltersByAppId();
const filterParam = changes['filterParam'];
if (filterParam && filterParam.currentValue) {
this.selectFilter(filterParam.currentValue);
}
}
/**
@@ -154,9 +157,15 @@ export class TaskFiltersComponent implements OnInit, OnChanges {
* Pass the selected filter as next
* @param filter
*/
public selectFilter(filter: FilterRepresentationModel) {
this.currentFilter = filter;
this.filterClick.emit(filter);
public selectFilter(newFilter: FilterRepresentationModel) {
if (newFilter) {
this.currentFilter = this.filters.find(filter =>
newFilter.id === filter.id ||
(newFilter.name &&
(newFilter.name.toLocaleLowerCase() === filter.name.toLocaleLowerCase())
));
this.filterClick.emit(this.currentFilter);
}
}
/**