From a9807c520ffa946e0b5702c65011d6358ca4c1ed Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Thu, 2 Feb 2012 19:54:53 +0000 Subject: [PATCH 1/7] Fixed nasty bug with textareas and Firefox and '-moz-user-select' CSS directive. Monotone-Parent: 18bd3484373fa731cf9a3ac7ca3ce35afbf03cdd Monotone-Revision: e44dbcb80563c6b1e0330f9be451c0793811c85f Monotone-Author: flachapelle@inverse.ca Monotone-Date: 2012-02-02T19:54:53 --- UI/WebServerResources/UIxPreferences.css | 12 +++++------- UI/WebServerResources/UIxPreferences.js | 2 ++ UI/WebServerResources/generic.css | 7 +------ 3 files changed, 8 insertions(+), 13 deletions(-) diff --git a/UI/WebServerResources/UIxPreferences.css b/UI/WebServerResources/UIxPreferences.css index c6c706de1..49cf366fb 100644 --- a/UI/WebServerResources/UIxPreferences.css +++ b/UI/WebServerResources/UIxPreferences.css @@ -109,17 +109,15 @@ DIV#filtersListWrapper top: 174px; left: 2em; } +DIV#filtersListWrapper TD, +DIV.bottomToolbar +{ -khtml-user-select: none; + -moz-user-select: none; } + TABLE#filtersList { width: 100%; cursor: default; } -TR.filterListRow -{ background: #ccddec; - cursor: pointer; } - -TD.filterListCell -{ -moz-user-select: none; } - TH#activeTableHeader { width: 50px; text-align: center; } diff --git a/UI/WebServerResources/UIxPreferences.js b/UI/WebServerResources/UIxPreferences.js index 8dd42e05a..39a6caacb 100644 --- a/UI/WebServerResources/UIxPreferences.js +++ b/UI/WebServerResources/UIxPreferences.js @@ -364,6 +364,8 @@ function onFilterMoveDown(event) { function onFilterEdit(event) { _editFilter(this.rowIndex - 1); event.stop(); + + return false; } function copyFilter(originalFilter) { diff --git a/UI/WebServerResources/generic.css b/UI/WebServerResources/generic.css index febb88576..f3422017e 100644 --- a/UI/WebServerResources/generic.css +++ b/UI/WebServerResources/generic.css @@ -535,9 +535,6 @@ DIV.dTreeNode SPAN._dragOver color: #fff; } -INPUT.checkBox -{ vertical-align: middle; } - /* resizable columns */ TABLE TD.resize-handle-active, @@ -814,9 +811,7 @@ SPAN.caption DIV.tabsContainer { overflow: hidden; - padding: 0px 5px; - -moz-user-select: none; - -khtml-user-select: none; } + padding: 0px 5px; } DIV.tabsContainer > DIV.scrollToolbar { position: absolute; From 4b38c7e48343d6ba1cd27133004e102a5b339eb4 Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Thu, 2 Feb 2012 20:46:30 +0000 Subject: [PATCH 2/7] See ChangeLog. Monotone-Parent: ab2ccda92b2df4cd7482934e46d69ed541d0ead8 Monotone-Revision: af376f6da2887cfa1d81ea2a63d137713304b757 Monotone-Author: flachapelle@inverse.ca Monotone-Date: 2012-02-02T20:46:30 --- ChangeLog | 9 +++++++++ UI/MailerUI/UIxMailAccountActions.m | 11 +++++++---- UI/MailerUI/UIxMailMainFrame.m | 2 +- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index c07563d61..05b50abf4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2012-02-02 Francis Lachapelle + + * UI/MailerUI/UIxMailMainFrame.m (-composeAction): recipient + addresses are now passed as a JSON-formatted string. + + * UI/MailerUI/UIxMailAccountActions.m (-composeAction): the + received "mailto" parameter is now a JSON-formatted string; we + parse it accordingly. + 2012-02-01 Francis Lachapelle * UI/WebServerResources/UIxCalUserRightsEditor.js (onUpdateACL): diff --git a/UI/MailerUI/UIxMailAccountActions.m b/UI/MailerUI/UIxMailAccountActions.m index 0a9327135..2f9911ee8 100644 --- a/UI/MailerUI/UIxMailAccountActions.m +++ b/UI/MailerUI/UIxMailAccountActions.m @@ -212,7 +212,7 @@ SOGoDraftsFolder *drafts; SOGoDraftObject *newDraftMessage; NSString *urlBase, *url, *value, *signature; - NSArray *mailTo; + id mailTo; NSMutableDictionary *headers; BOOL save; @@ -225,9 +225,12 @@ value = [[self request] formValueForKey: @"mailto"]; if ([value length] > 0) { - mailTo = [[value stringByUnescapingURL] componentsSeparatedByString: @","]; - [headers setObject: mailTo forKey: @"to"]; - save = YES; + mailTo = [[value stringByUnescapingURL] objectFromJSONString]; + if (mailTo && [mailTo isKindOfClass: [NSArray class]]) + { + [headers setObject: (NSArray *) mailTo forKey: @"to"]; + save = YES; + } } value = [[self request] formValueForKey: @"subject"]; diff --git a/UI/MailerUI/UIxMailMainFrame.m b/UI/MailerUI/UIxMailMainFrame.m index 746196fe1..0d121651b 100644 --- a/UI/MailerUI/UIxMailMainFrame.m +++ b/UI/MailerUI/UIxMailMainFrame.m @@ -251,7 +251,7 @@ if ([addresses count] > 0) parameters = [NSString stringWithFormat: @"?mailto=%@", - [addresses componentsJoinedByString: @","]]; + [addresses jsonRepresentation]]; } } else if ([[request formValues] objectForKey: @"mailto"]) From fa7b14d2e3e7dff214580258c4d3b7cec375ac08 Mon Sep 17 00:00:00 2001 From: Jean Raby Date: Thu, 2 Feb 2012 21:56:32 +0000 Subject: [PATCH 3/7] stopping a stopped daemon should not fail. Monotone-Parent: af376f6da2887cfa1d81ea2a63d137713304b757 Monotone-Revision: 2c1d66ae690f870d8322c7ae173e86f08455f25f Monotone-Author: jraby@inverse.ca Monotone-Date: 2012-02-02T21:56:32 --- debian/sogo.init | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/sogo.init b/debian/sogo.init index b571c5bfb..9dc4b5c27 100644 --- a/debian/sogo.init +++ b/debian/sogo.init @@ -75,7 +75,7 @@ case "$1" in ;; stop) log_daemon_msg "Stopping $DESC" "$NAME" - start-stop-daemon --stop --pidfile $PIDFILE --retry=TERM/20/KILL/5 + start-stop-daemon --stop --pidfile $PIDFILE --retry=TERM/20/KILL/5 --oknodo log_end_msg 0 ;; restart|force-reload) From 120218b7f649f3fd5c74f66f7d97cad7558fafc4 Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Fri, 3 Feb 2012 15:40:36 +0000 Subject: [PATCH 4/7] Monotone-Parent: af376f6da2887cfa1d81ea2a63d137713304b757 Monotone-Revision: b71a73ffd81fa207977122c92575c810ad315108 Monotone-Author: flachapelle@inverse.ca Monotone-Date: 2012-02-03T15:40:36 --- SoObjects/Appointments/SOGoAppointmentObject.m | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/SoObjects/Appointments/SOGoAppointmentObject.m b/SoObjects/Appointments/SOGoAppointmentObject.m index 927610eb3..487d2eca1 100644 --- a/SoObjects/Appointments/SOGoAppointmentObject.m +++ b/SoObjects/Appointments/SOGoAppointmentObject.m @@ -392,7 +392,7 @@ ignoringAttendees: (NSArray *) attendees fromOldEvent: (iCalEvent *) oldEvent { - NSMutableArray *updateAttendees, *updateUIDs; + NSMutableArray *updateAttendees; NSEnumerator *enumerator; iCalPerson *currentAttendee; NSString *currentUID; @@ -400,7 +400,6 @@ updateAttendees = [NSMutableArray arrayWithArray: [newEvent attendees]]; [updateAttendees removeObjectsInArray: attendees]; - updateUIDs = [NSMutableArray arrayWithCapacity: [updateAttendees count]]; enumerator = [updateAttendees objectEnumerator]; while ((currentAttendee = [enumerator nextObject])) { From dfe906cffc7c5f9c0075098aa9c8ea1e34775ebd Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Fri, 3 Feb 2012 16:00:44 +0000 Subject: [PATCH 5/7] See ChangeLog. Monotone-Parent: 41ae9527101a616e7849988930fe0399bf14919f Monotone-Revision: dd31018a0c1b88afe90d371ba63164a518d02876 Monotone-Author: flachapelle@inverse.ca Monotone-Date: 2012-02-03T16:00:44 --- SOPE/NGCards/ChangeLog | 7 ++++ SOPE/NGCards/iCalDailyRecurrenceCalculator.m | 41 +++++++++++--------- 2 files changed, 29 insertions(+), 19 deletions(-) diff --git a/SOPE/NGCards/ChangeLog b/SOPE/NGCards/ChangeLog index 836d325a8..d9f7cba2e 100644 --- a/SOPE/NGCards/ChangeLog +++ b/SOPE/NGCards/ChangeLog @@ -1,3 +1,10 @@ +2012-02-03 Francis Lachapelle + + * iCalDailyRecurrenceCalculator.m + (-recurrenceRangesWithinCalendarDateRange): handle the case + where the occurrence start date doesn't cover the reference period + but the end date does. + 2012-01-11 Wolfgang Sourdeau * NSString+NGCards.m (-asCardAttributeValues): fixed a leak by diff --git a/SOPE/NGCards/iCalDailyRecurrenceCalculator.m b/SOPE/NGCards/iCalDailyRecurrenceCalculator.m index 728d0dec2..04106dab4 100644 --- a/SOPE/NGCards/iCalDailyRecurrenceCalculator.m +++ b/SOPE/NGCards/iCalDailyRecurrenceCalculator.m @@ -144,26 +144,29 @@ break; } - if (wrongDay == NO && - ([startDate compare: currentStartDate] == NSOrderedAscending || - [startDate compare: currentStartDate] == NSOrderedSame)) - { - NGCalendarDateRange *r; + if (wrongDay == NO) + { + currentEndDate = [currentStartDate addTimeInterval: [firstRange duration]]; + if ([startDate compare: currentStartDate] == NSOrderedAscending || + [startDate compare: currentStartDate] == NSOrderedSame || + [startDate compare: currentEndDate] == NSOrderedAscending) + { + NGCalendarDateRange *r; - if (isFirStart == NO && dayMask && repeatCount == 0) - { - if (![dayMask occursOnDay: [currentStartDate dayOfWeek]]) - wrongDay = YES; - } - - if (isFirStart == YES || wrongDay == NO) - { - currentEndDate = [currentStartDate addTimeInterval: [firstRange duration]]; - r = [NGCalendarDateRange calendarDateRangeWithStartDate: currentStartDate - endDate: currentEndDate]; - if ([_r containsDateRange: r] || [_r doesIntersectWithDateRange: r]) - [ranges addObject: r]; - } + if (isFirStart == NO && dayMask && repeatCount == 0) + { + if (![dayMask occursOnDay: [currentStartDate dayOfWeek]]) + wrongDay = YES; + } + + if (isFirStart == YES || wrongDay == NO) + { + r = [NGCalendarDateRange calendarDateRangeWithStartDate: currentStartDate + endDate: currentEndDate]; + if ([_r containsDateRange: r] || [_r doesIntersectWithDateRange: r]) + [ranges addObject: r]; + } + } } currentStartDate = [firStart dateByAddingYears: 0 months: 0 From 4f3d86ff832c25e81e90317b624a38fdddf6093a Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Fri, 3 Feb 2012 16:25:58 +0000 Subject: [PATCH 6/7] Fixed declined/tentative events opacity in IE. Monotone-Parent: dd31018a0c1b88afe90d371ba63164a518d02876 Monotone-Revision: 586a0bdcc2c98c7e3366a22553c91c00478f7f6d Monotone-Author: flachapelle@inverse.ca Monotone-Date: 2012-02-03T16:25:58 --- UI/WebServerResources/iefixes.css | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/UI/WebServerResources/iefixes.css b/UI/WebServerResources/iefixes.css index 65b67d9ef..2f17386c1 100644 --- a/UI/WebServerResources/iefixes.css +++ b/UI/WebServerResources/iefixes.css @@ -84,6 +84,16 @@ DIV#editorTabs TABLE.frame INPUT.textField INPUT.textField._invalid, INPUT.comboBoxField._invalid { background: #f00 !important; } +/* SchedulerUI */ + +DIV.eventInside.tentative, +DIV.eventInside.needs-action +{ filter: alpha(opacity=70); } + +DIV.eventInside.delegated, +DIV.eventInside.declined +{ filter: alpha(opacity=40); } + /* UIxAppointmentEditor */ DIV#attendeesMenu LI.separator From d0657536196882e19985c854d12b4c0e784fc7c1 Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Fri, 3 Feb 2012 16:53:21 +0000 Subject: [PATCH 7/7] Added missing strings for Snooze dialog. Monotone-Parent: 586a0bdcc2c98c7e3366a22553c91c00478f7f6d Monotone-Revision: 7d5711d36b09624f7b8bf3747c0b7c2d743b3d00 Monotone-Author: flachapelle@inverse.ca Monotone-Date: 2012-02-03T16:53:21 --- UI/Common/English.lproj/Localizable.strings | 9 +++++++++ UI/Common/French.lproj/Localizable.strings | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/UI/Common/English.lproj/Localizable.strings b/UI/Common/English.lproj/Localizable.strings index c484f9eb3..3c09cd52e 100644 --- a/UI/Common/English.lproj/Localizable.strings +++ b/UI/Common/English.lproj/Localizable.strings @@ -73,6 +73,15 @@ "delegate is a participant" = "The delegate is already a participant."; "delegate is a group" = "The specified address corresponds to a group. You can only delegate to a unique person."; +"Snooze for " = "Snooze for "; +"5 minutes" = "5 minutes"; +"10 minutes" = "10 minutes"; +"15 minutes" = "15 minutes"; +"30 minutes" = "30 minutes"; +"45 minutes" = "45 minutes"; +"1 hour" = "1 hour"; + + /* common buttons */ "OK" = "OK"; "Cancel" = "Cancel"; diff --git a/UI/Common/French.lproj/Localizable.strings b/UI/Common/French.lproj/Localizable.strings index 81bd7c83e..9428a41e4 100644 --- a/UI/Common/French.lproj/Localizable.strings +++ b/UI/Common/French.lproj/Localizable.strings @@ -73,6 +73,15 @@ "delegate is a participant" = "Le délégué est déjà un participant."; "delegate is a group" = "L'adresse spécifiée correspond à un groupe. Vous ne pouvez déléguer qu'à une personne."; +"Snooze for " = "Rappel dans "; +"5 minutes" = "5 minutes"; +"10 minutes" = "10 minutes"; +"15 minutes" = "15 minutes"; +"30 minutes" = "30 minutes"; +"45 minutes" = "45 minutes"; +"1 hour" = "1 heure"; + + /* common buttons */ "OK" = "OK"; "Cancel" = "Annuler";