Skip to content

Commit

Permalink
SHIBUI-1364 Implemented filter comparison
Browse files Browse the repository at this point in the history
  • Loading branch information
rmathis committed Sep 23, 2019
1 parent 6427bca commit 7f8f647
Show file tree
Hide file tree
Showing 9 changed files with 33 additions and 36 deletions.
1 change: 1 addition & 0 deletions backend/src/main/resources/i18n/messages.properties
Original file line number Diff line number Diff line change
Expand Up @@ -280,6 +280,7 @@ label.filter-enable=Enable this Filter?
label.search-criteria=Search Criteria
label.metadata-filter=Metadata Filter
label.metadata-filter-type=Metadata Filter Type
label.filter-versions=Filter Versions

label.http-connection-attributes=HTTP Connection Attributes
label.http-security-attributes=HTTP Security Attributes
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<ng-container *ngIf="filters.dates.length > 0">
<ng-container *ngIf="filters && filters.dates.length > 0">
<div class="d-flex border-bottom border-light border-2 py-2">
<span [ngStyle]="{'width.%': width}" *ngIf="!comparing">Order</span>
<span [ngStyle]="{'width.%': width}" *ngIf="comparing">Option</span>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,37 +7,34 @@ import { FilterVersionListComponent } from './filter-version-list.component';
import { FilterComparison } from '../model/compare';
import { FilterConfiguration } from '../model/metadata-configuration';

export const TestData = {
dates: ['abc', '123'],
export const TestData: FilterConfiguration = {
dates: ['2019-09-23T20:54:31.081Z', '2019-10-23T20:54:31.081Z'],
filters: [
{
resourceId: 'foo',
name: 'Test 1',
type: 'EntityAttributesFilter',
comparable: false
},
{
resourceId: 'bar',
name: 'Test 2',
type: 'EntityAttributesFilter',
comparable: false
}
[
{
resourceId: 'foo',
name: 'Test 1',
type: 'EntityAttributesFilter',
comparable: false
},
{
resourceId: 'bar',
name: 'Test 2',
type: 'EntityAttributesFilter',
comparable: false
}
]
]
};

@Component({
template: `
<filter-version-list
[filters]="filters"
(compare)="compare($event)">
</filter-version-list>
`
template: `<filter-version-list [filters]="filters" (compare)="compare($event)"></filter-version-list>`
})
class TestHostComponent {
@ViewChild(FilterVersionListComponent)
public componentUnderTest: FilterVersionListComponent;

filters: FilterConfiguration = TestData;
filters = TestData;

compare(versions: FilterComparison): void { }
}
Expand Down Expand Up @@ -70,16 +67,14 @@ describe('Filter Version List Component', () => {
expect(list).toBeDefined();
});

/*
describe('compareSelected', () => {
it('should emit an event with the selected filter data', () => {
spyOn(instance, 'compare');
list.selected = 'foo';
fixture.detectChanges();
spyOn(instance, 'compare');
list.compareSelected();
fixture.detectChanges();
expect(instance.compare).toHaveBeenCalled();
});
});
*/
});
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Component, Input, Output, EventEmitter } from '@angular/core';
import { FilterConfiguration, MetadataConfiguration } from '../model/metadata-configuration';
import { CONFIG_DATE_FORMAT } from '../configuration.values';
import { Observable, Subject } from 'rxjs';
import { Observable } from 'rxjs';
import { FilterComparison } from '../model/compare';

@Component({
Expand All @@ -10,8 +10,6 @@ import { FilterComparison } from '../model/compare';
})
export class FilterVersionListComponent {

private selectFiltersSubject: Subject<string> = new Subject();

@Input() filters: FilterConfiguration;
@Output() compare: EventEmitter<FilterComparison> = new EventEmitter();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { Component, ViewChild, Input } from '@angular/core';
import { TestBed, async, ComponentFixture } from '@angular/core/testing';
import { RouterTestingModule } from '@angular/router/testing';

import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';
import { NgbDropdownModule, NgbPopoverModule } from '@ng-bootstrap/ng-bootstrap';
import { Property } from '../../../domain/model/property';
import { MockI18nModule } from '../../../../../testing/i18n.stub';
import { PrimitivePropertyComponent } from './primitive-property.component';
Expand Down Expand Up @@ -39,6 +39,7 @@ describe('Primitive Property Component', () => {
TestBed.configureTestingModule({
imports: [
NgbDropdownModule,
NgbPopoverModule,
MockI18nModule,
RouterTestingModule
],
Expand Down
3 changes: 2 additions & 1 deletion ui/src/app/metadata/configuration/model/compare.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import { Metadata } from '../../domain/domain.type';
import { FilterVersion } from './version';

export interface FilterComparison {
modelId: string;
modelType: string;
models: Metadata[];
models: FilterVersion[];
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@ export interface MetadataConfiguration {

export interface FilterConfiguration {
dates: string[];
filters: FilterVersion[];
filters: FilterVersion[][];
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {
CompareFilterVersions
} from '../action/filter.action';
import { NameIDFilterConfiguration } from '../../filter/model/nameid-configuration.filter';
import { Metadata } from '../../domain/domain.type';
import { FilterVersion } from '../model/version';

describe('Filter Comparison Reducer', () => {
const initialState: fromFilterCompare.State = { ...fromFilterCompare.initialState };
Expand Down Expand Up @@ -43,7 +43,7 @@ describe('Filter Comparison Reducer', () => {
const request = {
modelId: 'foo',
modelType: 'EntityAttributesFilter',
models: [{}, {}] as Metadata[]
models: [{}, {}] as FilterVersion[]
};
const action = new CompareFilterVersions(request);
const result = reducer(initialState, action);
Expand All @@ -64,7 +64,7 @@ describe('Filter Comparison Reducer', () => {
describe('selector functions', () => {
describe('getModel', () => {
it('should retrieve the model from state', () => {
const models = [{}, {}] as Metadata[];
const models = [{}, {}] as FilterVersion[];
expect(fromFilterCompare.getModelId({ ...initialState, modelId: 'foo' })).toBe('foo');
expect(fromFilterCompare.getModelType({ ...initialState, modelType: 'foo' })).toBe('foo');
expect(fromFilterCompare.getModels({ ...initialState, models })).toBe(models);
Expand Down
5 changes: 3 additions & 2 deletions ui/src/app/metadata/configuration/reducer/filter.reducer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,14 @@ import { FilterCompareActionTypes, FilterCompareActionsUnion } from '../action/f
import { Metadata } from '../../domain/domain.type';
import { FormDefinition } from '../../../wizard/model';
import { Schema } from '../model/schema';
import { FilterVersion } from '../model/version';

export interface State {
models: Metadata[];
models: FilterVersion[];
modelType: string;
modelId: string;
schema: Schema;
definition: FormDefinition<Metadata>;
definition: FormDefinition<FilterVersion>;
loading: boolean;
}

Expand Down

0 comments on commit 7f8f647

Please sign in to comment.