nise/nise-frontend/src/corelib/components/query-builder/query-builder.component.html

34 lines
1.3 KiB
HTML
Raw Normal View History

<fieldset>
<legend>Query builder</legend>
<fieldset *ngFor="let query of queries; let i = index" class="query">
<legend>Predicate #{{ i + 1 }}</legend>
<div class="logical-operator-toggle">
<label>
<input type="radio" name="logicalOperator{{i}}" [(ngModel)]="query.logicalOperator" value="AND" />
AND
</label>
<label>
<input type="radio" name="logicalOperator{{i}}" [(ngModel)]="query.logicalOperator" value="OR" />
OR
</label>
</div>
<div *ngFor="let predicate of query.predicates; let j = index" class="predicate">
<select>
<option *ngFor="let field of fields" (click)="onFieldChange(predicate, field)" [selected]="field.name === predicate.field?.name">{{ field.name }}</option>
</select>
<select [(ngModel)]="predicate.operator" [disabled]="!predicate.field">
<option *ngFor="let operator of getOperators(predicate.field?.type)" [value]="operator">
{{ operator }}
</option>
</select>
<input [(ngModel)]="predicate.value" type="text" placeholder="Value" [disabled]="!predicate.field">
<button (click)="removePredicate(i, j)">X</button>
</div>
<button (click)="addPredicate(i)">+ Rule</button>
</fieldset>
<button (click)="addQuery()">+ Predicate</button>
</fieldset>