mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-10-30 03:56:23 -05:00 
			
		
		
		
	Dropdown components now accept lists not observables
This commit is contained in:
		| @@ -3,7 +3,7 @@ | |||||||
|   <div class="dropdown-menu quick-filter shadow" ngbDropdownMenu attr.aria-labelledby="dropdown{{title}}"> |   <div class="dropdown-menu quick-filter shadow" ngbDropdownMenu attr.aria-labelledby="dropdown{{title}}"> | ||||||
|     <div class="list-group list-group-flush"> |     <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> |       <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"> |         <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> |           <app-filter-dropdown-button [item]="item" [selected]="isItemSelected(item)" (toggle)="toggleItem($event)"></app-filter-dropdown-button> | ||||||
|         </ng-container> |         </ng-container> | ||||||
|   | |||||||
| @@ -14,7 +14,7 @@ export class FilterDropdownComponent implements OnInit { | |||||||
|   constructor(private filterPipe: FilterPipe) { } |   constructor(private filterPipe: FilterPipe) { } | ||||||
|  |  | ||||||
|   @Input() |   @Input() | ||||||
|   items$: Observable<Results<ObjectWithId>> |   items: ObjectWithId[] | ||||||
|  |  | ||||||
|   @Input() |   @Input() | ||||||
|   itemsSelected: ObjectWithId[] |   itemsSelected: ObjectWithId[] | ||||||
| @@ -31,11 +31,6 @@ export class FilterDropdownComponent implements OnInit { | |||||||
|   @ViewChild('listFilterTextInput') listFilterTextInput: ElementRef |   @ViewChild('listFilterTextInput') listFilterTextInput: ElementRef | ||||||
|  |  | ||||||
|   filterText: string |   filterText: string | ||||||
|   items: ObjectWithId[] |  | ||||||
|  |  | ||||||
|   ngOnInit() { |  | ||||||
|     this.items$.subscribe(result => this.items = result.results) |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   toggleItem(item: ObjectWithId): void { |   toggleItem(item: ObjectWithId): void { | ||||||
|     this.toggle.emit(item) |     this.toggle.emit(item) | ||||||
|   | |||||||
| @@ -6,9 +6,9 @@ | |||||||
|     <input class="form-control form-control-sm" type="text" [(ngModel)]="filterEditorService.filterText" placeholder="Title" #filterTextInput> |     <input class="form-control form-control-sm" type="text" [(ngModel)]="filterEditorService.filterText" placeholder="Title" #filterTextInput> | ||||||
|   </div> |   </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.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.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.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.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> |   <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> | ||||||
|   | |||||||
| @@ -16,9 +16,9 @@ import { NgbDate, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap'; | |||||||
|   providedIn: 'root' |   providedIn: 'root' | ||||||
| }) | }) | ||||||
| export class FilterEditorViewService { | export class FilterEditorViewService { | ||||||
|   tags$: Observable<Results<PaperlessTag>> |   private tags$: Observable<Results<PaperlessTag>> | ||||||
|   correspondents$: Observable<Results<PaperlessCorrespondent>> |   private correspondents$: Observable<Results<PaperlessCorrespondent>> | ||||||
|   documentTypes$: Observable<Results<PaperlessDocumentType>> |   private documentTypes$: Observable<Results<PaperlessDocumentType>> | ||||||
|  |  | ||||||
|   tags: PaperlessTag[] = [] |   tags: PaperlessTag[] = [] | ||||||
|   correspondents: PaperlessCorrespondent[] |   correspondents: PaperlessCorrespondent[] | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Michael Shamoon
					Michael Shamoon