diff --git a/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal-issue/journal-issue-search-result-grid-element.component.html b/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal-issue/journal-issue-search-result-grid-element.component.html index c6c29c2f1a..60684314b4 100644 --- a/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal-issue/journal-issue-search-result-grid-element.component.html +++ b/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal-issue/journal-issue-search-result-grid-element.component.html @@ -19,7 +19,7 @@
- +

diff --git a/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal-volume/journal-volume-search-result-grid-element.component.html b/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal-volume/journal-volume-search-result-grid-element.component.html index 5849105f96..c933991a23 100644 --- a/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal-volume/journal-volume-search-result-grid-element.component.html +++ b/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal-volume/journal-volume-search-result-grid-element.component.html @@ -19,7 +19,7 @@
- +

diff --git a/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal/journal-search-result-grid-element.component.html b/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal/journal-search-result-grid-element.component.html index 9a3ea95c07..cf4cc41a21 100644 --- a/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal/journal-search-result-grid-element.component.html +++ b/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal/journal-search-result-grid-element.component.html @@ -19,7 +19,7 @@
- +

diff --git a/src/app/entity-groups/journal-entities/item-list-elements/search-result-list-elements/journal-issue/journal-issue-search-result-list-element.component.html b/src/app/entity-groups/journal-entities/item-list-elements/search-result-list-elements/journal-issue/journal-issue-search-result-list-element.component.html index 36b7e98c51..e8c45e64cc 100644 --- a/src/app/entity-groups/journal-entities/item-list-elements/search-result-list-elements/journal-issue/journal-issue-search-result-list-element.component.html +++ b/src/app/entity-groups/journal-entities/item-list-elements/search-result-list-elements/journal-issue/journal-issue-search-result-list-element.component.html @@ -12,7 +12,7 @@
- +
- +
- +
- +

diff --git a/src/app/entity-groups/research-entities/item-grid-elements/search-result-grid-elements/person/person-search-result-grid-element.component.html b/src/app/entity-groups/research-entities/item-grid-elements/search-result-grid-elements/person/person-search-result-grid-element.component.html index 853a717965..9d85cb3f84 100644 --- a/src/app/entity-groups/research-entities/item-grid-elements/search-result-grid-elements/person/person-search-result-grid-element.component.html +++ b/src/app/entity-groups/research-entities/item-grid-elements/search-result-grid-elements/person/person-search-result-grid-element.component.html @@ -19,7 +19,7 @@
- +

diff --git a/src/app/entity-groups/research-entities/item-grid-elements/search-result-grid-elements/project/project-search-result-grid-element.component.html b/src/app/entity-groups/research-entities/item-grid-elements/search-result-grid-elements/project/project-search-result-grid-element.component.html index a54d136de2..79d07f8040 100644 --- a/src/app/entity-groups/research-entities/item-grid-elements/search-result-grid-elements/project/project-search-result-grid-element.component.html +++ b/src/app/entity-groups/research-entities/item-grid-elements/search-result-grid-elements/project/project-search-result-grid-element.component.html @@ -19,7 +19,7 @@
- +

diff --git a/src/app/entity-groups/research-entities/item-list-elements/search-result-list-elements/org-unit/org-unit-search-result-list-element.component.html b/src/app/entity-groups/research-entities/item-list-elements/search-result-list-elements/org-unit/org-unit-search-result-list-element.component.html index 0bba83a209..1fb3705be7 100644 --- a/src/app/entity-groups/research-entities/item-list-elements/search-result-list-elements/org-unit/org-unit-search-result-list-element.component.html +++ b/src/app/entity-groups/research-entities/item-list-elements/search-result-list-elements/org-unit/org-unit-search-result-list-element.component.html @@ -18,7 +18,7 @@
- +
- +
- + (); - /** - * Whether or not the "Private" badge should be displayed for this listable object - */ - privateBadge = false; - - /** - * Whether or not the "Withdrawn" badge should be displayed for this listable object - */ - withdrawnBadge = false; - /** * Array to track all subscriptions and unsubscribe them onDestroy * @type {Array} @@ -161,8 +151,6 @@ export class ListableObjectComponentLoaderComponent implements OnInit, OnChanges private instantiateComponent(object) { - this.initBadges(); - const component = this.getComponent(object.getRenderTypes(), this.viewMode, this.context); const viewContainerRef = this.listableObjectDirective.viewContainerRef; @@ -195,19 +183,6 @@ export class ListableObjectComponentLoaderComponent implements OnInit, OnChanges } } - /** - * Initialize which badges should be visible in the listable component - */ - initBadges() { - let objectAsAny = this.object as any; - if (hasValue(objectAsAny.indexableObject)) { - objectAsAny = objectAsAny.indexableObject; - } - const objectExistsAndValidViewMode = hasValue(objectAsAny) && this.viewMode !== ViewMode.StandalonePage; - this.privateBadge = objectExistsAndValidViewMode && hasValue(objectAsAny.isDiscoverable) && !objectAsAny.isDiscoverable; - this.withdrawnBadge = objectExistsAndValidViewMode && hasValue(objectAsAny.isWithdrawn) && objectAsAny.isWithdrawn; - } - /** * Fetch the component depending on the item's entity type, view mode and context * @returns {GenericConstructor} diff --git a/src/app/shared/object-grid/search-result-grid-element/collection-search-result/collection-search-result-grid-element.component.html b/src/app/shared/object-grid/search-result-grid-element/collection-search-result/collection-search-result-grid-element.component.html index b05bb4f7ba..ffff88b910 100644 --- a/src/app/shared/object-grid/search-result-grid-element/collection-search-result/collection-search-result-grid-element.component.html +++ b/src/app/shared/object-grid/search-result-grid-element/collection-search-result/collection-search-result-grid-element.component.html @@ -8,7 +8,7 @@
- +

{{dso.name}}

{{dso.shortDescription}}

diff --git a/src/app/shared/object-grid/search-result-grid-element/community-search-result/community-search-result-grid-element.component.html b/src/app/shared/object-grid/search-result-grid-element/community-search-result/community-search-result-grid-element.component.html index d915cdb7a4..e1ddfa97fe 100644 --- a/src/app/shared/object-grid/search-result-grid-element/community-search-result/community-search-result-grid-element.component.html +++ b/src/app/shared/object-grid/search-result-grid-element/community-search-result/community-search-result-grid-element.component.html @@ -8,7 +8,7 @@
- +

{{dso.name}}

{{dso.shortDescription}}

diff --git a/src/app/shared/object-grid/search-result-grid-element/item-search-result/item/item-search-result-grid-element.component.html b/src/app/shared/object-grid/search-result-grid-element/item-search-result/item/item-search-result-grid-element.component.html index c7e7e2d056..fd68b022a1 100644 --- a/src/app/shared/object-grid/search-result-grid-element/item-search-result/item/item-search-result-grid-element.component.html +++ b/src/app/shared/object-grid/search-result-grid-element/item-search-result/item/item-search-result-grid-element.component.html @@ -16,7 +16,7 @@
- + diff --git a/src/app/shared/object-list/badges/badges.component.html b/src/app/shared/object-list/badges/badges.component.html new file mode 100644 index 0000000000..2a5704970c --- /dev/null +++ b/src/app/shared/object-list/badges/badges.component.html @@ -0,0 +1,6 @@ +
+ +
+
+ +
diff --git a/src/app/shared/object-list/badges/badges.component.scss b/src/app/shared/object-list/badges/badges.component.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/app/shared/object-list/badges/badges.component.spec.ts b/src/app/shared/object-list/badges/badges.component.spec.ts new file mode 100644 index 0000000000..1ca24639f8 --- /dev/null +++ b/src/app/shared/object-list/badges/badges.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { BadgesComponent } from './badges.component'; + +describe('BadgesComponent', () => { + let component: BadgesComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ BadgesComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(BadgesComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/shared/object-list/badges/badges.component.ts b/src/app/shared/object-list/badges/badges.component.ts new file mode 100644 index 0000000000..31baba1d2c --- /dev/null +++ b/src/app/shared/object-list/badges/badges.component.ts @@ -0,0 +1,11 @@ +import { Component, Input } from '@angular/core'; +import { DSpaceObject } from '../../../core/shared/dspace-object.model'; + +@Component({ + selector: 'ds-badges', + templateUrl: './badges.component.html', + styleUrls: ['./badges.component.scss'] +}) +export class BadgesComponent { + @Input() object: DSpaceObject; +} diff --git a/src/app/shared/object-list/badges/status-badge/status-badge.component.html b/src/app/shared/object-list/badges/status-badge/status-badge.component.html new file mode 100644 index 0000000000..1f28aedf34 --- /dev/null +++ b/src/app/shared/object-list/badges/status-badge/status-badge.component.html @@ -0,0 +1,6 @@ + + {{ "item.badge.private" | translate }} + + + {{ "item.badge.withdrawn" | translate }} + diff --git a/src/app/shared/object-list/badges/status-badge/status-badge.component.spec.ts b/src/app/shared/object-list/badges/status-badge/status-badge.component.spec.ts new file mode 100644 index 0000000000..09bc7ea585 --- /dev/null +++ b/src/app/shared/object-list/badges/status-badge/status-badge.component.spec.ts @@ -0,0 +1,78 @@ +import { Item } from '../../../../core/shared/item.model'; +import { of as observableOf } from 'rxjs'; +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; +import { TranslateModule } from '@ngx-translate/core'; +import { TruncatePipe } from '../../../utils/truncate.pipe'; +import { ChangeDetectionStrategy, NO_ERRORS_SCHEMA } from '@angular/core'; +import { By } from '@angular/platform-browser'; +import { StatusBadgeComponent } from './status-badge.component'; + +let comp: StatusBadgeComponent; +let fixture: ComponentFixture; + +const type = 'authorOfPublication'; + +const mockItemWithEntityType = Object.assign(new Item(), { + bundles: observableOf({}), + metadata: { + 'dspace.entity.type': [ + { + language: 'en_US', + value: type + } + ] + } +}); + +const mockItemWithoutEntityType = Object.assign(new Item(), { + bundles: observableOf({}), + metadata: { + 'dc.title': [ + { + language: 'en_US', + value: 'This is just another title' + } + ] + } +}); + +describe('ItemTypeBadgeComponent', () => { + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + imports: [TranslateModule.forRoot()], + declarations: [StatusBadgeComponent, TruncatePipe], + schemas: [NO_ERRORS_SCHEMA] + }).overrideComponent(StatusBadgeComponent, { + set: { changeDetection: ChangeDetectionStrategy.Default } + }).compileComponents(); + })); + + beforeEach(waitForAsync(() => { + fixture = TestBed.createComponent(StatusBadgeComponent); + comp = fixture.componentInstance; + })); + + describe('When the item has an entity type', () => { + beforeEach(() => { + comp.object = mockItemWithEntityType; + fixture.detectChanges(); + }); + + it('should show the entity type badge', () => { + const badge = fixture.debugElement.query(By.css('span.badge')); + expect(badge.nativeElement.textContent).toContain(type.toLowerCase()); + }); + }); + + describe('When the item has no entity type', () => { + beforeEach(() => { + comp.object = mockItemWithoutEntityType; + fixture.detectChanges(); + }); + + it('should show an item badge', () => { + const badge = fixture.debugElement.query(By.css('span.badge')); + expect(badge.nativeElement.textContent).toContain('item'); + }); + }); +}); diff --git a/src/app/shared/object-list/badges/status-badge/status-badge.component.ts b/src/app/shared/object-list/badges/status-badge/status-badge.component.ts new file mode 100644 index 0000000000..7f52741c51 --- /dev/null +++ b/src/app/shared/object-list/badges/status-badge/status-badge.component.ts @@ -0,0 +1,41 @@ +import { Component, Input, OnInit } from '@angular/core'; +import { DSpaceObject } from '../../../../core/shared/dspace-object.model'; +import { hasValue } from '../../../empty.util'; + +@Component({ + selector: 'ds-status-badge', + templateUrl: './status-badge.component.html' +}) +/** + * Component rendering the status of an item as a badge + */ +export class StatusBadgeComponent implements OnInit { + + /** + * The component used to retrieve the status from + */ + @Input() object: DSpaceObject; + + /** + * Whether or not the "Private" badge should be displayed for this listable object + */ + privateBadge = false; + + /** + * Whether or not the "Withdrawn" badge should be displayed for this listable object + */ + withdrawnBadge = false; + + /** + * Initialize which badges should be visible + */ + ngOnInit(): void { + let objectAsAny = this.object as any; + if (hasValue(objectAsAny.indexableObject)) { + objectAsAny = objectAsAny.indexableObject; + } + const objectExists = hasValue(objectAsAny); + this.privateBadge = objectExists && hasValue(objectAsAny.isDiscoverable) && !objectAsAny.isDiscoverable; + this.withdrawnBadge = objectExists && hasValue(objectAsAny.isWithdrawn) && objectAsAny.isWithdrawn; + } +} diff --git a/src/app/shared/object-list/badges/status-badge/themed-status-badge.component.ts b/src/app/shared/object-list/badges/status-badge/themed-status-badge.component.ts new file mode 100644 index 0000000000..d855fda555 --- /dev/null +++ b/src/app/shared/object-list/badges/status-badge/themed-status-badge.component.ts @@ -0,0 +1,31 @@ +import { Component, Input } from '@angular/core'; +import { ThemedComponent } from '../../../theme-support/themed.component'; +import { StatusBadgeComponent } from './status-badge.component'; +import { DSpaceObject } from '../../../../core/shared/dspace-object.model'; +import { TypeBadgeComponent } from '../type-badge/type-badge.component'; + +/** + * Themed wrapper for StatusBadgeComponent + */ +@Component({ + selector: 'ds-themed-status-badge', + styleUrls: [], + templateUrl: '../../../../shared/theme-support/themed.component.html', +}) +export class ThemedStatusBadgeComponent extends ThemedComponent { + @Input() object: DSpaceObject; + + protected inAndOutputNames: (keyof StatusBadgeComponent & keyof this)[] = ['object']; + + protected getComponentName(): string { + return 'StatusBadgeComponent'; + } + + protected importThemedComponent(themeName: string): Promise { + return import(`../../../../../themes/${themeName}/app/shared/object-list/badges/status-badge/status-badge.component`); + } + + protected importUnthemedComponent(): Promise { + return import(`./status-badge.component`); + } +} diff --git a/src/app/shared/object-list/badges/themed-badges.component.ts b/src/app/shared/object-list/badges/themed-badges.component.ts new file mode 100644 index 0000000000..8682e33e2e --- /dev/null +++ b/src/app/shared/object-list/badges/themed-badges.component.ts @@ -0,0 +1,32 @@ +import { Component, Input } from '@angular/core'; +import { BadgesComponent } from './badges.component'; +import { ThemedComponent } from '../../theme-support/themed.component'; +import { Observable } from 'rxjs/internal/Observable'; +import { SearchFiltersComponent } from '../../search/search-filters/search-filters.component'; +import { DSpaceObject } from '../../../core/shared/dspace-object.model'; + +/** + * Themed wrapper for BadgesComponent + */ +@Component({ + selector: 'ds-themed-badges', + styleUrls: [], + templateUrl: '../../../shared/theme-support/themed.component.html', +}) +export class ThemedBadgesComponent extends ThemedComponent { + @Input() object: DSpaceObject; + + protected inAndOutputNames: (keyof BadgesComponent & keyof this)[] = ['object']; + + protected getComponentName(): string { + return 'BadgesComponent'; + } + + protected importThemedComponent(themeName: string): Promise { + return import(`../../../../themes/${themeName}/app/shared/object-list/badges/badges.component`); + } + + protected importUnthemedComponent(): Promise { + return import(`./badges.component`); + } +} diff --git a/src/app/shared/object-list/badges/type-badge/themed-type-badge.component.ts b/src/app/shared/object-list/badges/type-badge/themed-type-badge.component.ts new file mode 100644 index 0000000000..58e56dbe88 --- /dev/null +++ b/src/app/shared/object-list/badges/type-badge/themed-type-badge.component.ts @@ -0,0 +1,31 @@ +import { Component, Input } from '@angular/core'; +import { ThemedComponent } from '../../../theme-support/themed.component'; +import { TypeBadgeComponent } from './type-badge.component'; +import { DSpaceObject } from '../../../../core/shared/dspace-object.model'; +import { BadgesComponent } from '../badges.component'; + +/** + * Themed wrapper for TypeBadgeComponent + */ +@Component({ + selector: 'ds-themed-type-badge', + styleUrls: [], + templateUrl: '../../../../shared/theme-support/themed.component.html', +}) +export class ThemedTypeBadgeComponent extends ThemedComponent { + @Input() object: DSpaceObject; + + protected inAndOutputNames: (keyof TypeBadgeComponent & keyof this)[] = ['object']; + + protected getComponentName(): string { + return 'TypeBadgeComponent'; + } + + protected importThemedComponent(themeName: string): Promise { + return import(`../../../../../themes/${themeName}/app/shared/object-list/badges/type-badge/type-badge.component`); + } + + protected importUnthemedComponent(): Promise { + return import(`./type-badge.component`); + } +} diff --git a/src/app/shared/object-list/type-badge/type-badge.component.html b/src/app/shared/object-list/badges/type-badge/type-badge.component.html similarity index 66% rename from src/app/shared/object-list/type-badge/type-badge.component.html rename to src/app/shared/object-list/badges/type-badge/type-badge.component.html index 0c2bd7544e..119702c375 100644 --- a/src/app/shared/object-list/type-badge/type-badge.component.html +++ b/src/app/shared/object-list/badges/type-badge/type-badge.component.html @@ -1,3 +1,3 @@ -
+ {{ typeMessage | translate }} -
+ diff --git a/src/app/shared/object-list/type-badge/type-badge.component.spec.ts b/src/app/shared/object-list/badges/type-badge/type-badge.component.spec.ts similarity index 94% rename from src/app/shared/object-list/type-badge/type-badge.component.spec.ts rename to src/app/shared/object-list/badges/type-badge/type-badge.component.spec.ts index 9a7e22c551..21c12ec372 100644 --- a/src/app/shared/object-list/type-badge/type-badge.component.spec.ts +++ b/src/app/shared/object-list/badges/type-badge/type-badge.component.spec.ts @@ -1,8 +1,8 @@ -import { Item } from '../../../core/shared/item.model'; +import { Item } from '../../../../core/shared/item.model'; import { of as observableOf } from 'rxjs'; import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import { TranslateModule } from '@ngx-translate/core'; -import { TruncatePipe } from '../../utils/truncate.pipe'; +import { TruncatePipe } from '../../../utils/truncate.pipe'; import { ChangeDetectionStrategy, NO_ERRORS_SCHEMA } from '@angular/core'; import { By } from '@angular/platform-browser'; import { TypeBadgeComponent } from './type-badge.component'; diff --git a/src/app/shared/object-list/type-badge/type-badge.component.ts b/src/app/shared/object-list/badges/type-badge/type-badge.component.ts similarity index 84% rename from src/app/shared/object-list/type-badge/type-badge.component.ts rename to src/app/shared/object-list/badges/type-badge/type-badge.component.ts index 8e843af1e7..2fba2515a9 100644 --- a/src/app/shared/object-list/type-badge/type-badge.component.ts +++ b/src/app/shared/object-list/badges/type-badge/type-badge.component.ts @@ -1,7 +1,7 @@ import { Component, Input } from '@angular/core'; -import { DSpaceObject } from '../../../core/shared/dspace-object.model'; -import { hasValue, isEmpty } from '../../empty.util'; -import { getResourceTypeValueFor } from '../../../core/cache/object-cache.reducer'; +import { DSpaceObject } from '../../../../core/shared/dspace-object.model'; +import { hasValue, isEmpty } from '../../../empty.util'; +import { getResourceTypeValueFor } from '../../../../core/cache/object-cache.reducer'; @Component({ selector: 'ds-type-badge', diff --git a/src/app/shared/object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component.html b/src/app/shared/object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component.html index d2db0ba209..c581de1e81 100644 --- a/src/app/shared/object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component.html +++ b/src/app/shared/object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component.html @@ -9,7 +9,7 @@
- +
diff --git a/src/app/shared/object-list/search-result-list-element/collection-search-result/collection-search-result-list-element.component.html b/src/app/shared/object-list/search-result-list-element/collection-search-result/collection-search-result-list-element.component.html index 83a8f4fdfa..4aa18dd63e 100644 --- a/src/app/shared/object-list/search-result-list-element/collection-search-result/collection-search-result-list-element.component.html +++ b/src/app/shared/object-list/search-result-list-element/collection-search-result/collection-search-result-list-element.component.html @@ -1,7 +1,7 @@
- +
diff --git a/src/app/shared/object-list/search-result-list-element/community-search-result/community-search-result-list-element.component.html b/src/app/shared/object-list/search-result-list-element/community-search-result/community-search-result-list-element.component.html index 22be357a53..119023a10c 100644 --- a/src/app/shared/object-list/search-result-list-element/community-search-result/community-search-result-list-element.component.html +++ b/src/app/shared/object-list/search-result-list-element/community-search-result/community-search-result-list-element.component.html @@ -1,7 +1,7 @@
- +
diff --git a/src/app/shared/object-list/search-result-list-element/item-search-result/item-types/item/item-search-result-list-element.component.html b/src/app/shared/object-list/search-result-list-element/item-search-result/item-types/item/item-search-result-list-element.component.html index 6b2951495d..c9345e86f0 100644 --- a/src/app/shared/object-list/search-result-list-element/item-search-result/item-types/item/item-search-result-list-element.component.html +++ b/src/app/shared/object-list/search-result-list-element/item-search-result/item-types/item/item-search-result-list-element.component.html @@ -12,7 +12,7 @@
- +
diff --git a/src/app/shared/shared.module.ts b/src/app/shared/shared.module.ts index 60f1916adb..91d1825427 100644 --- a/src/app/shared/shared.module.ts +++ b/src/app/shared/shared.module.ts @@ -205,7 +205,7 @@ import { DsoInputSuggestionsComponent } from './input-suggestions/dso-input-suggestions/dso-input-suggestions.component'; import { ItemGridElementComponent } from './object-grid/item-grid-element/item-types/item/item-grid-element.component'; -import { TypeBadgeComponent } from './object-list/type-badge/type-badge.component'; +import { TypeBadgeComponent } from './object-list/badges/type-badge/type-badge.component'; import { AccessStatusBadgeComponent } from './object-list/access-status-badge/access-status-badge.component'; import { MetadataRepresentationLoaderComponent @@ -325,6 +325,11 @@ import { import { MarkdownPipe } from './utils/markdown.pipe'; import { GoogleRecaptchaModule } from '../core/google-recaptcha/google-recaptcha.module'; import { ThemedListableObjectComponentLoaderComponent } from './object-collection/shared/listable-object/themed-listable-object-component-loader.component'; +import { StatusBadgeComponent } from './object-list/badges/status-badge/status-badge.component'; +import { BadgesComponent } from './object-list/badges/badges.component'; +import { ThemedBadgesComponent } from './object-list/badges/themed-badges.component'; +import { ThemedStatusBadgeComponent } from './object-list/badges/status-badge/themed-status-badge.component'; +import { ThemedTypeBadgeComponent } from './object-list/badges/type-badge/themed-type-badge.component'; const MODULES = [ CommonModule, @@ -460,6 +465,11 @@ const COMPONENTS = [ ComcolMetadataComponent, TypeBadgeComponent, AccessStatusBadgeComponent, + ThemedTypeBadgeComponent, + StatusBadgeComponent, + ThemedStatusBadgeComponent, + BadgesComponent, + ThemedBadgesComponent, BrowseByComponent, AbstractTrackableComponent, @@ -634,6 +644,7 @@ const DIRECTIVES = [ ...SHARED_ITEM_PAGE_COMPONENTS, ItemVersionsSummaryModalComponent, ItemVersionsDeleteModalComponent, + BadgesComponent, ], providers: [ ...PROVIDERS diff --git a/src/themes/custom/app/shared/object-list/badges/badges.component.html b/src/themes/custom/app/shared/object-list/badges/badges.component.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/shared/object-list/badges/badges.component.scss b/src/themes/custom/app/shared/object-list/badges/badges.component.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/shared/object-list/badges/badges.component.ts b/src/themes/custom/app/shared/object-list/badges/badges.component.ts new file mode 100644 index 0000000000..e3946823f3 --- /dev/null +++ b/src/themes/custom/app/shared/object-list/badges/badges.component.ts @@ -0,0 +1,11 @@ +import { Component } from '@angular/core'; +import { BadgesComponent as BaseComponent } from 'src/app/shared/object-list/badges/badges.component'; + +@Component({ + selector: 'ds-badges', + // styleUrls: ['./badges.component.scss'], + // templateUrl: './badges.component.html', + templateUrl: '../../../../../../app/shared/object-list/badges/badges.component.html', +}) +export class BadgesComponent extends BaseComponent { +} diff --git a/src/themes/custom/app/shared/object-list/badges/status-badge/status-badge.component.html b/src/themes/custom/app/shared/object-list/badges/status-badge/status-badge.component.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/shared/object-list/badges/status-badge/status-badge.component.scss b/src/themes/custom/app/shared/object-list/badges/status-badge/status-badge.component.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/shared/object-list/badges/status-badge/status-badge.component.ts b/src/themes/custom/app/shared/object-list/badges/status-badge/status-badge.component.ts new file mode 100644 index 0000000000..99c5f24b1a --- /dev/null +++ b/src/themes/custom/app/shared/object-list/badges/status-badge/status-badge.component.ts @@ -0,0 +1,11 @@ +import { Component } from '@angular/core'; +import { StatusBadgeComponent as BaseComponent } from 'src/app/shared/object-list/badges/status-badge/status-badge.component'; + +@Component({ + selector: 'ds-status-badge', + // styleUrls: ['./status-badge.component.scss'], + // templateUrl: './status-badge.component.html', + templateUrl: '../../../../../../../app/shared/object-list/badges/status-badge/status-badge.component.html', +}) +export class StatusBadgeComponent extends BaseComponent { +} diff --git a/src/themes/custom/app/shared/object-list/badges/type-badge/type-badge.component.html b/src/themes/custom/app/shared/object-list/badges/type-badge/type-badge.component.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/shared/object-list/badges/type-badge/type-badge.component.scss b/src/themes/custom/app/shared/object-list/badges/type-badge/type-badge.component.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/shared/object-list/badges/type-badge/type-badge.component.ts b/src/themes/custom/app/shared/object-list/badges/type-badge/type-badge.component.ts new file mode 100644 index 0000000000..b304dfed92 --- /dev/null +++ b/src/themes/custom/app/shared/object-list/badges/type-badge/type-badge.component.ts @@ -0,0 +1,11 @@ +import { Component } from '@angular/core'; +import { TypeBadgeComponent as BaseComponent } from 'src/app/shared/object-list/badges/type-badge/type-badge.component'; + +@Component({ + selector: 'ds-type-badge', + // styleUrls: ['./type-badge.component.scss'], + // templateUrl: './type-badge.component.html', + templateUrl: '../../../../../../../app/shared/object-list/badges/type-badge/type-badge.component.html', +}) +export class TypeBadgeComponent extends BaseComponent { +} diff --git a/src/themes/custom/lazy-theme.module.ts b/src/themes/custom/lazy-theme.module.ts index 7b96894709..18c9351d43 100644 --- a/src/themes/custom/lazy-theme.module.ts +++ b/src/themes/custom/lazy-theme.module.ts @@ -117,6 +117,9 @@ import { BrowseByTitlePageComponent } from './app/browse-by/browse-by-title-page import { SearchFiltersComponent } from './app/shared/search/search-filters/search-filters.component'; import { SearchSidebarComponent } from './app/shared/search/search-sidebar/search-sidebar.component'; import { ListableObjectComponentLoaderComponent } from './app/shared/object-collection/shared/listable-object/listable-object-component-loader.component'; +import { BadgesComponent } from './app/shared/object-list/badges/badges.component'; +import { StatusBadgeComponent } from './app/shared/object-list/badges/status-badge/status-badge.component'; +import { TypeBadgeComponent } from './app/shared/object-list/badges/type-badge/type-badge.component'; const DECLARATIONS = [ FileSectionComponent, @@ -173,7 +176,10 @@ const DECLARATIONS = [ BrowseByTitlePageComponent, SearchFiltersComponent, SearchSidebarComponent, - ListableObjectComponentLoaderComponent + ListableObjectComponentLoaderComponent, + BadgesComponent, + StatusBadgeComponent, + TypeBadgeComponent, ]; @NgModule({