From a61ea3555acde275a80a9de18f0e88a9d0e0d753 Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+nikonratm@users.noreply.github.com> Date: Sun, 13 Dec 2020 11:17:10 -0800 Subject: [PATCH] Ok now toggling logic is fixed --- src-ui/src/app/services/filter-editor-view.service.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 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 bd25ec83b..071a0d577 100644 --- a/src-ui/src/app/services/filter-editor-view.service.ts +++ b/src-ui/src/app/services/filter-editor-view.service.ts @@ -104,11 +104,12 @@ export class FilterEditorViewService { let filterRules = this.filterRules let filterRuleType: FilterRuleType = FILTER_RULE_TYPES.find(t => t.id == filterRuleTypeID) let existingRules = filterRules.filter(rule => rule.type.id == filterRuleType.id) + let existingItemRule = existingRules?.find(rule => rule.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}) + if (existingRules && existingItemRule) { + filterRules.splice(filterRules.indexOf(existingItemRule), 1) // if exact rule exists just remove + } else if (existingItemRule && filterRuleType.multi) { // e.g. tags can have multiple + 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 {