mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-10-30 03:56:23 -05:00 
			
		
		
		
	intelligent sorting of the bulk edit drop downs
This commit is contained in:
		| @@ -20,7 +20,7 @@ | ||||
|         </div> | ||||
|       </div> | ||||
|       <div *ngIf="selectionModel.items" class="items"> | ||||
|         <ng-container *ngFor="let item of selectionModel.items | filter: filterText"> | ||||
|         <ng-container *ngFor="let item of selectionModel.itemsSorted | filter: filterText"> | ||||
|           <app-toggleable-dropdown-button *ngIf="allowSelectNone || item.id" [item]="item" [state]="selectionModel.get(item.id)" (toggle)="selectionModel.toggle(item.id)"></app-toggleable-dropdown-button> | ||||
|         </ng-container> | ||||
|       </div> | ||||
|   | ||||
| @@ -18,6 +18,18 @@ export class FilterableDropdownSelectionModel { | ||||
|  | ||||
|   items: MatchingModel[] = [] | ||||
|  | ||||
|   get itemsSorted(): MatchingModel[] { | ||||
|     return this.items.sort((a,b) => { | ||||
|       if (this.getNonTemporary(a.id) == ToggleableItemState.NotSelected && this.getNonTemporary(b.id) != ToggleableItemState.NotSelected) { | ||||
|         return 1 | ||||
|       } else if (this.getNonTemporary(a.id) != ToggleableItemState.NotSelected && this.getNonTemporary(b.id) == ToggleableItemState.NotSelected) { | ||||
|         return -1 | ||||
|       } else { | ||||
|         return a.name.localeCompare(b.name) | ||||
|       } | ||||
|     }) | ||||
|   } | ||||
|  | ||||
|   private selectionStates = new Map<number, ToggleableItemState>() | ||||
|  | ||||
|   private temporarySelectionStates = new Map<number, ToggleableItemState>() | ||||
| @@ -69,6 +81,10 @@ export class FilterableDropdownSelectionModel { | ||||
|      | ||||
|   } | ||||
|  | ||||
|   private getNonTemporary(id: number) { | ||||
|     return this.selectionStates.get(id) || ToggleableItemState.NotSelected | ||||
|   } | ||||
|  | ||||
|   get(id: number) { | ||||
|     return this.temporarySelectionStates.get(id) || ToggleableItemState.NotSelected | ||||
|   } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 jonaswinkler
					jonaswinkler