Fix tag / correspondent / document type toggling logic

This commit is contained in:
Michael Shamoon 2020-12-13 11:03:50 -08:00
parent d6894d3c64
commit 2de546fd52

View File

@ -103,18 +103,16 @@ export class FilterEditorViewService {
private toggleFilterByItem(item: ObjectWithId, filterRuleTypeID: number) { private toggleFilterByItem(item: ObjectWithId, filterRuleTypeID: number) {
let filterRules = this.filterRules let filterRules = this.filterRules
let filterRuleType: FilterRuleType = FILTER_RULE_TYPES.find(t => t.id == filterRuleTypeID) 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) { if (existingRules && filterRuleType.id == FILTER_HAS_TAG) {
filterRules.splice(filterRules.indexOf(existingRule), 1) let existingItemRule = existingRules?.find(rule => rule.value == item.id)
} else if (existingRule && filterRuleType.id == FILTER_HAS_TAG) { if (existingItemRule) filterRules.splice(filterRules.indexOf(existingItemRule), 1)
filterRules.push({type: FILTER_RULE_TYPES.find(t => t.id == filterRuleType.id), value: item.id}) else filterRules.push({type: filterRuleType, value: item.id})
} else if (existingRule && existingRule.value == item.id) { } else if (existingRules.length) { // Correspondents & DocumentTypes only one
return filterRules.find(rule => rule.type.id == filterRuleType.id).value = item.id
} else if (existingRule) {
existingRule.value = item.id
} else { } 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 this.filterRules = filterRules