diff --git a/SOPE/NGCards/iCalTrigger.m b/SOPE/NGCards/iCalTrigger.m index 9723330f3..4a5c79dc3 100644 --- a/SOPE/NGCards/iCalTrigger.m +++ b/SOPE/NGCards/iCalTrigger.m @@ -105,6 +105,9 @@ case 'M': /* min */ unit = @"MINUTES"; break; + case 'W': /* week */ + unit = @"WEEKS"; + break; default: NSLog(@"Cannot process duration unit: '%c'", c); break; diff --git a/UI/Scheduler/UIxReminderEditor.m b/UI/Scheduler/UIxReminderEditor.m index 8dc44e649..7e7a130eb 100644 --- a/UI/Scheduler/UIxReminderEditor.m +++ b/UI/Scheduler/UIxReminderEditor.m @@ -33,7 +33,7 @@ if (!unitsList) { - unitsList = [NSArray arrayWithObjects: @"MINUTES", @"HOURS", @"DAYS", nil]; + unitsList = [NSArray arrayWithObjects: @"MINUTES", @"HOURS", @"DAYS", @"WEEKS", nil]; [unitsList retain]; } diff --git a/UI/WebServerResources/js/Scheduler/Component.service.js b/UI/WebServerResources/js/Scheduler/Component.service.js index bd5d06989..e69b2f586 100644 --- a/UI/WebServerResources/js/Scheduler/Component.service.js +++ b/UI/WebServerResources/js/Scheduler/Component.service.js @@ -347,7 +347,21 @@ this.repeat.end = 'never'; this.$hasCustomRepeat = this.hasCustomRepeat(); - this.$hasAlarm = angular.isDefined(data.alarm); + if (this.isNew) { + // Set default alarm + Component.$Preferences.ready().then(function() { + var units = { M: 'MINUTES', H: 'HOURS', D: 'DAYS', W: 'WEEKS' }; + var match = /-PT?([0-9]+)([MHDW])/.exec(Component.$Preferences.defaults.SOGoCalendarDefaultReminder); + if (match) { + _this.$hasAlarm = true; + _this.alarm.quantity = parseInt(match[1]); + _this.alarm.unit = units[match[2]]; + } + }); + } + else { + this.$hasAlarm = angular.isDefined(data.alarm); + } // Allow the component to be moved to a different calendar this.destinationCalendar = this.pid;