diff --git a/src/app/record/components/work-form/work-form/work-form.component.ts b/src/app/record/components/work-form/work-form/work-form.component.ts index 1f82019b78..4d6e688efe 100644 --- a/src/app/record/components/work-form/work-form/work-form.component.ts +++ b/src/app/record/components/work-form/work-form/work-form.component.ts @@ -52,7 +52,7 @@ import { SnackbarService } from 'src/app/cdk/snackbar/snackbar.service' import { WorkIdentifiers } from 'src/app/shared/validators/work-identifiers/work-identifiers.validator' import { workCitationValidator } from 'src/app/shared/validators/citation/work-citation.validator' import { translatedTitleValidator } from 'src/app/shared/validators/translated-title/translated-title.validator' -import { merge, Subject } from 'rxjs' +import { merge, Subject, of } from 'rxjs' import { RecordService } from 'src/app/core/record/record.service' @Component({ @@ -266,8 +266,15 @@ export class WorkFormComponent implements OnInit { formGroup: UntypedFormGroup, externalIdentifierType: string ): AsyncValidatorFn { - return (control: AbstractControl) => { - return this._workService + return (control: AbstractControl) => { + if(externalIdentifierType === 'isbn') { + if(!(control.value?.length === 10 || control.value?.length === 13)) { + return of({ validFormat: true, }) + } else { + return of({}) + } + } else { + return this._workService .validateWorkIdTypes(externalIdentifierType, control.value) .pipe( map((value) => { @@ -312,6 +319,7 @@ export class WorkFormComponent implements OnInit { } }) ) + } } }