From 17f839f9e1eb33ebf82538b08bc9ca7d9f1c718f Mon Sep 17 00:00:00 2001 From: Jonas Van Goolen Date: Tue, 31 Oct 2017 13:28:48 +0100 Subject: [PATCH] #150 SortOptions config fixing --- ...ty-page-sub-collection-list.component.html | 15 ++++++------- .../top-level-community-list.component.html | 2 +- .../+search-page/search-page.component.html | 2 +- src/app/+search-page/search-page.component.ts | 7 +++--- .../search-results.component.ts | 2 ++ .../object-collection.component.html | 4 ++-- .../object-collection.component.ts | 22 +++++++++---------- src/app/object-grid/object-grid.component.ts | 19 ++++++++++++++++ ...-search-result-grid-element.component.html | 2 +- src/app/object-list/object-list.component.ts | 19 ++++++++++++++++ 10 files changed, 66 insertions(+), 28 deletions(-) diff --git a/src/app/+community-page/sub-collection-list/community-page-sub-collection-list.component.html b/src/app/+community-page/sub-collection-list/community-page-sub-collection-list.component.html index f78b212bee..9494cdb755 100644 --- a/src/app/+community-page/sub-collection-list/community-page-sub-collection-list.component.html +++ b/src/app/+community-page/sub-collection-list/community-page-sub-collection-list.component.html @@ -1,11 +1,10 @@ -
-

{{'community.sub-collection-list.head' | translate}}

-
    - - -
-
- +
+

{{'community.sub-collection-list.head' | translate}}

+
    + +
+
diff --git a/src/app/+home-page/top-level-community-list/top-level-community-list.component.html b/src/app/+home-page/top-level-community-list/top-level-community-list.component.html index 4eebb53e1e..934bb3933c 100644 --- a/src/app/+home-page/top-level-community-list/top-level-community-list.component.html +++ b/src/app/+home-page/top-level-community-list/top-level-community-list.component.html @@ -4,8 +4,8 @@

{{'home.top-level-communities.help' | translate}}

diff --git a/src/app/+search-page/search-page.component.html b/src/app/+search-page/search-page.component.html index c4d679f72b..68a7bf6a9e 100644 --- a/src/app/+search-page/search-page.component.html +++ b/src/app/+search-page/search-page.component.html @@ -30,7 +30,7 @@ + [searchConfig]="searchOptions" [sortConfig]="sortConfig"> diff --git a/src/app/+search-page/search-page.component.ts b/src/app/+search-page/search-page.component.ts index d50f5e9442..d5f220d2b1 100644 --- a/src/app/+search-page/search-page.component.ts +++ b/src/app/+search-page/search-page.component.ts @@ -6,7 +6,7 @@ import { RemoteData } from '../core/data/remote-data'; import { Community } from '../core/shared/community.model'; import { DSpaceObject } from '../core/shared/dspace-object.model'; import { isNotEmpty } from '../shared/empty.util'; -import { SearchOptions } from './search-options.model'; +import { SearchOptions,ViewMode } from './search-options.model'; import { SearchResult } from './search-result.model'; import { SearchService } from './search-service/search.service'; import { pushInOut } from '../shared/animations/push'; @@ -36,6 +36,7 @@ export class SearchPageComponent implements OnInit, OnDestroy { resultsRDObs: Observable>>>; currentParams = {}; searchOptions: SearchOptions; + sortConfig: SortOptions; scopeListRDObs: Observable>; isMobileView: Observable; @@ -58,15 +59,15 @@ export class SearchPageComponent implements OnInit, OnDestroy { // TODO Update to accommodate view switcher this.route.queryParams.map((params) => { - if (isNotEmpty(params.view) && params.view == 'grid') { + if (isNotEmpty(params.view) && params.view == ViewMode.Grid) { pagination.pageSize = 12; } }); const sort: SortOptions = new SortOptions(); + this.sortConfig=sort; this.searchOptions = this.service.searchOptions; - } ngOnInit(): void { diff --git a/src/app/+search-page/search-results/search-results.component.ts b/src/app/+search-page/search-results/search-results.component.ts index 4733699f95..f8b3721630 100644 --- a/src/app/+search-page/search-results/search-results.component.ts +++ b/src/app/+search-page/search-results/search-results.component.ts @@ -3,6 +3,7 @@ import { RemoteData } from '../../core/data/remote-data'; import { DSpaceObject } from '../../core/shared/dspace-object.model'; import { fadeIn, fadeInOut } from '../../shared/animations/fade'; import { SearchOptions } from '../search-options.model'; +import { SortOptions } from '../../core/cache/models/sort-options.model'; import { SearchResult } from '../search-result.model'; /** @@ -21,4 +22,5 @@ import { SearchResult } from '../search-result.model'; export class SearchResultsComponent { @Input() searchResults: RemoteData>>; @Input() searchConfig: SearchOptions; + @Input() sortConfig: SortOptions; } diff --git a/src/app/object-collection/object-collection.component.html b/src/app/object-collection/object-collection.component.html index e651c18290..6c2a2fb1de 100644 --- a/src/app/object-collection/object-collection.component.html +++ b/src/app/object-collection/object-collection.component.html @@ -1,13 +1,13 @@ + *ngIf="getViewMode()===viewModeEnum.List"> + *ngIf="getViewMode()===viewModeEnum.Grid"> diff --git a/src/app/object-collection/object-collection.component.ts b/src/app/object-collection/object-collection.component.ts index 25761073e4..5a6d06509b 100644 --- a/src/app/object-collection/object-collection.component.ts +++ b/src/app/object-collection/object-collection.component.ts @@ -11,10 +11,12 @@ import { PageInfo } from '../core/shared/page-info.model'; import { PaginationComponentOptions } from '../shared/pagination/pagination-component-options.model'; -import { SortDirection } from '../core/cache/models/sort-options.model'; +import { SortDirection, SortOptions } from '../core/cache/models/sort-options.model'; import { ListableObject } from './shared/listable-object.model'; +import { ViewMode } from '../+search-page/search-options.model'; import { hasValue, isNotEmpty } from '../shared/empty.util'; + @Component({ selector: 'ds-viewable-collection', styleUrls: ['./object-collection.component.scss'], @@ -24,6 +26,7 @@ export class ObjectCollectionComponent implements OnChanges, OnInit { @Input() objects: RemoteData; @Input() config?: PaginationComponentOptions; + @Input() sortConfig: SortOptions; pageInfo: Observable; /** @@ -52,7 +55,8 @@ export class ObjectCollectionComponent implements OnChanges, OnInit { */ @Output() sortFieldChange: EventEmitter = new EventEmitter(); data: any = {}; - defaultViewMode: string ='list'; + currentMode: ViewMode = ViewMode.List; + viewModeEnum = ViewMode; ngOnChanges(changes: SimpleChanges) { if (changes.objects && !changes.objects.isFirstChange()) { @@ -60,6 +64,7 @@ export class ObjectCollectionComponent implements OnChanges, OnInit { } } + ngOnInit(): void { this.pageInfo = this.objects.pageInfo; } @@ -74,22 +79,15 @@ export class ObjectCollectionComponent implements OnChanges, OnInit { private router: Router) { } - getViewMode(): string { - // TODO Update to accommodate view switcher - + getViewMode(): ViewMode { this.route.queryParams.map((params) => { if (isNotEmpty(params.view) && hasValue(params.view)) { - return params.view; - } else { - return this.defaultViewMode; + this.currentMode= params.view; } }); - return this.defaultViewMode; + return this.currentMode; } - setViewMode(viewMode: string) { - this.defaultViewMode = viewMode; - } onPageChange(event) { this.pageChange.emit(event); } diff --git a/src/app/object-grid/object-grid.component.ts b/src/app/object-grid/object-grid.component.ts index b316fe37c2..02931165c8 100644 --- a/src/app/object-grid/object-grid.component.ts +++ b/src/app/object-grid/object-grid.component.ts @@ -82,5 +82,24 @@ export class ObjectGridComponent implements OnChanges, OnInit { constructor(private cdRef: ChangeDetectorRef) { } + onPageChange(event) { + this.pageChange.emit(event); + } + + onPageSizeChange(event) { + this.pageSizeChange.emit(event); + } + + onSortDirectionChange(event) { + this.sortDirectionChange.emit(event); + } + + onSortFieldChange(event) { + this.sortFieldChange.emit(event); + } + + onPaginationChange(event) { + this.paginationChange.emit(event); + } } diff --git a/src/app/object-grid/search-result-grid-element/item-search-result/item-search-result-grid-element.component.html b/src/app/object-grid/search-result-grid-element/item-search-result/item-search-result-grid-element.component.html index c6e1bc6b14..895e8b59c3 100644 --- a/src/app/object-grid/search-result-grid-element/item-search-result/item-search-result-grid-element.component.html +++ b/src/app/object-grid/search-result-grid-element/item-search-result/item-search-result-grid-element.component.html @@ -20,8 +20,8 @@

{{dso.findMetadata("dc.description.abstract") | dsTruncate:[200] }}

+ View - View diff --git a/src/app/object-list/object-list.component.ts b/src/app/object-list/object-list.component.ts index 352d7bc393..9422d1d843 100644 --- a/src/app/object-list/object-list.component.ts +++ b/src/app/object-list/object-list.component.ts @@ -103,4 +103,23 @@ export class ObjectListComponent { this.paginationChange.emit(event); } + onPageChange(event) { + this.pageChange.emit(event); + } + + onPageSizeChange(event) { + this.pageSizeChange.emit(event); + } + + onSortDirectionChange(event) { + this.sortDirectionChange.emit(event); + } + + onSortFieldChange(event) { + this.sortFieldChange.emit(event); + } + + onPaginationChange(event) { + this.paginationChange.emit(event); + } }