From 8a172467253db8e129a0926d949b86410e50d811 Mon Sep 17 00:00:00 2001 From: Ludovic Marcotte Date: Fri, 4 Jul 2014 10:18:56 -0400 Subject: [PATCH] Cleaned up code and fixed the translation of the weekdays in the datepicker --- UI/Scheduler/UIxDatePicker.h | 4 +- UI/Scheduler/UIxDatePicker.m | 176 ++++++++++++++++------------ UI/WebServerResources/datepicker.js | 2 +- 3 files changed, 103 insertions(+), 79 deletions(-) diff --git a/UI/Scheduler/UIxDatePicker.h b/UI/Scheduler/UIxDatePicker.h index dcfd2cf46..cc30eae69 100644 --- a/UI/Scheduler/UIxDatePicker.h +++ b/UI/Scheduler/UIxDatePicker.h @@ -1,8 +1,6 @@ /* UIxDatePicker.h - this file is part of SOGo * - * Copyright (C) 2009 Inverse inc. - * - * Author: Francis Lachapelle + * Copyright (C) 2009-2014 Inverse inc. * * This file is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/UI/Scheduler/UIxDatePicker.m b/UI/Scheduler/UIxDatePicker.m index f0618a744..921736814 100644 --- a/UI/Scheduler/UIxDatePicker.m +++ b/UI/Scheduler/UIxDatePicker.m @@ -1,23 +1,22 @@ -/* - Copyright (C) 2004-2005 SKYRIX Software AG - - This file is part of OpenGroupware.org. - - OGo is free software; you can redistribute it and/or modify it under - the terms of the GNU Lesser General Public License as published by the - Free Software Foundation; either version 2, or (at your option) any - later version. - - OGo is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public - License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with OGo; see the file COPYING. If not, write to the - Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA - 02111-1307, USA. -*/ +/* UIxDatePicker.h - this file is part of SOGo + * + * Copyright (C) 2009-2014 Inverse inc. + * + * This file is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This file is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ #import #import @@ -38,13 +37,18 @@ { if ((self = [super init])) { + dateID = nil; + day = nil; + year = nil; + label = nil; isDisabled = NO; } return self; } -- (void)dealloc { +- (void) dealloc +{ [self->dateID release]; [self->day release]; [self->month release]; @@ -55,60 +59,79 @@ /* Accessors */ -- (void)setDateID:(NSString *)_dateID { +- (void) setDateID: (NSString *) _dateID +{ ASSIGNCOPY(self->dateID, _dateID); } -- (NSString *)dateID { +- (NSString *) dateID +{ return self->dateID; } -- (void)setDay:(id)_day { +- (void) setDay: (id) _day +{ ASSIGN(self->day, _day); } -- (id)day { - return self->day; +- (id) day +{ + return self->day; } -- (void)setMonth:(id)_month { + +- (void) setMonth: (id) _month +{ ASSIGN(self->month, _month); } -- (id)month { - return self->month; +- (id) month +{ + return self->month; } -- (void)setYear:(id)_year { + +- (void) setYear: (id) _year +{ ASSIGN(self->year, _year); } -- (id)year { - return self->year; +- (id) year +{ + return self->year; } - -- (void)setLabel:(NSString *)_label { +- (void) setLabel: (NSString *) _label +{ ASSIGNCOPY(self->label, _label); } -- (NSString *)label { +- (NSString *) label +{ return self->label; } /* formats */ -- (BOOL)useISOFormats { +- (BOOL) useISOFormats +{ + NSNumber *useISOFormats; WOContext *ctx; - NSNumber *useISOFormats; - ctx = [self context]; + ctx = [self context]; useISOFormats = [ctx valueForKey:@"useISOFormats"]; - if (!useISOFormats) { - NSArray *languages = [ctx resourceLookupLanguages]; - if (languages && [languages count] > 0) { - if ([[languages objectAtIndex:0] isEqualToString:@"French"]) { - useISOFormats = [NSNumber numberWithBool:NO]; + if (!useISOFormats) + { + NSArray *languages; + + languages = [ctx resourceLookupLanguages]; + if (languages && [languages count] > 0) + { + if ([[languages objectAtIndex:0] isEqualToString:@"French"]) + { + useISOFormats = [NSNumber numberWithBool:NO]; + } } - } if (!useISOFormats) - useISOFormats = [NSNumber numberWithBool:YES]; - [ctx takeValue:useISOFormats forKey:@"useISOFormats"]; - } + useISOFormats = [NSNumber numberWithBool: YES]; + + [ctx takeValue: useISOFormats forKey:@"useISOFormats"]; + } + return [useISOFormats boolValue]; } @@ -116,17 +139,19 @@ { char buf[22]; - if ([self useISOFormats]) { - sprintf(buf, "%04d-%02d-%02d", - [[self year] intValue], - [[self month] intValue], - [[self day] intValue]); - } - else { - sprintf(buf, "%02d/%02d/%04d", - [[self day] intValue], - [[self month] intValue], - [[self year] intValue]); + if ([self useISOFormats]) + { + sprintf(buf, "%04d-%02d-%02d", + [[self year] intValue], + [[self month] intValue], + [[self day] intValue]); + } + else + { + sprintf(buf, "%02d/%02d/%04d", + [[self day] intValue], + [[self month] intValue], + [[self year] intValue]); } return [NSString stringWithCString:buf]; } @@ -141,29 +166,30 @@ return [self useISOFormats] ? @"yyyy-mm-dd" : @"dd/mm/yyyy"; } -/* action */ - - (void) takeValuesFromRequest: (WORequest *) _rq - inContext: (WOContext *)_ctx + inContext: (WOContext *) _ctx { - NSString *dateString; - NSCalendarDate *d; NSInteger dateTZOffset, userTZOffset; NSTimeZone *systemTZ, *userTZ; SOGoUserDefaults *ud; + NSString *dateString; + NSCalendarDate *d; dateString = [_rq formValueForKey:[self dateID]]; - if (dateString == nil) { - [self debugWithFormat:@"got no date string!"]; - return; - } + + if (dateString == nil) + { + [self debugWithFormat:@"got no date string!"]; + return; + } - d = [NSCalendarDate dateWithString:dateString - calendarFormat:[self dateFormat]]; - if (d == nil) { - [self warnWithFormat:@"Could not parse dateString: '%@'", + d = [NSCalendarDate dateWithString: dateString + calendarFormat: [self dateFormat]]; + if (!d) + { + [self warnWithFormat: @"Could not parse dateString: '%@'", dateString]; - } + } /* we must adjust the date timezone because "dateWithString:..." uses the system timezone, which can be different from the user's. */ @@ -178,11 +204,11 @@ seconds: (dateTZOffset - userTZOffset)]; [d setTimeZone: userTZ]; - [self setDay: [NSNumber numberWithInt:[d dayOfMonth]]]; - [self setMonth:[NSNumber numberWithInt:[d monthOfYear]]]; + [self setDay: [NSNumber numberWithInt:[d dayOfMonth]]]; + [self setMonth: [NSNumber numberWithInt:[d monthOfYear]]]; [self setYear: [NSNumber numberWithInt:[d yearOfCommonEra]]]; - [super takeValuesFromRequest:_rq inContext:_ctx]; + [super takeValuesFromRequest: _rq inContext: _ctx]; } - (void) setDisabled: (BOOL) disabled diff --git a/UI/WebServerResources/datepicker.js b/UI/WebServerResources/datepicker.js index 5d6277feb..48af72f54 100644 --- a/UI/WebServerResources/datepicker.js +++ b/UI/WebServerResources/datepicker.js @@ -1420,7 +1420,7 @@ en: { days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"], daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"], - daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"], + daysMin: ["a2_Sunday", "a2_Monday", "a2_Tuesday", "a2_Wednesday", "a2_Thursday", "a2_Friday", "a2_Saturday", "a2_Sunday"], months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], today: "Today",