Monotone-Parent: f8ea10b15b292e5a980916a948246542ce346cca
Monotone-Revision: 2ba549bd931928e8baf58a32a9d2f37dc0b06cdb Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2007-10-30T21:51:31 Monotone-Branch: ca.inverse.sogomaint-2.0.2
parent
f65b26e256
commit
9f6b51e9f2
10
ChangeLog
10
ChangeLog
|
@ -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.
|
||||
|
||||
|
|
|
@ -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];
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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++) {
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
Loading…
Reference in New Issue