From 40da0dcf3d81da8f51a374727a5b11cee853fc4e Mon Sep 17 00:00:00 2001 From: jojohoch <joachim.hoch@iqb.hu-berlin.de> Date: Mon, 9 May 2022 15:20:50 +0200 Subject: [PATCH] Sanitize `inputAssistancePreset` for text input elements - Expand the list of elements zo sanitize to ['text-field', 'text-area', 'text-field-simple', 'spell-correct'] - Rename sanitize method - Change expectations in tests --- projects/common/services/sanitization.service.spec.ts | 6 +++--- projects/common/services/sanitization.service.ts | 9 ++++++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/projects/common/services/sanitization.service.spec.ts b/projects/common/services/sanitization.service.spec.ts index a70bde775..0d6bdd9de 100644 --- a/projects/common/services/sanitization.service.spec.ts +++ b/projects/common/services/sanitization.service.spec.ts @@ -254,7 +254,7 @@ describe('SanitizationService', () => { service.sanitizeUnitDefinition(JSON.parse(JSON.stringify(sampleUnit130TextFields))); expect(sanitizedUnit130TextFields.pages[0].sections[0].elements[0]) .toEqual(jasmine.objectContaining({ - 'inputAssistancePreset': 'none', + 'inputAssistancePreset': null, 'inputAssistancePosition': 'floating', 'restrictedToInputAssistanceChars': false })); @@ -278,7 +278,7 @@ describe('SanitizationService', () => { service.sanitizeUnitDefinition(JSON.parse(JSON.stringify(sampleUnit112TextFields))); expect(sanitizedUnit112TextFields.pages[0].sections[0].elements[0]) .toEqual(jasmine.objectContaining({ - 'inputAssistancePreset': 'none', + 'inputAssistancePreset': null, 'inputAssistancePosition': 'floating' })); expect(sanitizedUnit112TextFields.pages[0].sections[0].elements[0]) @@ -303,7 +303,7 @@ describe('SanitizationService', () => { // text areas expect(sanitizedUnit112TextFields.pages[0].sections[0].elements[3]) .toEqual(jasmine.objectContaining({ - 'inputAssistancePreset': 'none', + 'inputAssistancePreset': null, 'inputAssistancePosition': 'floating' })); expect(sanitizedUnit112TextFields.pages[0].sections[0].elements[3]) diff --git a/projects/common/services/sanitization.service.ts b/projects/common/services/sanitization.service.ts index c5055efc2..f87f87297 100644 --- a/projects/common/services/sanitization.service.ts +++ b/projects/common/services/sanitization.service.ts @@ -89,9 +89,9 @@ export class SanitizationService { if (newElement.type === 'text') { newElement = SanitizationService.handleTextElement(newElement); } - if (['text-field', 'text-area'] + if (['text-field', 'text-area', 'text-field-simple', 'spell-correct'] .includes(newElement.type as string)) { - newElement = SanitizationService.sanitizeTextFieldElement(newElement); + newElement = SanitizationService.sanitizeTextInputElement(newElement); } if (newElement.type === 'cloze') { newElement = this.handleClozeElement(newElement as Record<string, UIElementValue>); @@ -211,11 +211,14 @@ export class SanitizationService { return newElement as TextElement; } - private static sanitizeTextFieldElement(element: Record<string, UIElementValue>): InputElement { + private static sanitizeTextInputElement(element: Record<string, UIElementValue>): InputElement { const newElement = { ...element }; if (newElement.restrictedToInputAssistanceChars === undefined && newElement.inputAssistancePreset === 'french') { newElement.restrictedToInputAssistanceChars = false; } + if (newElement.inputAssistancePreset === 'none') { + newElement.inputAssistancePreset = null; + } return newElement as InputElement; } -- GitLab