[Trunk|Library]: advancedSearchForm & dateFilter: Add error messages in case an invalid date is selected.
git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-services-library/trunk/ng-openaire-library/src/app@55667 d315682c-612b-4755-9ff5-7f18f6832af3
This commit is contained in:
parent
9719595300
commit
d7eca8aa77
|
@ -22,7 +22,7 @@
|
|||
<td *ngIf = "selectedField.type == 'keyword'" ><input type="text" class="form-control" placeholder="Type keywords..."
|
||||
[(ngModel)]="selectedField.value" name="value[{{i}}]"></td>
|
||||
<td *ngIf = "selectedField.type == 'date'" >
|
||||
<date-filter [(dateValue)]=selectedField.dateValue ></date-filter>
|
||||
<date-filter [(dateValue)]=selectedField.dateValue [(validDateFrom)]=validDateFrom [(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
|
||||
|
@ -62,6 +62,16 @@
|
|||
</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>
|
||||
|
||||
<button (click)="queryChanged()" type="submit" class=" uk-button portal-background-color uk-padding uk-padding-remove-top uk-padding-remove-bottom ">
|
||||
<span class="uk-icon" ><svg width="30" height="30" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="search" ratio="1.5"><circle fill="none" stroke="#000" stroke-width="1.1" cx="9" cy="9" r="7"></circle><path fill="none" stroke="#000" stroke-width="1.1" d="M14,14 L18,18 L14,14 Z"></path></svg></span>
|
||||
</button>
|
||||
|
|
|
@ -21,6 +21,10 @@ export class AdvancedSearchFormComponent {
|
|||
@Input() simpleSearchLink;
|
||||
@Input() pageTitle;
|
||||
@Output() queryChange = new EventEmitter();
|
||||
|
||||
validDateFrom: boolean = true;
|
||||
validDateTo: boolean = true;
|
||||
|
||||
newFieldId:string;
|
||||
newFieldName:string;
|
||||
fieldList:{[id:string]:any[]} = {};
|
||||
|
@ -44,11 +48,33 @@ properties:EnvProperties;
|
|||
}
|
||||
|
||||
queryChanged() {
|
||||
this.validDateFrom = true;
|
||||
this.validDateTo = true;
|
||||
|
||||
this.selectedFields.forEach(selectedField => {
|
||||
if(selectedField.type == 'date') {
|
||||
if (selectedField.dateValue.type.indexOf("range") != -1) {
|
||||
if(!Dates.isValidDate(Dates.getDateToString(selectedField.dateValue.from))) {
|
||||
//console.info("INVALID: isValidDate FROM");
|
||||
this.validDateFrom = false;
|
||||
}
|
||||
if(!Dates.isValidDate(Dates.getDateToString(selectedField.dateValue.to))) {
|
||||
//console.info("INVALID: isValidDate TO");
|
||||
this.validDateTo = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if(this.validDateFrom && this.validDateTo) {
|
||||
//console.info("emit");
|
||||
|
||||
this.queryChange.emit({
|
||||
// selectedFields: this.selectedFields,
|
||||
// selectedQuantifiers: this.selectedQuantifiers,
|
||||
// keywords: this.keywords
|
||||
// selectedFields: this.selectedFields,
|
||||
// selectedQuantifiers: this.selectedQuantifiers,
|
||||
// keywords: this.keywords
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
addField() {
|
||||
|
|
|
@ -36,6 +36,8 @@ export class DateFilterComponent {
|
|||
|
||||
@Input() dateValue = new DateValue("any");
|
||||
@Input() filterId;
|
||||
@Input() validDateFrom: boolean = true;
|
||||
@Input() validDateTo: boolean = true;
|
||||
|
||||
private myDatePickerOptions: IMyOptions = {
|
||||
// other options...
|
||||
|
@ -65,9 +67,9 @@ typeChanged(type:string){
|
|||
|
||||
onFromDateChanged(event: IMyDateModel) {
|
||||
this.dateValue.from = Dates.getDateFromString(event.formatted);
|
||||
|
||||
this.validDateFrom = true;
|
||||
}
|
||||
onToDateChanged(event: IMyDateModel) {
|
||||
this.dateValue.to = Dates.getDateFromString(event.formatted);
|
||||
|
||||
this.validDateTo = true;
|
||||
}}
|
||||
|
|
Loading…
Reference in New Issue