@@ -19,7 +19,7 @@ import {
1919 TranslateModule ,
2020 TranslateService ,
2121} from '@ngx-translate/core' ;
22- import { combineLatest } from 'rxjs' ;
22+ import { Observable } from 'rxjs' ;
2323import { take } from 'rxjs/operators' ;
2424
2525import { MetadataField } from '../../../../core/metadata/metadata-field.model' ;
@@ -109,6 +109,8 @@ export class MetadataFieldFormComponent implements OnInit, OnDestroy {
109109 */
110110 @Output ( ) submitForm : EventEmitter < any > = new EventEmitter ( ) ;
111111
112+ activeMetadataField$ : Observable < MetadataField > ;
113+
112114 constructor ( public registryService : RegistryService ,
113115 private formBuilderService : FormBuilderService ,
114116 private translateService : TranslateService ) {
@@ -117,71 +119,65 @@ export class MetadataFieldFormComponent implements OnInit, OnDestroy {
117119 /**
118120 * Initialize the component, setting up the necessary Models for the dynamic form
119121 */
120- ngOnInit ( ) {
121- combineLatest ( [
122- this . translateService . get ( `${ this . messagePrefix } .element` ) ,
123- this . translateService . get ( `${ this . messagePrefix } .qualifier` ) ,
124- this . translateService . get ( `${ this . messagePrefix } .scopenote` ) ,
125- ] ) . subscribe ( ( [ element , qualifier , scopenote ] ) => {
126- this . element = new DynamicInputModel ( {
127- id : 'element' ,
128- label : element ,
129- name : 'element' ,
130- validators : {
131- required : null ,
132- pattern : '^[^. ,]*$' ,
133- maxLength : 64 ,
134- } ,
135- required : true ,
136- errorMessages : {
137- pattern : 'error.validation.metadata.element.invalid-pattern' ,
138- maxLength : 'error.validation.metadata.element.max-length' ,
139- } ,
140- } ) ;
141- this . qualifier = new DynamicInputModel ( {
142- id : 'qualifier' ,
143- label : qualifier ,
144- name : 'qualifier' ,
145- validators : {
146- pattern : '^[^. ,]*$' ,
147- maxLength : 64 ,
148- } ,
149- required : false ,
150- errorMessages : {
151- pattern : 'error.validation.metadata.qualifier.invalid-pattern' ,
152- maxLength : 'error.validation.metadata.qualifier.max-length' ,
153- } ,
154- } ) ;
155- this . scopeNote = new DynamicTextAreaModel ( {
156- id : 'scopeNote' ,
157- label : scopenote ,
158- name : 'scopeNote' ,
159- required : false ,
160- rows : 5 ,
161- } ) ;
162- this . formModel = [
163- new DynamicFormGroupModel (
164- {
165- id : 'metadatadatafieldgroup' ,
166- group :[ this . element , this . qualifier , this . scopeNote ] ,
167- } ) ,
168- ] ;
169- this . formGroup = this . formBuilderService . createFormGroup ( this . formModel ) ;
170- this . registryService . getActiveMetadataField ( ) . subscribe ( ( field : MetadataField ) : void => {
171- if ( field == null ) {
172- this . clearFields ( ) ;
173- } else {
174- this . formGroup . patchValue ( {
175- metadatadatafieldgroup : {
176- element : field . element ,
177- qualifier : field . qualifier ,
178- scopeNote : field . scopeNote ,
179- } ,
180- } ) ;
181- this . element . disabled = true ;
182- this . qualifier . disabled = true ;
183- }
184- } ) ;
122+ ngOnInit ( ) : void {
123+ this . activeMetadataField$ = this . registryService . getActiveMetadataField ( ) ;
124+ this . element = new DynamicInputModel ( {
125+ id : 'element' ,
126+ label : this . translateService . instant ( `${ this . messagePrefix } .element` ) ,
127+ name : 'element' ,
128+ validators : {
129+ required : null ,
130+ pattern : '^[^. ,]*$' ,
131+ maxLength : 64 ,
132+ } ,
133+ required : true ,
134+ errorMessages : {
135+ pattern : 'error.validation.metadata.element.invalid-pattern' ,
136+ maxLength : 'error.validation.metadata.element.max-length' ,
137+ } ,
138+ } ) ;
139+ this . qualifier = new DynamicInputModel ( {
140+ id : 'qualifier' ,
141+ label : this . translateService . instant ( `${ this . messagePrefix } .qualifier` ) ,
142+ name : 'qualifier' ,
143+ validators : {
144+ pattern : '^[^. ,]*$' ,
145+ maxLength : 64 ,
146+ } ,
147+ required : false ,
148+ errorMessages : {
149+ pattern : 'error.validation.metadata.qualifier.invalid-pattern' ,
150+ maxLength : 'error.validation.metadata.qualifier.max-length' ,
151+ } ,
152+ } ) ;
153+ this . scopeNote = new DynamicTextAreaModel ( {
154+ id : 'scopeNote' ,
155+ label : this . translateService . instant ( `${ this . messagePrefix } .scopenote` ) ,
156+ name : 'scopeNote' ,
157+ required : false ,
158+ rows : 5 ,
159+ } ) ;
160+ this . formModel = [
161+ new DynamicFormGroupModel ( {
162+ id : 'metadatadatafieldgroup' ,
163+ group :[ this . element , this . qualifier , this . scopeNote ] ,
164+ } ) ,
165+ ] ;
166+ this . formGroup = this . formBuilderService . createFormGroup ( this . formModel ) ;
167+ this . registryService . getActiveMetadataField ( ) . subscribe ( ( field : MetadataField ) : void => {
168+ if ( field == null ) {
169+ this . clearFields ( ) ;
170+ } else {
171+ this . formGroup . patchValue ( {
172+ metadatadatafieldgroup : {
173+ element : field . element ,
174+ qualifier : field . qualifier ,
175+ scopeNote : field . scopeNote ,
176+ } ,
177+ } ) ;
178+ this . element . disabled = true ;
179+ this . qualifier . disabled = true ;
180+ }
185181 } ) ;
186182 }
187183
0 commit comments