From fe8b9f533ae74590ec1cba849c5378079c7a0ac9 Mon Sep 17 00:00:00 2001 From: George Date: Thu, 31 Aug 2023 12:03:36 +0300 Subject: [PATCH] RED-7487, deduplicate dossier_redaction dictionary in redact text dialog --- .../entity-services/dictionary.service.ts | 35 +++++++------------ 1 file changed, 12 insertions(+), 23 deletions(-) diff --git a/apps/red-ui/src/app/services/entity-services/dictionary.service.ts b/apps/red-ui/src/app/services/entity-services/dictionary.service.ts index bb8738ba9..bc2bc8438 100644 --- a/apps/red-ui/src/app/services/entity-services/dictionary.service.ts +++ b/apps/red-ui/src/app/services/entity-services/dictionary.service.ts @@ -149,34 +149,23 @@ export class DictionaryService extends EntitiesService } getRedactTextDictionaries(dossierTemplateId: string, dossierDictionaryOnly: boolean): Dictionary[] { - const dictionaries: Dictionary[] = []; - - this._dictionariesMapService.get(dossierTemplateId).forEach((d: Dictionary) => { - if (!d.hint && d.addToDictionaryAction) { - if (dossierDictionaryOnly) { - dictionaries.push(d); - } else { - if (!d.dossierDictionaryOnly) { - dictionaries.push(d); - } - } - } - }); - - return dictionaries.sort((a, b) => a.label.localeCompare(b.label)); + return this._dictionariesMapService + .get(dossierTemplateId) + .filter(d => d.model['typeId'] && !d.hint && d.addToDictionaryAction && (dossierDictionaryOnly || !d.dossierDictionaryOnly)) + .sort((a, b) => a.label.localeCompare(b.label)); } getEditableRedactionTypes(dossierTemplateId: string, isImage: boolean, isHint: boolean, isOCR: boolean): Dictionary[] { - const types = []; - this._dictionariesMapService + return this._dictionariesMapService .get(dossierTemplateId) - .filter(d => - isImage - ? (isOCR ? [...IMAGE_CATEGORIES, 'ocr'] : IMAGE_CATEGORIES).includes(d.type) - : (isHint ? d.hint : !d.hint) && !d.virtual && !d.systemManaged && ![...IMAGE_CATEGORIES, 'ocr'].includes(d.type), + .filter( + d => + d.model['typeId'] && + (isImage + ? (isOCR ? [...IMAGE_CATEGORIES, 'ocr'] : IMAGE_CATEGORIES).includes(d.type) + : (isHint ? d.hint : !d.hint) && !d.virtual && !d.systemManaged && ![...IMAGE_CATEGORIES, 'ocr'].includes(d.type)), ) - .forEach(d => !types.find(t => t.id === d.id) && types.push(d)); - return types.sort((a, b) => a.label.localeCompare(b.label)); + .sort((a, b) => a.label.localeCompare(b.label)); } getAddHintDictionaries(dossierTemplateId: string, dossierDictionaryOnly: boolean, dictionaryRequest: boolean): Dictionary[] {