Fixed <select> behaving differently in chrome
This commit is contained in:
parent
c39dceb741
commit
3da9b6ac27
@ -32,16 +32,15 @@
|
|||||||
<fieldset class="mt-2" *ngIf="this.sortingOrder">
|
<fieldset class="mt-2" *ngIf="this.sortingOrder">
|
||||||
<legend>sorting</legend>
|
<legend>sorting</legend>
|
||||||
|
|
||||||
<select>
|
<select (change)="onSortingFieldChange($event)">
|
||||||
<ng-container *ngFor="let category of ['user', 'beatmap', 'score', 'metrics']">
|
<ng-container *ngFor="let category of ['user', 'beatmap', 'score', 'metrics']">
|
||||||
<optgroup label="{{ category }}">
|
<optgroup label="{{ category }}">
|
||||||
<ng-container *ngFor="let field of fields">
|
<ng-container *ngFor="let field of fields">
|
||||||
<ng-container *ngIf="field.category === category">
|
<ng-container *ngIf="field.category === category">
|
||||||
<option
|
<option
|
||||||
[value]="field.name"
|
[value]="field.name"
|
||||||
(click)="this.sortingOrder.field = field.name"
|
[selected]="field.name === sortingOrder.field">
|
||||||
[selected]="field.name == this.sortingOrder.field"
|
{{ field.name }}
|
||||||
>{{ field.name }}
|
|
||||||
</option>
|
</option>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|||||||
@ -185,6 +185,22 @@ export class SearchComponent implements OnInit {
|
|||||||
}, {});
|
}, {});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
onSortingFieldChange(event: Event): void {
|
||||||
|
const selectElement = event.target as HTMLSelectElement;
|
||||||
|
if(!selectElement) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(this.sortingOrder === null) {
|
||||||
|
this.sortingOrder = {
|
||||||
|
field: 'user_id',
|
||||||
|
order: 'ASC'
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
this.sortingOrder.field = selectElement.value;
|
||||||
|
}
|
||||||
|
|
||||||
saveSettingsToLocalStorage(): void {
|
saveSettingsToLocalStorage(): void {
|
||||||
const settings = this.serializeSettings();
|
const settings = this.serializeSettings();
|
||||||
localStorage.setItem('search_settings', JSON.stringify(settings));
|
localStorage.setItem('search_settings', JSON.stringify(settings));
|
||||||
|
|||||||
@ -35,14 +35,14 @@
|
|||||||
</ng-container>
|
</ng-container>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select [disabled]="!predicate.field">
|
<select [disabled]="!predicate.field" (change)="onOperatorChange(predicate, $event)">
|
||||||
<option *ngFor="let operator of predicate.field?.validOperators"
|
<option *ngFor="let operator of predicate.field?.validOperators" [value]="operator.operatorType"
|
||||||
[selected]="operator.operatorType === predicate.operator?.operatorType"
|
[selected]="operator.operatorType === predicate.operator?.operatorType">
|
||||||
(click)="predicate.operator = operator; this.queryChanged.emit()">
|
|
||||||
{{ operator.operatorType }}
|
{{ operator.operatorType }}
|
||||||
</option>
|
</option>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
<ng-container *ngIf="predicate.operator">
|
<ng-container *ngIf="predicate.operator">
|
||||||
|
|
||||||
<ng-container *ngIf="predicate.operator.acceptsValues == 'any'">
|
<ng-container *ngIf="predicate.operator.acceptsValues == 'any'">
|
||||||
|
|||||||
@ -43,6 +43,16 @@ export class QueryComponent {
|
|||||||
predicate.operator = selectedField.validOperators[0];
|
predicate.operator = selectedField.validOperators[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
onOperatorChange(predicate: Predicate, event: Event): void {
|
||||||
|
const selectElement = event.target as HTMLSelectElement;
|
||||||
|
const selectedOperatorType = selectElement.value;
|
||||||
|
const selectedOperator = predicate.field?.validOperators.find(operator => operator.operatorType === selectedOperatorType);
|
||||||
|
if (selectedOperator) {
|
||||||
|
predicate.operator = selectedOperator;
|
||||||
|
this.queryChanged.emit(); // Assuming `queryChanged` is an EventEmitter you've defined somewhere in your component
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
addPredicate(): void {
|
addPredicate(): void {
|
||||||
this.query.predicates.push({ field: null, operator: null, value: null });
|
this.query.predicates.push({ field: null, operator: null, value: null });
|
||||||
this.queryChanged.emit();
|
this.queryChanged.emit();
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user