From 2301ae2c75400f43f4b756aaf59fbf3f58415a03 Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Tue, 6 Mar 2018 16:35:08 -0500 Subject: [PATCH] (js) Allow to set an alarm on a dued task --- NEWS | 1 + .../SchedulerUI/UIxReminderEditor.wox | 4 +- .../SchedulerUI/UIxTaskEditorTemplate.wox | 10 ++--- .../js/Scheduler/ComponentController.js | 42 ++++++++++++++++++- 4 files changed, 49 insertions(+), 8 deletions(-) diff --git a/NEWS b/NEWS index 0eeeaab45..85424a369 100644 --- a/NEWS +++ b/NEWS @@ -55,6 +55,7 @@ Bug fixes - [web] fixed decoding of spaces in URL-encoded parameters (+) - [web] fixed scrolling of message with Firefox (#4008, #4282, #4398) - [web] save original username in cookie when remembering login (#4363) + - [web] allow to set a reminder on a task with a due date - [eas] hebrew folders encoding problem using EAS (#4240) - [eas] avoid sync requests for shared folders every second (#4275) - [eas] we skip the organizer from the attendees list (#4402) diff --git a/UI/Templates/SchedulerUI/UIxReminderEditor.wox b/UI/Templates/SchedulerUI/UIxReminderEditor.wox index fa07aa128..0ac9e2097 100644 --- a/UI/Templates/SchedulerUI/UIxReminderEditor.wox +++ b/UI/Templates/SchedulerUI/UIxReminderEditor.wox @@ -23,7 +23,9 @@ - + diff --git a/UI/Templates/SchedulerUI/UIxTaskEditorTemplate.wox b/UI/Templates/SchedulerUI/UIxTaskEditorTemplate.wox index 232f2dd51..90954ec99 100644 --- a/UI/Templates/SchedulerUI/UIxTaskEditorTemplate.wox +++ b/UI/Templates/SchedulerUI/UIxTaskEditorTemplate.wox @@ -117,7 +117,7 @@
- + remove_circle
- + add_circle @@ -139,7 +139,7 @@
- + remove_circle
- + add_circle @@ -233,7 +233,7 @@
+ ng-show="editor.component.start || editor.component.due"> diff --git a/UI/WebServerResources/js/Scheduler/ComponentController.js b/UI/WebServerResources/js/Scheduler/ComponentController.js index 088f23a96..eb3a8a48b 100644 --- a/UI/WebServerResources/js/Scheduler/ComponentController.js +++ b/UI/WebServerResources/js/Scheduler/ComponentController.js @@ -229,6 +229,7 @@ vm.removeAttendee = removeAttendee; vm.addAttachUrl = addAttachUrl; vm.priorityLevel = priorityLevel; + vm.changeAlarmRelation = changeAlarmRelation; vm.reset = reset; vm.cancel = cancel; vm.edit = edit; @@ -239,7 +240,9 @@ hours: getHours() }; vm.addStartDate = addStartDate; + vm.removeStartDate = removeStartDate; vm.addDueDate = addDueDate; + vm.removeDueDate = removeDueDate; // Synchronize start and end dates vm.adjustStartTime = adjustStartTime; @@ -353,6 +356,17 @@ } } + function changeAlarmRelation(form) { + if (vm.component.type == 'task' && + ((!vm.component.start && vm.component.alarm.relation == 'START') || + (!vm.component.due && vm.component.alarm.relation == 'END'))) { + form.alarmRelation.$setValidity('alarm', false); + } + else { + form.alarmRelation.$setValidity('alarm', true); + } + } + function save(form, options) { if (form.$valid) { vm.component.$save(options) @@ -410,14 +424,38 @@ return hours; } - function addStartDate() { + function addStartDate(form) { vm.component.$addStartDate(); oldStartDate = new Date(vm.component.start.getTime()); + if (!vm.component.due) { + vm.component.alarm.relation = 'START'; + } + changeAlarmRelation(form); } - function addDueDate() { + function removeStartDate(form) { + vm.component.$deleteStartDate(); + if (vm.component.due) { + vm.component.alarm.relation = 'END'; + } + changeAlarmRelation(form); + } + + function addDueDate(form) { vm.component.$addDueDate(); oldDueDate = new Date(vm.component.due.getTime()); + if (!vm.component.start) { + vm.component.alarm.relation = 'END'; + } + changeAlarmRelation(form); + } + + function removeDueDate(form) { + vm.component.$deleteDueDate(); + if (vm.component.start) { + vm.component.alarm.relation = 'START'; + } + changeAlarmRelation(form); } function adjustStartTime() {