1
0
Files
yel-dspace-angular/src/app/+admin/admin-registries/metadata-schema/metadata-schema.component.ts
lotte 17239cd1be Merge branch 'resolvers-branch-angular6' into w2p-57053_menu-angular6
Conflicts:
	src/app/app.module.ts
	src/app/header/header.component.ts
	src/app/navbar/navbar.effects.ts
2018-11-12 09:49:26 +01:00

55 lines
1.8 KiB
TypeScript

import { Component, OnInit } from '@angular/core';
import { RegistryService } from '../../../core/registry/registry.service';
import { ActivatedRoute } from '@angular/router';
import { Observable } from 'rxjs';
import { RemoteData } from '../../../core/data/remote-data';
import { PaginatedList } from '../../../core/data/paginated-list';
import { MetadataField } from '../../../core/metadata/metadatafield.model';
import { MetadataSchema } from '../../../core/metadata/metadataschema.model';
import { PaginationComponentOptions } from '../../../shared/pagination/pagination-component-options.model';
@Component({
selector: 'ds-metadata-schema',
templateUrl: './metadata-schema.component.html'
})
export class MetadataSchemaComponent implements OnInit {
namespace;
metadataSchema: Observable<RemoteData<MetadataSchema>>;
metadataFields: Observable<RemoteData<PaginatedList<MetadataField>>>;
config: PaginationComponentOptions = Object.assign(new PaginationComponentOptions(), {
id: 'registry-metadatafields-pagination',
pageSize: 10000
});
constructor(private registryService: RegistryService, private route: ActivatedRoute) {
}
ngOnInit(): void {
this.route.params.subscribe((params) => {
this.initialize(params);
});
}
initialize(params) {
this.metadataSchema = this.registryService.getMetadataSchemaByName(params.schemaName);
this.updateFields();
}
onPageChange(event) {
this.config.currentPage = event;
this.updateFields();
}
private updateFields() {
this.metadataSchema.subscribe((schemaData) => {
const schema = schemaData.payload;
this.metadataFields = this.registryService.getMetadataFieldsBySchema(schema, this.config);
this.namespace = { namespace: schemaData.payload.namespace };
});
}
}