From 536cb62cc06f83374475e7e31d4b7e920f506304 Mon Sep 17 00:00:00 2001 From: damian Date: Mon, 15 May 2023 16:09:17 +0200 Subject: [PATCH 1/5] Displaying item counts at Communities and Collections list view. --- .../community-list/community-list.component.html | 1 + src/app/core/shared/collection.model.ts | 7 ++++++- src/app/core/shared/community.model.ts | 7 ++++++- .../collection-list-element.component.html | 2 ++ 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/app/community-list-page/community-list/community-list.component.html b/src/app/community-list-page/community-list/community-list.component.html index ea772bb891..efc1f086ae 100644 --- a/src/app/community-list-page/community-list/community-list.component.html +++ b/src/app/community-list-page/community-list/community-list.component.html @@ -37,6 +37,7 @@ {{node.name}} + [{{node.payload.archivedItems}}] diff --git a/src/app/core/shared/collection.model.ts b/src/app/core/shared/collection.model.ts index d1c49c8d4b..81efc33510 100644 --- a/src/app/core/shared/collection.model.ts +++ b/src/app/core/shared/collection.model.ts @@ -1,4 +1,4 @@ -import { deserialize, inheritSerialization } from 'cerialize'; +import {autoserialize, deserialize, inheritSerialization} from 'cerialize'; import { Observable } from 'rxjs'; import { link, typedObject } from '../cache/builders/build-decorators'; import { PaginatedList } from '../data/paginated-list.model'; @@ -16,12 +16,17 @@ import { COMMUNITY } from './community.resource-type'; import { Community } from './community.model'; import { ChildHALResource } from './child-hal-resource.model'; import { HandleObject } from './handle-object.model'; +import {excludeFromEquals} from '../utilities/equals.decorators'; @typedObject @inheritSerialization(DSpaceObject) export class Collection extends DSpaceObject implements ChildHALResource, HandleObject { static type = COLLECTION; + @excludeFromEquals + @autoserialize + archivedItems: number; + /** * The {@link HALLink}s for this Collection */ diff --git a/src/app/core/shared/community.model.ts b/src/app/core/shared/community.model.ts index f16aad9645..0bab8cfa22 100644 --- a/src/app/core/shared/community.model.ts +++ b/src/app/core/shared/community.model.ts @@ -1,4 +1,4 @@ -import { deserialize, inheritSerialization } from 'cerialize'; +import {autoserialize, deserialize, inheritSerialization} from 'cerialize'; import { Observable } from 'rxjs'; import { link, typedObject } from '../cache/builders/build-decorators'; import { PaginatedList } from '../data/paginated-list.model'; @@ -12,12 +12,17 @@ import { DSpaceObject } from './dspace-object.model'; import { HALLink } from './hal-link.model'; import { ChildHALResource } from './child-hal-resource.model'; import { HandleObject } from './handle-object.model'; +import {excludeFromEquals} from '../utilities/equals.decorators'; @typedObject @inheritSerialization(DSpaceObject) export class Community extends DSpaceObject implements ChildHALResource, HandleObject { static type = COMMUNITY; + @excludeFromEquals + @autoserialize + archivedItems: number; + /** * The {@link HALLink}s for this Community */ diff --git a/src/app/shared/object-list/collection-list-element/collection-list-element.component.html b/src/app/shared/object-list/collection-list-element/collection-list-element.component.html index c61adf5dad..b45a9a03bc 100644 --- a/src/app/shared/object-list/collection-list-element/collection-list-element.component.html +++ b/src/app/shared/object-list/collection-list-element/collection-list-element.component.html @@ -3,7 +3,9 @@ {{object.name}} + [{{object.archivedItems}}] +
{{object.shortDescription}}
From da7cb11bcb5ba54290d8a04f3a30a20075a89f40 Mon Sep 17 00:00:00 2001 From: damian Date: Mon, 15 May 2023 20:34:46 +0200 Subject: [PATCH 2/5] Archived items moved outside initial span element(fix for tests) --- .../collection-list-element.component.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/app/shared/object-list/collection-list-element/collection-list-element.component.html b/src/app/shared/object-list/collection-list-element/collection-list-element.component.html index b45a9a03bc..b1900908a5 100644 --- a/src/app/shared/object-list/collection-list-element/collection-list-element.component.html +++ b/src/app/shared/object-list/collection-list-element/collection-list-element.component.html @@ -3,9 +3,10 @@ {{object.name}} - [{{object.archivedItems}}] +[{{object.archivedItems}}] +
{{object.shortDescription}}
From 388c08b9a13cf636eb0487e595a9e1017bad1d0f Mon Sep 17 00:00:00 2001 From: damian Date: Mon, 15 May 2023 20:34:46 +0200 Subject: [PATCH 3/5] Archived items moved outside initial span element(fix for tests). Tests added. --- .../community-list.component.html | 2 +- .../collection-list-element.component.html | 4 +- .../collection-list-element.component.spec.ts | 52 ++++++++++++++++++- 3 files changed, 52 insertions(+), 6 deletions(-) diff --git a/src/app/community-list-page/community-list/community-list.component.html b/src/app/community-list-page/community-list/community-list.component.html index efc1f086ae..5f940b4405 100644 --- a/src/app/community-list-page/community-list/community-list.component.html +++ b/src/app/community-list-page/community-list/community-list.component.html @@ -37,7 +37,7 @@ {{node.name}} - [{{node.payload.archivedItems}}] + [{{node.payload.archivedItems}}] diff --git a/src/app/shared/object-list/collection-list-element/collection-list-element.component.html b/src/app/shared/object-list/collection-list-element/collection-list-element.component.html index b1900908a5..1fdb97f17b 100644 --- a/src/app/shared/object-list/collection-list-element/collection-list-element.component.html +++ b/src/app/shared/object-list/collection-list-element/collection-list-element.component.html @@ -4,9 +4,7 @@ {{object.name}} - -[{{object.archivedItems}}] - +[{{object.archivedItems}}]
{{object.shortDescription}}
diff --git a/src/app/shared/object-list/collection-list-element/collection-list-element.component.spec.ts b/src/app/shared/object-list/collection-list-element/collection-list-element.component.spec.ts index c41d5a7314..c1d9665bc3 100644 --- a/src/app/shared/object-list/collection-list-element/collection-list-element.component.spec.ts +++ b/src/app/shared/object-list/collection-list-element/collection-list-element.component.spec.ts @@ -7,6 +7,29 @@ import { Collection } from '../../../core/shared/collection.model'; let collectionListElementComponent: CollectionListElementComponent; let fixture: ComponentFixture; +const mockCollectionWithArchivedItems: Collection = Object.assign(new Collection(), { + metadata: { + 'dc.title': [ + { + language: 'en_US', + value: 'Test title' + } + ] + }, archivedItems: 1 +}); + +const mockCollectionWithoutArchivedItems: Collection = Object.assign(new Collection(), { + metadata: { + 'dc.title': [ + { + language: 'en_US', + value: 'Test title' + } + ] + }, archivedItems: 0 +}); + + const mockCollectionWithAbstract: Collection = Object.assign(new Collection(), { metadata: { 'dc.description.abstract': [ @@ -15,7 +38,7 @@ const mockCollectionWithAbstract: Collection = Object.assign(new Collection(), { value: 'Short description' } ] - } + }, archivedItems: 1 }); const mockCollectionWithoutAbstract: Collection = Object.assign(new Collection(), { @@ -26,7 +49,7 @@ const mockCollectionWithoutAbstract: Collection = Object.assign(new Collection() value: 'Test title' } ] - } + }, archivedItems: 1 }); describe('CollectionListElementComponent', () => { @@ -71,4 +94,29 @@ describe('CollectionListElementComponent', () => { expect(collectionAbstractField).toBeNull(); }); }); + + + describe('When the collection has archived items', () => { + beforeEach(() => { + collectionListElementComponent.object = mockCollectionWithArchivedItems; + fixture.detectChanges(); + }); + + it('should show the archived items paragraph', () => { + const field = fixture.debugElement.query(By.css('span.archived-items-lead')); + expect(field).not.toBeNull(); + }); + }); + + describe('When the collection has no archived items', () => { + beforeEach(() => { + collectionListElementComponent.object = mockCollectionWithoutArchivedItems; + fixture.detectChanges(); + }); + + it('should not show the archived items paragraph', () => { + const field = fixture.debugElement.query(By.css('span.archived-items-lead')); + expect(field).toBeNull(); + }); + }); }); From 8cc96060ff6b9e8ee59f39f3b2ba8144403f161c Mon Sep 17 00:00:00 2001 From: damian Date: Fri, 9 Jun 2023 16:44:29 +0200 Subject: [PATCH 4/5] Variable name change. --- .../community-list/community-list.component.html | 2 +- src/app/core/shared/collection.model.ts | 4 ++-- src/app/core/shared/community.model.ts | 2 +- .../collection-list-element.component.html | 2 +- .../collection-list-element.component.spec.ts | 8 ++++---- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/app/community-list-page/community-list/community-list.component.html b/src/app/community-list-page/community-list/community-list.component.html index 5f940b4405..7f8dcf0c45 100644 --- a/src/app/community-list-page/community-list/community-list.component.html +++ b/src/app/community-list-page/community-list/community-list.component.html @@ -37,7 +37,7 @@ {{node.name}} - [{{node.payload.archivedItems}}] + [{{node.payload.archivedItemsCount}}] diff --git a/src/app/core/shared/collection.model.ts b/src/app/core/shared/collection.model.ts index 81efc33510..c97c61eceb 100644 --- a/src/app/core/shared/collection.model.ts +++ b/src/app/core/shared/collection.model.ts @@ -16,7 +16,7 @@ import { COMMUNITY } from './community.resource-type'; import { Community } from './community.model'; import { ChildHALResource } from './child-hal-resource.model'; import { HandleObject } from './handle-object.model'; -import {excludeFromEquals} from '../utilities/equals.decorators'; +import { excludeFromEquals } from '../utilities/equals.decorators'; @typedObject @inheritSerialization(DSpaceObject) @@ -25,7 +25,7 @@ export class Collection extends DSpaceObject implements ChildHALResource, Handle @excludeFromEquals @autoserialize - archivedItems: number; + archivedItemsCount: number; /** * The {@link HALLink}s for this Collection diff --git a/src/app/core/shared/community.model.ts b/src/app/core/shared/community.model.ts index 0bab8cfa22..03b47fb024 100644 --- a/src/app/core/shared/community.model.ts +++ b/src/app/core/shared/community.model.ts @@ -21,7 +21,7 @@ export class Community extends DSpaceObject implements ChildHALResource, HandleO @excludeFromEquals @autoserialize - archivedItems: number; + archivedItemsCount: number; /** * The {@link HALLink}s for this Community diff --git a/src/app/shared/object-list/collection-list-element/collection-list-element.component.html b/src/app/shared/object-list/collection-list-element/collection-list-element.component.html index 1fdb97f17b..68a84a88e5 100644 --- a/src/app/shared/object-list/collection-list-element/collection-list-element.component.html +++ b/src/app/shared/object-list/collection-list-element/collection-list-element.component.html @@ -4,7 +4,7 @@ {{object.name}} -[{{object.archivedItems}}] +[{{object.archivedItemsCount}}]
{{object.shortDescription}}
diff --git a/src/app/shared/object-list/collection-list-element/collection-list-element.component.spec.ts b/src/app/shared/object-list/collection-list-element/collection-list-element.component.spec.ts index c1d9665bc3..b911bdd2eb 100644 --- a/src/app/shared/object-list/collection-list-element/collection-list-element.component.spec.ts +++ b/src/app/shared/object-list/collection-list-element/collection-list-element.component.spec.ts @@ -15,7 +15,7 @@ const mockCollectionWithArchivedItems: Collection = Object.assign(new Collection value: 'Test title' } ] - }, archivedItems: 1 + }, archivedItemsCount: 1 }); const mockCollectionWithoutArchivedItems: Collection = Object.assign(new Collection(), { @@ -26,7 +26,7 @@ const mockCollectionWithoutArchivedItems: Collection = Object.assign(new Collect value: 'Test title' } ] - }, archivedItems: 0 + }, archivedItemsCount: 0 }); @@ -38,7 +38,7 @@ const mockCollectionWithAbstract: Collection = Object.assign(new Collection(), { value: 'Short description' } ] - }, archivedItems: 1 + }, archivedItemsCount: 1 }); const mockCollectionWithoutAbstract: Collection = Object.assign(new Collection(), { @@ -49,7 +49,7 @@ const mockCollectionWithoutAbstract: Collection = Object.assign(new Collection() value: 'Test title' } ] - }, archivedItems: 1 + }, archivedItemsCount: 1 }); describe('CollectionListElementComponent', () => { From 8bcceff085825c7aad27a099c7b426b67ba0e4fe Mon Sep 17 00:00:00 2001 From: damian Date: Tue, 13 Jun 2023 19:57:30 +0200 Subject: [PATCH 5/5] Empty communities and collections items count are now shown. Show communities items count at the home page. --- .../community-list/community-list.component.html | 2 +- .../collection-list-element.component.html | 2 +- .../collection-list-element.component.spec.ts | 8 ++++---- .../community-list-element.component.html | 1 + 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/app/community-list-page/community-list/community-list.component.html b/src/app/community-list-page/community-list/community-list.component.html index 7f8dcf0c45..55b043f8e8 100644 --- a/src/app/community-list-page/community-list/community-list.component.html +++ b/src/app/community-list-page/community-list/community-list.component.html @@ -37,7 +37,7 @@ {{node.name}} - [{{node.payload.archivedItemsCount}}] + [{{node.payload.archivedItemsCount}}] diff --git a/src/app/shared/object-list/collection-list-element/collection-list-element.component.html b/src/app/shared/object-list/collection-list-element/collection-list-element.component.html index 68a84a88e5..b007db510e 100644 --- a/src/app/shared/object-list/collection-list-element/collection-list-element.component.html +++ b/src/app/shared/object-list/collection-list-element/collection-list-element.component.html @@ -4,7 +4,7 @@ {{object.name}} -[{{object.archivedItemsCount}}] +[{{object.archivedItemsCount}}]
{{object.shortDescription}}
diff --git a/src/app/shared/object-list/collection-list-element/collection-list-element.component.spec.ts b/src/app/shared/object-list/collection-list-element/collection-list-element.component.spec.ts index b911bdd2eb..2324cc3c1f 100644 --- a/src/app/shared/object-list/collection-list-element/collection-list-element.component.spec.ts +++ b/src/app/shared/object-list/collection-list-element/collection-list-element.component.spec.ts @@ -18,7 +18,7 @@ const mockCollectionWithArchivedItems: Collection = Object.assign(new Collection }, archivedItemsCount: 1 }); -const mockCollectionWithoutArchivedItems: Collection = Object.assign(new Collection(), { +const mockCollectionWithArchivedItemsDisabledAtBackend: Collection = Object.assign(new Collection(), { metadata: { 'dc.title': [ { @@ -26,7 +26,7 @@ const mockCollectionWithoutArchivedItems: Collection = Object.assign(new Collect value: 'Test title' } ] - }, archivedItemsCount: 0 + }, archivedItemsCount: -1 }); @@ -108,9 +108,9 @@ describe('CollectionListElementComponent', () => { }); }); - describe('When the collection has no archived items', () => { + describe('When the collection archived items are disabled at backend', () => { beforeEach(() => { - collectionListElementComponent.object = mockCollectionWithoutArchivedItems; + collectionListElementComponent.object = mockCollectionWithArchivedItemsDisabledAtBackend; fixture.detectChanges(); }); diff --git a/src/app/shared/object-list/community-list-element/community-list-element.component.html b/src/app/shared/object-list/community-list-element/community-list-element.component.html index af01999ca7..26ff040dd6 100644 --- a/src/app/shared/object-list/community-list-element/community-list-element.component.html +++ b/src/app/shared/object-list/community-list-element/community-list-element.component.html @@ -4,6 +4,7 @@ {{object.name}} +[{{object.archivedItemsCount}}]
{{object.shortDescription}}