]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/eg2/src/app/staff/share/marc-edit/fixed-field.component.ts
LP1852782 MARC editable content aria-labels
[Evergreen.git] / Open-ILS / src / eg2 / src / app / staff / share / marc-edit / fixed-field.component.ts
1 import {Component, Input, Output, OnInit, EventEmitter} from '@angular/core';
2 import {IdlObject} from '@eg/core/idl.service';
3 import {MarcRecord} from './marcrecord';
4 import {MarcEditContext} from './editor-context';
5 import {TagTableService} from './tagtable.service';
6
7 /**
8  * MARC Fixed Field Editing Component
9  */
10
11 @Component({
12   selector: 'eg-fixed-field',
13   templateUrl: './fixed-field.component.html',
14   styleUrls: ['fixed-field.component.css']
15 })
16
17 export class FixedFieldComponent implements OnInit {
18
19     @Input() fieldCode: string;
20     @Input() fieldLabel: string;
21     @Input() context: MarcEditContext;
22
23     get record(): MarcRecord { return this.context.record; }
24
25     fieldMeta: IdlObject;
26     randId = Math.floor(Math.random() * 10000000);
27
28     constructor(private tagTable: TagTableService) {}
29
30     ngOnInit() {
31         this.init().then(_ =>
32             this.context.recordChange.subscribe(__ => this.init()));
33     }
34
35     init(): Promise<any> {
36         if (!this.record) { return Promise.resolve(); }
37
38         // If no field metadata is found for this fixed field code and
39         // record type combo, the field will be hidden in the UI.
40         return this.tagTable.getFfFieldMeta(
41             this.fieldCode, this.record.recordType())
42         .then(fieldMeta => this.fieldMeta = fieldMeta);
43     }
44 }
45
46