SelectableItem dropdowns refactoring

This commit is contained in:
Michael Shamoon 2020-12-19 21:45:53 -08:00
parent 1da652ba4d
commit fd6bfd02ce

View File

@ -48,9 +48,9 @@ export class BulkEditorComponent {
correspondents: PaperlessCorrespondent[] correspondents: PaperlessCorrespondent[]
documentTypes: PaperlessDocumentType[] documentTypes: PaperlessDocumentType[]
private _initialTagsSelectableItems: SelectableItem[] private initiallySelectedTagsSelectableItems: SelectableItem[]
private _initialCorrespondentsSelectableItems: SelectableItem[] private initiallySelectedCorrespondentsSelectableItems: SelectableItem[]
private _initialDocumentTypesSelectableItems: SelectableItem[] private initiallySelectedDocumentTypesSelectableItems: SelectableItem[]
dropdownTypes = FilterableDropdownType dropdownTypes = FilterableDropdownType
@ -109,36 +109,33 @@ export class BulkEditorComponent {
} }
tagsDropdownOpen() { tagsDropdownOpen() {
this._initialTagsSelectableItems = this.tagsSelectableItems this.initiallySelectedTagsSelectableItems = this.tagsSelectableItems.filter(tsi => tsi.state == SelectableItemState.Selected)
} }
correspondentsDropdownOpen() { correspondentsDropdownOpen() {
this._initialCorrespondentsSelectableItems = this.correspondentsSelectableItems this.initiallySelectedCorrespondentsSelectableItems = this.correspondentsSelectableItems.filter(csi => csi.state == SelectableItemState.Selected)
} }
documentTypesDropdownOpen() { documentTypesDropdownOpen() {
this._initialDocumentTypesSelectableItems = this.documentTypesSelectableItems this.initiallySelectedDocumentTypesSelectableItems = this.documentTypesSelectableItems.filter(dtsi => dtsi.state == SelectableItemState.Selected)
} }
applyTags(selectedTags: PaperlessTag[]) { applyTags(selectedTags: PaperlessTag[]) {
let initiallySelectedSelectableTags = this._initialTagsSelectableItems.filter(tsi => tsi.state == SelectableItemState.Selected) let unchanged = this.equateItemsToSelectableItems(selectedTags, this.initiallySelectedTagsSelectableItems)
let unchanged = this.equateItemsToSelectableItems(selectedTags, initiallySelectedSelectableTags)
if (!unchanged) this.setTags.emit(selectedTags) if (!unchanged) this.setTags.emit(selectedTags)
this._initialTagsSelectableItems = null this.initiallySelectedTagsSelectableItems = null
} }
applyCorrespondent(selectedCorrespondents: PaperlessCorrespondent[]) { applyCorrespondent(selectedCorrespondents: PaperlessCorrespondent[]) {
let initiallySelectedSelectableCorrespondents = this._initialCorrespondentsSelectableItems.filter(csi => csi.state == SelectableItemState.Selected) let unchanged = this.equateItemsToSelectableItems(selectedCorrespondents, this.initiallySelectedCorrespondentsSelectableItems)
let unchanged = this.equateItemsToSelectableItems(selectedCorrespondents, initiallySelectedSelectableCorrespondents)
if (!unchanged) this.setCorrespondent.emit(selectedCorrespondents?.length > 0 ? selectedCorrespondents.shift() : null) if (!unchanged) this.setCorrespondent.emit(selectedCorrespondents?.length > 0 ? selectedCorrespondents.shift() : null)
this._initialCorrespondentsSelectableItems = null this.initiallySelectedCorrespondentsSelectableItems = null
} }
applyDocumentType(selectedDocumentTypes: PaperlessDocumentType[]) { applyDocumentType(selectedDocumentTypes: PaperlessDocumentType[]) {
let initiallySelectedSelectableDocumentTypes = this._initialDocumentTypesSelectableItems.filter(dtsi => dtsi.state == SelectableItemState.Selected) let unchanged = this.equateItemsToSelectableItems(selectedDocumentTypes, this.initiallySelectedDocumentTypesSelectableItems)
let unchanged = this.equateItemsToSelectableItems(selectedDocumentTypes, initiallySelectedSelectableDocumentTypes)
if (!unchanged) this.setDocumentType.emit(selectedDocumentTypes.length > 0 ? selectedDocumentTypes.shift() : null) if (!unchanged) this.setDocumentType.emit(selectedDocumentTypes.length > 0 ? selectedDocumentTypes.shift() : null)
this._initialDocumentTypesSelectableItems = null this.initiallySelectedDocumentTypesSelectableItems = null
} }
equateItemsToSelectableItems(items: ObjectWithId[], selectableItems: SelectableItem[]): boolean { equateItemsToSelectableItems(items: ObjectWithId[], selectableItems: SelectableItem[]): boolean {