mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-04-02 13:45:10 -05:00
Disable any / all toggle when excluded items
This commit is contained in:
parent
a73ff4ffa6
commit
a6bd118f5e
@ -15,10 +15,10 @@
|
||||
<div *ngIf="!editing && multiple" class="list-group-item d-flex">
|
||||
<div class="btn-group btn-group-xs btn-group-toggle flex-fill" ngbRadioGroup [(ngModel)]="selectionModel.logicalOperator" (change)="selectionModel.toggleOperator()">
|
||||
<label ngbButtonLabel class="btn btn-outline-primary">
|
||||
<input ngbButton type="radio" name="logicalOperator" value="and" [disabled]="selectionModel.selectionSize() < 2"> All
|
||||
<input ngbButton type="radio" name="logicalOperator" value="and" [disabled]="!operatorToggleEnabled"> All
|
||||
</label>
|
||||
<label ngbButtonLabel class="btn btn-outline-primary">
|
||||
<input ngbButton type="radio" name="logicalOperator" value="or" [disabled]="selectionModel.selectionSize() < 2"> Any
|
||||
<input ngbButton type="radio" name="logicalOperator" value="or" [disabled]="!operatorToggleEnabled"> Any
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -95,6 +95,7 @@ export class FilterableDropdownSelectionModel {
|
||||
let state = this.temporarySelectionStates.get(id)
|
||||
if (state == null || state != ToggleableItemState.Excluded) {
|
||||
this.temporarySelectionStates.set(id, ToggleableItemState.Excluded)
|
||||
this.temporaryLogicalOperator = this._logicalOperator = 'and'
|
||||
} else if (state == ToggleableItemState.Excluded) {
|
||||
this.temporarySelectionStates.delete(id)
|
||||
}
|
||||
@ -270,6 +271,10 @@ export class FilterableDropdownComponent {
|
||||
@Output()
|
||||
open = new EventEmitter()
|
||||
|
||||
get operatorToggleEnabled(): boolean {
|
||||
return this.selectionModel.selectionSize() > 1 && this.selectionModel.getExcludedItems().length == 0
|
||||
}
|
||||
|
||||
constructor(private filterPipe: FilterPipe) {
|
||||
this.selectionModel = new FilterableDropdownSelectionModel()
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user