diff --git a/src/app/item-page/full/full-item-page.component.ts b/src/app/item-page/full/full-item-page.component.ts new file mode 100644 index 0000000000..73cfedfbeb --- /dev/null +++ b/src/app/item-page/full/full-item-page.component.ts @@ -0,0 +1,33 @@ +import { Component, OnInit } from '@angular/core'; +import { Item } from "../../core/shared/item.model"; +import { RemoteData } from "../../core/data/remote-data"; +import { Observable } from "rxjs"; +import { Bitstream } from "../../core/shared/bitstream.model"; +import { ItemPageComponent } from "../simple/item-page.component"; +import { Metadatum } from "../../core/shared/metadatum.model"; + +/** + * This component renders a simple item page. + * The route parameter 'id' is used to request the item it represents. + * All fields of the item that should be displayed, are defined in its template. + */ + +@Component({ + selector: 'ds-full-item-page', + styleUrls: ['./full-item-page.component.css'], + templateUrl: './full-item-page.component.html', +}) +export class FullItemPageComponent extends ItemPageComponent { + + metadata: Array; + + universalInit() { + + } + + initialize(params) { + super.initialize(params); + this.metadata = this.item.payload.flatMap(i => i.metadata); + } + +} diff --git a/src/app/item-page/item-page-routing.module.ts b/src/app/item-page/item-page-routing.module.ts index 64c0a607c5..005dbe30cc 100644 --- a/src/app/item-page/item-page-routing.module.ts +++ b/src/app/item-page/item-page-routing.module.ts @@ -1,12 +1,14 @@ import { NgModule } from '@angular/core'; import { RouterModule } from '@angular/router'; -import { ItemPageComponent } from './item-page.component'; +import { ItemPageComponent } from './simple/item-page.component'; +import { FullItemPageComponent } from './full/full-item-page.component'; @NgModule({ imports: [ RouterModule.forChild([ { path: 'items/:id', pathMatch: 'full', component: ItemPageComponent }, + { path: 'items/:id/full', pathMatch: 'full', component: FullItemPageComponent }, ]) ] }) diff --git a/src/app/item-page/item-page.component.scss b/src/app/item-page/item-page.component.scss deleted file mode 100644 index da97dd7a62..0000000000 --- a/src/app/item-page/item-page.component.scss +++ /dev/null @@ -1 +0,0 @@ -@import '../../styles/variables.scss'; diff --git a/src/app/item-page/item-page.module.ts b/src/app/item-page/item-page.module.ts index ab0e2809f6..424013d0a5 100644 --- a/src/app/item-page/item-page.module.ts +++ b/src/app/item-page/item-page.module.ts @@ -1,19 +1,19 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; -import { ItemPageComponent } from './item-page.component'; +import { ItemPageComponent } from './simple/item-page.component'; import { ItemPageRoutingModule } from './item-page-routing.module'; -import { MetadataValuesComponent } from './metadata-values/metadata-values.component'; -import { MetadataUriValuesComponent } from './metadata-uri-values/metadata-uri-values.component'; -import { MetadataFieldWrapperComponent } from './metadata-field-wrapper/metadata-field-wrapper.component'; -import { ItemPageAuthorFieldComponent } from './specific-field/author/item-page-author-field.component'; -import { ItemPageDateFieldComponent } from './specific-field/date/item-page-date-field.component'; -import { ItemPageAbstractFieldComponent } from './specific-field/abstract/item-page-abstract-field.component'; -import { ItemPageUriFieldComponent } from './specific-field/uri/item-page-uri-field.component'; -import { ItemPageTitleFieldComponent } from './specific-field/title/item-page-title-field.component'; -import { ItemPageSpecificFieldComponent } from './specific-field/item-page-specific-field.component'; +import { MetadataValuesComponent } from './simple/metadata-values/metadata-values.component'; +import { MetadataUriValuesComponent } from './simple/metadata-uri-values/metadata-uri-values.component'; +import { MetadataFieldWrapperComponent } from './simple/metadata-field-wrapper/metadata-field-wrapper.component'; +import { ItemPageAuthorFieldComponent } from './simple/specific-field/author/item-page-author-field.component'; +import { ItemPageDateFieldComponent } from './simple/specific-field/date/item-page-date-field.component'; +import { ItemPageAbstractFieldComponent } from './simple/specific-field/abstract/item-page-abstract-field.component'; +import { ItemPageUriFieldComponent } from './simple/specific-field/uri/item-page-uri-field.component'; +import { ItemPageTitleFieldComponent } from './simple/specific-field/title/item-page-title-field.component'; +import { ItemPageSpecificFieldComponent } from './simple/specific-field/item-page-specific-field.component'; import { SharedModule } from './../shared/shared.module'; -import { FileSectionComponent } from "./file-section/file-section.component"; -import { CollectionsComponent } from "./collections/collections.component"; +import { FileSectionComponent } from "./simple/file-section/file-section.component"; +import { CollectionsComponent } from "./simple/collections/collections.component"; @NgModule({ declarations: [ diff --git a/src/app/item-page/collections/collections.component.html b/src/app/item-page/simple/collections/collections.component.html similarity index 100% rename from src/app/item-page/collections/collections.component.html rename to src/app/item-page/simple/collections/collections.component.html diff --git a/src/app/item-page/collections/collections.component.ts b/src/app/item-page/simple/collections/collections.component.ts similarity index 85% rename from src/app/item-page/collections/collections.component.ts rename to src/app/item-page/simple/collections/collections.component.ts index 10afd39ae1..0ae810ca86 100644 --- a/src/app/item-page/collections/collections.component.ts +++ b/src/app/item-page/simple/collections/collections.component.ts @@ -1,7 +1,7 @@ import { Component, Input, OnInit } from '@angular/core'; -import { Collection } from "../../core/shared/collection.model"; +import { Collection } from "../../../core/shared/collection.model"; import { Observable } from "rxjs"; -import { Item } from "../../core/shared/item.model"; +import { Item } from "../../../core/shared/item.model"; /** * This component renders the parent collections section of the item diff --git a/src/app/item-page/file-section/file-section.component.html b/src/app/item-page/simple/file-section/file-section.component.html similarity index 100% rename from src/app/item-page/file-section/file-section.component.html rename to src/app/item-page/simple/file-section/file-section.component.html diff --git a/src/app/item-page/file-section/file-section.component.ts b/src/app/item-page/simple/file-section/file-section.component.ts similarity index 84% rename from src/app/item-page/file-section/file-section.component.ts rename to src/app/item-page/simple/file-section/file-section.component.ts index fe0defb105..359728ac70 100644 --- a/src/app/item-page/file-section/file-section.component.ts +++ b/src/app/item-page/simple/file-section/file-section.component.ts @@ -1,6 +1,6 @@ import { Component, Input, OnInit } from '@angular/core'; -import { Bitstream } from "../../core/shared/bitstream.model"; -import { Item } from "../../core/shared/item.model"; +import { Bitstream } from "../../../core/shared/bitstream.model"; +import { Item } from "../../../core/shared/item.model"; import { Observable } from "rxjs"; /** diff --git a/src/app/item-page/item-page.component.html b/src/app/item-page/simple/item-page.component.html similarity index 100% rename from src/app/item-page/item-page.component.html rename to src/app/item-page/simple/item-page.component.html diff --git a/src/app/item-page/simple/item-page.component.scss b/src/app/item-page/simple/item-page.component.scss new file mode 100644 index 0000000000..48e6526dff --- /dev/null +++ b/src/app/item-page/simple/item-page.component.scss @@ -0,0 +1 @@ +@import '../../../styles/variables'; diff --git a/src/app/item-page/item-page.component.ts b/src/app/item-page/simple/item-page.component.ts similarity index 65% rename from src/app/item-page/item-page.component.ts rename to src/app/item-page/simple/item-page.component.ts index 52fb155184..53e57f3ae1 100644 --- a/src/app/item-page/item-page.component.ts +++ b/src/app/item-page/simple/item-page.component.ts @@ -1,10 +1,10 @@ import { Component, OnInit } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; -import { Item } from "../core/shared/item.model"; -import { ItemDataService } from "../core/data/item-data.service"; -import { RemoteData } from "../core/data/remote-data"; +import { Item } from "../../core/shared/item.model"; +import { ItemDataService } from "../../core/data/item-data.service"; +import { RemoteData } from "../../core/data/remote-data"; import { Observable } from "rxjs"; -import { Bitstream } from "../core/shared/bitstream.model"; +import { Bitstream } from "../../core/shared/bitstream.model"; /** * This component renders a simple item page. @@ -37,11 +37,16 @@ export class ItemPageComponent implements OnInit { ngOnInit(): void { this.sub = this.route.params.subscribe(params => { - this.id = +params['id']; - this.item = this.items.findById(params['id']); - this.thumbnail = this.item.payload.flatMap(i => i.getThumbnail()); + this.initialize(params); }); } + initialize(params) { + this.id = +params['id']; + this.item = this.items.findById(params['id']); + this.thumbnail = this.item.payload.flatMap(i => i.getThumbnail()); + } + + } diff --git a/src/app/item-page/metadata-field-wrapper/metadata-field-wrapper.component.html b/src/app/item-page/simple/metadata-field-wrapper/metadata-field-wrapper.component.html similarity index 100% rename from src/app/item-page/metadata-field-wrapper/metadata-field-wrapper.component.html rename to src/app/item-page/simple/metadata-field-wrapper/metadata-field-wrapper.component.html diff --git a/src/app/item-page/metadata-field-wrapper/metadata-field-wrapper.component.scss b/src/app/item-page/simple/metadata-field-wrapper/metadata-field-wrapper.component.scss similarity index 100% rename from src/app/item-page/metadata-field-wrapper/metadata-field-wrapper.component.scss rename to src/app/item-page/simple/metadata-field-wrapper/metadata-field-wrapper.component.scss diff --git a/src/app/item-page/metadata-field-wrapper/metadata-field-wrapper.component.ts b/src/app/item-page/simple/metadata-field-wrapper/metadata-field-wrapper.component.ts similarity index 100% rename from src/app/item-page/metadata-field-wrapper/metadata-field-wrapper.component.ts rename to src/app/item-page/simple/metadata-field-wrapper/metadata-field-wrapper.component.ts diff --git a/src/app/item-page/metadata-uri-values/metadata-uri-values.component.html b/src/app/item-page/simple/metadata-uri-values/metadata-uri-values.component.html similarity index 100% rename from src/app/item-page/metadata-uri-values/metadata-uri-values.component.html rename to src/app/item-page/simple/metadata-uri-values/metadata-uri-values.component.html diff --git a/src/app/item-page/metadata-uri-values/metadata-uri-values.component.scss b/src/app/item-page/simple/metadata-uri-values/metadata-uri-values.component.scss similarity index 100% rename from src/app/item-page/metadata-uri-values/metadata-uri-values.component.scss rename to src/app/item-page/simple/metadata-uri-values/metadata-uri-values.component.scss diff --git a/src/app/item-page/metadata-uri-values/metadata-uri-values.component.ts b/src/app/item-page/simple/metadata-uri-values/metadata-uri-values.component.ts similarity index 100% rename from src/app/item-page/metadata-uri-values/metadata-uri-values.component.ts rename to src/app/item-page/simple/metadata-uri-values/metadata-uri-values.component.ts diff --git a/src/app/item-page/metadata-values/metadata-values.component.html b/src/app/item-page/simple/metadata-values/metadata-values.component.html similarity index 100% rename from src/app/item-page/metadata-values/metadata-values.component.html rename to src/app/item-page/simple/metadata-values/metadata-values.component.html diff --git a/src/app/item-page/metadata-values/metadata-values.component.scss b/src/app/item-page/simple/metadata-values/metadata-values.component.scss similarity index 100% rename from src/app/item-page/metadata-values/metadata-values.component.scss rename to src/app/item-page/simple/metadata-values/metadata-values.component.scss diff --git a/src/app/item-page/metadata-values/metadata-values.component.ts b/src/app/item-page/simple/metadata-values/metadata-values.component.ts similarity index 100% rename from src/app/item-page/metadata-values/metadata-values.component.ts rename to src/app/item-page/simple/metadata-values/metadata-values.component.ts diff --git a/src/app/item-page/specific-field/abstract/item-page-abstract-field.component.ts b/src/app/item-page/simple/specific-field/abstract/item-page-abstract-field.component.ts similarity index 89% rename from src/app/item-page/specific-field/abstract/item-page-abstract-field.component.ts rename to src/app/item-page/simple/specific-field/abstract/item-page-abstract-field.component.ts index 3e88117654..faa3b0fa1c 100644 --- a/src/app/item-page/specific-field/abstract/item-page-abstract-field.component.ts +++ b/src/app/item-page/simple/specific-field/abstract/item-page-abstract-field.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit, Input } from '@angular/core'; -import { Item } from "../../../core/shared/item.model"; +import { Item } from "../../../../core/shared/item.model"; import { ItemPageSpecificFieldComponent } from "../item-page-specific-field.component"; @Component({ diff --git a/src/app/item-page/specific-field/author/item-page-author-field.component.ts b/src/app/item-page/simple/specific-field/author/item-page-author-field.component.ts similarity index 90% rename from src/app/item-page/specific-field/author/item-page-author-field.component.ts rename to src/app/item-page/simple/specific-field/author/item-page-author-field.component.ts index 2ff76d509a..f5b40e72e6 100644 --- a/src/app/item-page/specific-field/author/item-page-author-field.component.ts +++ b/src/app/item-page/simple/specific-field/author/item-page-author-field.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit, Input } from '@angular/core'; -import { Item } from "../../../core/shared/item.model"; +import { Item } from "../../../../core/shared/item.model"; import { ItemPageSpecificFieldComponent } from "../item-page-specific-field.component"; @Component({ diff --git a/src/app/item-page/specific-field/date/item-page-date-field.component.ts b/src/app/item-page/simple/specific-field/date/item-page-date-field.component.ts similarity index 89% rename from src/app/item-page/specific-field/date/item-page-date-field.component.ts rename to src/app/item-page/simple/specific-field/date/item-page-date-field.component.ts index 16b6aad1f0..977f68e62f 100644 --- a/src/app/item-page/specific-field/date/item-page-date-field.component.ts +++ b/src/app/item-page/simple/specific-field/date/item-page-date-field.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit, Input } from '@angular/core'; -import { Item } from "../../../core/shared/item.model"; +import { Item } from "../../../../core/shared/item.model"; import { ItemPageSpecificFieldComponent } from "../item-page-specific-field.component"; @Component({ diff --git a/src/app/item-page/specific-field/item-page-specific-field.component.html b/src/app/item-page/simple/specific-field/item-page-specific-field.component.html similarity index 100% rename from src/app/item-page/specific-field/item-page-specific-field.component.html rename to src/app/item-page/simple/specific-field/item-page-specific-field.component.html diff --git a/src/app/item-page/specific-field/item-page-specific-field.component.ts b/src/app/item-page/simple/specific-field/item-page-specific-field.component.ts similarity index 93% rename from src/app/item-page/specific-field/item-page-specific-field.component.ts rename to src/app/item-page/simple/specific-field/item-page-specific-field.component.ts index ebb7a29c6f..17d3119921 100644 --- a/src/app/item-page/specific-field/item-page-specific-field.component.ts +++ b/src/app/item-page/simple/specific-field/item-page-specific-field.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit, Input } from '@angular/core'; -import { Item } from "../../core/shared/item.model"; +import { Item } from "../../../core/shared/item.model"; /** * This component can be used to represent metadata on a simple item page. diff --git a/src/app/item-page/specific-field/title/item-page-title-field.component.html b/src/app/item-page/simple/specific-field/title/item-page-title-field.component.html similarity index 100% rename from src/app/item-page/specific-field/title/item-page-title-field.component.html rename to src/app/item-page/simple/specific-field/title/item-page-title-field.component.html diff --git a/src/app/item-page/specific-field/title/item-page-title-field.component.ts b/src/app/item-page/simple/specific-field/title/item-page-title-field.component.ts similarity index 88% rename from src/app/item-page/specific-field/title/item-page-title-field.component.ts rename to src/app/item-page/simple/specific-field/title/item-page-title-field.component.ts index 6dc2d159c8..1f2635458a 100644 --- a/src/app/item-page/specific-field/title/item-page-title-field.component.ts +++ b/src/app/item-page/simple/specific-field/title/item-page-title-field.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit, Input } from '@angular/core'; -import { Item } from "../../../core/shared/item.model"; +import { Item } from "../../../../core/shared/item.model"; import { ItemPageSpecificFieldComponent } from "../item-page-specific-field.component"; @Component({ diff --git a/src/app/item-page/specific-field/uri/item-page-uri-field.component.html b/src/app/item-page/simple/specific-field/uri/item-page-uri-field.component.html similarity index 100% rename from src/app/item-page/specific-field/uri/item-page-uri-field.component.html rename to src/app/item-page/simple/specific-field/uri/item-page-uri-field.component.html diff --git a/src/app/item-page/specific-field/uri/item-page-uri-field.component.ts b/src/app/item-page/simple/specific-field/uri/item-page-uri-field.component.ts similarity index 88% rename from src/app/item-page/specific-field/uri/item-page-uri-field.component.ts rename to src/app/item-page/simple/specific-field/uri/item-page-uri-field.component.ts index 4f7b0bb874..f442075272 100644 --- a/src/app/item-page/specific-field/uri/item-page-uri-field.component.ts +++ b/src/app/item-page/simple/specific-field/uri/item-page-uri-field.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit, Input } from '@angular/core'; -import { Item } from "../../../core/shared/item.model"; +import { Item } from "../../../../core/shared/item.model"; import { ItemPageSpecificFieldComponent } from "../item-page-specific-field.component"; @Component({