Fix saving task with reminder related to due date
parent
90187876bf
commit
9f654d223b
1
NEWS
1
NEWS
|
@ -17,6 +17,7 @@ Bug fixes
|
||||||
- [web] enable save button when editing the members of a list
|
- [web] enable save button when editing the members of a list
|
||||||
- [web] restore caret position when replying or forwarding a message (#4517)
|
- [web] restore caret position when replying or forwarding a message (#4517)
|
||||||
- [web] localized special mailboxes names in filter editor
|
- [web] localized special mailboxes names in filter editor
|
||||||
|
- [web] fixed saving task with reminder based on due date
|
||||||
|
|
||||||
4.0.1 (2018-07-10)
|
4.0.1 (2018-07-10)
|
||||||
------------------
|
------------------
|
||||||
|
|
|
@ -132,10 +132,7 @@
|
||||||
if (startDate)
|
if (startDate)
|
||||||
[self setStartDate: startDate];
|
[self setStartDate: startDate];
|
||||||
else
|
else
|
||||||
{
|
[self setStartDate: nil];
|
||||||
[self setStartDate: nil];
|
|
||||||
[self removeAllAlarms];
|
|
||||||
}
|
|
||||||
|
|
||||||
// Handle due date
|
// Handle due date
|
||||||
isAllDayDueDate = YES;
|
isAllDayDueDate = YES;
|
||||||
|
@ -158,6 +155,9 @@
|
||||||
else
|
else
|
||||||
[self setDue: nil];
|
[self setDue: nil];
|
||||||
|
|
||||||
|
if (!startDate && !dueDate)
|
||||||
|
[self removeAllAlarms];
|
||||||
|
|
||||||
// Handle time zone
|
// Handle time zone
|
||||||
todoStartDate = (iCalDateTime *)[self uniqueChildWithTag: @"dtstart"];
|
todoStartDate = (iCalDateTime *)[self uniqueChildWithTag: @"dtstart"];
|
||||||
todoDueDate = (iCalDateTime *)[self uniqueChildWithTag: @"due"];
|
todoDueDate = (iCalDateTime *)[self uniqueChildWithTag: @"due"];
|
||||||
|
@ -234,7 +234,7 @@
|
||||||
|
|
||||||
- (NSMutableDictionary *) quickRecordFromContent: (NSString *) theContent
|
- (NSMutableDictionary *) quickRecordFromContent: (NSString *) theContent
|
||||||
container: (id) theContainer
|
container: (id) theContainer
|
||||||
nameInContainer: (NSString *) nameInContainer
|
nameInContainer: (NSString *) nameInContainer
|
||||||
{
|
{
|
||||||
NSMutableDictionary *row;
|
NSMutableDictionary *row;
|
||||||
NSCalendarDate *startDate, *dueDate, *completed;
|
NSCalendarDate *startDate, *dueDate, *completed;
|
||||||
|
@ -294,14 +294,14 @@
|
||||||
|
|
||||||
if ([startDate isNotNull])
|
if ([startDate isNotNull])
|
||||||
date = [self quickRecordDateAsNumber: startDate
|
date = [self quickRecordDateAsNumber: startDate
|
||||||
withOffset: 0 forAllDay: NO];
|
withOffset: 0 forAllDay: NO];
|
||||||
else
|
else
|
||||||
date = [NSNull null];
|
date = [NSNull null];
|
||||||
[row setObject: date forKey: @"c_startdate"];
|
[row setObject: date forKey: @"c_startdate"];
|
||||||
|
|
||||||
if ([dueDate isNotNull])
|
if ([dueDate isNotNull])
|
||||||
date = [self quickRecordDateAsNumber: dueDate
|
date = [self quickRecordDateAsNumber: dueDate
|
||||||
withOffset: 0 forAllDay: NO];
|
withOffset: 0 forAllDay: NO];
|
||||||
else
|
else
|
||||||
date = [NSNull null];
|
date = [NSNull null];
|
||||||
[row setObject: date forKey: @"c_enddate"];
|
[row setObject: date forKey: @"c_enddate"];
|
||||||
|
@ -321,13 +321,13 @@
|
||||||
{
|
{
|
||||||
code = 0;
|
code = 0;
|
||||||
if (completed || [status isEqualToString: @"COMPLETED"])
|
if (completed || [status isEqualToString: @"COMPLETED"])
|
||||||
code = taskStatusCompleted;
|
code = taskStatusCompleted;
|
||||||
else if ([status isEqualToString: @"IN-PROCESS"])
|
else if ([status isEqualToString: @"IN-PROCESS"])
|
||||||
code = taskStatusInProcess;
|
code = taskStatusInProcess;
|
||||||
else if ([status isEqualToString: @"CANCELLED"])
|
else if ([status isEqualToString: @"CANCELLED"])
|
||||||
code = taskStatusCancelled;
|
code = taskStatusCancelled;
|
||||||
else if ([status isEqualToString: @"NEEDS-ACTION"])
|
else if ([status isEqualToString: @"NEEDS-ACTION"])
|
||||||
code = taskStatusNeedsAction;
|
code = taskStatusNeedsAction;
|
||||||
[row setObject: [NSNumber numberWithInt: code] forKey: @"c_status"];
|
[row setObject: [NSNumber numberWithInt: code] forKey: @"c_status"];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -346,7 +346,7 @@
|
||||||
|
|
||||||
email = [organizer valueForKey: @"rfc822Email"];
|
email = [organizer valueForKey: @"rfc822Email"];
|
||||||
if (email)
|
if (email)
|
||||||
[row setObject:email forKey: @"c_orgmail"];
|
[row setObject:email forKey: @"c_orgmail"];
|
||||||
}
|
}
|
||||||
|
|
||||||
/* construct partstates */
|
/* construct partstates */
|
||||||
|
@ -360,7 +360,7 @@
|
||||||
p = [attendees objectAtIndex:i];
|
p = [attendees objectAtIndex:i];
|
||||||
stat = [p participationStatus];
|
stat = [p participationStatus];
|
||||||
if(i != 0)
|
if(i != 0)
|
||||||
[partstates appendString: @"\n"];
|
[partstates appendString: @"\n"];
|
||||||
[partstates appendFormat: @"%d", stat];
|
[partstates appendFormat: @"%d", stat];
|
||||||
}
|
}
|
||||||
[row setObject:partstates forKey: @"c_partstates"];
|
[row setObject:partstates forKey: @"c_partstates"];
|
||||||
|
|
Loading…
Reference in New Issue