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);
+ }
}