From 2de546fd5285a5cfc30b3c0393bb528e771f20bc Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+nikonratm@users.noreply.github.com> Date: Sun, 13 Dec 2020 11:03:50 -0800 Subject: [PATCH] Fix tag / correspondent / document type toggling logic --- .../app/services/filter-editor-view.service.ts | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src-ui/src/app/services/filter-editor-view.service.ts b/src-ui/src/app/services/filter-editor-view.service.ts index b436ecde4..bd25ec83b 100644 --- a/src-ui/src/app/services/filter-editor-view.service.ts +++ b/src-ui/src/app/services/filter-editor-view.service.ts @@ -103,18 +103,16 @@ export class FilterEditorViewService { private toggleFilterByItem(item: ObjectWithId, filterRuleTypeID: number) { let filterRules = this.filterRules let filterRuleType: FilterRuleType = FILTER_RULE_TYPES.find(t => t.id == filterRuleTypeID) - let existingRule = filterRules.find(rule => rule.type.id == filterRuleType.id) + let existingRules = filterRules.filter(rule => rule.type.id == filterRuleType.id) - if (existingRule && existingRule.value == item.id) { - filterRules.splice(filterRules.indexOf(existingRule), 1) - } else if (existingRule && filterRuleType.id == FILTER_HAS_TAG) { - filterRules.push({type: FILTER_RULE_TYPES.find(t => t.id == filterRuleType.id), value: item.id}) - } else if (existingRule && existingRule.value == item.id) { - return - } else if (existingRule) { - existingRule.value = item.id + if (existingRules && filterRuleType.id == FILTER_HAS_TAG) { + let existingItemRule = existingRules?.find(rule => rule.value == item.id) + if (existingItemRule) filterRules.splice(filterRules.indexOf(existingItemRule), 1) + else filterRules.push({type: filterRuleType, value: item.id}) + } else if (existingRules.length) { // Correspondents & DocumentTypes only one + filterRules.find(rule => rule.type.id == filterRuleType.id).value = item.id } else { - filterRules.push({type: FILTER_RULE_TYPES.find(t => t.id == filterRuleType.id), value: item.id}) + filterRules.push({type: filterRuleType, value: item.id}) } this.filterRules = filterRules