Skip to content

Commit b00a0f5

Browse files
100553: Added extra regex validation to prevent users from adding namespaces, elements and qualifiers with spaces
Minor fixes: - Metadata Registry's name field was not being emptied after successful submission - The first input from both forms both had the red error border after clearing the fields
1 parent ca86437 commit b00a0f5

5 files changed

Lines changed: 33 additions & 7 deletions

File tree

src/app/admin/admin-registries/metadata-registry/metadata-schema-form/metadata-schema-form.component.spec.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,9 @@ describe('MetadataSchemaFormComponent', () => {
2929
createFormGroup: () => {
3030
return {
3131
patchValue: () => {
32-
}
32+
},
33+
markAsUntouched(opts?: any) {
34+
},
3335
};
3436
}
3537
};

src/app/admin/admin-registries/metadata-registry/metadata-schema-form/metadata-schema-form.component.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,10 +77,10 @@ export class MetadataSchemaFormComponent implements OnInit, OnDestroy {
7777
}
7878

7979
ngOnInit() {
80-
combineLatest(
80+
combineLatest([
8181
this.translateService.get(`${this.messagePrefix}.name`),
8282
this.translateService.get(`${this.messagePrefix}.namespace`)
83-
).subscribe(([name, namespace]) => {
83+
]).subscribe(([name, namespace]) => {
8484
this.name = new DynamicInputModel({
8585
id: 'name',
8686
label: name,
@@ -97,8 +97,12 @@ export class MetadataSchemaFormComponent implements OnInit, OnDestroy {
9797
name: 'namespace',
9898
validators: {
9999
required: null,
100+
pattern: '^[^.]*$',
100101
},
101102
required: true,
103+
errorMessages: {
104+
pattern: 'error.validation.metadata.namespace.invalid-pattern',
105+
},
102106
});
103107
this.formModel = [
104108
new DynamicFormGroupModel(
@@ -163,9 +167,10 @@ export class MetadataSchemaFormComponent implements OnInit, OnDestroy {
163167
* Reset all input-fields to be empty
164168
*/
165169
clearFields() {
170+
this.formGroup.markAsUntouched();
166171
this.formGroup.patchValue({
167172
metadatadataschemagroup:{
168-
prefix: '',
173+
name: '',
169174
namespace: ''
170175
}
171176
});

src/app/admin/admin-registries/metadata-schema/metadata-field-form/metadata-field-form.component.spec.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,9 @@ describe('MetadataFieldFormComponent', () => {
3939
createFormGroup: () => {
4040
return {
4141
patchValue: () => {
42-
}
42+
},
43+
markAsUntouched(opts?: any) {
44+
},
4345
};
4446
}
4547
};

src/app/admin/admin-registries/metadata-schema/metadata-field-form/metadata-field-form.component.ts

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,25 +98,35 @@ export class MetadataFieldFormComponent implements OnInit, OnDestroy {
9898
* Initialize the component, setting up the necessary Models for the dynamic form
9999
*/
100100
ngOnInit() {
101-
combineLatest(
101+
combineLatest([
102102
this.translateService.get(`${this.messagePrefix}.element`),
103103
this.translateService.get(`${this.messagePrefix}.qualifier`),
104104
this.translateService.get(`${this.messagePrefix}.scopenote`)
105-
).subscribe(([element, qualifier, scopenote]) => {
105+
]).subscribe(([element, qualifier, scopenote]) => {
106106
this.element = new DynamicInputModel({
107107
id: 'element',
108108
label: element,
109109
name: 'element',
110110
validators: {
111111
required: null,
112+
pattern: '^[^.]*$',
112113
},
113114
required: true,
115+
errorMessages: {
116+
pattern: 'error.validation.metadata.element.invalid-pattern',
117+
},
114118
});
115119
this.qualifier = new DynamicInputModel({
116120
id: 'qualifier',
117121
label: qualifier,
118122
name: 'qualifier',
123+
validators: {
124+
pattern: '^[^.]*$',
125+
},
119126
required: false,
127+
errorMessages: {
128+
pattern: 'error.validation.metadata.qualifier.invalid-pattern',
129+
},
120130
});
121131
this.scopeNote = new DynamicInputModel({
122132
id: 'scopeNote',
@@ -189,6 +199,7 @@ export class MetadataFieldFormComponent implements OnInit, OnDestroy {
189199
* Reset all input-fields to be empty
190200
*/
191201
clearFields() {
202+
this.formGroup.markAsUntouched();
192203
this.formGroup.patchValue({
193204
metadatadatafieldgroup: {
194205
element: '',

src/assets/i18n/en.json5

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1478,6 +1478,12 @@
14781478

14791479
"error.validation.groupExists": "This group already exists",
14801480

1481+
"error.validation.metadata.namespace.invalid-pattern": "This field cannot contain dots, please use the Element & Qualifier fields instead",
1482+
1483+
"error.validation.metadata.element.invalid-pattern": "This field cannot contain dots, please use the Qualifier field instead",
1484+
1485+
"error.validation.metadata.qualifier.invalid-pattern": "This field cannot contain dots",
1486+
14811487

14821488
"feed.description": "Syndication feed",
14831489

0 commit comments

Comments
 (0)