#632 min/max value support for date picker dialog

This commit is contained in:
Denys Vuika 2016-10-11 20:36:22 +01:00
parent 79fa74388a
commit 07601abdc4

View File

@ -26,31 +26,60 @@ import { TextFieldWidgetComponent } from './../textfield-widget.component';
}) })
export class DateWidget extends TextFieldWidgetComponent implements OnInit { export class DateWidget extends TextFieldWidgetComponent implements OnInit {
datePicker: any = new mdDateTimePicker.default({ private dateFormat: string = 'D-M-YYYY';
type: 'date',
future: moment().add(21, 'years') datePicker: any;
});
constructor(elementRef: ElementRef) { constructor(elementRef: ElementRef) {
super(elementRef); super(elementRef);
} }
ngOnInit() { ngOnInit() {
if (this.field.value) {
this.datePicker.time = moment(this.field.value, 'D-M-YYYY'); let settings: any = {
type: 'date',
future: moment().add(21, 'years')
};
if (this.field) {
if (this.field.minValue) {
let min = moment(this.field.minValue, this.dateFormat);
if (min.isValid()) {
settings.past = min;
} }
}
if (this.field.maxValue) {
let max = moment(this.field.maxValue, this.dateFormat);
if (max.isValid()) {
settings.future = max;
}
}
if (this.field.value) {
settings.time = moment(this.field.value, this.dateFormat);
}
}
this.datePicker = new mdDateTimePicker.default(settings);
this.datePicker.trigger = this.elementRef.nativeElement.querySelector('#dateInput'); this.datePicker.trigger = this.elementRef.nativeElement.querySelector('#dateInput');
} }
onDateChanged() { onDateChanged() {
if (this.field.value) { if (this.field.value) {
this.datePicker.time = moment(this.field.value, 'D-M-YYYY'); this.datePicker.time = moment(this.field.value, this.dateFormat);
} }
this.checkVisibility(this.field); this.checkVisibility(this.field);
} }
onDateSelected() { onDateSelected() {
this.field.value = this.datePicker.time.format('DD-MM-YYYY'); this.field.value = this.datePicker.time.format('DD-MM-YYYY');
let el = this.elementRef.nativeElement;
let container = el.querySelector('.mdl-textfield');
if (container) {
container.MaterialTextfield.change(this.field.value.toString());
}
} }
} }