Update advanced search form
This commit is contained in:
parent
ca4da85090
commit
b19ef578b4
|
@ -16,111 +16,103 @@
|
|||
</div>
|
||||
<div class="uk-card uk-card-default uk-box-shadow-medium" [class.dark]="dark">
|
||||
<div class="uk-card-body uk-height-medium uk-overflow-auto">
|
||||
<div>
|
||||
<table class=" uk-table uk-table-responsive uk-table-small uk-margin-remove">
|
||||
<tr>
|
||||
<td class="uk-text-muted uk-text-uppercase">Field to search</td>
|
||||
<td class="uk-text-muted uk-text-uppercase uk-width-1-2">Term</td>
|
||||
</tr>
|
||||
<tr *ngFor="let selectedField of selectedFields; let i = index">
|
||||
<td><mat-select [(ngModel)]="selectedField.id" name="selectField_{{i}}" [disableOptionCentering]="true" class="matSelection" panelClass="matSelectionPanel"
|
||||
(ngModelChange)="fieldIdsChanged(i,selectedField.id)"><!--(click)="fieldIdsChanged(i)" -->
|
||||
<mat-option *ngFor="let id of fieldIds" [value]="id">{{fieldIdsMap[id].name}} </mat-option>
|
||||
</mat-select></td>
|
||||
<td *ngIf="selectedField.type == 'keyword' || selectedField.type == 'identifier'">
|
||||
<div class="uk-inline uk-width-expand">
|
||||
<a *ngIf="selectedField.value.length > 0" class="uk-form-icon uk-form-icon-flip"
|
||||
(click)="selectedField.value = ''"
|
||||
uk-icon="icon: close"></a>
|
||||
<input type="text" class="form-control uk-input"
|
||||
placeholder="Type keywords..."
|
||||
[(ngModel)]="selectedField.value" name="value[{{i}}]">
|
||||
</div>
|
||||
<table class="uk-table uk-table-middle uk-table-responsive uk-table-small uk-margin-remove">
|
||||
<tr>
|
||||
<td class="uk-text-muted uk-text-uppercase">Field to search</td>
|
||||
<td class="uk-text-muted uk-text-uppercase uk-width-1-2">Term</td>
|
||||
</tr>
|
||||
<tr *ngFor="let selectedField of selectedFields; let i = index">
|
||||
<td><mat-select [(ngModel)]="selectedField.id" name="selectField_{{i}}" [disableOptionCentering]="true" class="matSelection" panelClass="matSelectionPanel"
|
||||
(ngModelChange)="fieldIdsChanged(i,selectedField.id)"><!--(click)="fieldIdsChanged(i)" -->
|
||||
<mat-option *ngFor="let id of fieldIds" [value]="id">{{fieldIdsMap[id].name}} </mat-option>
|
||||
</mat-select></td>
|
||||
<td *ngIf="selectedField.type == 'keyword' || selectedField.type == 'identifier'">
|
||||
<div class="uk-inline uk-width-expand">
|
||||
<a *ngIf="selectedField.value.length > 0" class="uk-form-icon uk-form-icon-flip"
|
||||
(click)="selectedField.value = ''"
|
||||
uk-icon="icon: close"></a>
|
||||
<input type="text" class="form-control uk-input"
|
||||
placeholder="Type keywords..."
|
||||
[(ngModel)]="selectedField.value" name="value[{{i}}]">
|
||||
</div>
|
||||
|
||||
|
||||
</td>
|
||||
<td *ngIf="selectedField.type == 'date'">
|
||||
<date-filter [dateValue]=selectedField.dateValue [validDateFrom]=validDateFrom class="uk-width-expand"
|
||||
[validDateTo]=validDateTo></date-filter>
|
||||
</td>
|
||||
<td *ngIf=" selectedField.id && selectedField.type == 'vocabulary'">
|
||||
<static-autocomplete [properties]=properties *ngIf=" selectedField.id" [vocabularyId]=selectedField.param
|
||||
[fieldId]=selectedField.id
|
||||
[list]=this.fieldList[selectedField.id] [entityName]="entityType"
|
||||
[selectedValue]=selectedField.value [showSelected]=true
|
||||
[placeHolderMessage]="'Search for '+selectedField.name" [title]="selectedField.name"
|
||||
[multipleSelections]=false
|
||||
(selectedValueChanged)="valueChanged($event,i)"
|
||||
(listUpdated)="listUpdated($event,selectedField.id)"></static-autocomplete>
|
||||
</td>
|
||||
<td *ngIf=" selectedField.id && selectedField.type == 'refine'" class="uk-width-1-3">
|
||||
<static-autocomplete [properties]=properties [list]=this.fieldList[selectedField.id]
|
||||
[fieldId]=selectedField.id [entityName]="entityType" [fieldName]=[selectedField.id]
|
||||
[selectedValue]=selectedField.value [showSelected]=true
|
||||
[placeHolderMessage]="'Search for '+selectedField.name" [title]="selectedField.name"
|
||||
[multipleSelections]=false (selectedValueChanged)="valueChanged($event,i)"
|
||||
(listUpdated)="listUpdated($event,selectedField.id)"
|
||||
(updateValueLabel)="updatedValueLabel($event, i)"></static-autocomplete>
|
||||
</td>
|
||||
<td *ngIf="selectedField.type == 'entity'">
|
||||
<entities-autocomplete [properties]=properties [fieldId]=selectedField.id [entityType]=selectedField.param
|
||||
[selectedValue]=selectedField.value [showSelected]=true
|
||||
[placeHolderMessage]="'Search for '+selectedField.name" [title]="selectedField.name"
|
||||
[multipleSelections]=false
|
||||
(selectedValueChanged)="valueChanged($event,i)"
|
||||
(updateValueLabel)="updatedValueLabel($event, i)">
|
||||
</entities-autocomplete>
|
||||
</td>
|
||||
</td>
|
||||
<td *ngIf="selectedField.type == 'date'">
|
||||
<date-filter [dateValue]=selectedField.dateValue [validDateFrom]=validDateFrom class="uk-width-expand"
|
||||
[validDateTo]=validDateTo></date-filter>
|
||||
</td>
|
||||
<td *ngIf=" selectedField.id && selectedField.type == 'vocabulary'">
|
||||
<static-autocomplete [properties]=properties *ngIf=" selectedField.id" [vocabularyId]=selectedField.param
|
||||
[fieldId]=selectedField.id
|
||||
[list]=this.fieldList[selectedField.id] [entityName]="entityType"
|
||||
[selectedValue]=selectedField.value [showSelected]=true
|
||||
[placeHolderMessage]="'Search for '+selectedField.name" [title]="selectedField.name"
|
||||
[multipleSelections]=false
|
||||
(selectedValueChanged)="valueChanged($event,i)"
|
||||
(listUpdated)="listUpdated($event,selectedField.id)"></static-autocomplete>
|
||||
</td>
|
||||
<td *ngIf=" selectedField.id && selectedField.type == 'refine'" class="uk-width-1-3">
|
||||
<static-autocomplete [properties]=properties [list]=this.fieldList[selectedField.id]
|
||||
[fieldId]=selectedField.id [entityName]="entityType" [fieldName]=[selectedField.id]
|
||||
[selectedValue]=selectedField.value [showSelected]=true
|
||||
[placeHolderMessage]="'Search for '+selectedField.name" [title]="selectedField.name"
|
||||
[multipleSelections]=false (selectedValueChanged)="valueChanged($event,i)"
|
||||
(listUpdated)="listUpdated($event,selectedField.id)"
|
||||
(updateValueLabel)="updatedValueLabel($event, i)"></static-autocomplete>
|
||||
</td>
|
||||
<td *ngIf="selectedField.type == 'entity'">
|
||||
<entities-autocomplete [properties]=properties [fieldId]=selectedField.id [entityType]=selectedField.param
|
||||
[selectedValue]=selectedField.value [showSelected]=true
|
||||
[placeHolderMessage]="'Search for '+selectedField.name" [title]="selectedField.name"
|
||||
[multipleSelections]=false
|
||||
(selectedValueChanged)="valueChanged($event,i)"
|
||||
(updateValueLabel)="updatedValueLabel($event, i)">
|
||||
</entities-autocomplete>
|
||||
</td>
|
||||
|
||||
<td *ngIf="selectedField.type == 'boolean'" class="input-group">
|
||||
<span class="input-group-addon">
|
||||
<input type="radio" [(ngModel)]="selectedField.value" [name]=selectedField.param
|
||||
value="true">Yes<br>
|
||||
</span>
|
||||
<span class="input-group-addon">
|
||||
<input type="radio" [(ngModel)]="selectedField.value" [name]=selectedField.param
|
||||
value="false">No<br>
|
||||
</span>
|
||||
</td>
|
||||
<td style="min-width: 75px;"><mat-select *ngIf="i+1 <selectedFields.length"
|
||||
[(ngModel)]="selectedFields[i+1].operatorId"
|
||||
name="selectOp_{{i}}" [disableOptionCentering]="true" class="matSelection uk-input" panelClass="matSelectionPanel">
|
||||
<mat-option *ngFor="let op of operators" (change)="fieldOperatorChanged(i+1, op.id, op.id)"
|
||||
(click)="fieldOperatorChanged(i+1, op.id, op.id)" [value]="op.id">{{op.id}}</mat-option>
|
||||
</mat-select>
|
||||
<div *ngIf="i == selectedFields.length-1 " class=" uk-text-right" style="margin-top: 55px;">
|
||||
<span class="uk-text-muted uk-text-uppercase uk-margin-small-right " > Add rule</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class=" ">
|
||||
<span type="button" class="uk-icon-button portal-button-reverse clickable "
|
||||
(click)="removeField(i)">
|
||||
<span class="uk-icon"><svg width="20" height="20" viewBox="0 0 20 20"
|
||||
xmlns="http://www.w3.org/2000/svg" data-svg="minus"><rect height="1" width="18" y="9" x="1"></rect></svg></span>
|
||||
</span>
|
||||
<div *ngIf="i == selectedFields.length-1 " class="uk-margin-small-top">
|
||||
<span type="button"
|
||||
class="uk-icon-button portal-button clickable "
|
||||
(click)="addField()">
|
||||
<span class="uk-icon"><svg width="20" height="20" viewBox="0 0 20 20"
|
||||
xmlns="http://www.w3.org/2000/svg" data-svg="plus"><rect x="9" y="1" width="1" height="17"></rect><rect x="1" y="9" width="17" height="1"></rect></svg></span>
|
||||
<td *ngIf="selectedField.type == 'boolean'" class="input-group">
|
||||
<span class="input-group-addon">
|
||||
<input type="radio" [(ngModel)]="selectedField.value" [name]=selectedField.param
|
||||
value="true">Yes<br>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class=" uk-text-center">
|
||||
<div *ngIf="!validDateFrom && validDateTo" class="uk-text-danger">
|
||||
Please check your <u>from</u> date
|
||||
</div>
|
||||
<div *ngIf="!validDateTo && validDateFrom" class="uk-text-danger">
|
||||
Please check your <u>to</u> date
|
||||
</div>
|
||||
<div *ngIf="!validDateFrom && !validDateTo" class="uk-text-danger">
|
||||
Please check your dates
|
||||
</div>
|
||||
</div>
|
||||
<span class="input-group-addon">
|
||||
<input type="radio" [(ngModel)]="selectedField.value" [name]=selectedField.param
|
||||
value="false">No<br>
|
||||
</span>
|
||||
</td>
|
||||
<td style="min-width: 75px;"><mat-select *ngIf="i+1 <selectedFields.length"
|
||||
[(ngModel)]="selectedFields[i+1].operatorId"
|
||||
name="selectOp_{{i}}" [disableOptionCentering]="true" class="matSelection uk-input" panelClass="matSelectionPanel">
|
||||
<mat-option *ngFor="let op of operators" (change)="fieldOperatorChanged(i+1, op.id, op.id)"
|
||||
(click)="fieldOperatorChanged(i+1, op.id, op.id)" [value]="op.id">{{op.id}}</mat-option>
|
||||
</mat-select>
|
||||
</td>
|
||||
<td [class.uk-invisible]="selectedFields.length === 1">
|
||||
<button class="uk-icon uk-close"
|
||||
(click)="removeField(i)">
|
||||
<icon name="close" [flex]="true" [ratio]="1.5"></icon>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="uk-margin-small-top">
|
||||
<button (click)="addField()" class="uk-button uk-button-link uk-flex uk-flex-middle">
|
||||
<icon name="add" [flex]="true"></icon>
|
||||
<span class="uk-margin-small-left">Add rule</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class=" uk-text-center uk-margin-small-top">
|
||||
<div *ngIf="!validDateFrom && validDateTo" class="uk-text-danger">
|
||||
Please check your <u>from</u> date
|
||||
</div>
|
||||
<div *ngIf="!validDateTo && validDateFrom" class="uk-text-danger">
|
||||
Please check your <u>to</u> date
|
||||
</div>
|
||||
<div *ngIf="!validDateFrom && !validDateTo" class="uk-text-danger">
|
||||
Please check your dates
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a class="uk-card-footer uk-link-reset uk-tile-primary uk-flex uk-flex-center uk-light">
|
||||
<button (click)="queryChanged()" class="uk-button uk-button-text">
|
||||
|
|
|
@ -19,9 +19,9 @@ import {StringUtils} from "../string-utils.class";
|
|||
|
||||
<div class="custom-autocomplete">
|
||||
<div *ngIf = "showSelected && selectedValue != ''">
|
||||
<div class="uk-alert-default uk-grid uk-margin-small-left uk-margin-remove-bottom uk-margin-remove-left" data-uk-alert="" *ngFor="let item of selected" [title]="showItem(item)" >
|
||||
<div class="uk-width-expand uk-padding-remove-left" >{{showItem(item)}} </div>
|
||||
<div (click)="remove(item)" aria-hidden="true" title="Remove selection" class="uk-padding-remove-left"> <span class="clickable uk-icon">
|
||||
<div class="uk-alert uk-alert-default uk-flex uk-flex-middle uk-padding-small uk-margin-remove" data-uk-alert="" *ngFor="let item of selected" [title]="showItem(item)" >
|
||||
<div class="uk-width-expand uk-margin-small-right" >{{showItem(item)}} </div>
|
||||
<div (click)="remove(item)" aria-hidden="true" title="Remove selection" > <span class="clickable uk-icon">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="close" ratio="1"><path fill="none" stroke="#000" stroke-width="1.06" d="M16,16 L4,4"></path><path fill="none" stroke="#000" stroke-width="1.06" d="M16,4 L4,16"></path></svg>
|
||||
</span> </div>
|
||||
</div>
|
||||
|
@ -34,7 +34,7 @@ import {StringUtils} from "../string-utils.class";
|
|||
<li>
|
||||
<span *ngIf="!_search.ready" class="uk-alert uk-alert-primary" data-uk-alert=""> <i class="uk-icon-spinner"></i> Loading..... </span>
|
||||
<span *ngIf="warningMessage.length > 0" class="uk-alert uk-alert-warning" data-uk-alert="">{{warningMessage}}</span>
|
||||
<span *ngIf="results > 0" > {{results | number}} results found:</span>
|
||||
<!--<span *ngIf="results > 0" > {{results | number}} results found:</span>-->
|
||||
<!--span *ngIf="results == 0 && !showLoading" class="uk-alert uk-alert-primary" data-uk-alert=""> No results found</span-->
|
||||
</li>
|
||||
<li *ngFor=" let item of filtered | async">
|
||||
|
|
|
@ -14,8 +14,8 @@ import{EnvProperties} from '../../utils/properties/env-properties';
|
|||
template: `
|
||||
<div class="custom-autocomplete uk-width-1-1">
|
||||
<div *ngIf = "showSelected && selectedValue != ''">
|
||||
<div class="uk-alert-default uk-grid uk-margin-small-left uk-margin-remove-bottom uk-margin-remove-left" data-uk-alert="" *ngFor="let item of selected" [title]="showItem(item)">
|
||||
<div class="uk-width-expand uk-padding-remove-left " >{{showItem(item)}} </div>
|
||||
<div class="uk-alert uk-alert-default uk-flex uk-flex-middle uk-padding-small uk-margin-remove" data-uk-alert="" *ngFor="let item of selected" [title]="showItem(item)">
|
||||
<div class="uk-width-expand uk-margin-small-right" >{{showItem(item)}} </div>
|
||||
<div (click)="remove(item)" aria-hidden="true" title="Remove selection" class="uk-padding-remove-left">
|
||||
<span class="clickable uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="close" ratio="1"><path fill="none" stroke="#000" stroke-width="1.06" d="M16,16 L4,4"></path><path fill="none" stroke="#000" stroke-width="1.06" d="M16,4 L4,16"></path></svg></span>
|
||||
</div>
|
||||
|
@ -28,7 +28,7 @@ import{EnvProperties} from '../../utils/properties/env-properties';
|
|||
<ul class="uk-nav uk-nav-autocomplete uk-autocomplete-results" >
|
||||
<li>
|
||||
<span [style.display]="showLoading ? 'inline' : 'none'" class="uk-alert uk-alert-primary" data-uk-alert=""> <i class="uk-icon-spinner"></i> Loading... </span>
|
||||
<span *ngIf="filtered.length > 0" > {{results | number}} results found:</span>
|
||||
<!--<span *ngIf="filtered.length > 0" > {{results | number}} results found:</span>-->
|
||||
<span *ngIf="filtered.length == 0" class="uk-alert uk-alert-primary" data-uk-alert=""> No results found</span>
|
||||
</li>
|
||||
<li *ngFor=" let item of filtered">
|
||||
|
|
Loading…
Reference in New Issue