From 683b58eaafb85abe00ff0c123dde9605ea303a99 Mon Sep 17 00:00:00 2001 From: Kristof De Langhe Date: Fri, 30 Mar 2018 17:18:44 +0200 Subject: [PATCH] 50632: Working metadataschema registry service --- resources/i18n/en.json | 1 + .../metadata-registry.component.html | 2 + .../metadata-schema.component.ts | 2 +- src/app/core/cache/response-cache.models.ts | 21 + src/app/core/core.module.ts | 4 + .../data/metadataschema-parsing.service.ts | 19 + ...etadataschemas-response-parsing.service.ts | 25 + src/app/core/metadata/metadataschema.model.ts | 13 +- ...registry-metadataschemas-response.model.ts | 14 + src/app/core/registry/registry.service.ts | 1255 ++--------------- 10 files changed, 195 insertions(+), 1161 deletions(-) create mode 100644 src/app/core/data/metadataschema-parsing.service.ts create mode 100644 src/app/core/data/registry-metadataschemas-response-parsing.service.ts create mode 100644 src/app/core/registry/registry-metadataschemas-response.model.ts diff --git a/resources/i18n/en.json b/resources/i18n/en.json index b2044b2005..b2367c3d85 100644 --- a/resources/i18n/en.json +++ b/resources/i18n/en.json @@ -136,6 +136,7 @@ "description": "The metadata registry maintains a list of all metadata fields available in the repository. These fields may be divided amongst multiple schemas. However, DSpace requires the qualified Dublin Core schema.", "schemas": { "table": { + "id": "ID", "namespace": "Namespace", "name": "Name" } diff --git a/src/app/+admin/admin-registries/metadata-registry/metadata-registry.component.html b/src/app/+admin/admin-registries/metadata-registry/metadata-registry.component.html index d0c2bb5675..27f761581c 100644 --- a/src/app/+admin/admin-registries/metadata-registry/metadata-registry.component.html +++ b/src/app/+admin/admin-registries/metadata-registry/metadata-registry.component.html @@ -10,12 +10,14 @@ + + diff --git a/src/app/+admin/admin-registries/metadata-schema/metadata-schema.component.ts b/src/app/+admin/admin-registries/metadata-schema/metadata-schema.component.ts index 15d0ee18a2..7e6085a091 100644 --- a/src/app/+admin/admin-registries/metadata-schema/metadata-schema.component.ts +++ b/src/app/+admin/admin-registries/metadata-schema/metadata-schema.component.ts @@ -32,7 +32,7 @@ export class MetadataSchemaComponent implements OnInit { this.metadataSchema = this.registryService.getMetadataSchemaByName(params.schemaName); this.metadataSchema.subscribe((value) => { const schema = value.payload; - this.metadataFields = this.registryService.getMetadataFieldsBySchema(schema); + // this.metadataFields = this.registryService.getMetadataFieldsBySchema(schema); this.namespace = { namespace: value.payload.namespace }; }); } diff --git a/src/app/core/cache/response-cache.models.ts b/src/app/core/cache/response-cache.models.ts index f061e78e6c..94c0ccc58c 100644 --- a/src/app/core/cache/response-cache.models.ts +++ b/src/app/core/cache/response-cache.models.ts @@ -5,6 +5,8 @@ import { BrowseDefinition } from '../shared/browse-definition.model'; import { ConfigObject } from '../shared/config/config.model'; import { FacetValue } from '../../+search-page/search-service/facet-value.model'; import { SearchFilterConfig } from '../../+search-page/search-service/search-filter-config.model'; +import { RegistryMetadataschemasResponse } from '../registry/registry-metadataschemas-response.model'; +import { MetadataSchema } from '../metadata/metadataschema.model'; /* tslint:disable:max-classes-per-file */ export class RestResponse { @@ -24,6 +26,25 @@ export class DSOSuccessResponse extends RestResponse { } } +export class RegistryMetadataschemasSuccessResponse extends RestResponse { + constructor( + public metadataschemasResponse: RegistryMetadataschemasResponse, + public statusCode: string, + public pageInfo?: PageInfo + ) { + super(true, statusCode); + } +} + +export class MetadataschemaSuccessResponse extends RestResponse { + constructor( + public metadataschema: MetadataSchema, + public statusCode: string + ) { + super(true, statusCode); + } +} + export class SearchSuccessResponse extends RestResponse { constructor( public results: SearchQueryResponse, diff --git a/src/app/core/core.module.ts b/src/app/core/core.module.ts index cc6c569130..82307921ef 100644 --- a/src/app/core/core.module.ts +++ b/src/app/core/core.module.ts @@ -45,6 +45,8 @@ import { FacetValueResponseParsingService } from './data/facet-value-response-pa import { FacetValueMapResponseParsingService } from './data/facet-value-map-response-parsing.service'; import { FacetConfigResponseParsingService } from './data/facet-config-response-parsing.service'; import { RegistryService } from './registry/registry.service'; +import { RegistryMetadataschemasResponseParsingService } from './data/registry-metadataschemas-response-parsing.service'; +import { MetadataschemaParsingService } from './data/metadataschema-parsing.service'; const IMPORTS = [ CommonModule, @@ -80,6 +82,8 @@ const PROVIDERS = [ FacetValueResponseParsingService, FacetValueMapResponseParsingService, FacetConfigResponseParsingService, + RegistryMetadataschemasResponseParsingService, + MetadataschemaParsingService, DebugResponseParsingService, SearchResponseParsingService, ServerResponseService, diff --git a/src/app/core/data/metadataschema-parsing.service.ts b/src/app/core/data/metadataschema-parsing.service.ts new file mode 100644 index 0000000000..cdd87c19d4 --- /dev/null +++ b/src/app/core/data/metadataschema-parsing.service.ts @@ -0,0 +1,19 @@ +import { MetadataSchema } from '../metadata/metadataschema.model'; +import { DSpaceRESTv2Serializer } from '../dspace-rest-v2/dspace-rest-v2.serializer'; +import { DSpaceRESTV2Response } from '../dspace-rest-v2/dspace-rest-v2-response.model'; +import { RestRequest } from './request.models'; +import { ResponseParsingService } from './parsing.service'; +import { Injectable } from '@angular/core'; +import { MetadataschemaSuccessResponse, RestResponse } from '../cache/response-cache.models'; + +@Injectable() +export class MetadataschemaParsingService implements ResponseParsingService { + + parse(request: RestRequest, data: DSpaceRESTV2Response): RestResponse { + const payload = data.payload; + + const deserialized = new DSpaceRESTv2Serializer(MetadataSchema).deserialize(payload); + return new MetadataschemaSuccessResponse(deserialized, data.statusCode); + } + +} diff --git a/src/app/core/data/registry-metadataschemas-response-parsing.service.ts b/src/app/core/data/registry-metadataschemas-response-parsing.service.ts new file mode 100644 index 0000000000..2bb1302450 --- /dev/null +++ b/src/app/core/data/registry-metadataschemas-response-parsing.service.ts @@ -0,0 +1,25 @@ +import { RegistryMetadataschemasSuccessResponse, RestResponse } from '../cache/response-cache.models'; +import { DSpaceRESTV2Response } from '../dspace-rest-v2/dspace-rest-v2-response.model'; +import { RestRequest } from './request.models'; +import { ResponseParsingService } from './parsing.service'; +import { RegistryMetadataschemasResponse } from '../registry/registry-metadataschemas-response.model'; +import { DSpaceRESTv2Serializer } from '../dspace-rest-v2/dspace-rest-v2.serializer'; +import { DSOResponseParsingService } from './dso-response-parsing.service'; +import { Injectable } from '@angular/core'; + +@Injectable() +export class RegistryMetadataschemasResponseParsingService implements ResponseParsingService { + constructor(private dsoParser: DSOResponseParsingService) { + } + + parse(request: RestRequest, data: DSpaceRESTV2Response): RestResponse { + const payload = data.payload; + + const metadataschemas = payload._embedded.metadataschemas; + payload.metadataschemas = metadataschemas; + + const deserialized = new DSpaceRESTv2Serializer(RegistryMetadataschemasResponse).deserialize(payload); + return new RegistryMetadataschemasSuccessResponse(deserialized, data.statusCode, this.dsoParser.processPageInfo(data.payload.page)); + } + +} diff --git a/src/app/core/metadata/metadataschema.model.ts b/src/app/core/metadata/metadataschema.model.ts index 1f739534bf..13fb8e8b4e 100644 --- a/src/app/core/metadata/metadataschema.model.ts +++ b/src/app/core/metadata/metadataschema.model.ts @@ -1,5 +1,16 @@ -export class MetadataSchema { +import { autoserialize } from 'cerialize'; +import { ListableObject } from '../../shared/object-collection/shared/listable-object.model'; + +export class MetadataSchema implements ListableObject { + @autoserialize + id: number; + + @autoserialize self: string; + + @autoserialize prefix: string; + + @autoserialize namespace: string; } diff --git a/src/app/core/registry/registry-metadataschemas-response.model.ts b/src/app/core/registry/registry-metadataschemas-response.model.ts new file mode 100644 index 0000000000..5f4799abd7 --- /dev/null +++ b/src/app/core/registry/registry-metadataschemas-response.model.ts @@ -0,0 +1,14 @@ +import { MetadataSchema } from '../metadata/metadataschema.model'; +import { PageInfo } from '../shared/page-info.model'; +import { autoserialize, autoserializeAs } from 'cerialize'; + +export class RegistryMetadataschemasResponse { + @autoserializeAs(MetadataSchema) + metadataschemas: MetadataSchema[]; + + @autoserialize + page: PageInfo; + + @autoserialize + self: string; +} diff --git a/src/app/core/registry/registry.service.ts b/src/app/core/registry/registry.service.ts index 7e79f45af5..0c9ece4a71 100644 --- a/src/app/core/registry/registry.service.ts +++ b/src/app/core/registry/registry.service.ts @@ -6,22 +6,110 @@ import { PageInfo } from '../shared/page-info.model'; import { MetadataSchema } from '../metadata/metadataschema.model'; import { MetadataField } from '../metadata/metadatafield.model'; import { BitstreamFormat } from './mock-bitstream-format.model'; +import { flatMap, map, tap } from 'rxjs/operators'; +import { GetRequest, RestRequest } from '../data/request.models'; +import { GenericConstructor } from '../shared/generic-constructor'; +import { ResponseParsingService } from '../data/parsing.service'; +import { RegistryMetadataschemasResponseParsingService } from '../data/registry-metadataschemas-response-parsing.service'; +import { RemoteDataBuildService } from '../cache/builders/remote-data-build.service'; +import { RequestService } from '../data/request.service'; +import { ResponseCacheService } from '../cache/response-cache.service'; +import { RegistryMetadataschemasResponse } from './registry-metadataschemas-response.model'; +import { ResponseCacheEntry } from '../cache/response-cache.reducer'; +import { MetadataschemaSuccessResponse, RegistryMetadataschemasSuccessResponse } from '../cache/response-cache.models'; +import { HALEndpointService } from '../shared/hal-endpoint.service'; +import { MetadataschemaParsingService } from '../data/metadataschema-parsing.service'; -Injectable() +@Injectable() export class RegistryService { + private metadataSchemasPath = 'metadataschemas'; + metadataSchemas: MetadataSchema[]; metadataFields: MetadataField[]; bitstreamFormats: BitstreamFormat[]; - public getMetadataSchemas(): Observable>> { - const pageInfo = new PageInfo(); - pageInfo.elementsPerPage = 10; - pageInfo.currentPage = 1; + constructor(protected responseCache: ResponseCacheService, + protected requestService: RequestService, + private rdb: RemoteDataBuildService, + private halService: HALEndpointService) { - const payload = new PaginatedList(pageInfo, this.metadataSchemas); - const remoteData = new RemoteData(false, false, true, undefined, payload); - return Observable.of(remoteData); + } + + public getMetadataSchemas(): Observable>> { + const requestObs = this.halService.getEndpoint(this.metadataSchemasPath).pipe( + map((url: string) => { + const request = new GetRequest(this.requestService.generateRequestId(), url); + return Object.assign(request, { + getResponseParser(): GenericConstructor { + return RegistryMetadataschemasResponseParsingService; + } + }); + }), + tap((request: RestRequest) => this.requestService.configure(request)), + ); + + const requestEntryObs = requestObs.pipe( + flatMap((request: RestRequest) => this.requestService.getByHref(request.href)) + ); + + const responseCacheObs = requestObs.pipe( + flatMap((request: RestRequest) => this.responseCache.get(request.href)) + ); + + const rmrObs: Observable = responseCacheObs.pipe( + map((entry: ResponseCacheEntry) => entry.response), + map((response: RegistryMetadataschemasSuccessResponse) => response.metadataschemasResponse) + ); + + const metadataschemasObs: Observable = rmrObs.pipe( + map((rmr: RegistryMetadataschemasResponse) => rmr.metadataschemas) + ); + + const pageInfoObs: Observable = responseCacheObs.pipe( + map((entry: ResponseCacheEntry) => entry.response), + map((response: RegistryMetadataschemasSuccessResponse) => response.pageInfo) + ); + + const payloadObs = Observable.combineLatest(metadataschemasObs, pageInfoObs, (metadataschemas, pageInfo) => { + return new PaginatedList(pageInfo, metadataschemas); + }); + + return this.rdb.toRemoteDataObservable(requestEntryObs, responseCacheObs, payloadObs); + } + + public getMetadataSchemaByName(schemaName: string): Observable> { + const requestObs = this.halService.getEndpoint(this.metadataSchemasPath).pipe( + map((url: string) => { + const request = new GetRequest(this.requestService.generateRequestId(), url); + return Object.assign(request, { + getResponseParser(): GenericConstructor { + return RegistryMetadataschemasResponseParsingService; + } + }); + }), + tap((request: RestRequest) => this.requestService.configure(request)), + ); + + const requestEntryObs = requestObs.pipe( + flatMap((request: RestRequest) => this.requestService.getByHref(request.href)) + ); + + const responseCacheObs = requestObs.pipe( + flatMap((request: RestRequest) => this.responseCache.get(request.href)) + ); + + const rmrObs: Observable = responseCacheObs.pipe( + map((entry: ResponseCacheEntry) => entry.response), + map((response: RegistryMetadataschemasSuccessResponse) => response.metadataschemasResponse) + ); + + const metadataschemaObs: Observable = rmrObs.pipe( + map((rmr: RegistryMetadataschemasResponse) => rmr.metadataschemas), + map((metadataSchemas: MetadataSchema[]) => metadataSchemas.filter((value) => value.prefix === schemaName)[0]) + ); + + return this.rdb.toRemoteDataObservable(requestEntryObs, responseCacheObs, metadataschemaObs); } public getMetadataFieldsBySchema(schema: MetadataSchema): Observable>> { @@ -34,12 +122,6 @@ export class RegistryService { return Observable.of(remoteData); } - public getMetadataSchemaByName(schemaName: string): Observable> { - const payload = this.metadataSchemas.filter((value) => value.prefix === schemaName)[0]; - const remoteData = new RemoteData(false, false, true, undefined, payload); - return Observable.of(remoteData); - } - public getBitstreamFormats(): Observable>> { const pageInfo = new PageInfo(); pageInfo.elementsPerPage = 10; @@ -50,1149 +132,4 @@ export class RegistryService { return Observable.of(remoteData); } - constructor() { - this.metadataSchemas = [ - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadataschemas/1', - prefix: 'dc', - namespace: 'http://dublincore.org/documents/dcmi-terms/' - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadataschemas/2', - prefix: 'mock', - namespace: 'http://dspace.org/mockschema' - } - ]; - this.metadataFields = [ - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/8', - element: 'contributor', - qualifier: 'advisor', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/9', - element: 'contributor', - qualifier: 'author', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/10', - element: 'contributor', - qualifier: 'editor', - scopenote: 'test scope note', - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/11', - element: 'contributor', - qualifier: 'illustrator', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/12', - element: 'contributor', - qualifier: 'other', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/7', - element: 'contributor', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/13', - element: 'coverage', - qualifier: 'spatial', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/14', - element: 'coverage', - qualifier: 'temporal', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/15', - element: 'creator', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/17', - element: 'date', - qualifier: 'accessioned', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/18', - element: 'date', - qualifier: 'available', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/19', - element: 'date', - qualifier: 'copyright', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/20', - element: 'date', - qualifier: 'created', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/21', - element: 'date', - qualifier: 'issued', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/22', - element: 'date', - qualifier: 'submitted', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/128', - element: 'date', - qualifier: 'updated', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/16', - element: 'date', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/33', - element: 'description', - qualifier: 'abstract', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/34', - element: 'description', - qualifier: 'provenance', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/35', - element: 'description', - qualifier: 'sponsorship', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/36', - element: 'description', - qualifier: 'statementofresponsibility', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/37', - element: 'description', - qualifier: 'tableofcontents', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/38', - element: 'description', - qualifier: 'uri', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/129', - element: 'description', - qualifier: 'version', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/32', - element: 'description', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/40', - element: 'format', - qualifier: 'extent', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/41', - element: 'format', - qualifier: 'medium', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/42', - element: 'format', - qualifier: 'mimetype', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/39', - element: 'format', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/24', - element: 'identifier', - qualifier: 'citation', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/133', - element: 'identifier', - qualifier: 'doi', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/137', - element: 'identifier', - qualifier: 'eissn', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/134', - element: 'identifier', - qualifier: 'epage', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/25', - element: 'identifier', - qualifier: 'govdoc', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/26', - element: 'identifier', - qualifier: 'isbn', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/29', - element: 'identifier', - qualifier: 'ismn', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/27', - element: 'identifier', - qualifier: 'issn', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/135', - element: 'identifier', - qualifier: 'issue', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/30', - element: 'identifier', - qualifier: 'other', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/141', - element: 'identifier', - qualifier: 'pmcid', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/136', - element: 'identifier', - qualifier: 'pmid', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/28', - element: 'identifier', - qualifier: 'sici', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/130', - element: 'identifier', - qualifier: 'slug', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/139', - element: 'identifier', - qualifier: 'spage', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/31', - element: 'identifier', - qualifier: 'uri', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/138', - element: 'identifier', - qualifier: 'url', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/140', - element: 'identifier', - qualifier: 'volume', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/23', - element: 'identifier', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/44', - element: 'language', - qualifier: 'iso', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/131', - element: 'language', - qualifier: 'rfc3066', - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/43', - element: 'language', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/5', - element: 'provenance', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[0] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/45', - element: 'publisher', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/50', - element: 'relation', - qualifier: 'haspart', - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/52', - element: 'relation', - qualifier: 'hasversion', - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/53', - element: 'relation', - qualifier: 'isbasedon', - scopenote: 'a scope note', - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/47', - element: 'relation', - qualifier: 'isformatof', - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/48', - element: 'relation', - qualifier: 'ispartof', - scopenote: 'another scope note', - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/142', - element: 'relation', - qualifier: 'ispartofbook', - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/49', - element: 'relation', - qualifier: 'ispartofseries', - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/54', - element: 'relation', - qualifier: 'isreferencedby', - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/57', - element: 'relation', - qualifier: 'isreplacedby', - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/51', - element: 'relation', - qualifier: 'isversionof', - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/56', - element: 'relation', - qualifier: 'replaces', - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/55', - element: 'relation', - qualifier: 'requires', - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/58', - element: 'relation', - qualifier: 'uri', - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/46', - element: 'relation', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/132', - element: 'rights', - qualifier: 'holder', - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/6', - element: 'rights', - qualifier: 'license', - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/60', - element: 'rights', - qualifier: 'uri', - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/59', - element: 'rights', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/62', - element: 'source', - qualifier: 'uri', - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/61', - element: 'source', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/64', - element: 'subject', - qualifier: 'classification', - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/65', - element: 'subject', - qualifier: 'ddc', - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/66', - element: 'subject', - qualifier: 'lcc', - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/67', - element: 'subject', - qualifier: 'lcsh', - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/68', - element: 'subject', - qualifier: 'mesh', - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/69', - element: 'subject', - qualifier: 'other', - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/63', - element: 'subject', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/71', - element: 'title', - qualifier: 'alternative', - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/70', - element: 'title', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/72', - element: 'type', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/73', - element: 'abstract', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/74', - element: 'accessRights', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/75', - element: 'accrualMethod', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/76', - element: 'accrualPeriodicity', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/77', - element: 'accrualPolicy', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/78', - element: 'alternative', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/79', - element: 'audience', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/80', - element: 'available', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/81', - element: 'bibliographicCitation', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/82', - element: 'conformsTo', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/83', - element: 'contributor', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/84', - element: 'coverage', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/85', - element: 'created', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/86', - element: 'creator', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/87', - element: 'date', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/88', - element: 'dateAccepted', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/89', - element: 'dateCopyrighted', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/90', - element: 'dateSubmitted', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/91', - element: 'description', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/92', - element: 'educationLevel', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/93', - element: 'extent', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/94', - element: 'format', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/95', - element: 'hasFormat', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/96', - element: 'hasPart', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/97', - element: 'hasVersion', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/98', - element: 'identifier', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/99', - element: 'instructionalMethod', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/100', - element: 'isFormatOf', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/101', - element: 'isPartOf', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/102', - element: 'isReferencedBy', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/103', - element: 'isReplacedBy', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/104', - element: 'isRequiredBy', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/105', - element: 'issued', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/106', - element: 'isVersionOf', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/107', - element: 'language', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/108', - element: 'license', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/109', - element: 'mediator', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/110', - element: 'medium', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/111', - element: 'modified', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/112', - element: 'provenance', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/113', - element: 'publisher', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/114', - element: 'references', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/115', - element: 'relation', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/116', - element: 'replaces', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/117', - element: 'requires', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/118', - element: 'rights', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/119', - element: 'rightsHolder', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/120', - element: 'source', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/121', - element: 'spatial', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/122', - element: 'subject', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/123', - element: 'tableOfContents', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/124', - element: 'temporal', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/125', - element: 'title', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/126', - element: 'type', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - }, - { - self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/127', - element: 'valid', - qualifier: null, - scopenote: null, - schema: this.metadataSchemas[1] - } - ]; - this.bitstreamFormats = [ - { - shortDescription: 'Unknown', - description: 'Unknown data format', - mimetype: 'application/octet-stream', - supportLevel: 0, - internal: false, - extensions: null - }, - { - shortDescription: 'License', - description: 'Item-specific license agreed upon to submission', - mimetype: 'text/plain; charset=utf-8', - supportLevel: 1, - internal: true, - extensions: null - }, - { - shortDescription: 'CC License', - description: 'Item-specific Creative Commons license agreed upon to submission', - mimetype: 'text/html; charset=utf-8', - supportLevel: 2, - internal: true, - extensions: null - }, - { - shortDescription: 'Adobe PDF', - description: 'Adobe Portable Document Format', - mimetype: 'application/pdf', - supportLevel: 0, - internal: false, - extensions: null - }, - { - shortDescription: 'XML', - description: 'Extensible Markup Language', - mimetype: 'text/xml', - supportLevel: 0, - internal: false, - extensions: null - }, - { - shortDescription: 'Text', - description: 'Plain Text', - mimetype: 'text/plain', - supportLevel: 0, - internal: false, - extensions: null - }, - { - shortDescription: 'HTML', - description: 'Hypertext Markup Language', - mimetype: 'text/html', - supportLevel: 0, - internal: false, - extensions: null - }, - { - shortDescription: 'CSS', - description: 'Cascading Style Sheets', - mimetype: 'text/css', - supportLevel: 0, - internal: false, - extensions: null - }, - { - shortDescription: 'Microsoft Word', - description: 'Microsoft Word', - mimetype: 'application/msword', - supportLevel: 0, - internal: false, - extensions: null - }, - { - shortDescription: 'Microsoft Word XML', - description: 'Microsoft Word XML', - mimetype: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', - supportLevel: 0, - internal: false, - extensions: null - }, - { - shortDescription: 'Microsoft Powerpoint', - description: 'Microsoft Powerpoint', - mimetype: 'application/vnd.ms-powerpoint', - supportLevel: 0, - internal: false, - extensions: null - }, - { - shortDescription: 'Microsoft Powerpoint XML', - description: 'Microsoft Powerpoint XML', - mimetype: 'application/vnd.openxmlformats-officedocument.presentationml.presentation', - supportLevel: 0, - internal: false, - extensions: null - }, - { - shortDescription: 'Microsoft Excel', - description: 'Microsoft Excel', - mimetype: 'application/vnd.ms-excel', - supportLevel: 0, - internal: false, - extensions: null - }, - { - shortDescription: 'Microsoft Excel XML', - description: 'Microsoft Excel XML', - mimetype: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', - supportLevel: 0, - internal: false, - extensions: null - }, - { - shortDescription: 'MARC', - description: 'Machine-Readable Cataloging records', - mimetype: 'application/marc', - supportLevel: 0, - internal: false, - extensions: null - }, - { - shortDescription: 'JPEG', - description: 'Joint Photographic Experts Group/JPEG File Interchange Format (JFIF)', - mimetype: 'image/jpeg', - supportLevel: 0, - internal: false, - extensions: null - }, - { - shortDescription: 'GIF', - description: 'Graphics Interchange Format', - mimetype: 'image/gif', - supportLevel: 0, - internal: false, - extensions: null - }, - { - shortDescription: 'image/png', - description: 'Portable Network Graphics', - mimetype: 'image/png', - supportLevel: 0, - internal: false, - extensions: null - }, - { - shortDescription: 'TIFF', - description: 'Tag Image File Format', - mimetype: 'image/tiff', - supportLevel: 0, - internal: false, - extensions: null - }, - { - shortDescription: 'AIFF', - description: 'Audio Interchange File Format', - mimetype: 'audio/x-aiff', - supportLevel: 0, - internal: false, - extensions: null - } - ]; - } - }
{{'admin.registries.metadata.schemas.table.id' | translate}} {{'admin.registries.metadata.schemas.table.namespace' | translate}} {{'admin.registries.metadata.schemas.table.name' | translate}}
{{schema.id}} {{schema.namespace}} {{schema.prefix}}