From b87ecca84b96f47f1f3ba1fbdc9d954901627aab Mon Sep 17 00:00:00 2001 From: lotte Date: Thu, 28 Mar 2019 13:19:59 +0100 Subject: [PATCH 1/4] Fixed issue with pagination on the home page --- .../top-level-community-list.component.html | 8 ++-- .../top-level-community-list.component.ts | 41 +++++++++++-------- .../object-collection.component.html | 10 +++++ 3 files changed, 39 insertions(+), 20 deletions(-) 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 934bb3933c..daf72acd19 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 @@ -1,12 +1,12 @@ - -
+ +

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

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

+ [objects]="communitiesRD$ | async" + (paginationChange)="onPaginationChange($event)">
diff --git a/src/app/+home-page/top-level-community-list/top-level-community-list.component.ts b/src/app/+home-page/top-level-community-list/top-level-community-list.component.ts index 3fdb7e48a2..e3877a3352 100644 --- a/src/app/+home-page/top-level-community-list/top-level-community-list.component.ts +++ b/src/app/+home-page/top-level-community-list/top-level-community-list.component.ts @@ -1,5 +1,5 @@ -import { ChangeDetectionStrategy, Component } from '@angular/core'; -import { Observable } from 'rxjs'; +import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; +import { BehaviorSubject, Observable } from 'rxjs'; import { SortDirection, SortOptions } from '../../core/cache/models/sort-options.model'; import { CommunityDataService } from '../../core/data/community-data.service'; import { PaginatedList } from '../../core/data/paginated-list'; @@ -9,6 +9,7 @@ import { Community } from '../../core/shared/community.model'; import { fadeInOut } from '../../shared/animations/fade'; import { PaginationComponentOptions } from '../../shared/pagination/pagination-component-options.model'; +import { take } from 'rxjs/operators'; @Component({ selector: 'ds-top-level-community-list', @@ -18,8 +19,8 @@ import { PaginationComponentOptions } from '../../shared/pagination/pagination-c animations: [fadeInOut] }) -export class TopLevelCommunityListComponent { - communitiesRDObs: Observable>>; +export class TopLevelCommunityListComponent implements OnInit { + communitiesRD$: BehaviorSubject>> = new BehaviorSubject>>({} as any); config: PaginationComponentOptions; sortConfig: SortOptions; @@ -29,20 +30,28 @@ export class TopLevelCommunityListComponent { this.config.pageSize = 5; this.config.currentPage = 1; this.sortConfig = new SortOptions('dc.title', SortDirection.ASC); - - this.updatePage({ - page: this.config.currentPage, - pageSize: this.config.pageSize, - sortField: this.sortConfig.field, - direction: this.sortConfig.direction - }); } - updatePage(data) { - this.communitiesRDObs = this.cds.findTop({ - currentPage: data.page, - elementsPerPage: data.pageSize, - sort: { field: data.sortField, direction: data.sortDirection } + ngOnInit() { + this.updatePage(); + } + + onPaginationChange(event) { + console.log(event); + this.config.currentPage = event.page; + this.config.pageSize = event.pageSize; + this.sortConfig.field = event.sortField; + this.sortConfig.direction = event.sortDirection; + this.updatePage(); + } + + updatePage() { + this.cds.findTop({ + currentPage: this.config.currentPage, + elementsPerPage: this.config.pageSize, + sort: { field: this.sortConfig.field, direction: this.sortConfig.direction } + }).pipe(take(1)).subscribe((results) => { + this.communitiesRD$.next(results); }); } } diff --git a/src/app/shared/object-collection/object-collection.component.html b/src/app/shared/object-collection/object-collection.component.html index b1d07db876..a81ee5a882 100644 --- a/src/app/shared/object-collection/object-collection.component.html +++ b/src/app/shared/object-collection/object-collection.component.html @@ -2,6 +2,11 @@ [sortConfig]="sortConfig" [objects]="objects" [hideGear]="hideGear" + (paginationChange)="onPaginationChange($event)" + (pageChange)="onPageChange($event)" + (pageSizeChange)="onPageSizeChange($event)" + (sortDirectionChange)="onSortDirectionChange($event)" + (sortFieldChange)="onSortFieldChange($event)" *ngIf="getViewMode()===viewModeEnum.List"> @@ -9,6 +14,11 @@ [sortConfig]="sortConfig" [objects]="objects" [hideGear]="hideGear" + (paginationChange)="onPaginationChange($event)" + (pageChange)="onPageChange($event)" + (pageSizeChange)="onPageSizeChange($event)" + (sortDirectionChange)="onSortDirectionChange($event)" + (sortFieldChange)="onSortFieldChange($event)" *ngIf="getViewMode()===viewModeEnum.Grid"> From bf83f7f91bc4d612dcd97f21e11b09331ed649f0 Mon Sep 17 00:00:00 2001 From: lotte Date: Thu, 28 Mar 2019 13:26:28 +0100 Subject: [PATCH 2/4] cleaned up console log --- .../top-level-community-list.component.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/app/+home-page/top-level-community-list/top-level-community-list.component.ts b/src/app/+home-page/top-level-community-list/top-level-community-list.component.ts index e3877a3352..d946405fc1 100644 --- a/src/app/+home-page/top-level-community-list/top-level-community-list.component.ts +++ b/src/app/+home-page/top-level-community-list/top-level-community-list.component.ts @@ -37,7 +37,6 @@ export class TopLevelCommunityListComponent implements OnInit { } onPaginationChange(event) { - console.log(event); this.config.currentPage = event.page; this.config.pageSize = event.pageSize; this.sortConfig.field = event.sortField; From 19636a16ad326396964e90c3119e4f4e14e3f075 Mon Sep 17 00:00:00 2001 From: lotte Date: Thu, 28 Mar 2019 13:29:30 +0100 Subject: [PATCH 3/4] added typedoc for toplevel communities component --- .../top-level-community-list.component.ts | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/app/+home-page/top-level-community-list/top-level-community-list.component.ts b/src/app/+home-page/top-level-community-list/top-level-community-list.component.ts index d946405fc1..1115d785a3 100644 --- a/src/app/+home-page/top-level-community-list/top-level-community-list.component.ts +++ b/src/app/+home-page/top-level-community-list/top-level-community-list.component.ts @@ -11,6 +11,9 @@ import { fadeInOut } from '../../shared/animations/fade'; import { PaginationComponentOptions } from '../../shared/pagination/pagination-component-options.model'; import { take } from 'rxjs/operators'; +/** + * this component renders the Top-Level Community list + */ @Component({ selector: 'ds-top-level-community-list', styleUrls: ['./top-level-community-list.component.scss'], @@ -20,8 +23,19 @@ import { take } from 'rxjs/operators'; }) export class TopLevelCommunityListComponent implements OnInit { + /** + * A list of remote data objects of all top communities + */ communitiesRD$: BehaviorSubject>> = new BehaviorSubject>>({} as any); + + /** + * The pagination configuration + */ config: PaginationComponentOptions; + + /** + * The sorting configuration + */ sortConfig: SortOptions; constructor(private cds: CommunityDataService) { @@ -36,6 +50,10 @@ export class TopLevelCommunityListComponent implements OnInit { this.updatePage(); } + /** + * Called when one of the pagination settings is changed + * @param event The new pagination data + */ onPaginationChange(event) { this.config.currentPage = event.page; this.config.pageSize = event.pageSize; @@ -44,6 +62,9 @@ export class TopLevelCommunityListComponent implements OnInit { this.updatePage(); } + /** + * Update the list of top communities + */ updatePage() { this.cds.findTop({ currentPage: this.config.currentPage, From bb2df05bbe8a38c06f5f8189354aa08ff50ecedd Mon Sep 17 00:00:00 2001 From: lotte Date: Thu, 28 Mar 2019 14:54:53 +0100 Subject: [PATCH 4/4] fixed messages and hid pagination gear on home page --- resources/i18n/en.json | 2 +- resources/i18n/nl.json | 32 +++++++++---------- .../top-level-community-list.component.html | 1 + 3 files changed, 18 insertions(+), 17 deletions(-) diff --git a/resources/i18n/en.json b/resources/i18n/en.json index d3df567f71..4dfecf649b 100644 --- a/resources/i18n/en.json +++ b/resources/i18n/en.json @@ -289,7 +289,7 @@ "results-per-page": "Results Per Page", "sort-direction": "Sort Options", "showing": { - "label": "Now showing items ", + "label": "Now showing ", "detail": "{{ range }} of {{ total }}" } }, diff --git a/resources/i18n/nl.json b/resources/i18n/nl.json index 6c3b1fe401..f4dda3b3c8 100644 --- a/resources/i18n/nl.json +++ b/resources/i18n/nl.json @@ -40,8 +40,8 @@ "description": "Beschrijving:" }, "link": { - "simple": "Eenvoudige item weergave", - "full": "Volledige item weergave" + "simple": "Eenvoudige itemweergave", + "full": "Volledige itemweergave" } } }, @@ -52,10 +52,10 @@ }, "pagination": { "results-per-page": "Resultaten per pagina", - "sort-direction": "Sorteer mogelijkheden", + "sort-direction": "Sorteermogelijkheden", "showing": { - "label": "Getoonde items ", - "detail": "{{ range }} tot {{ total }}" + "label": "Resultaten ", + "detail": "{{ range }} van {{ total }}" } }, "sorting": { @@ -116,8 +116,8 @@ "reset": "Filters verwijderen", "applied": { "f.author": "Auteur", - "f.dateIssued.min": "Start datum", - "f.dateIssued.max": "Eind datum", + "f.dateIssued.min": "Startdatum", + "f.dateIssued.max": "Einddatum", "f.subject": "Sleutelwoord", "f.has_content_in_original_bundle": "Heeft bestanden" }, @@ -129,7 +129,7 @@ "head": "Auteur" }, "scope": { - "placeholder": "Bereik filter", + "placeholder": "Bereikfilter", "head": "Bereik" }, "subject": { @@ -159,27 +159,27 @@ "metadata": { "title": "DSpace Angular :: Metadata Register", "head": "Metadata Register", - "description": "Het metadata register omvat de lijst van alle metadata velden die beschikbaar zijn in het systeem. Deze velden kunnen verspreid zijn over verschillende metadata schema's. Het qualified Dublin Core schema (dc) is een verplicht schema en kan niet worden verwijderd.", + "description": "Het metadataregister omvat de lijst van alle metadatavelden die beschikbaar zijn in het systeem. Deze velden kunnen verspreid zijn over verschillende metadataschema's. Het qualified Dublin Core schema (dc) is een verplicht schema en kan niet worden verwijderd.", "schemas": { "table": { "id": "ID", "namespace": "Naamruimte", "name": "Naam" }, - "no-items": "Er kunnen geen metadata schema's getoond worden." + "no-items": "Er kunnen geen metadataschema's getoond worden." } }, "schema": { "title": "DSpace Angular :: Metadata Schema Register", "head": "Metadata Schema", - "description": "Dit is het metadata schema voor \"{{namespace}}\".", + "description": "Dit is het metadataschema voor \"{{namespace}}\".", "fields": { - "head": "Schema metadata velden", + "head": "Schema metadatavelden", "table": { "field": "Veld", "scopenote": "Opmerking over bereik" }, - "no-items": "Er kunnen geen metadata velden getoond worden." + "no-items": "Er kunnen geen metadatavelden getoond worden." } }, "bitstream-formats": { @@ -198,7 +198,7 @@ }, "internal": "intern" }, - "no-items": "Er kunnen geen bitstream formaten getoond worden." + "no-items": "Er kunnen geen bitstreamformaten getoond worden." } } } @@ -229,7 +229,7 @@ "validation": { "pattern": "Deze invoer is niet toegelaten volgens dit patroon: {{ pattern }}.", "license": { - "notgranted": "U moet de invoerlicentie goedkeuren om de invoer af te werken. Indien u deze licentie momenteel niet kan of mag goedkeuren, kan u uw werk opslaan en de invoer later afwerken. U kan dit nieuwe item ook verwijderen indien u niet voldoet aan de vereisten van de invoer licentie." + "notgranted": "U moet de invoerlicentie goedkeuren om de invoer af te werken. Indien u deze licentie momenteel niet kan of mag goedkeuren, kan u uw werk opslaan en de invoer later afwerken. U kunt dit nieuwe item ook verwijderen indien u niet voldoet aan de vereisten van de invoerlicentie." } } }, @@ -271,7 +271,7 @@ "expired": "Uw sessie is vervallen. Gelieve opnieuw aan te melden." }, "errors": { - "invalid-user": "Ongeldig email adres of wachtwoord." + "invalid-user": "Ongeldig e-mailadres of wachtwoord." } } } 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 daf72acd19..f318a04f38 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 @@ -6,6 +6,7 @@ [config]="config" [sortConfig]="sortConfig" [objects]="communitiesRD$ | async" + [hideGear]="true" (paginationChange)="onPaginationChange($event)">