(js) Improve handling of vacation dates

Fixes #4844
pull/259/head
Francis Lachapelle 2019-10-10 15:37:50 -04:00
parent 7bc73b6f68
commit 66645384bc
2 changed files with 19 additions and 9 deletions

View File

@ -906,7 +906,7 @@
</md-checkbox>
<div class="md-inline-form" layout="column" flex-offset="5"
ng-if="app.preferences.defaults.Vacation.enabled == 1">
ng-show="app.preferences.defaults.Vacation.enabled == 1">
<div layout="row">
<md-checkbox
@ -932,8 +932,8 @@
<var:if condition="vacationHeader.length">
<p class="text-preview" md-colors="::{color: 'default-background-600'}"><var:string value="vacationHeader"/></p>
</var:if>
<textarea const:name="autoReplyText"
const:id="autoReplyText"
<textarea name="autoReplyText"
id="autoReplyText"
ng-model="app.preferences.defaults.Vacation.autoReplyText"/>
<var:if condition="vacationFooter.length">
<p class="text-preview" md-colors="::{color: 'default-background-600'}"><var:string value="vacationFooter"/></p>
@ -943,9 +943,9 @@
<div layout="row" layout-align="start center">
<md-input-container class="md-block md-flex">
<label><var:string label:value="Email addresses (separated by commas)"/></label>
<textarea const:name="autoReplyEmailAddresses"
<textarea name="autoReplyEmailAddresses"
required="required"
const:id="autoReplyEmailAddresses"
id="autoReplyEmailAddresses"
ng-model="app.preferences.defaults.Vacation.autoReplyEmailAddresses"/>
</md-input-container>
<md-button ng-click="app.addDefaultEmailAddresses(preferencesForm)">
@ -988,6 +988,7 @@
name="vacationStartDate"
label:md-placeholder="Enter date"
ng-disabled="!app.preferences.defaults.Vacation.startDateEnabled"
ng-required="app.preferences.defaults.Vacation.startDateEnabled"
ng-model="app.preferences.defaults.Vacation.startDate"
md-date-filter="app.validateVacationStartDate"
sg-reset-on-disabled="sg-reset-on-disabled"><!-- datepicker --></md-datepicker>
@ -1008,6 +1009,7 @@
name="vacationEndDate"
label:md-placeholder="Enter date"
ng-disabled="!app.preferences.defaults.Vacation.endDateEnabled"
ng-required="app.preferences.defaults.Vacation.endDateEnabled"
ng-model="app.preferences.defaults.Vacation.endDate"
md-date-filter="app.validateVacationEndDate"
sg-reset-on-disabled="sg-reset-on-disabled"><!-- datepicker --></md-datepicker>
@ -1056,8 +1058,8 @@
<div flex-offset="5" ng-show="app.preferences.defaults.Forward.enabled == 1">
<md-input-container class="md-block md-flex">
<label><var:string label:value="Email addresses (separated by commas)"/></label>
<textarea const:name="forwardAddress"
const:id="forwardAddress"
<textarea name="forwardAddress"
id="forwardAddress"
ng-model="app.preferences.defaults.Forward.forwardAddress" />
</md-input-container>

View File

@ -472,7 +472,10 @@
if (v.startDateEnabled) {
// Enabling the start date
if (v.endDateEnabled && v.startDate.getTime() > v.endDate.getTime()) {
if (!v.startDate) {
v.startDate = new Date();
}
if (v.endDateEnabled && v.endDate && v.startDate.getTime() > v.endDate.getTime()) {
v.startDate = new Date(v.endDate.getTime());
v.startDate.addDays(-1);
}
@ -486,7 +489,10 @@
if (v.endDateEnabled) {
// Enabling the end date
if (v.startDateEnabled && v.endDate.getTime() < v.startDate.getTime()) {
if (!v.endDate) {
v.endDate = new Date();
}
if (v.startDateEnabled && v.startDate && v.endDate.getTime() < v.startDate.getTime()) {
v.endDate = new Date(v.startDate.getTime());
v.endDate.addDays(1);
}
@ -500,6 +506,7 @@
d.Vacation.enabled) {
if (d.Vacation.startDateEnabled) {
r = (!d.Vacation.endDateEnabled ||
!d.Vacation.endDate ||
date.getTime() <= d.Vacation.endDate.getTime()) &&
date.getTime() >= today.getTime();
}
@ -515,6 +522,7 @@
d.Vacation.enabled) {
if (d.Vacation.endDateEnabled) {
r = (!d.Vacation.startDateEnabled ||
!d.Vacation.startDate ||
date.getTime() >= d.Vacation.startDate.getTime()) &&
date.getTime() >= today.getTime();
}