From cbd16ec332a125bf1ef60f33bcabc14f7691ad49 Mon Sep 17 00:00:00 2001 From: FORESTIER Fabien <fabien.forestier@soprasteria.com> Date: Tue, 29 May 2018 16:52:44 +0200 Subject: [PATCH] Refactoring metadata-list metadata-detail to dataset-list, dataset-detail and metadataService to DatasetService --- webapp/src/app/app.routing.spec.ts | 18 ++++---- .../header/header.component.spec.ts | 4 +- .../components/main/main.component.spec.ts | 16 +++---- .../dataset-detail.component.html} | 0 .../dataset-detail.component.scss} | 0 .../dataset-detail.component.spec.ts} | 28 ++++++------ .../dataset-detail.component.ts} | 14 +++--- .../dataset-list.component.html} | 0 .../dataset-list.component.scss} | 0 .../dataset-list.component.spec.ts} | 24 +++++----- .../dataset-list.component.ts} | 44 ++++++++----------- .../filter-detail.component.spec.ts | 4 +- .../filter-detail/filter-detail.component.ts | 10 ++--- .../filter-list/filter-list.component.spec.ts | 4 +- .../filter-list/filter-list.component.ts | 14 +++--- webapp/src/app/geosource/components/index.ts | 12 ++--- .../research/research.component.spec.ts | 6 +-- .../components/research/research.component.ts | 10 ++--- .../search-bar/search-bar.component.spec.ts | 6 +-- .../search-bar/search-bar.component.ts | 16 +++---- .../components/sort/sort.component.spec.ts | 4 +- .../components/sort/sort.component.ts | 10 ++--- .../app/geosource/geosource-routing.module.ts | 15 ++++--- ...ervice.spec.ts => dataset.service.spec.ts} | 4 +- ...metadata.service.ts => dataset.service.ts} | 14 +++--- webapp/src/app/geosource/services/index.ts | 6 +-- webapp/src/app/shared/models/index.ts | 1 + .../shared/models/paginator-options.model.ts | 6 +++ 28 files changed, 147 insertions(+), 143 deletions(-) rename webapp/src/app/geosource/components/{metadata-detail/metadata-detail.component.html => dataset-detail/dataset-detail.component.html} (100%) rename webapp/src/app/geosource/components/{metadata-detail/metadata-detail.component.scss => dataset-detail/dataset-detail.component.scss} (100%) rename webapp/src/app/geosource/components/{metadata-detail/metadata-detail.component.spec.ts => dataset-detail/dataset-detail.component.spec.ts} (71%) rename webapp/src/app/geosource/components/{metadata-detail/metadata-detail.component.ts => dataset-detail/dataset-detail.component.ts} (55%) rename webapp/src/app/geosource/components/{metadata-list/metadata-list.component.html => dataset-list/dataset-list.component.html} (100%) rename webapp/src/app/geosource/components/{metadata-list/metadata-list.component.scss => dataset-list/dataset-list.component.scss} (100%) rename webapp/src/app/geosource/components/{metadata-list/metadata-list.component.spec.ts => dataset-list/dataset-list.component.spec.ts} (88%) rename webapp/src/app/geosource/components/{metadata-list/metadata-list.component.ts => dataset-list/dataset-list.component.ts} (60%) rename webapp/src/app/geosource/services/{metadata.service.spec.ts => dataset.service.spec.ts} (68%) rename webapp/src/app/geosource/services/{metadata.service.ts => dataset.service.ts} (95%) create mode 100644 webapp/src/app/shared/models/index.ts create mode 100644 webapp/src/app/shared/models/paginator-options.model.ts diff --git a/webapp/src/app/app.routing.spec.ts b/webapp/src/app/app.routing.spec.ts index 8debd10f..fce834c7 100644 --- a/webapp/src/app/app.routing.spec.ts +++ b/webapp/src/app/app.routing.spec.ts @@ -17,7 +17,7 @@ import { EditorialisationComponents } from './editorialisation/components'; import { SharedModule } from './shared/shared.module'; import { EditorialisationService, EditorialisationServices } from './editorialisation/services'; import { HttpClientModule } from '@angular/common/http'; -import { MetadataService, GeosourceServices } from './geosource/services'; +import { DatasetService, GeosourceServices } from './geosource/services'; import { EditorialisationResolvers, PostDetailResolver, PostsListResolver, PostVideoResolver } from './editorialisation/resolvers'; import { EditorialisationServiceMock } from './editorialisation/services/editorialisation.service.mock'; import { PageResolver } from './editorialisation/resolvers/page.resolver'; @@ -78,23 +78,23 @@ describe('App routing', () => { // ********* From geosource module ********* // - it('navigate to "/recherche" redirects you to /recherche/metadata', done => { + it('navigate to "/recherche" redirects you to /recherche/datasets', done => { router.navigateByUrl('/recherche').then(() => { - expect(router.routerState.snapshot.url).toBe('/recherche/metadata'); + expect(router.routerState.snapshot.url).toBe('/recherche/datasets'); done(); }); }); - it('navigate to "/recherche/metadata" takes you to /metadata', done => { - router.navigateByUrl('/recherche/metadata').then(() => { - expect(router.routerState.snapshot.url).toBe('/recherche/metadata'); + it('navigate to "/recherche/datasets" takes you to /datasets', done => { + router.navigateByUrl('/recherche/datasets').then(() => { + expect(router.routerState.snapshot.url).toBe('/recherche/datasets'); done(); }); }); - it('navigate to "/recherche/metadata/abcdef" takes you to /recherche/metadata/abcdef', done => { - router.navigateByUrl('/recherche/metadata/abcdef').then(() => { - expect(router.routerState.snapshot.url).toBe('/recherche/metadata/abcdef'); + it('navigate to "/recherche/datasets/abcdef" takes you to /recherche/datasets/abcdef', done => { + router.navigateByUrl('/recherche/datasets/abcdef').then(() => { + expect(router.routerState.snapshot.url).toBe('/recherche/datasets/abcdef'); done(); }); }); diff --git a/webapp/src/app/core/components/header/header.component.spec.ts b/webapp/src/app/core/components/header/header.component.spec.ts index eebdc9fc..b4e3f4d2 100644 --- a/webapp/src/app/core/components/header/header.component.spec.ts +++ b/webapp/src/app/core/components/header/header.component.spec.ts @@ -92,10 +92,10 @@ describe('HeaderComponent', () => { expect(location.path()).toBe('/accueil'); })); - it('should redirect to recherche/metadata route when clicking the \'Les Données\' link', fakeAsync(() => { + it('should redirect to recherche/datasets route when clicking the \'Les Données\' link', fakeAsync(() => { debugElement.query(By.css('.research-link')).nativeElement.click(); tick(); - expect(location.path()).toBe('/recherche/metadata'); + expect(location.path()).toBe('/recherche/datasets'); })); it('should redirect to /demarche when clicking the Démarche link', fakeAsync(() => { diff --git a/webapp/src/app/core/components/main/main.component.spec.ts b/webapp/src/app/core/components/main/main.component.spec.ts index d9c7b9e1..9b9f9bf7 100644 --- a/webapp/src/app/core/components/main/main.component.spec.ts +++ b/webapp/src/app/core/components/main/main.component.spec.ts @@ -9,9 +9,9 @@ import { Router } from '@angular/router'; import { Component } from '@angular/core'; @Component({ - template: `metadata` + template: `app-dataset-list` }) -export class MetadataListComponent { +export class DatasetListComponent { } @@ -24,7 +24,7 @@ describe('MainComponent', () => { TestBed.configureTestingModule({ declarations: [ MainComponent, - MetadataListComponent, + DatasetListComponent, MockComponent({ selector: 'app-header' }), MockComponent({ selector: 'app-footer' }), ], @@ -32,11 +32,11 @@ describe('MainComponent', () => { RouterTestingModule.withRoutes([ { path: '', - redirectTo: 'metadata', + redirectTo: 'datasets', pathMatch: 'full' }, - { path: 'metadata', - component: MetadataListComponent + { path: 'datasets', + component: DatasetListComponent }, ]), ] @@ -54,11 +54,11 @@ describe('MainComponent', () => { expect(component).toBeTruthy(); }); - it('navigate to "" redirects you to /metadata', fakeAsync(() => { + it('navigate to "" redirects you to /datasets', fakeAsync(() => { const router: Router = TestBed.get(Router); location = TestBed.get(Location); router.navigate(['']); tick(50); - expect(location.path()).toBe('/metadata'); + expect(location.path()).toBe('/datasets'); })); }); diff --git a/webapp/src/app/geosource/components/metadata-detail/metadata-detail.component.html b/webapp/src/app/geosource/components/dataset-detail/dataset-detail.component.html similarity index 100% rename from webapp/src/app/geosource/components/metadata-detail/metadata-detail.component.html rename to webapp/src/app/geosource/components/dataset-detail/dataset-detail.component.html diff --git a/webapp/src/app/geosource/components/metadata-detail/metadata-detail.component.scss b/webapp/src/app/geosource/components/dataset-detail/dataset-detail.component.scss similarity index 100% rename from webapp/src/app/geosource/components/metadata-detail/metadata-detail.component.scss rename to webapp/src/app/geosource/components/dataset-detail/dataset-detail.component.scss diff --git a/webapp/src/app/geosource/components/metadata-detail/metadata-detail.component.spec.ts b/webapp/src/app/geosource/components/dataset-detail/dataset-detail.component.spec.ts similarity index 71% rename from webapp/src/app/geosource/components/metadata-detail/metadata-detail.component.spec.ts rename to webapp/src/app/geosource/components/dataset-detail/dataset-detail.component.spec.ts index 719c5a09..1a16ca4c 100644 --- a/webapp/src/app/geosource/components/metadata-detail/metadata-detail.component.spec.ts +++ b/webapp/src/app/geosource/components/dataset-detail/dataset-detail.component.spec.ts @@ -2,13 +2,13 @@ import { async, ComponentFixture, TestBed, fakeAsync } from '@angular/core/testi import { DebugElement, Directive, Input, NO_ERRORS_SCHEMA } from '@angular/core'; import { ActivatedRoute, convertToParamMap, ParamMap } from '@angular/router'; import { Observable } from 'rxjs/Observable'; -import { MetadataDetailComponent } from './metadata-detail.component'; -import { MetadataService} from '../../services/metadata.service'; +import { DatasetDetailComponent } from './dataset-detail.component'; +import { DatasetService} from '../../services/dataset.service'; import { Metadata } from '../../models'; import { RouterTestingModule } from '@angular/router/testing'; import 'rxjs/add/observable/of'; -describe('MetadataDetailComponent', () => { +describe('DatasetDetailComponent', () => { const metadata = { title: 'Metadata Title', @@ -21,9 +21,9 @@ describe('MetadataDetailComponent', () => { const metadataId = 1; - let component: MetadataDetailComponent; + let component: DatasetDetailComponent; let activatedRouteMock: ActivatedRoute; - let metadataServiceMock: MetadataService; + let datasetServiceMock: DatasetService; beforeEach(() => { activatedRouteMock = { @@ -31,13 +31,13 @@ describe('MetadataDetailComponent', () => { return null; }, } as ActivatedRoute; - metadataServiceMock = jasmine.createSpyObj('metadataService', { + datasetServiceMock = jasmine.createSpyObj('datasetService', { getMetadataById: Observable.of(metadata), }); - component = new MetadataDetailComponent(activatedRouteMock, metadataServiceMock); + component = new DatasetDetailComponent(activatedRouteMock, datasetServiceMock); }); - it('should get metadata ID in path and get metadata details from service', () => { + it('should get dataset ID in path and get metadata details from service', () => { // Given const paramMapSpy = spyOnProperty(activatedRouteMock, 'paramMap', 'get').and .returnValue(Observable.of(convertToParamMap({ id: metadataId }))); @@ -47,7 +47,7 @@ describe('MetadataDetailComponent', () => { // Then expect(paramMapSpy).toHaveBeenCalled(); - expect(metadataServiceMock.getMetadataById).toHaveBeenCalledWith(metadataId); + expect(datasetServiceMock.getMetadataById).toHaveBeenCalledWith(metadataId); expect(component.metadata).toBe(metadata); }); @@ -55,14 +55,14 @@ describe('MetadataDetailComponent', () => { describe('template', () => { - let fixture: ComponentFixture<MetadataDetailComponent>; - let comp: MetadataDetailComponent; + let fixture: ComponentFixture<DatasetDetailComponent>; + let comp: DatasetDetailComponent; let de: DebugElement; beforeEach(() => { TestBed.configureTestingModule({ declarations: [ - MetadataDetailComponent + DatasetDetailComponent ], imports: [ RouterTestingModule, @@ -72,7 +72,7 @@ describe('MetadataDetailComponent', () => { ], providers: [ { - provide: MetadataService, + provide: DatasetService, useValue: { getMetadataById(): Observable<Metadata> { return Observable.of(metadata); @@ -84,7 +84,7 @@ describe('MetadataDetailComponent', () => { }); beforeEach(fakeAsync(() => { - fixture = TestBed.createComponent(MetadataDetailComponent); + fixture = TestBed.createComponent(DatasetDetailComponent); de = fixture.debugElement; comp = fixture.componentInstance; fixture.detectChanges(); diff --git a/webapp/src/app/geosource/components/metadata-detail/metadata-detail.component.ts b/webapp/src/app/geosource/components/dataset-detail/dataset-detail.component.ts similarity index 55% rename from webapp/src/app/geosource/components/metadata-detail/metadata-detail.component.ts rename to webapp/src/app/geosource/components/dataset-detail/dataset-detail.component.ts index ebb42745..31221b74 100644 --- a/webapp/src/app/geosource/components/metadata-detail/metadata-detail.component.ts +++ b/webapp/src/app/geosource/components/dataset-detail/dataset-detail.component.ts @@ -2,26 +2,26 @@ import { Component, OnInit } from '@angular/core'; import { Metadata } from '../../models'; import { Observable } from 'rxjs/Observable'; import { Router, ActivatedRoute, ParamMap } from '@angular/router'; -import { MetadataService } from '../../services'; +import { DatasetService } from '../../services'; import 'rxjs/add/operator/switchMap'; @Component({ - selector: 'app-metadata-detail', - templateUrl: './metadata-detail.component.html', - styleUrls: ['./metadata-detail.component.scss'] + selector: 'app-dataset-detail', + templateUrl: './dataset-detail.component.html', + styleUrls: ['./dataset-detail.component.scss'] }) -export class MetadataDetailComponent implements OnInit { +export class DatasetDetailComponent implements OnInit { metadata: Metadata; constructor( private _route: ActivatedRoute, - private _metadataService: MetadataService + private _datasetService: DatasetService ) {} ngOnInit() { this._route.paramMap - .switchMap((params: ParamMap) => this._metadataService.getMetadataById(params.get('id'))) + .switchMap((params: ParamMap) => this._datasetService.getMetadataById(params.get('id'))) .subscribe((metadata: Metadata) => { this.metadata = metadata; }); diff --git a/webapp/src/app/geosource/components/metadata-list/metadata-list.component.html b/webapp/src/app/geosource/components/dataset-list/dataset-list.component.html similarity index 100% rename from webapp/src/app/geosource/components/metadata-list/metadata-list.component.html rename to webapp/src/app/geosource/components/dataset-list/dataset-list.component.html diff --git a/webapp/src/app/geosource/components/metadata-list/metadata-list.component.scss b/webapp/src/app/geosource/components/dataset-list/dataset-list.component.scss similarity index 100% rename from webapp/src/app/geosource/components/metadata-list/metadata-list.component.scss rename to webapp/src/app/geosource/components/dataset-list/dataset-list.component.scss diff --git a/webapp/src/app/geosource/components/metadata-list/metadata-list.component.spec.ts b/webapp/src/app/geosource/components/dataset-list/dataset-list.component.spec.ts similarity index 88% rename from webapp/src/app/geosource/components/metadata-list/metadata-list.component.spec.ts rename to webapp/src/app/geosource/components/dataset-list/dataset-list.component.spec.ts index c097e241..3a2ad8db 100644 --- a/webapp/src/app/geosource/components/metadata-list/metadata-list.component.spec.ts +++ b/webapp/src/app/geosource/components/dataset-list/dataset-list.component.spec.ts @@ -1,7 +1,7 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; -import { MetadataListComponent } from './metadata-list.component'; +import { DatasetListComponent } from './dataset-list.component'; import { ActivatedRoute } from '@angular/router'; -import { MetadataService, ElasticsearchService } from '../../services'; +import { DatasetService, ElasticsearchService } from '../../services'; import { Observable } from 'rxjs/Observable'; import { IMetadata, Dataset, SearchSuggestion } from '../../models'; import { RouterTestingModule } from '@angular/router/testing'; @@ -15,7 +15,7 @@ import { FilterDetailComponent } from '../filter-list/filter-detail/filter-detai import { PaginatorComponent } from '../../../shared/components/paginator/paginator.component'; import { FormsModule } from '@angular/forms'; -describe('MetadataListComponent', () => { +describe('DatasetListComponent', () => { const datasetList = [{ dataset_id: 'abcesr', highlights: { @@ -58,9 +58,9 @@ describe('MetadataListComponent', () => { } }] as Dataset[]; - let component: MetadataListComponent; - let fixture: ComponentFixture<MetadataListComponent>; - let service: MetadataService; + let component: DatasetListComponent; + let fixture: ComponentFixture<DatasetListComponent>; + let service: DatasetService; let elasticsearchService: ElasticsearchService; const searchSubject = new Subject<string>(); @@ -68,7 +68,7 @@ describe('MetadataListComponent', () => { beforeEach(async(() => { TestBed.configureTestingModule({ declarations: [ - MetadataListComponent, + DatasetListComponent, MockComponent({ selector: 'app-sort' }), FilterListComponent, FilterDetailComponent, @@ -81,7 +81,7 @@ describe('MetadataListComponent', () => { FormsModule ], providers: [ - MetadataService, + DatasetService, ElasticsearchService ], }) @@ -89,9 +89,9 @@ describe('MetadataListComponent', () => { })); beforeEach(() => { - fixture = TestBed.createComponent(MetadataListComponent); + fixture = TestBed.createComponent(DatasetListComponent); component = fixture.componentInstance; - service = TestBed.get(MetadataService); + service = TestBed.get(DatasetService); elasticsearchService = TestBed.get(ElasticsearchService); spyOn(elasticsearchService, 'getSuggestion').and.returnValue(Observable.of(new SearchSuggestion())); fixture.detectChanges(); @@ -152,13 +152,13 @@ describe('MetadataListComponent', () => { expect(component.paginator.pageSize).toEqual(5); }); - it('should get count of metadata from service', () => { + it('should get count of dataset from service', () => { // When component.search(); expect(component.paginator.length).toBe(10); }); - it('should get the list of metadata from service', () => { + it('should get the list of dataset from service', () => { component.search(); expect(component.datasetList).toBe(datasetList); }); diff --git a/webapp/src/app/geosource/components/metadata-list/metadata-list.component.ts b/webapp/src/app/geosource/components/dataset-list/dataset-list.component.ts similarity index 60% rename from webapp/src/app/geosource/components/metadata-list/metadata-list.component.ts rename to webapp/src/app/geosource/components/dataset-list/dataset-list.component.ts index c22e4ed2..6cd414b8 100644 --- a/webapp/src/app/geosource/components/metadata-list/metadata-list.component.ts +++ b/webapp/src/app/geosource/components/dataset-list/dataset-list.component.ts @@ -1,22 +1,16 @@ import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core'; -import { MetadataService } from '../../services/metadata.service'; +import { DatasetService } from '../../services/dataset.service'; import { Dataset, IMetadataUri, SearchSuggestion } from '../../models'; import { Subscription } from 'rxjs/Subscription'; import { ElasticsearchService } from '../../services'; - -interface PaginatorOptions { - pageIndex: number; - length: number; - pageSize: number; - pageSizeOptions: number[]; -} +import { PaginatorOptions } from '../../../shared/models'; @Component({ - selector: 'app-metadata-list', - templateUrl: './metadata-list.component.html', - styleUrls: ['./metadata-list.component.scss'] + selector: 'app-dataset-list', + templateUrl: './dataset-list.component.html', + styleUrls: ['./dataset-list.component.scss'] }) -export class MetadataListComponent implements OnInit, OnDestroy { +export class DatasetListComponent implements OnInit, OnDestroy { datasetList: Dataset[]; searchChangeSub: Subscription; @@ -34,17 +28,17 @@ export class MetadataListComponent implements OnInit, OnDestroy { suggestion = new SearchSuggestion({}); constructor( - private metadataService: MetadataService, + private datasetService: DatasetService, private elasticsearchService: ElasticsearchService ) { } ngOnInit() { this.loading = true; - this.paginator.pageIndex = this.metadataService.pageIndex + 1; - this.paginator.pageSize = this.metadataService.pageSize; + this.paginator.pageIndex = this.datasetService.pageIndex + 1; + this.paginator.pageSize = this.datasetService.pageSize; this.search(); this.getSuggestion(); - this.searchChangeSub = this.metadataService.searchChange$.subscribe( + this.searchChangeSub = this.datasetService.searchChange$.subscribe( (value) => { this.showProgressBar = true; this.search(); @@ -59,12 +53,12 @@ export class MetadataListComponent implements OnInit, OnDestroy { search() { this.loading = true; - this.metadataService.getDatasetList().subscribe( + this.datasetService.getDatasetList().subscribe( (res) => { this.datasetList = res; - this.paginator.pageSize = this.metadataService.pageSize; - this.paginator.pageIndex = this.metadataService.pageIndex + 1; - this.paginator.length = this.metadataService.resultsCount; + this.paginator.pageSize = this.datasetService.pageSize; + this.paginator.pageIndex = this.datasetService.pageIndex + 1; + this.paginator.length = this.datasetService.resultsCount; this.showProgressBar = false; this.loading = false; }, (err) => { @@ -73,13 +67,13 @@ export class MetadataListComponent implements OnInit, OnDestroy { ); } - // When pagination is changed by user, we update metadata with new pagination options + // When pagination is changed by user, we update datasetList with new pagination options changePagination(pageIndex) { - this.metadataService.paginationChanged(this.paginator.pageSize, pageIndex - 1 ); + this.datasetService.paginationChanged(this.paginator.pageSize, pageIndex - 1 ); } changePageSize(pageSize) { - this.metadataService.paginationChanged(pageSize, 0 ); + this.datasetService.paginationChanged(pageSize, 0 ); } formatFoundItem(e) { @@ -97,7 +91,7 @@ export class MetadataListComponent implements OnInit, OnDestroy { } getSuggestion() { - this.elasticsearchService.getSuggestion(this.metadataService.searchString).subscribe( + this.elasticsearchService.getSuggestion(this.datasetService.searchString).subscribe( (suggestion) => { this.suggestion = suggestion; if (this.suggestion.text !== '' && this.suggestion.text !== null && this.suggestion.text !== undefined) { @@ -110,7 +104,7 @@ export class MetadataListComponent implements OnInit, OnDestroy { } useSuggestion() { - this.metadataService.searchChanged(this.suggestion.text); + this.datasetService.searchChanged(this.suggestion.text); } } diff --git a/webapp/src/app/geosource/components/filter-list/filter-detail/filter-detail.component.spec.ts b/webapp/src/app/geosource/components/filter-list/filter-detail/filter-detail.component.spec.ts index a197127d..120dee25 100644 --- a/webapp/src/app/geosource/components/filter-list/filter-detail/filter-detail.component.spec.ts +++ b/webapp/src/app/geosource/components/filter-list/filter-detail/filter-detail.component.spec.ts @@ -1,7 +1,7 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; import { FilterDetailComponent } from './filter-detail.component'; -import { MetadataService, ElasticsearchService } from '../../../services'; +import { DatasetService, ElasticsearchService } from '../../../services'; import { HttpClientModule } from '@angular/common/http'; import { FilterListComponent } from '../..'; import { Component } from '@angular/core'; @@ -20,7 +20,7 @@ describe('FilterDetailComponent', () => { HttpClientModule ], providers: [ - MetadataService, + DatasetService, ElasticsearchService ] }) diff --git a/webapp/src/app/geosource/components/filter-list/filter-detail/filter-detail.component.ts b/webapp/src/app/geosource/components/filter-list/filter-detail/filter-detail.component.ts index 94b42220..b26d7c2d 100644 --- a/webapp/src/app/geosource/components/filter-list/filter-detail/filter-detail.component.ts +++ b/webapp/src/app/geosource/components/filter-list/filter-detail/filter-detail.component.ts @@ -1,4 +1,4 @@ -import {MetadataService} from '../../../services/metadata.service'; +import { DatasetService } from '../../../services/dataset.service'; import { Component, OnInit, Input } from '@angular/core'; import { IFilter } from '../../../models'; @@ -11,7 +11,7 @@ export class FilterDetailComponent implements OnInit { @Input() filter: IFilter; showList = false; constructor( - private _metadataService: MetadataService + private _datasetService: DatasetService ) {} ngOnInit() { @@ -45,14 +45,14 @@ export class FilterDetailComponent implements OnInit { } addFilter(field, value) { - this._metadataService.addFilter(field, value); + this._datasetService.addFilter(field, value); } changeFilter(field, aggregation) { if (aggregation.isActive) { - this._metadataService.removeFilter(field, aggregation); + this._datasetService.removeFilter(field, aggregation); } else { - this._metadataService.addFilter(field, aggregation); + this._datasetService.addFilter(field, aggregation); } } diff --git a/webapp/src/app/geosource/components/filter-list/filter-list.component.spec.ts b/webapp/src/app/geosource/components/filter-list/filter-list.component.spec.ts index 25548b73..465193ef 100644 --- a/webapp/src/app/geosource/components/filter-list/filter-list.component.spec.ts +++ b/webapp/src/app/geosource/components/filter-list/filter-list.component.spec.ts @@ -2,7 +2,7 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; import { FilterListComponent } from './filter-list.component'; import { FilterDetailComponent } from './filter-detail/filter-detail.component'; -import { MetadataService, ElasticsearchService } from '../../services'; +import { DatasetService, ElasticsearchService } from '../../services'; import { HttpClientModule } from '@angular/common/http'; describe('FilterListComponent', () => { @@ -19,7 +19,7 @@ describe('FilterListComponent', () => { HttpClientModule ], providers: [ - MetadataService, + DatasetService, ElasticsearchService ] }) diff --git a/webapp/src/app/geosource/components/filter-list/filter-list.component.ts b/webapp/src/app/geosource/components/filter-list/filter-list.component.ts index b5044a92..21fd7129 100644 --- a/webapp/src/app/geosource/components/filter-list/filter-list.component.ts +++ b/webapp/src/app/geosource/components/filter-list/filter-list.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit, OnDestroy } from '@angular/core'; -import { MetadataService } from '../../services'; +import { DatasetService } from '../../services'; import { Subscription } from 'rxjs/Subscription'; import { IFilter } from '../../models'; @@ -10,17 +10,17 @@ import { IFilter } from '../../models'; }) export class FilterListComponent implements OnInit, OnDestroy { - private _metadataReloaded: Subscription; + private _datasetsReloaded: Subscription; filters: Array<IFilter>; constructor( - private _metadataService: MetadataService + private _datasetService: DatasetService ) {} ngOnInit() { - this._metadataReloaded = this._metadataService.metadataReloaded$.subscribe( + this._datasetsReloaded = this._datasetService.datasetsReloaded$.subscribe( (value) => { - const filters = this._metadataService.filters; + const filters = this._datasetService.filters; // If one filter is used as an active filter, we remove it of 'aggregations' property // that are used to display the filters categories filters.forEach(filter => { @@ -38,11 +38,11 @@ export class FilterListComponent implements OnInit, OnDestroy { } removeFilter(field, value) { - this._metadataService.removeFilter(field, value); + this._datasetService.removeFilter(field, value); } ngOnDestroy() { - this._metadataReloaded.unsubscribe(); + this._datasetsReloaded.unsubscribe(); } } diff --git a/webapp/src/app/geosource/components/index.ts b/webapp/src/app/geosource/components/index.ts index ac6b444d..ad0621fd 100644 --- a/webapp/src/app/geosource/components/index.ts +++ b/webapp/src/app/geosource/components/index.ts @@ -1,21 +1,21 @@ -import { MetadataListComponent } from './metadata-list/metadata-list.component'; -import { MetadataDetailComponent } from './metadata-detail/metadata-detail.component'; +import { DatasetListComponent } from './dataset-list/dataset-list.component'; +import { DatasetDetailComponent } from './dataset-detail/dataset-detail.component'; import { SearchBarComponent } from './search-bar/search-bar.component'; import { ResearchComponent } from './research/research.component'; import { SortComponent } from './sort/sort.component'; import { FilterListComponent } from './filter-list/filter-list.component'; import { FilterDetailComponent } from './filter-list/filter-detail/filter-detail.component'; -export * from './metadata-detail/metadata-detail.component'; -export * from './metadata-list/metadata-list.component'; +export * from './dataset-detail/dataset-detail.component'; +export * from './dataset-list/dataset-list.component'; export * from './filter-list/filter-list.component'; export * from './search-bar/search-bar.component'; export * from './research/research.component'; export * from './sort/sort.component'; export const GeosourceComponents = [ - MetadataDetailComponent, - MetadataListComponent, + DatasetDetailComponent, + DatasetListComponent, SearchBarComponent, ResearchComponent, SortComponent, diff --git a/webapp/src/app/geosource/components/research/research.component.spec.ts b/webapp/src/app/geosource/components/research/research.component.spec.ts index 1797f834..0e5771dd 100644 --- a/webapp/src/app/geosource/components/research/research.component.spec.ts +++ b/webapp/src/app/geosource/components/research/research.component.spec.ts @@ -3,7 +3,7 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; import { ResearchComponent } from './research.component'; import { MockComponent } from 'ng2-mock-component'; import { RouterTestingModule } from '@angular/router/testing'; -import { MetadataService, ElasticsearchService } from '../../services'; +import { DatasetService, ElasticsearchService } from '../../services'; import { HttpClientModule } from '@angular/common/http'; describe('ResearchComponent', () => { @@ -19,10 +19,10 @@ describe('ResearchComponent', () => { declarations: [ ResearchComponent, MockComponent({ selector: 'app-search-bar' }), - MockComponent({ selector: 'app-metadata-list' }), + MockComponent({ selector: 'app-dataset-list' }), ], providers: [ - MetadataService, + DatasetService, ElasticsearchService ] }) diff --git a/webapp/src/app/geosource/components/research/research.component.ts b/webapp/src/app/geosource/components/research/research.component.ts index f19402be..8c8d95c7 100644 --- a/webapp/src/app/geosource/components/research/research.component.ts +++ b/webapp/src/app/geosource/components/research/research.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit } from '@angular/core'; -import { MetadataService } from '../../services'; +import { DatasetService } from '../../services'; import { Router, ActivatedRoute } from '@angular/router'; @Component({ @@ -10,15 +10,15 @@ import { Router, ActivatedRoute } from '@angular/router'; export class ResearchComponent implements OnInit { constructor( - private _metadataService: MetadataService, + private _datasetService: DatasetService, private _router: Router, private _route: ActivatedRoute ) { } ngOnInit() { - this._metadataService.searchChange$.subscribe(() => { - if ( this._route.snapshot.url[this._route.snapshot.url.length - 1].path !== 'metadata' ) { - this._router.navigate(['metadata'], { relativeTo: this._route}); + this._datasetService.searchChange$.subscribe(() => { + if ( this._route.snapshot.url[this._route.snapshot.url.length - 1].path !== 'datasets' ) { + this._router.navigate(['datasets'], { relativeTo: this._route}); } }); } diff --git a/webapp/src/app/geosource/components/search-bar/search-bar.component.spec.ts b/webapp/src/app/geosource/components/search-bar/search-bar.component.spec.ts index 5ca35422..b507e740 100644 --- a/webapp/src/app/geosource/components/search-bar/search-bar.component.spec.ts +++ b/webapp/src/app/geosource/components/search-bar/search-bar.component.spec.ts @@ -1,5 +1,5 @@ -import {ElasticsearchService} from '../../services/elasticsearch.service'; -import {MetadataService} from '../../services/metadata.service'; +import { ElasticsearchService } from '../../services/elasticsearch.service'; +import { DatasetService } from '../../services/dataset.service'; import { async, ComponentFixture, TestBed } from '@angular/core/testing'; import { SearchBarComponent } from './search-bar.component'; @@ -22,7 +22,7 @@ describe('SearchBarComponent', () => { MockComponent({ selector: 'app-search-input' }), ], providers: [ - MetadataService, + DatasetService, ElasticsearchService ] }) diff --git a/webapp/src/app/geosource/components/search-bar/search-bar.component.ts b/webapp/src/app/geosource/components/search-bar/search-bar.component.ts index 808c8318..7bc410a2 100644 --- a/webapp/src/app/geosource/components/search-bar/search-bar.component.ts +++ b/webapp/src/app/geosource/components/search-bar/search-bar.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit } from '@angular/core'; -import { MetadataService, ElasticsearchService } from '../../services'; +import { DatasetService, ElasticsearchService } from '../../services'; import { SearchCompletion } from '../../models'; @Component({ @@ -16,7 +16,7 @@ export class SearchBarComponent implements OnInit { displayAutocomplete: boolean; constructor( - private _metadataService: MetadataService, + private _datasetService: DatasetService, private _elasticSearchService: ElasticsearchService, ) { this.options_autocomplete = []; @@ -25,17 +25,17 @@ export class SearchBarComponent implements OnInit { } ngOnInit() { - this.searchValue = this._metadataService.searchString; + this.searchValue = this._datasetService.searchString; // When the search value has changed, we reset the autocomplete list and focus element - this._metadataService.searchChange$.subscribe( + this._datasetService.searchChange$.subscribe( () => { - this.searchValue = this._metadataService.searchString; + this.searchValue = this._datasetService.searchString; this.options_autocomplete = []; this.currentAutocompleteFocus = -1; } ); // Used to display the loading icon - this._metadataService.isLoading$.subscribe((value) => { + this._datasetService.isLoading$.subscribe((value) => { this.isLoading = value; }); } @@ -64,12 +64,12 @@ export class SearchBarComponent implements OnInit { this.searchValue = this.options_autocomplete[this.currentAutocompleteFocus].text; this.currentAutocompleteFocus = -1; } - this._metadataService.searchChanged(this.searchValue); + this._datasetService.searchChanged(this.searchValue); this.options_autocomplete = []; break; case 'optionSelected': case 'reset': - this._metadataService.searchChanged(this.searchValue); + this._datasetService.searchChanged(this.searchValue); this.options_autocomplete = []; break; default: diff --git a/webapp/src/app/geosource/components/sort/sort.component.spec.ts b/webapp/src/app/geosource/components/sort/sort.component.spec.ts index 901114fa..9fc1c660 100644 --- a/webapp/src/app/geosource/components/sort/sort.component.spec.ts +++ b/webapp/src/app/geosource/components/sort/sort.component.spec.ts @@ -1,7 +1,7 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; import { SortComponent } from './sort.component'; -import { MetadataService, ElasticsearchService } from '../../services'; +import { DatasetService, ElasticsearchService } from '../../services'; import { HttpClientModule } from '@angular/common/http'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; @@ -17,7 +17,7 @@ describe('SortComponent', () => { ], declarations: [ SortComponent ], providers: [ - MetadataService, + DatasetService, ElasticsearchService ], }) diff --git a/webapp/src/app/geosource/components/sort/sort.component.ts b/webapp/src/app/geosource/components/sort/sort.component.ts index f03918a7..7da9c027 100644 --- a/webapp/src/app/geosource/components/sort/sort.component.ts +++ b/webapp/src/app/geosource/components/sort/sort.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit } from '@angular/core'; -import { MetadataService } from '../../services'; +import { DatasetService } from '../../services'; import { ISortOption } from '../../models'; interface IDropdownOptions { @@ -20,7 +20,7 @@ export class SortComponent implements OnInit { selectedOption: ISortOption; constructor( - private _metadataService: MetadataService + private _datasetService: DatasetService ) { this.options = [ { @@ -39,17 +39,17 @@ export class SortComponent implements OnInit { } ngOnInit() { - this.selectedOption = this._metadataService.sortOptions; + this.selectedOption = this._datasetService.sortOptions; } sortValueChanged(value) { this.selectedOption.value = value; - this._metadataService.sortChanged(value); + this._datasetService.sortChanged(value); } toggleOrder() { this.selectedOption.order = this.selectedOption.order === 'asc' ? 'desc' : 'asc'; - this._metadataService.orderChanged(this.selectedOption.order); + this._datasetService.orderChanged(this.selectedOption.order); } } diff --git a/webapp/src/app/geosource/geosource-routing.module.ts b/webapp/src/app/geosource/geosource-routing.module.ts index d41296c7..ef446d5d 100644 --- a/webapp/src/app/geosource/geosource-routing.module.ts +++ b/webapp/src/app/geosource/geosource-routing.module.ts @@ -1,6 +1,6 @@ import { NgModule } from '@angular/core'; import { Routes, RouterModule } from '@angular/router'; -import { MetadataListComponent, MetadataDetailComponent, ResearchComponent } from './components'; +import { DatasetListComponent, DatasetDetailComponent, ResearchComponent } from './components'; export const routes: Routes = [ { @@ -9,16 +9,19 @@ export const routes: Routes = [ children: [ { path: '', - redirectTo: 'metadata', + redirectTo: 'datasets', pathMatch: 'full' }, { - path: 'metadata/:id', - component: MetadataDetailComponent + path: 'datasets/:id', + component: DatasetDetailComponent, + children: [ + + ] }, { - path: 'metadata', - component: MetadataListComponent + path: 'datasets', + component: DatasetListComponent }, ] }, diff --git a/webapp/src/app/geosource/services/metadata.service.spec.ts b/webapp/src/app/geosource/services/dataset.service.spec.ts similarity index 68% rename from webapp/src/app/geosource/services/metadata.service.spec.ts rename to webapp/src/app/geosource/services/dataset.service.spec.ts index 2947059c..b232c648 100644 --- a/webapp/src/app/geosource/services/metadata.service.spec.ts +++ b/webapp/src/app/geosource/services/dataset.service.spec.ts @@ -1,8 +1,8 @@ import { TestBed, inject } from '@angular/core/testing'; import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing'; -import { MetadataService } from './metadata.service'; +import { DatasetService } from './dataset.service'; import { IMetadata } from '../models'; -describe('MetadataService', () => { +describe('DatasetService', () => { }); diff --git a/webapp/src/app/geosource/services/metadata.service.ts b/webapp/src/app/geosource/services/dataset.service.ts similarity index 95% rename from webapp/src/app/geosource/services/metadata.service.ts rename to webapp/src/app/geosource/services/dataset.service.ts index c2f55ea4..85a1338c 100644 --- a/webapp/src/app/geosource/services/metadata.service.ts +++ b/webapp/src/app/geosource/services/dataset.service.ts @@ -14,10 +14,10 @@ import { import { ElasticsearchService } from './elasticsearch.service'; @Injectable() -export class MetadataService { +export class DatasetService { private _searchChangeSubject: Subject<any>; - private _metadataReloadedSubject: Subject<any>; + private _datasetsReloadedSubject: Subject<any>; private _elasticsearchOptions: ElasticsearchOptions; private _resultsCount: number; private _isLoading: Subject<boolean>; @@ -26,13 +26,13 @@ export class MetadataService { private _elasticsearchService: ElasticsearchService ) { this._searchChangeSubject = new Subject<any>(); - this._metadataReloadedSubject = new Subject<any>(); + this._datasetsReloadedSubject = new Subject<any>(); this._elasticsearchOptions = new ElasticsearchOptions(); this._isLoading = new Subject(); } - // Get metadata from elasticsearch. + // Get datasets from elasticsearch. // Options: filter by query string and pagination getDatasetList(): Observable<Dataset[]> { this._isLoading.next(true); @@ -52,7 +52,7 @@ export class MetadataService { } }); // NOtify that data have been reloaded - this._metadataReloadedSubject.next(); + this._datasetsReloadedSubject.next(); this._isLoading.next(false); return this.initilizeDatasetList(e.hits.hits); @@ -175,8 +175,8 @@ export class MetadataService { return this._isLoading.asObservable(); } - get metadataReloaded$(): Observable<string> { - return this._metadataReloadedSubject.asObservable(); + get datasetsReloaded$(): Observable<string> { + return this._datasetsReloadedSubject.asObservable(); } get searchString(): string { diff --git a/webapp/src/app/geosource/services/index.ts b/webapp/src/app/geosource/services/index.ts index c1207247..764bd841 100644 --- a/webapp/src/app/geosource/services/index.ts +++ b/webapp/src/app/geosource/services/index.ts @@ -1,10 +1,10 @@ -import { MetadataService } from './metadata.service'; +import { DatasetService } from './dataset.service'; import { ElasticsearchService } from './elasticsearch.service'; -export * from './metadata.service'; +export * from './dataset.service'; export * from './elasticsearch.service'; export const GeosourceServices = [ - MetadataService, + DatasetService, ElasticsearchService ]; diff --git a/webapp/src/app/shared/models/index.ts b/webapp/src/app/shared/models/index.ts new file mode 100644 index 00000000..a02661fa --- /dev/null +++ b/webapp/src/app/shared/models/index.ts @@ -0,0 +1 @@ +export * from './paginator-options.model'; diff --git a/webapp/src/app/shared/models/paginator-options.model.ts b/webapp/src/app/shared/models/paginator-options.model.ts new file mode 100644 index 00000000..d5818ff4 --- /dev/null +++ b/webapp/src/app/shared/models/paginator-options.model.ts @@ -0,0 +1,6 @@ +export interface PaginatorOptions { + pageIndex: number; + length: number; + pageSize: number; + pageSizeOptions: number[]; +} -- GitLab