Monotone-Parent: 2d120d90819b42e21a50956a14c0c5d130cfdf09
Monotone-Revision: 376221b991f7b0bee18cfede79614398e85e5b99

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2006-10-31T18:52:52
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Wolfgang Sourdeau
2006-10-31 18:52:52 +00:00
parent ad4fba45dc
commit ffa6aa7ecd
8 changed files with 88 additions and 275 deletions
-32
View File
@@ -13,10 +13,6 @@
@interface UIxCalMonthView : UIxCalView
{
int dayIndex;
int dayOfWeek;
int weekOfYear;
NSCalendarDate *currentWeekStart;
}
- (NSCalendarDate *)startOfMonth;
@@ -24,34 +20,6 @@
- (NSDictionary *)prevMonthQueryParameters;
- (NSDictionary *)nextMonthQueryParameters;
- (void)setDayIndex:(int)_idx;
- (int)dayIndex;
- (void)setDayOfWeek:(int)_day;
- (int)dayOfWeek;
- (void)setCurrentWeekStartDate:(NSCalendarDate *)_date;
- (NSCalendarDate *)currentWeekStartDate;
- (void)setWeekOfYear:(int)_week;
- (int)weekOfYear;
- (int)year;
- (int)month;
- (NSString *)localizedDayOfWeekName;
- (NSDictionary *)currentWeekQueryParameters;
/* style sheet */
- (NSString *)weekStyle;
- (NSString *)contentStyle;
/* appointments */
- (NSArray *)appointments;
@end
#endif /* __SOGo_UIxCalMonthView_H__ */
+12 -165
View File
@@ -1,28 +1,13 @@
// $Id: UIxCalMonthView.m 191 2004-08-12 16:28:32Z helge $
#import <Foundation/NSArray.h>
#import <Foundation/NSCalendarDate.h>
#import <Foundation/NSKeyValueCoding.h>
#import <Foundation/NSString.h>
#import <EOControl/EOQualifier.h>
#import <NGExtensions/NSCalendarDate+misc.h>
#import <SOGo/NSCalendarDate+SOGo.h>
#import <SOGoUI/SOGoAptFormatter.h>
#import "UIxCalMonthView.h"
#include <SOGo/NSCalendarDate+SOGo.h>
#include "UIxCalMonthView.h"
#include "common.h"
@implementation UIxCalMonthView
- (void)dealloc {
[self->currentWeekStart release];
[super dealloc];
}
- (NSCalendarDate *)startOfMonth {
return [[[self selectedDate] firstDayOfMonth] beginOfDay];
return [[[super startDate] firstDayOfMonth] beginOfDay];
}
- (NSCalendarDate *)startDate {
@@ -41,158 +26,20 @@
/* URLs */
- (NSDictionary *) _monthQueryParametersWithOffset: (int) monthsOffset
{
- (NSDictionary *)prevMonthQueryParameters {
NSCalendarDate *date;
date = [[self startOfMonth] dateByAddingYears: 0 months: monthsOffset days: 0
hours:0 minutes:0 seconds:0];
date = [[self startOfMonth] dateByAddingYears:0 months:-1 days:0
hours:0 minutes:0 seconds:0];
return [self queryParametersBySettingSelectedDate:date];
}
- (NSDictionary *) monthBeforePrevMonthQueryParameters
{
return [self _monthQueryParametersWithOffset: -14];
}
- (NSDictionary *) prevMonthQueryParameters
{
return [self _monthQueryParametersWithOffset: -7];
}
- (NSDictionary *) nextMonthQueryParameters
{
return [self _monthQueryParametersWithOffset: 7];
}
- (NSDictionary *) monthAfterNextMonthQueryParameters
{
return [self _monthQueryParametersWithOffset: 14];
}
- (NSString *) _monthNameWithOffsetFromThisMonth: (int) offset
{
- (NSDictionary *)nextMonthQueryParameters {
NSCalendarDate *date;
date = [[self startOfMonth] dateByAddingYears: 0 months: offset days: 0
hours:0 minutes:0 seconds:0];
return [self localizedNameForMonthOfYear: [date monthOfYear]];
}
- (NSString *) monthBeforeLastMonthName
{
return [self _monthNameWithOffsetFromThisMonth: -2];
}
- (NSString *) lastMonthName
{
return [self _monthNameWithOffsetFromThisMonth: -1];
}
- (NSString *) currentMonthName
{
return [self _monthNameWithOffsetFromThisMonth: 0];
}
- (NSString *) nextMonthName
{
return [self _monthNameWithOffsetFromThisMonth: 1];
}
- (NSString *) monthAfterNextMonthName
{
return [self _monthNameWithOffsetFromThisMonth: 2];
}
- (void)configureFormatters {
[super configureFormatters];
[self->aptFormatter setShortTitleOnly];
[self->privateAptFormatter setPrivateTitleOnly];
}
- (void)setDayIndex:(int)_idx {
self->dayIndex = _idx;
}
- (int)dayIndex {
return self->dayIndex;
}
- (void)setDayOfWeek:(int)_day {
self->dayOfWeek = _day;
}
- (int)dayOfWeek {
return self->dayOfWeek;
}
- (void)setCurrentWeekStartDate:(NSCalendarDate *)_date {
ASSIGN(self->currentWeekStart, _date);
}
- (NSCalendarDate *)currentWeekStartDate {
return self->currentWeekStart;
}
- (void)setWeekOfYear:(int)_week {
NSCalendarDate *date;
self->weekOfYear = _week;
if(_week == 52 || _week == 53)
date = [[self startOfMonth] mondayOfWeek];
else
date = [self startOfMonth];
date = [date mondayOfWeek:_week];
[self setCurrentWeekStartDate:date];
}
- (int)weekOfYear {
return self->weekOfYear;
}
- (int)year {
return [[self startOfMonth] yearOfCommonEra];
}
- (int)month {
return [[self startOfMonth] monthOfYear];
}
- (NSString *)localizedDayOfWeekName {
return [self localizedNameForDayOfWeek:self->dayOfWeek];
}
- (NSDictionary *)currentWeekQueryParameters {
return [self queryParametersBySettingSelectedDate:self->currentWeekStart];
}
/* style sheet */
- (NSString *)weekStyle {
if([self->currentWeekStart isDateInSameWeek:[NSCalendarDate date]])
return @"monthoverview_week_hilite";
return @"monthoverview_week";
}
- (NSString *)contentStyle {
if([self->currentDay isToday])
return @"monthoverview_content_hilite";
else if([self->currentDay monthOfYear] != [[self startOfMonth] monthOfYear])
return @"monthoverview_content_dimmed";
return @"monthoverview_content";
}
/* appointments */
- (NSArray *)appointments {
return [self fetchCoreAppointmentsInfos];
date = [[self startOfMonth] dateByAddingYears:0 months:1 days:0
hours:0 minutes:0 seconds:0];
return [self queryParametersBySettingSelectedDate:date];
}
@end /* UIxCalMonthView */
+73 -42
View File
@@ -1,49 +1,80 @@
<?xml version="1.0" standalone="yes"?>
<container
xmlns="http://www.w3.org/1999/xhtml"
xmlns:var="http://www.skyrix.com/od/binding"
xmlns:const="http://www.skyrix.com/od/constant"
xmlns:rsrc="OGo:url"
xmlns:label="OGo:label">
<a href="#"
class="leftNavigationArrow"
var:date="prevMonthQueryParameters.day"
onclick="return onCalendarGotoDay(this);"
><img rsrc:src="arrow-lft-sharp.gif"/></a>
<span class="monthsHeader">
<span class="month2"><a href="#"
var:date="monthBeforePrevMonthQueryParameters.day"
onclick="return onCalendarGotoDay(this);"
><var:string value="monthBeforeLastMonthName"
/></a></span
><span class="month1"><a href="#"
var:date="prevMonthQueryParameters.day"
onclick="return onCalendarGotoDay(this);"
><var:string value="lastMonthName"
/></a></span
><span class="month0"><var:string value="currentMonthName" /></span
><span class="month1"><a href="#"
var:date="nextMonthQueryParameters.day"
onclick="return onCalendarGotoDay(this);"
><var:string value="nextMonthName"
/></a></span
><span class="month2"><a href="#"
var:date="monthAfterNextMonthQueryParameters.day"
onclick="return onCalendarGotoDay(this);"
><var:string value="monthAfterNextMonthName"
/></a></span
></span>
<a href="#"
class="rightNavigationArrow"
var:date="nextMonthQueryParameters.day"
onclick="return onCalendarGotoDay(this);"
><img rsrc:src="arrow-rit-sharp.gif"/></a>
<div id="calendarContent">
<var:component
className="UIxCalDayTable"
startDate="startDate"
const:CSSClass="monthOverview"
const:numberOfDays="7" />
</div>
<var:month-overview
list="appointments"
item="appointment"
currentDay="currentDay"
index="dayIndex"
year="year"
month="month"
const:startDateKey="startDate"
const:endDateKey="endDate"
const:class="monthoverview"
contentStyle="contentStyle"
>
<var:month-info>
<var:if condition="hasHolidayInfo">
<var:string value="holidayInfo"
const:class="monthoverview_holidayinfo"
/>
</var:if>
<var:foreach list="allDayApts" item="appointment">
<var:component className="UIxCalInlineAptView"
appointment="appointment"
formatter="aptFormatter"
tooltipFormatter="aptTooltipFormatter"
url="appointmentViewURL"
const:style="monthoverview"
referenceDate="currentDay"
canAccess="canAccessApt"
/>
<br />
</var:foreach>
</var:month-info>
<var:month-label const:orientation="top"
dayOfWeek="dayOfWeek"
const:class="monthoverview_title"
>
<var:string value="localizedDayOfWeekName"/>
</var:month-label>
<var:month-label const:orientation="left"
weekOfYear="weekOfYear"
class="weekStyle"
>
<a href="weekoverview"
var:queryDictionary="currentWeekQueryParameters"
><var:string value="weekOfYear"/></a>
</var:month-label>
<var:month-title class="contentStyle">
<span class="monthoverview_day">
<a href="dayoverview"
var:queryDictionary="currentDayQueryParameters"
><var:string value="currentDay.dayOfMonth"/></a>
</span>
<!-- removed for 0.8
<br/>
<span class="monthoverview_day_new">
<a href="new"
var:queryDictionary="currentDayQueryParameters"
>[<var:string label:value="new"/>]</a>
</span>-->
</var:month-title>
<var:month class="contentStyle">
<var:component className="UIxCalInlineAptView"
appointment="appointment"
formatter="aptFormatter"
tooltipFormatter="aptTooltipFormatter"
url="appointmentViewURL"
const:style="monthoverview"
referenceDate="currentDay"
canAccess="canAccessApt"
/>
<br />
</var:month>
</var:month-overview>
</container>