Monotone-Parent: f8ea10b15b292e5a980916a948246542ce346cca

Monotone-Revision: 2ba549bd931928e8baf58a32a9d2f37dc0b06cdb

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2007-10-30T21:51:31
Monotone-Branch: ca.inverse.sogo
maint-2.0.2
Wolfgang Sourdeau 2007-10-30 21:51:31 +00:00
parent f65b26e256
commit 9f6b51e9f2
6 changed files with 53 additions and 29 deletions

View File

@ -1,5 +1,15 @@
2007-10-30 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* UI/Scheduler/UIxCalListingActions.m ([UIxCalListingActions
-eventsListAction]): substitude the start and end date with their
UTC counterpart, taking into account the offset from UTC related
to those dates instead of the current one. This renders
-[UIxCalMainView -userUTCOffset] obsolete because the computings
that occured in javascript are now done server-side.
* UI/Scheduler/UIxCalMainView.m ([UIxCalMainView -userUTCOffset]):
removed obsolete method.
* SoObjects/Mailer/NSString+Mail.m ([NSString -htmlToText]): new
method converting html content to plain text.

View File

@ -25,6 +25,7 @@
#import <Foundation/NSEnumerator.h>
#import <Foundation/NSNull.h>
#import <Foundation/NSString.h>
#import <Foundation/NSTimeZone.h>
#import <Foundation/NSValue.h>
#import <NGObjWeb/WOContext.h>
@ -287,6 +288,24 @@
return formattedDate;
}
- (NSString *) _adjustedDateForSeconds: (unsigned int) seconds
forAllDay: (BOOL) forAllDay
{
NSCalendarDate *date;
unsigned int newSeconds, offset;
date = [NSCalendarDate dateWithTimeIntervalSince1970: seconds];
[date setTimeZone: userTimeZone];
offset = [userTimeZone secondsFromGMTForDate: date];
if (forAllDay)
newSeconds = seconds + [userTimeZone secondsFromGMT] - offset;
else
newSeconds = seconds + offset;
return [NSString stringWithFormat: @"%u", newSeconds];
}
- (WOResponse *) eventsListAction
{
NSArray *fields, *oldEvent;
@ -309,9 +328,15 @@
newEvent = [NSMutableArray arrayWithArray: oldEvent];
isAllDay = [[oldEvent objectAtIndex: 7] boolValue];
interval = [[oldEvent objectAtIndex: 4] intValue];
[newEvent replaceObjectAtIndex: 4
withObject: [self _adjustedDateForSeconds: interval
forAllDay: isAllDay]];
[newEvent addObject: [self _formattedDateForSeconds: interval
forAllDay: isAllDay]];
interval = [[oldEvent objectAtIndex: 5] intValue];
[newEvent replaceObjectAtIndex: 5
withObject: [self _adjustedDateForSeconds: interval
forAllDay: isAllDay]];
[newEvent addObject: [self _formattedDateForSeconds: interval
forAllDay: isAllDay]];
[newEvents addObject: newEvent];

View File

@ -42,15 +42,6 @@ static NSMutableArray *yearMenuItems = nil;
@implementation UIxCalMainView
- (NSString *) userUTCOffset
{
NSTimeZone *userTZ;
userTZ = [[context activeUser] timeZone];
return [NSString stringWithFormat: @"%d", [userTZ secondsFromGMT]];
}
- (NSArray *) monthMenuItems
{
unsigned int count;

View File

@ -8,9 +8,6 @@
xmlns:label="OGo:label"
className="UIxPageFrame"
title="title">
<script type="text/javascript">
var UTCOffset = <var:string value="userUTCOffset"/>;
</script>
<div class="preload" style="visibility: hidden;">
<img rsrc:src="event-gradient.png"/>
</div>

View File

@ -82,14 +82,21 @@ Date.prototype.sogoDayName = function() {
Date.prototype.daysUpTo = function(otherDate) {
var days = new Array();
var day1Date = new Date();
day1Date.setTime(this.getTime());
day1Date.setHours(0, 0, 0, 0);
var day2Date = new Date();
day2Date.setTime(otherDate.getTime());
day2Date.setHours(23, 59, 59, 999);
var day1 = day1Date.getTime();
var day2 = day2Date.getTime();
var day1 = this.getTime();
var day2 = otherDate.getTime();
if (day1 > day2) {
var tmp = day1;
day1 = day2;
day2 = tmp;
}
// var day1Date = new Date();
// day1Date.setTime(this.getTime());
// day1Date.setHours(0, 0, 0, 0);
// var day2Date = new Date();
// day2Date.setTime(otherDate.getTime());
// day2Date.setHours(23, 59, 59, 999);
// var day1 = day1Date.getTime();
// var day2 = day2Date.getTime();
var nbrDays = Math.floor((day2 - day1) / 86400000) + 1;
for (var i = 0; i < nbrDays; i++) {

View File

@ -617,17 +617,11 @@ function drawCalendarEvent(eventData, sd, ed) {
var viewEndDate = ed.asDate();
var startDate = new Date();
startDate.setTime(eventData[4] * 1000);
var endDate = new Date();
if (eventData[7] == 0) {
startDate.setTime(eventData[4] * 1000 + (1000 * UTCOffset));
endDate.setTime(eventData[5] * 1000 + (1000 * UTCOffset));
}
else {
startDate.setTime(eventData[4] * 1000);
endDate.setTime(eventData[5] * 1000);
}
endDate.setTime(eventData[5] * 1000);
// log ("s: " + startDate+ "; e: " + endDate);
// log ("s: " + startDate + "; e: " + endDate);
var days = startDate.daysUpTo(endDate);