[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:
konstantina.galouni 2019-05-22 10:50:32 +00:00
parent 9719595300
commit d7eca8aa77
3 changed files with 44 additions and 6 deletions

View File

@ -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>

View File

@ -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() {

View File

@ -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;
}}