1
0

Fixed and updated merge related issues for simple search

This commit is contained in:
Lotte Hofstede
2017-10-03 11:05:42 +02:00
parent 62bfeb4075
commit da881f7a30
17 changed files with 20 additions and 54 deletions

View File

@@ -6,7 +6,7 @@ import { SearchPageComponent } from './search-page.component';
@NgModule({ @NgModule({
imports: [ imports: [
RouterModule.forChild([ RouterModule.forChild([
{ path: 'search', component: SearchPageComponent } { path: '', component: SearchPageComponent }
]) ])
] ]
}) })

View File

@@ -1,12 +1,12 @@
import { Component, OnInit, OnDestroy } from '@angular/core'; import { Component, OnInit, OnDestroy } from '@angular/core';
import { SearchService } from '../search/search.service'; import { SearchService } from './search.service';
import { ActivatedRoute, Router } from '@angular/router'; import { ActivatedRoute, Router } from '@angular/router';
import { RemoteData } from '../core/data/remote-data'; import { RemoteData } from '../core/data/remote-data';
import { SearchResult } from '../search/search-result.model'; import { SearchResult } from './search-result.model';
import { DSpaceObject } from '../core/shared/dspace-object.model'; import { DSpaceObject } from '../core/shared/dspace-object.model';
import { SortOptions } from '../core/cache/models/sort-options.model'; import { SortOptions } from '../core/cache/models/sort-options.model';
import { PaginationComponentOptions } from '../shared/pagination/pagination-component-options.model'; import { PaginationComponentOptions } from '../shared/pagination/pagination-component-options.model';
import { SearchOptions } from '../search/search-options.model'; import { SearchOptions } from './search-options.model';
import { CommunityDataService } from '../core/data/community-data.service'; import { CommunityDataService } from '../core/data/community-data.service';
import { isNotEmpty } from '../shared/empty.util'; import { isNotEmpty } from '../shared/empty.util';
import { Community } from '../core/shared/community.model'; import { Community } from '../core/shared/community.model';

View File

@@ -8,10 +8,10 @@ import { SharedModule } from '../shared/shared.module';
import { SearchPageRoutingModule } from './search-page-routing.module'; import { SearchPageRoutingModule } from './search-page-routing.module';
import { SearchPageComponent } from './search-page.component'; import { SearchPageComponent } from './search-page.component';
import { SearchResultsComponent } from './search-results/search-results.compontent'; import { SearchResultsComponent } from './search-results/search-results.compontent';
import { SearchModule } from '../search/search.module';
import { ItemSearchResultListElementComponent } from '../object-list/search-result-list-element/item-search-result/item-search-result-list-element.component'; import { ItemSearchResultListElementComponent } from '../object-list/search-result-list-element/item-search-result/item-search-result-list-element.component';
import { CollectionSearchResultListElementComponent } from '../object-list/search-result-list-element/collection-search-result/collection-search-result-list-element.component'; import { CollectionSearchResultListElementComponent } from '../object-list/search-result-list-element/collection-search-result/collection-search-result-list-element.component';
import { CommunitySearchResultListElementComponent } from '../object-list/search-result-list-element/community-search-result/community-search-result-list-element.component'; import { CommunitySearchResultListElementComponent } from '../object-list/search-result-list-element/community-search-result/community-search-result-list-element.component';
import { SearchService } from './search.service';
@NgModule({ @NgModule({
imports: [ imports: [
@@ -19,8 +19,7 @@ import { CommunitySearchResultListElementComponent } from '../object-list/search
CommonModule, CommonModule,
TranslateModule, TranslateModule,
RouterModule, RouterModule,
SharedModule, SharedModule
SearchModule
], ],
declarations: [ declarations: [
SearchPageComponent, SearchPageComponent,
@@ -29,6 +28,9 @@ import { CommunitySearchResultListElementComponent } from '../object-list/search
CollectionSearchResultListElementComponent, CollectionSearchResultListElementComponent,
CommunitySearchResultListElementComponent CommunitySearchResultListElementComponent
], ],
providers: [
SearchService
],
entryComponents: [ entryComponents: [
ItemSearchResultListElementComponent, ItemSearchResultListElementComponent,
CollectionSearchResultListElementComponent, CollectionSearchResultListElementComponent,

View File

@@ -1,8 +1,8 @@
import { Component, Input } from '@angular/core'; import { Component, Input } from '@angular/core';
import { RemoteData } from '../../core/data/remote-data'; import { RemoteData } from '../../core/data/remote-data';
import { SearchResult } from '../../search/search-result.model'; import { SearchResult } from '../search-result.model';
import { DSpaceObject } from '../../core/shared/dspace-object.model'; import { DSpaceObject } from '../../core/shared/dspace-object.model';
import { SearchOptions } from '../../search/search-options.model'; import { SearchOptions } from '../search-options.model';
/** /**
* This component renders a simple item page. * This component renders a simple item page.

View File

@@ -84,8 +84,8 @@ export class SearchService {
}); });
const pageInfo = itemsRD.pageInfo.map((info: PageInfo) => { const pageInfo = itemsRD.pageInfo.map((info: PageInfo) => {
info.totalElements = info.totalElements > 20 ? 20 : info.totalElements; const totalElements = info.totalElements > 20 ? 20 : info.totalElements;
return info; return Object.assign({}, info, {totalElements: totalElements});
}); });
const payload = itemsRD.payload.map((items: Item[]) => { const payload = itemsRD.payload.map((items: Item[]) => {

View File

@@ -11,6 +11,7 @@ import { PageNotFoundComponent } from './pagenotfound/pagenotfound.component';
{ path: 'communities', loadChildren: './+community-page/community-page.module#CommunityPageModule' }, { path: 'communities', loadChildren: './+community-page/community-page.module#CommunityPageModule' },
{ path: 'collections', loadChildren: './+collection-page/collection-page.module#CollectionPageModule' }, { path: 'collections', loadChildren: './+collection-page/collection-page.module#CollectionPageModule' },
{ path: 'items', loadChildren: './+item-page/item-page.module#ItemPageModule' }, { path: 'items', loadChildren: './+item-page/item-page.module#ItemPageModule' },
{ path: 'search', loadChildren: './+search-page/search-page.module#SearchPageModule' },
{ path: '**', pathMatch: 'full', component: PageNotFoundComponent }, { path: '**', pathMatch: 'full', component: PageNotFoundComponent },
]) ])
], ],

View File

@@ -1,4 +1,4 @@
import { SearchResult } from '../../../search/search-result.model'; import { SearchResult } from '../../../+search-page/search-result.model';
import { Collection } from '../../../core/shared/collection.model'; import { Collection } from '../../../core/shared/collection.model';
export class CollectionSearchResult extends SearchResult<Collection> { export class CollectionSearchResult extends SearchResult<Collection> {

View File

@@ -1,4 +1,4 @@
import { SearchResult } from '../../../search/search-result.model'; import { SearchResult } from '../../../+search-page/search-result.model';
import { Community } from '../../../core/shared/community.model'; import { Community } from '../../../core/shared/community.model';
export class CommunitySearchResult extends SearchResult<Community> { export class CommunitySearchResult extends SearchResult<Community> {

View File

@@ -1,4 +1,4 @@
import { SearchResult } from '../../../search/search-result.model'; import { SearchResult } from '../../../+search-page/search-result.model';
import { Item } from '../../../core/shared/item.model'; import { Item } from '../../../core/shared/item.model';
export class ItemSearchResult extends SearchResult<Item> { export class ItemSearchResult extends SearchResult<Item> {

View File

@@ -2,7 +2,7 @@ import { Component, Inject } from '@angular/core';
import { ObjectListElementComponent } from '../object-list-element/object-list-element.component'; import { ObjectListElementComponent } from '../object-list-element/object-list-element.component';
import { ListableObject } from '../listable-object/listable-object.model'; import { ListableObject } from '../listable-object/listable-object.model';
import { SearchResult } from '../../search/search-result.model'; import { SearchResult } from '../../+search-page/search-result.model';
import { DSpaceObject } from '../../core/shared/dspace-object.model'; import { DSpaceObject } from '../../core/shared/dspace-object.model';
import { Metadatum } from '../../core/shared/metadatum.model'; import { Metadatum } from '../../core/shared/metadatum.model';
import { isEmpty, hasNoValue } from '../../shared/empty.util'; import { isEmpty, hasNoValue } from '../../shared/empty.util';

View File

@@ -1,17 +0,0 @@
import { NgModule } from '@angular/core';
import { CoreModule } from '../core/core.module';
import { SearchService } from './search.service';
@NgModule({
imports: [
],
declarations: [
],
exports: [
],
providers: [
SearchService
]
})
export class SearchModule { }

View File

@@ -1,4 +1,4 @@
import { Component, Input, OnDestroy, OnInit } from '@angular/core'; import { Component, Input } from '@angular/core';
import { DSpaceObject } from '../../core/shared/dspace-object.model'; import { DSpaceObject } from '../../core/shared/dspace-object.model';
import { Router } from '@angular/router'; import { Router } from '@angular/router';
import { isNotEmpty, hasValue, isEmpty } from '../empty.util'; import { isNotEmpty, hasValue, isEmpty } from '../empty.util';
@@ -15,14 +15,12 @@ import { Observable } from 'rxjs/Observable';
styleUrls: ['./search-form.component.scss'], styleUrls: ['./search-form.component.scss'],
templateUrl: './search-form.component.html', templateUrl: './search-form.component.html',
}) })
export class SearchFormComponent implements OnInit, OnDestroy { export class SearchFormComponent {
@Input() query: string; @Input() query: string;
selectedId = ''; selectedId = '';
// Optional existing search parameters // Optional existing search parameters
@Input() currentParams: {}; @Input() currentParams: {};
@Input() scopes: Observable<DSpaceObject[]>; @Input() scopes: Observable<DSpaceObject[]>;
scopeOptions: string[] = [];
sub;
@Input() @Input()
set scope(dso: DSpaceObject) { set scope(dso: DSpaceObject) {
@@ -31,19 +29,6 @@ export class SearchFormComponent implements OnInit, OnDestroy {
} }
} }
ngOnInit(): void {
if (this.scopes) {
this.sub =
this.scopes
.filter((scopes: DSpaceObject[]) => isEmpty(scopes))
.subscribe((scopes: DSpaceObject[]) => {
this.scopeOptions = scopes
.map((scope: DSpaceObject) => scope.id);
}
);
}
}
constructor(private router: Router) { constructor(private router: Router) {
} }
@@ -75,9 +60,4 @@ export class SearchFormComponent implements OnInit, OnDestroy {
return id1 === id2; return id1 === id2;
} }
ngOnDestroy(): void {
if (this.sub) {
this.sub.unsubscribe();
}
}
} }