mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-04-06 22:08:51 +00:00
Fixed dates validation with new date picker
This commit is contained in:
@@ -55,7 +55,8 @@ function validateAptEditor() {
|
||||
alert(labels.validate_invalid_startdate);
|
||||
return false;
|
||||
}
|
||||
startdate = e.calendar.prs_date(e.value);
|
||||
|
||||
startdate = getStartDate();
|
||||
if (startdate == null) {
|
||||
alert(labels.validate_invalid_startdate);
|
||||
return false;
|
||||
@@ -66,7 +67,7 @@ function validateAptEditor() {
|
||||
alert(labels.validate_invalid_enddate);
|
||||
return false;
|
||||
}
|
||||
enddate = e.calendar.prs_date(e.value);
|
||||
enddate = getEndDate();
|
||||
if (enddate == null) {
|
||||
alert(labels.validate_invalid_enddate);
|
||||
return false;
|
||||
@@ -235,6 +236,9 @@ function _getDate(which) {
|
||||
date.setMinutes(time[2]);
|
||||
}
|
||||
|
||||
if (isNaN(date.getTime()))
|
||||
return null;
|
||||
|
||||
return date;
|
||||
}
|
||||
|
||||
@@ -290,35 +294,47 @@ function onAdjustTime(event) {
|
||||
|
||||
if ($(this).readAttribute("id").startsWith("start")) {
|
||||
// Start date was changed
|
||||
var delta = window.getShadowStartDate().valueOf() - startDate.valueOf();
|
||||
window.setStartDate();
|
||||
if (delta != 0) {
|
||||
var newEndDate = new Date(endDate.valueOf() - delta);
|
||||
window.setEndDate(newEndDate);
|
||||
if (startDate == null) {
|
||||
var oldStartDate = window.getShadowStartDate();
|
||||
window.setStartDate(oldStartDate);
|
||||
}
|
||||
else {
|
||||
var delta = window.getShadowStartDate().valueOf() - startDate.valueOf();
|
||||
window.setStartDate();
|
||||
if (delta != 0) {
|
||||
// Increment end date
|
||||
var newEndDate = new Date(endDate.valueOf() - delta);
|
||||
window.setEndDate(newEndDate);
|
||||
|
||||
window.timeWidgets['end']['date'].updateShadowValue();
|
||||
window.timeWidgets['end']['time'].updateShadowValue();
|
||||
window.timeWidgets['start']['date'].updateShadowValue();
|
||||
window.timeWidgets['start']['time'].updateShadowValue();
|
||||
if (window.timeWidgets['end']['time'].onChange)
|
||||
window.timeWidgets['end']['time'].onChange(); // method from SOGoTimePicker
|
||||
window.timeWidgets['end']['date'].updateShadowValue();
|
||||
window.timeWidgets['end']['time'].updateShadowValue();
|
||||
window.timeWidgets['start']['date'].updateShadowValue();
|
||||
window.timeWidgets['start']['time'].updateShadowValue();
|
||||
if (window.timeWidgets['end']['time'].onChange)
|
||||
window.timeWidgets['end']['time'].onChange(); // method from SOGoTimePicker
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
// End date was changed
|
||||
var delta = endDate.valueOf() - startDate.valueOf();
|
||||
if (delta < 0) {
|
||||
alert(labels.validate_endbeforestart);
|
||||
if (endDate == null) {
|
||||
var oldEndDate = window.getShadowEndDate();
|
||||
window.setEndDate(oldEndDate);
|
||||
|
||||
window.timeWidgets['end']['date'].updateShadowValue();
|
||||
window.timeWidgets['end']['time'].updateShadowValue();
|
||||
window.timeWidgets['end']['time'].onChange(); // method from SOGoTimePicker
|
||||
}
|
||||
else {
|
||||
window.setEndDate();
|
||||
var delta = endDate.valueOf() - startDate.valueOf();
|
||||
if (delta < 0) {
|
||||
alert(labels.validate_endbeforestart);
|
||||
var oldEndDate = window.getShadowEndDate();
|
||||
window.setEndDate(oldEndDate);
|
||||
|
||||
window.timeWidgets['end']['date'].updateShadowValue();
|
||||
window.timeWidgets['end']['time'].updateShadowValue();
|
||||
window.timeWidgets['end']['time'].onChange(); // method from SOGoTimePicker
|
||||
}
|
||||
else {
|
||||
window.setEndDate();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,9 +51,9 @@ function savePreferences(sender) {
|
||||
}
|
||||
if ($("enableVacationEndDate") && $("enableVacationEndDate").checked) {
|
||||
var e = $("vacationEndDate_date");
|
||||
var endDate = e.calendar.prs_date(e.value);
|
||||
var endDate = e.inputAsDate();
|
||||
var now = new Date();
|
||||
if (endDate.getTime() < now.getTime()) {
|
||||
if (isNaN(endDate.getTime()) || endDate.getTime() < now.getTime()) {
|
||||
showAlertDialog(_("End date of your auto reply must be in the future."));
|
||||
sendForm = false;
|
||||
}
|
||||
|
||||
@@ -18,11 +18,11 @@ function uixEarlierDate(date1, date2) {
|
||||
return null;
|
||||
}
|
||||
|
||||
function validateDate(date, label) {
|
||||
function validateDate(which, label) {
|
||||
var result, dateValue;
|
||||
|
||||
dateValue = date.calendar.prs_date(date.value);
|
||||
if (date.value.length != 10 || !dateValue) {
|
||||
dateValue = this._getDate(which);
|
||||
if (dateValue == null) {
|
||||
alert(label);
|
||||
result = false;
|
||||
} else
|
||||
@@ -41,14 +41,14 @@ function validateTaskEditor() {
|
||||
|
||||
e = document.getElementById('startTime_date');
|
||||
if (!e.disabled) {
|
||||
startdate = validateDate(e, labels.validate_invalid_startdate);
|
||||
startdate = validateDate('start', labels.validate_invalid_startdate);
|
||||
if (!startdate)
|
||||
return false;
|
||||
}
|
||||
|
||||
e = document.getElementById('dueTime_date');
|
||||
if (!e.disabled) {
|
||||
enddate = validateDate(e, labels.validate_invalid_enddate);
|
||||
enddate = validateDate('due', labels.validate_invalid_enddate);
|
||||
if (!enddate)
|
||||
return false;
|
||||
}
|
||||
@@ -204,6 +204,9 @@ this._getDate = function(which) {
|
||||
date.setHours(time[0]);
|
||||
date.setMinutes(time[1]);
|
||||
|
||||
if (isNaN(date.getTime()))
|
||||
return null;
|
||||
|
||||
return date;
|
||||
};
|
||||
|
||||
@@ -235,6 +238,11 @@ this.getShadowDueDate = function() {
|
||||
this._setDate = function(which, newDate) {
|
||||
window.timeWidgets[which]['date'].setInputAsDate(newDate);
|
||||
window.timeWidgets[which]['time'].value = newDate.getDisplayHoursString();
|
||||
|
||||
// Update date picker
|
||||
var dateComponent = jQuery(window.timeWidgets[which]['date']).closest('.date');
|
||||
dateComponent.data('date', window.timeWidgets[which]['date'].value);
|
||||
dateComponent.datepicker('update');
|
||||
};
|
||||
|
||||
this.setStartDate = function(newStartDate) {
|
||||
@@ -242,7 +250,6 @@ this.setStartDate = function(newStartDate) {
|
||||
};
|
||||
|
||||
this.setDueDate = function(newDueDate) {
|
||||
// window.alert(newDueDate);
|
||||
this._setDate('due', newDueDate);
|
||||
};
|
||||
|
||||
@@ -268,8 +275,8 @@ this.initTimeWidgets = function (widgets) {
|
||||
jQuery(widgets['due']['date']).closest('.date').datepicker({autoclose: true});
|
||||
jQuery('#statusTime_date').closest('.date').datepicker({autoclose: true});
|
||||
|
||||
widgets['start']['date'].observe("change", this.onAdjustDueTime, false);
|
||||
widgets['start']['time'].observe("time:change", this.onAdjustDueTime, false);
|
||||
jQuery(widgets['start']['date']).change(onAdjustTime);
|
||||
widgets['start']['time'].on("time:change", onAdjustDueTime);
|
||||
widgets['start']['time'].addInterface(SOGoTimePickerInterface);
|
||||
widgets['due']['time'].addInterface(SOGoTimePickerInterface);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user