mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-13 21:13:07 +00:00
Submission form now displays custom messages for regex validated fields if they exist
This commit is contained in:
@@ -19,6 +19,7 @@ import {
|
||||
SUBMISSION_ID
|
||||
} from './field-parser';
|
||||
import { DsDynamicInputModel, DsDynamicInputModelConfig } from '../ds-dynamic-form-ui/models/ds-dynamic-input.model';
|
||||
import { TranslateService } from '@ngx-translate/core';
|
||||
|
||||
export class ConcatFieldParser extends FieldParser {
|
||||
|
||||
@@ -27,10 +28,11 @@ export class ConcatFieldParser extends FieldParser {
|
||||
@Inject(CONFIG_DATA) configData: FormFieldModel,
|
||||
@Inject(INIT_FORM_VALUES) initFormValues,
|
||||
@Inject(PARSER_OPTIONS) parserOptions: ParserOptions,
|
||||
translate: TranslateService,
|
||||
protected separator: string,
|
||||
protected firstPlaceholder: string = null,
|
||||
protected secondPlaceholder: string = null) {
|
||||
super(submissionId, configData, initFormValues, parserOptions);
|
||||
super(submissionId, configData, initFormValues, parserOptions, translate);
|
||||
|
||||
this.separator = separator;
|
||||
this.firstPlaceholder = firstPlaceholder;
|
||||
|
@@ -15,6 +15,7 @@ import {
|
||||
import { isNotEmpty } from '../../../empty.util';
|
||||
import { FormFieldMetadataValueObject } from '../models/form-field-metadata-value.model';
|
||||
import { ParserOptions } from './parser-options';
|
||||
import { TranslateService } from '@ngx-translate/core';
|
||||
|
||||
export class DropdownFieldParser extends FieldParser {
|
||||
|
||||
@@ -23,8 +24,9 @@ export class DropdownFieldParser extends FieldParser {
|
||||
@Inject(CONFIG_DATA) configData: FormFieldModel,
|
||||
@Inject(INIT_FORM_VALUES) initFormValues,
|
||||
@Inject(PARSER_OPTIONS) parserOptions: ParserOptions,
|
||||
translate: TranslateService
|
||||
) {
|
||||
super(submissionId, configData, initFormValues, parserOptions);
|
||||
super(submissionId, configData, initFormValues, parserOptions, translate);
|
||||
}
|
||||
|
||||
public modelFactory(fieldValue?: FormFieldMetadataValueObject | any, label?: boolean): any {
|
||||
|
@@ -25,6 +25,7 @@ import { VocabularyOptions } from '../../../../core/submission/vocabularies/mode
|
||||
import { ParserType } from './parser-type';
|
||||
import { isNgbDateStruct } from '../../../date.util';
|
||||
import { SubmissionScopeType } from '../../../../core/submission/submission-scope-type';
|
||||
import { TranslateService } from '@ngx-translate/core';
|
||||
|
||||
export const SUBMISSION_ID: InjectionToken<string> = new InjectionToken<string>('submissionId');
|
||||
export const CONFIG_DATA: InjectionToken<FormFieldModel> = new InjectionToken<FormFieldModel>('configData');
|
||||
@@ -50,7 +51,8 @@ export abstract class FieldParser {
|
||||
@Inject(SUBMISSION_ID) protected submissionId: string,
|
||||
@Inject(CONFIG_DATA) protected configData: FormFieldModel,
|
||||
@Inject(INIT_FORM_VALUES) protected initFormValues: any,
|
||||
@Inject(PARSER_OPTIONS) protected parserOptions: ParserOptions
|
||||
@Inject(PARSER_OPTIONS) protected parserOptions: ParserOptions,
|
||||
protected translate: TranslateService
|
||||
) {
|
||||
}
|
||||
|
||||
@@ -395,11 +397,14 @@ export abstract class FieldParser {
|
||||
} else {
|
||||
regex = new RegExp(this.configData.input.regex);
|
||||
}
|
||||
const baseTranslationKey = 'error.validation.pattern';
|
||||
const fieldranslationKey = `${baseTranslationKey}.${controlModel.id}`;
|
||||
const fieldTranslationExists = this.translate.instant(fieldranslationKey) !== fieldranslationKey;
|
||||
controlModel.validators = Object.assign({}, controlModel.validators, { pattern: regex });
|
||||
controlModel.errorMessages = Object.assign(
|
||||
{},
|
||||
controlModel.errorMessages,
|
||||
{ pattern: 'error.validation.pattern' });
|
||||
{ pattern: fieldTranslationExists ? fieldranslationKey : baseTranslationKey });
|
||||
}
|
||||
|
||||
protected markAsRequired(controlModel) {
|
||||
|
@@ -1,4 +1,5 @@
|
||||
import { Inject } from '@angular/core';
|
||||
import { TranslateService } from '@ngx-translate/core';
|
||||
import { FormFieldModel } from '../models/form-field.model';
|
||||
import { ConcatFieldParser } from './concat-field-parser';
|
||||
import { CONFIG_DATA, INIT_FORM_VALUES, PARSER_OPTIONS, SUBMISSION_ID } from './field-parser';
|
||||
@@ -10,8 +11,9 @@ export class NameFieldParser extends ConcatFieldParser {
|
||||
@Inject(SUBMISSION_ID) submissionId: string,
|
||||
@Inject(CONFIG_DATA) configData: FormFieldModel,
|
||||
@Inject(INIT_FORM_VALUES) initFormValues,
|
||||
@Inject(PARSER_OPTIONS) parserOptions: ParserOptions
|
||||
@Inject(PARSER_OPTIONS) parserOptions: ParserOptions,
|
||||
translate: TranslateService
|
||||
) {
|
||||
super(submissionId, configData, initFormValues, parserOptions, ',', 'form.last-name', 'form.first-name');
|
||||
super(submissionId, configData, initFormValues, parserOptions, translate, ',', 'form.last-name', 'form.first-name');
|
||||
}
|
||||
}
|
||||
|
@@ -19,12 +19,14 @@ import { SeriesFieldParser } from './series-field-parser';
|
||||
import { TagFieldParser } from './tag-field-parser';
|
||||
import { TextareaFieldParser } from './textarea-field-parser';
|
||||
import { DisabledFieldParser } from './disabled-field-parser';
|
||||
import { TranslateService } from '@ngx-translate/core';
|
||||
|
||||
const fieldParserDeps = [
|
||||
SUBMISSION_ID,
|
||||
CONFIG_DATA,
|
||||
INIT_FORM_VALUES,
|
||||
PARSER_OPTIONS,
|
||||
TranslateService
|
||||
];
|
||||
|
||||
/**
|
||||
|
@@ -1,4 +1,5 @@
|
||||
import { Inject } from '@angular/core';
|
||||
import { TranslateService } from '@ngx-translate/core';
|
||||
import { FormFieldModel } from '../models/form-field.model';
|
||||
import { ConcatFieldParser } from './concat-field-parser';
|
||||
import { CONFIG_DATA, INIT_FORM_VALUES, PARSER_OPTIONS, SUBMISSION_ID } from './field-parser';
|
||||
@@ -10,8 +11,9 @@ export class SeriesFieldParser extends ConcatFieldParser {
|
||||
@Inject(SUBMISSION_ID) submissionId: string,
|
||||
@Inject(CONFIG_DATA) configData: FormFieldModel,
|
||||
@Inject(INIT_FORM_VALUES) initFormValues,
|
||||
@Inject(PARSER_OPTIONS) parserOptions: ParserOptions
|
||||
@Inject(PARSER_OPTIONS) parserOptions: ParserOptions,
|
||||
translate: TranslateService
|
||||
) {
|
||||
super(submissionId, configData, initFormValues, parserOptions, ';');
|
||||
super(submissionId, configData, initFormValues, parserOptions, translate, ';');
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user