From 6f684f80705e715ad36b2c0fc823695c80912865 Mon Sep 17 00:00:00 2001 From: Michael Shamoon <4887959+nikonratm@users.noreply.github.com> Date: Sun, 13 Dec 2020 10:24:20 -0800 Subject: [PATCH] Dropdown components now accept lists not observables --- .../filter-dropdown/filter-dropdown.component.html | 2 +- .../filter-dropdown/filter-dropdown.component.ts | 7 +------ .../components/filter-editor/filter-editor.component.html | 6 +++--- src-ui/src/app/services/filter-editor-view.service.ts | 6 +++--- 4 files changed, 8 insertions(+), 13 deletions(-) diff --git a/src-ui/src/app/components/filter-editor/filter-dropdown/filter-dropdown.component.html b/src-ui/src/app/components/filter-editor/filter-dropdown/filter-dropdown.component.html index 47a46762d..8c48f0e2f 100644 --- a/src-ui/src/app/components/filter-editor/filter-dropdown/filter-dropdown.component.html +++ b/src-ui/src/app/components/filter-editor/filter-dropdown/filter-dropdown.component.html @@ -3,7 +3,7 @@ <div class="dropdown-menu quick-filter shadow" ngbDropdownMenu attr.aria-labelledby="dropdown{{title}}"> <div class="list-group list-group-flush"> <input class="list-group-item form-control form-control-sm" type="text" [(ngModel)]="filterText" placeholder="Filter {{title}}" (keyup.enter)="listFilterEnter()" #listFilterTextInput> - <ng-container *ngIf="(items$ | async)?.results as items"> + <ng-container *ngIf="items"> <ng-container *ngFor="let item of items | filter: filterText; let i = index"> <app-filter-dropdown-button [item]="item" [selected]="isItemSelected(item)" (toggle)="toggleItem($event)"></app-filter-dropdown-button> </ng-container> diff --git a/src-ui/src/app/components/filter-editor/filter-dropdown/filter-dropdown.component.ts b/src-ui/src/app/components/filter-editor/filter-dropdown/filter-dropdown.component.ts index 4c80bfb66..a54455153 100644 --- a/src-ui/src/app/components/filter-editor/filter-dropdown/filter-dropdown.component.ts +++ b/src-ui/src/app/components/filter-editor/filter-dropdown/filter-dropdown.component.ts @@ -14,7 +14,7 @@ export class FilterDropdownComponent implements OnInit { constructor(private filterPipe: FilterPipe) { } @Input() - items$: Observable<Results<ObjectWithId>> + items: ObjectWithId[] @Input() itemsSelected: ObjectWithId[] @@ -31,11 +31,6 @@ export class FilterDropdownComponent implements OnInit { @ViewChild('listFilterTextInput') listFilterTextInput: ElementRef filterText: string - items: ObjectWithId[] - - ngOnInit() { - this.items$.subscribe(result => this.items = result.results) - } toggleItem(item: ObjectWithId): void { this.toggle.emit(item) diff --git a/src-ui/src/app/components/filter-editor/filter-editor.component.html b/src-ui/src/app/components/filter-editor/filter-editor.component.html index 4c2e61d46..9c55c1e7e 100644 --- a/src-ui/src/app/components/filter-editor/filter-editor.component.html +++ b/src-ui/src/app/components/filter-editor/filter-editor.component.html @@ -6,9 +6,9 @@ <input class="form-control form-control-sm" type="text" [(ngModel)]="filterEditorService.filterText" placeholder="Title" #filterTextInput> </div> - <app-filter-dropdown class="col-auto" [(items$)]="filterEditorService.tags$" [itemsSelected]="filterEditorService.selectedTags" [title]="'Tags'" [display]="'tag'" (toggle)="onToggleTag($event)"></app-filter-dropdown> - <app-filter-dropdown class="col-auto" [(items$)]="filterEditorService.correspondents$" [itemsSelected]="filterEditorService.selectedCorrespondents" [title]="'Correspondents'" (toggle)="onToggleCorrespondent($event)"></app-filter-dropdown> - <app-filter-dropdown class="col-auto" [(items$)]="filterEditorService.documentTypes$" [itemsSelected]="filterEditorService.selectedDocumentTypes" [title]="'Document Types'" (toggle)="onToggleDocumentType($event)"></app-filter-dropdown> + <app-filter-dropdown class="col-auto" [(items)]="filterEditorService.tags" [itemsSelected]="filterEditorService.selectedTags" [title]="'Tags'" [display]="'tag'" (toggle)="onToggleTag($event)"></app-filter-dropdown> + <app-filter-dropdown class="col-auto" [(items)]="filterEditorService.correspondents" [itemsSelected]="filterEditorService.selectedCorrespondents" [title]="'Correspondents'" (toggle)="onToggleCorrespondent($event)"></app-filter-dropdown> + <app-filter-dropdown class="col-auto" [(items)]="filterEditorService.documentTypes" [itemsSelected]="filterEditorService.selectedDocumentTypes" [title]="'Document Types'" (toggle)="onToggleDocumentType($event)"></app-filter-dropdown> <app-filter-dropdown-date class="col-auto" [dateBefore]="filterEditorService.dateCreatedBefore" [dateAfter]="filterEditorService.dateCreatedAfter" [title]="'Created'" (dateBeforeSet)="onDateCreatedBeforeSet($event)" (dateAfterSet)="onDateCreatedAfterSet($event)"></app-filter-dropdown-date> <app-filter-dropdown-date class="col-auto" [dateBefore]="filterEditorService.dateAddedBefore" [dateAfter]="filterEditorService.dateAddedAfter" [title]="'Added'" (dateBeforeSet)="onDateAddedBeforeSet($event)" (dateAfterSet)="onDateAddedAfterSet($event)"></app-filter-dropdown-date> 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 ba7b6dd24..b436ecde4 100644 --- a/src-ui/src/app/services/filter-editor-view.service.ts +++ b/src-ui/src/app/services/filter-editor-view.service.ts @@ -16,9 +16,9 @@ import { NgbDate, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap'; providedIn: 'root' }) export class FilterEditorViewService { - tags$: Observable<Results<PaperlessTag>> - correspondents$: Observable<Results<PaperlessCorrespondent>> - documentTypes$: Observable<Results<PaperlessDocumentType>> + private tags$: Observable<Results<PaperlessTag>> + private correspondents$: Observable<Results<PaperlessCorrespondent>> + private documentTypes$: Observable<Results<PaperlessDocumentType>> tags: PaperlessTag[] = [] correspondents: PaperlessCorrespondent[]