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">
|
||||
<legend>sorting</legend>
|
||||
|
||||
<select>
|
||||
<select (change)="onSortingFieldChange($event)">
|
||||
<ng-container *ngFor="let category of ['user', 'beatmap', 'score', 'metrics']">
|
||||
<optgroup label="{{ category }}">
|
||||
<ng-container *ngFor="let field of fields">
|
||||
<ng-container *ngIf="field.category === category">
|
||||
<option
|
||||
[value]="field.name"
|
||||
(click)="this.sortingOrder.field = field.name"
|
||||
[selected]="field.name == this.sortingOrder.field"
|
||||
>{{ field.name }}
|
||||
[selected]="field.name === sortingOrder.field">
|
||||
{{ field.name }}
|
||||
</option>
|
||||
</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 {
|
||||
const settings = this.serializeSettings();
|
||||
localStorage.setItem('search_settings', JSON.stringify(settings));
|
||||
|
||||
@ -35,14 +35,14 @@
|
||||
</ng-container>
|
||||
</select>
|
||||
|
||||
<select [disabled]="!predicate.field">
|
||||
<option *ngFor="let operator of predicate.field?.validOperators"
|
||||
[selected]="operator.operatorType === predicate.operator?.operatorType"
|
||||
(click)="predicate.operator = operator; this.queryChanged.emit()">
|
||||
<select [disabled]="!predicate.field" (change)="onOperatorChange(predicate, $event)">
|
||||
<option *ngFor="let operator of predicate.field?.validOperators" [value]="operator.operatorType"
|
||||
[selected]="operator.operatorType === predicate.operator?.operatorType">
|
||||
{{ operator.operatorType }}
|
||||
</option>
|
||||
</select>
|
||||
|
||||
|
||||
<ng-container *ngIf="predicate.operator">
|
||||
|
||||
<ng-container *ngIf="predicate.operator.acceptsValues == 'any'">
|
||||
|
||||
@ -43,6 +43,16 @@ export class QueryComponent {
|
||||
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 {
|
||||
this.query.predicates.push({ field: null, operator: null, value: null });
|
||||
this.queryChanged.emit();
|
||||
|
||||
Loading…
Reference in New Issue
Block a user