Fixed #7182: Required field names appearing in the warning modal.

dataset-wizard.component.ts & dmp-editor.component.ts & form-validation-errors-dialog.component.ts:
a. For 'mat-select', use placeholder instead of aria-label.
b. [Bug fix] For 'app-multiple-auto-complete' dig into 2 more levels (formControl.nativeElement.firstChild.firstChild.firstChild.children) --> reason: commit de99784b5e: moved <input> inside <mat-chip-list>.
This commit is contained in:
Konstantina Galouni 2021-11-16 11:47:24 +02:00
parent 7820235258
commit 7a7f12b83a
3 changed files with 32 additions and 31 deletions

View File

@ -408,7 +408,7 @@ export class DatasetWizardComponent extends CheckDeactivateBaseComponent impleme
// private _listenersSubscription:Subscription = new Subscription();
registerFormListeners() {
// const dmpSubscription =
// const dmpSubscription =
this.formGroup.get('dmp').valueChanges
.pipe(takeUntil(this._destroyed))
.subscribe(x => {
@ -424,32 +424,32 @@ export class DatasetWizardComponent extends CheckDeactivateBaseComponent impleme
this.formChanged();
}
});
// const labelSubscription =
// const labelSubscription =
this.formGroup.get('label').valueChanges
.pipe(takeUntil(this._destroyed))
.subscribe(x => {
this.formChanged();
});
// const descriptionSubscription =
// const descriptionSubscription =
this.formGroup.get('description').valueChanges
.pipe(takeUntil(this._destroyed))
.subscribe(x => {
this.formChanged();
});
// const uriSubscription =
// const uriSubscription =
this.formGroup.get('uri').valueChanges
.pipe(takeUntil(this._destroyed))
.subscribe(x => {
this.formChanged();
});
// const tagsSubscription =
// const tagsSubscription =
this.formGroup.get('tags').valueChanges
.pipe(takeUntil(this._destroyed))
.subscribe(x => {
this.formChanged();
});
if (this.formGroup.get('datasetProfileDefinition')) {
// const datasetProfileDefinitionSubscription =
// const datasetProfileDefinitionSubscription =
this.formGroup.get('datasetProfileDefinition').valueChanges
.pipe(takeUntil(this._destroyed))
.subscribe(x => {
@ -555,7 +555,7 @@ export class DatasetWizardComponent extends CheckDeactivateBaseComponent impleme
this.formGroup.addControl('datasetProfileDefinition', this.datasetProfileDefinitionModel.buildForm());
// const datasetProfileDefinitionForm = this.datasetProfileDefinitionModel.buildForm();
// let profId = null;
// try{
// profId = this.formGroup.get('profile').value.id;
@ -651,11 +651,11 @@ export class DatasetWizardComponent extends CheckDeactivateBaseComponent impleme
|| formControl.nativeElement.localName === 'richTextarea') {
return formControl.nativeElement.getAttribute('placeholder');
} else if (formControl.nativeElement.localName === 'mat-select') {
return formControl.nativeElement.getAttribute('aria-label');
return formControl.nativeElement.getAttribute('placeholder');
} else if (formControl.nativeElement.localName === 'app-single-auto-complete') {
return (Array.from(formControl.nativeElement.firstChild.children).filter((x: any) => x.localName === 'input')[0] as any).getAttribute('placeholder');
} else if (formControl.nativeElement.localName === 'app-multiple-auto-complete') {
return (Array.from(formControl.nativeElement.firstChild.children).filter((x: any) => x.localName === 'input')[0] as any).getAttribute('placeholder');
return (Array.from(formControl.nativeElement.firstChild.firstChild.firstChild.children).filter((x: any) => x.localName === 'input')[0] as any).getAttribute('placeholder');
}
}
@ -687,7 +687,7 @@ export class DatasetWizardComponent extends CheckDeactivateBaseComponent impleme
}
}
const errorMessage = this._getErrorMessage(aControl, controlName);
errmess.push(...errorMessage);
}
@ -695,7 +695,7 @@ export class DatasetWizardComponent extends CheckDeactivateBaseComponent impleme
No need to check case of FormControl below*/
if(aControl instanceof FormGroup){
const fg = aControl as FormGroup;
//check children
Object.keys(fg.controls).forEach(controlName=>{
@ -708,7 +708,7 @@ export class DatasetWizardComponent extends CheckDeactivateBaseComponent impleme
fa.controls.forEach((control,index)=>{
errmess.push(... this._buildErrorMessagesForAbstractControl(control, `${controlName} --> ${index+1}`));
});
}
}
@ -729,7 +729,7 @@ export class DatasetWizardComponent extends CheckDeactivateBaseComponent impleme
if (!this.isSemiFormValid(this.formGroup)) {
//build messages
const errorMessages = this._buildSemiFormErrorMessages();
this.showValidationErrorsDialog(undefined, errorMessages);
this.showValidationErrorsDialog(undefined, errorMessages);
this.hintErrors = true;
return;
}
@ -1153,7 +1153,7 @@ export class DatasetWizardComponent extends CheckDeactivateBaseComponent impleme
// }else{
// this.formGroup.get(key).reset();
// }
// }
// });
} else {
@ -1252,7 +1252,7 @@ export class DatasetWizardComponent extends CheckDeactivateBaseComponent impleme
// const tempResult:ToCEntry[] = [];
// if(sections &&sections.length){
// sections.controls.forEach(section=>{
// tempResult.push(this._buildRecursively(section as FormGroup, ToCEntryType.Section));
@ -1288,9 +1288,9 @@ export class DatasetWizardComponent extends CheckDeactivateBaseComponent impleme
// }
// private _sortByOrdinal(tocentries: ToCEntry[]){
// if(!tocentries || !tocentries.length) return;
// tocentries.sort(this._customCompare);
// tocentries.forEach(entry=>{
// this._sortByOrdinal(entry.subEntries);
@ -1315,7 +1315,7 @@ export class DatasetWizardComponent extends CheckDeactivateBaseComponent impleme
// });
// }
// getTocEntries(form): ToCEntry[] {
// if (form == null) { return []; }
// const result: ToCEntry[] = [];
@ -1355,6 +1355,6 @@ export class DatasetWizardComponent extends CheckDeactivateBaseComponent impleme
// }
}

View File

@ -583,7 +583,7 @@ export class DmpEditorComponent extends CheckDeactivateBaseComponent implements
try{
showDialog = this.isNew && !this.formGroup.get('datasets').value.length;
}catch{
}
this.editDataset(dmp.id, true, showDialog);
@ -825,11 +825,11 @@ export class DmpEditorComponent extends CheckDeactivateBaseComponent implements
|| formControl.nativeElement.localName === 'richTextarea') {
return formControl.nativeElement.getAttribute('placeholder');
} else if (formControl.nativeElement.localName === 'mat-select') {
return formControl.nativeElement.getAttribute('aria-label');
return formControl.nativeElement.getAttribute('placeholder');
} else if (formControl.nativeElement.localName === 'app-single-auto-complete') {
return (Array.from(formControl.nativeElement.firstChild.children).filter((x: any) => x.localName === 'input')[0] as any).getAttribute('placeholder');
} else if (formControl.nativeElement.localName === 'app-multiple-auto-complete') {
return (Array.from(formControl.nativeElement.firstChild.children).filter((x: any) => x.localName === 'input')[0] as any).getAttribute('placeholder');
return (Array.from(formControl.nativeElement.firstChild.firstChild.firstChild.children).filter((x: any) => x.localName === 'input')[0] as any).getAttribute('placeholder');
}
}
@ -861,14 +861,14 @@ export class DmpEditorComponent extends CheckDeactivateBaseComponent implements
}
}
const errorMessage = this._getErrorMessage(aControl, controlName);
errmess.push(...errorMessage);
}
/*in case the aControl is FormControl then the it should have provided its error messages above.
No need to check case of FormControl below*/
if(aControl instanceof FormGroup){
const fg = aControl as FormGroup;
//check children
Object.keys(fg.controls).forEach(controlName=>{
@ -881,9 +881,9 @@ export class DmpEditorComponent extends CheckDeactivateBaseComponent implements
fa.controls.forEach((control,index)=>{
errmess.push(... this._buildErrorMessagesForAbstractControl(control, `${controlName} --> ${index+1}`));
});
}
}
return errmess;
@ -950,7 +950,7 @@ export class DmpEditorComponent extends CheckDeactivateBaseComponent implements
editDataset(id: string, isNew: boolean, showModal:boolean = false) {
if(showModal){
const dialogRef = this.dialog.open(DmpToDatasetDialogComponent, {
width: '500px',
@ -972,7 +972,7 @@ export class DmpEditorComponent extends CheckDeactivateBaseComponent implements
} else {
this.router.navigate(['/datasets', 'edit', id]);
}
}

View File

@ -70,14 +70,15 @@ export class FormValidationErrorsDialogComponent {
}
getPlaceHolder(formControl: any): string {
if (formControl.nativeElement.localName === 'input' || formControl.nativeElement.localName === 'textarea') {
if (formControl.nativeElement.localName === 'input' || formControl.nativeElement.localName === 'textarea'
|| formControl.nativeElement.localName === 'richTextarea') {
return formControl.nativeElement.getAttribute('placeholder');
} else if (formControl.nativeElement.localName === 'mat-select') {
return formControl.nativeElement.getAttribute('aria-label');
return formControl.nativeElement.getAttribute('placeholder');
} else if (formControl.nativeElement.localName === 'app-single-auto-complete') {
return (Array.from(formControl.nativeElement.firstChild.children).filter((x: any) => x.localName === 'input')[0] as any).getAttribute('placeholder');
} else if (formControl.nativeElement.localName === 'app-multiple-auto-complete') {
return (Array.from(formControl.nativeElement.firstChild.children).filter((x: any) => x.localName === 'input')[0] as any).getAttribute('placeholder');
return (Array.from(formControl.nativeElement.firstChild.firstChild.firstChild.children).filter((x: any) => x.localName === 'input')[0] as any).getAttribute('placeholder');
}
// Needs to have <mat-label> in <mat-form-field> in html in order to fill results