OGoContentStore/sql/generate-folderinfo-sql-for-users.sh

Monotone-Parent: b7b94acee3398cb1537097806f5a80f257f2a43a
Monotone-Revision: 2d120d90819b42e21a50956a14c0c5d130cfdf09

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2006-10-31T18:38:53
Monotone-Branch: ca.inverse.sogo
maint-2.0.2
Wolfgang Sourdeau 2006-10-31 18:38:53 +00:00
parent 77313ec43c
commit ad4fba45dc
8 changed files with 275 additions and 88 deletions

View File

@ -124,7 +124,6 @@ static BOOL doCrashOnSessionCreate = NO;
}
- (id)lookupUser:(NSString *)_key inContext:(id)_ctx {
NSLog (@"lookupUser: %@", _key);
return [[[NSClassFromString(@"SOGoUserFolder") alloc]
initWithName:_key inContainer:self] autorelease];

View File

@ -54,11 +54,11 @@ INSERT INTO SOGo_folder_info
( c_path, c_path1, c_path2, c_path3, c_path4, c_foldername,
c_location, c_quick_location, c_folder_type )
VALUES
( '/Users/${USER_ID}/Contacts',
( '/Users/${USER_ID}/Contacts/personal',
'Users',
'${USER_ID}',
'Contacts',
NULL,
'personal',
'Contacts',
'http://${DB_USER}:${DB_PASS}@${DB_HOST}:${DB_PORT}/${DB_NAME}/SOGo_${USER_TABLE}_contacts',
'http://${DB_USER}:${DB_PASS}@${DB_HOST}:${DB_PORT}/${DB_NAME}/SOGo_${USER_TABLE}_contacts_quick',

View File

@ -11,6 +11,7 @@ Appointments_PRINCIPAL_CLASS = SOGoAppointmentsProduct
Appointments_OBJC_FILES = \
Product.m \
NSArray+Appointments.m \
iCalEntityObject+Agenor.m \
\
SOGoAppointmentObject.m \
SOGoTaskObject.m \

View File

@ -29,7 +29,10 @@
#import <NGMime/NGMime.h>
#import <NGMail/NGMail.h>
#import <NGMail/NGSendMail.h>
#import "SOGoAptMailNotification.h"
#import "iCalEntityObject+Agenor.h"
#import "common.h"
#import "NSArray+Appointments.h"
@ -507,6 +510,7 @@ static NSString *mailTemplateDefaultLanguage = nil;
- (NSException *)saveContentString:(NSString *)_iCalString {
return [self saveContentString:_iCalString baseSequence:0];
}
- (NSException *)delete {
return [self deleteWithBaseSequence:0];
}
@ -610,6 +614,34 @@ static NSString *mailTemplateDefaultLanguage = nil;
return [self serverTimeZone];
}
- (NSException *) saveContentString: (NSString *) contentString
baseVersion: (unsigned int) baseVersion
{
NSString *newContentString, *oldContentString;
iCalCalendar *eventCalendar;
iCalEvent *event;
NSArray *organizers;
oldContentString = [self iCalString];
if (oldContentString)
newContentString = contentString;
else
{
eventCalendar = [iCalCalendar parseSingleFromSource: contentString];
event = [self firstEventFromCalendar: eventCalendar];
organizers = [event childrenWithTag: @"organizer"];
if ([organizers count])
newContentString = contentString;
else
{
[event setOrganizerWithUid: [self ownerInContext: nil]];
newContentString = [eventCalendar versitString];
}
}
return [super saveContentString: newContentString
baseVersion: baseVersion];
}
- (void)sendEMailUsingTemplateNamed:(NSString *)_pageName
forOldAppointment:(iCalEvent *)_oldApt

View File

@ -73,6 +73,7 @@ static SOGoAuthenticator *auth = nil;
{
BOOL result;
return YES;
if ([authMethod isEqualToString: @"LDAP"])
result = [self LDAPCheckLogin: _login password: _pwd];
else

View File

@ -13,6 +13,10 @@
@interface UIxCalMonthView : UIxCalView
{
int dayIndex;
int dayOfWeek;
int weekOfYear;
NSCalendarDate *currentWeekStart;
}
- (NSCalendarDate *)startOfMonth;
@ -20,6 +24,34 @@
- (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__ */

View File

@ -1,13 +1,28 @@
// $Id: UIxCalMonthView.m 191 2004-08-12 16:28:32Z helge $
#include "UIxCalMonthView.h"
#include "NSCalendarDate+UIx.h"
#include "common.h"
#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"
@implementation UIxCalMonthView
- (void)dealloc {
[self->currentWeekStart release];
[super dealloc];
}
- (NSCalendarDate *)startOfMonth {
return [[[super startDate] firstDayOfMonth] beginOfDay];
return [[[self selectedDate] firstDayOfMonth] beginOfDay];
}
- (NSCalendarDate *)startDate {
@ -26,20 +41,158 @@
/* URLs */
- (NSDictionary *)prevMonthQueryParameters {
- (NSDictionary *) _monthQueryParametersWithOffset: (int) monthsOffset
{
NSCalendarDate *date;
date = [[self startOfMonth] dateByAddingYears:0 months:-1 days:0
hours:0 minutes:0 seconds:0];
date = [[self startOfMonth] dateByAddingYears: 0 months: monthsOffset days: 0
hours:0 minutes:0 seconds:0];
return [self queryParametersBySettingSelectedDate:date];
}
- (NSDictionary *)nextMonthQueryParameters {
- (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
{
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;
date = [[self startOfMonth] dateByAddingYears:0 months:1 days:0
hours:0 minutes:0 seconds:0];
return [self queryParametersBySettingSelectedDate: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];
}
@end /* UIxCalMonthView */

View File

@ -1,80 +1,49 @@
<?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">
<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>
<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>
</container>