See ChangeLog

Monotone-Parent: 15a323395e06e9dba494ab7c7ad2871d2e95bdd4
Monotone-Revision: 048651c03289ee8aea9a9d3d3088a91e534dbe5b

Monotone-Author: ludovic@Sophos.ca
Monotone-Date: 2009-12-22T22:45:37
Monotone-Branch: ca.inverse.sogo
maint-2.0.2
Ludovic Marcotte 2009-12-22 22:45:37 +00:00
parent 8ee88b6a42
commit 84b7582e03
37 changed files with 101 additions and 673 deletions

View File

@ -1,3 +1,17 @@
2009-12-22 Ludovic Marcotte <lmarcotte@inverse.ca>
* Removed all the Kolab-related stuff (more specifically,
associated mail part viewers)
* Removed all references to "anais" stuff.
* SoObjects/Mailer/SOGoMailFoder.m (-deleteUIDs:inContext:):
we check if we aren't in the Trash folder already before try to
copy over deleted messages.
* We now offer a way to delete events from the context menu
in all calendar views.
2009-12-22 Francis Lachapelle <flachapelle@inverse.ca>
* UI/Scheduler/UIxAppointmentEditor.m (-viewAction): added

View File

@ -245,10 +245,12 @@ static NSString *defaultUserID = @"anyone";
inContext: (id) localContext
{
SOGoMailFolder *trashFolder;
id result;
NSException *error;
NSString *folderName;
NGImap4Client *client;
NSString *folderName;
NSException *error;
id result;
BOOL b;
trashFolder = [[self mailAccountFolder] trashFolderInContext: localContext];
if ([trashFolder isNotNull])
@ -260,19 +262,27 @@ static NSString *defaultUserID = @"anyone";
client = [[self imap4Connection] client];
[imap4 selectFolder: [self imap4URL]];
folderName = [imap4 imap4FolderNameForURL: [trashFolder imap4URL]];
b = YES;
// If our Trash folder doesn't exist when we try to copy messages
// to it, we create it.
result = [[client status: folderName flags: [NSArray arrayWithObject: @"UIDVALIDITY"]]
objectForKey: @"result"];
// If we are deleting messages within the Trash folder itself, we
// do not, of course, try to move messages to the Trash folder.
if (![folderName isEqualToString: [self relativeImap4Name]])
{
// If our Trash folder doesn't exist when we try to copy messages
// to it, we create it.
result = [[client status: folderName flags: [NSArray arrayWithObject: @"UIDVALIDITY"]]
objectForKey: @"result"];
if (![result boolValue])
result = [[self imap4Connection] createMailbox: folderName atURL: [[self mailAccountFolder] imap4URL]];
if (!result || [result boolValue])
result = [client copyUids: uids toFolder: folderName];
b = [[result valueForKey: @"result"] boolValue];
}
if (![result boolValue])
result = [[self imap4Connection] createMailbox: folderName atURL: [[self mailAccountFolder] imap4URL]];
if (!result || [result boolValue])
result = [client copyUids: uids toFolder: folderName];
if ([[result valueForKey: @"result"] boolValue])
if (b)
{
result = [client storeFlags: [NSArray arrayWithObject: @"Deleted"]
forUIDs: uids addOrRemove: YES];
@ -433,15 +443,16 @@ static NSString *defaultUserID = @"anyone";
result = [self copyUIDs: uids toFolder: destinationFolder inContext: localContext];
if ( ![result isNotNull] ) {
result = [client storeFlags: [NSArray arrayWithObject: @"Deleted"]
forUIDs: uids addOrRemove: YES];
if ([[result valueForKey: @"result"] boolValue])
{
[self markForExpunge];
result = nil;
if ( ![result isNotNull] )
{
result = [client storeFlags: [NSArray arrayWithObject: @"Deleted"]
forUIDs: uids addOrRemove: YES];
if ([[result valueForKey: @"result"] boolValue])
{
[self markForExpunge];
result = nil;
}
}
}
return result;
}

View File

@ -1068,18 +1068,6 @@ static BOOL debugSoParts = NO;
/* some mail classification */
- (BOOL) isKolabObject
{
NSDictionary *h;
if ((h = [self mailHeaders]) != nil)
return [[h objectForKey: @"x-kolab-type"] isNotEmpty];
// TODO: we could check the body structure?
return NO;
}
- (BOOL) isMailingListMail
{
NSDictionary *h;
@ -1192,21 +1180,6 @@ static BOOL debugSoParts = NO;
- (NSString *) outlookMessageClass
{
NSString *type;
if ((type = [[self mailHeaders] objectForKey: @"x-kolab-type"]) != nil) {
if ([type isEqualToString: @"application/x-vnd.kolab.contact"])
return @"IPM.Contact";
if ([type isEqualToString: @"application/x-vnd.kolab.task"])
return @"IPM.Task";
if ([type isEqualToString: @"application/x-vnd.kolab.event"])
return @"IPM.Appointment";
if ([type isEqualToString: @"application/x-vnd.kolab.note"])
return @"IPM.Note";
if ([type isEqualToString: @"application/x-vnd.kolab.journal"])
return @"IPM.Journal";
}
return @"IPM.Message"; /* email, default class */
}

View File

@ -1,4 +1,4 @@
/* SOGoGCSFolder.m - this file is part of SOGo
/* SOGoObject.m - this file is part of SOGo
*
* Copyright (C) 2004-2005 SKYRIX Software AG
* Copyright (C) 2006-2009 Inverse inc.

View File

@ -26,11 +26,6 @@ MailPartViewers_OBJC_FILES += \
UIxMailPartICalViewer.m \
\
UIxMailPartICalActions.m \
\
UIxKolabPartViewer.m \
UIxKolabPartContactViewer.m \
UIxKolabPartEventViewer.m \
UIxKolabPartTaskViewer.m \
MailPartViewers_RESOURCE_FILES += \
Version \

View File

@ -1,60 +0,0 @@
/*
Copyright (C) 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.
*/
@class NSString;
#import <Foundation/NSObject.h>
#import <DOM/DOMProtocols.h>
#import "UIxKolabPartViewer.h"
/*
UIxKolabPartContactViewer
Show application/x-vnd.kolab.contact types. (Kolab XML content)
*/
@interface UIxKolabPartContactViewer : UIxKolabPartViewer
@end
@implementation UIxKolabPartContactViewer
- (id<NSObject,DOMNodeList>)addressElements {
return [[[self domDocument] documentElement]
getElementsByTagName:@"address"];
}
- (id<NSObject,DOMNodeList>)phoneElements {
return [[[self domDocument] documentElement]
getElementsByTagName:@"phone"];
}
- (id<NSObject,DOMNodeList>)emailElements {
return [[[self domDocument] documentElement]
getElementsByTagName:@"email"];
}
- (id<NSObject,DOMNodeList>)customElements {
return [[[self domDocument] documentElement]
getElementsByTagName:@"x-custom"];
}
@end /* UIxKolabPartContactViewer */

View File

@ -1,34 +0,0 @@
/*
Copyright (C) 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.
*/
#import "UIxKolabPartViewer.h"
/*
UIxKolabPartEventViewer
Show application/x-vnd.kolab.event types. (Kolab XML content)
*/
@interface UIxKolabPartEventViewer : UIxKolabPartViewer
@end
@implementation UIxKolabPartEventViewer
@end /* UIxKolabPartEventViewer */

View File

@ -1,34 +0,0 @@
/*
Copyright (C) 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.
*/
#import "UIxKolabPartViewer.h"
/*
UIxKolabPartTaskViewer
Show application/x-vnd.kolab.task types. (Kolab XML content)
*/
@interface UIxKolabPartTaskViewer : UIxKolabPartViewer
@end
@implementation UIxKolabPartTaskViewer
@end /* UIxKolabPartTaskViewer */

View File

@ -1,48 +0,0 @@
/*
Copyright (C) 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.
*/
#ifndef __Mailer_UIxKolabPartViewer_H__
#define __Mailer_UIxKolabPartViewer_H__
#import "UIxMailPartViewer.h"
/*
UIxKolabPartContactViewer
Superclass for viewers which show the application/x-vnd.* XML documents.
*/
@protocol NSObject;
@protocol DOMDocument;
@interface UIxKolabPartViewer : UIxMailPartViewer
{
id <NSObject,DOMDocument> domDocument;
id item;
}
/* getting a DOM representation */
- (id <DOMDocument>) domDocument;
@end
#endif /* __Mailer_UIxKolabPartViewer_H__ */

View File

@ -1,81 +0,0 @@
/*
Copyright (C) 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.
*/
#import <NGExtensions/NSNull+misc.h>
#import <DOM/DOMBuilderFactory.h>
#import <DOM/DOMProtocols.h>
#import "UIxKolabPartViewer.h"
@implementation UIxKolabPartViewer
static id<DOMBuilder> domBuilder = nil;
+ (void)initialize {
DOMBuilderFactory *factory
= [DOMBuilderFactory standardDOMBuilderFactory];
domBuilder = [[factory createDOMBuilderForMimeType:@"text/xml"] retain];
NSLog(@"Note(%@): using DOM builder: %@",
NSStringFromClass(self), domBuilder);
}
- (void)dealloc {
[(id)self->domDocument release];
[self->item release];
[super dealloc];
}
/* maintain caches */
- (void)resetPathCaches {
[super resetPathCaches];
[(id)self->domDocument release]; self->domDocument = nil;
[self->item release]; self->item = nil;
}
/* getting a DOM representation */
- (id<DOMDocument>)domDocument {
/*
Note: this ignores the charset MIME header and will rely on proper
encoding header in the XML.
*/
if (self->domDocument != nil)
return [(id)self->domDocument isNotNull] ? self->domDocument : nil;
self->domDocument =
[[domBuilder buildFromSource:[self decodedFlatContent]
systemId:@"Kolab Mail Object"] retain];
return self->domDocument;
}
/* accessors */
- (void)setItem:(id)_item {
ASSIGN(self->item, _item);
}
- (id)item {
return self->item;
}
@end /* UIxKolabPartViewer */

View File

@ -170,38 +170,6 @@ static BOOL showNamedTextAttachmentsInline = NO;
return [viewer pageWithName: @"UIxMailPartICalViewer"];
}
/* Kolab viewers */
- (WOComponent *) kolabContactViewer
{
return [viewer pageWithName: @"UIxKolabPartContactViewer"];
}
- (WOComponent *) kolabEventViewer
{
return [viewer pageWithName: @"UIxKolabPartEventViewer"];
}
- (WOComponent *) kolabTodoViewer
{
return [viewer pageWithName: @"UIxKolabPartTodoViewer"];
}
- (WOComponent *) kolabNoteViewer
{
return [self textViewer]; // TODO
}
- (WOComponent *) kolabJournalViewer
{
return [self textViewer]; // TODO
}
- (WOComponent *) kolabDistributionListViewer
{
return [self textViewer]; // TODO
}
/* main viewer selection */
- (WOComponent *) viewerForBodyInfo: (id) _info
@ -275,26 +243,7 @@ static BOOL showNamedTextAttachmentsInline = NO;
if ([mt isEqualToString:@"application"])
{
// octet-stream (generate download link?, autodetect type?)
if ([st hasPrefix:@"x-vnd.kolab."])
{
if ([st isEqualToString:@"x-vnd.kolab.contact"])
return [self kolabContactViewer];
if ([st isEqualToString:@"x-vnd.kolab.event"])
return [self kolabEventViewer];
if ([st isEqualToString:@"x-vnd.kolab.task"])
return [self kolabTodoViewer];
if ([st isEqualToString:@"x-vnd.kolab.note"])
return [self kolabNoteViewer];
if ([st isEqualToString:@"x-vnd.kolab.journal"])
return [self kolabJournalViewer];
if ([st isEqualToString:@"x-vnd.kolab.contact.distlist"])
return [self kolabDistributionListViewer];
[self errorWithFormat:@"found no viewer for Kolab type: %@/%@", mt, st];
return [self linkViewer];
}
else if ([st isEqualToString:@"ics"]) /* Cooqle K4lendahr - Google Calendar */
if ([st isEqualToString:@"ics"]) /* Cooqle K4lendahr - Google Calendar */
return [self iCalViewer];
#if 0 /* the link viewer looks better than plain text ;-) */

View File

@ -1,6 +1,6 @@
/* UIxMailFolderActions.m - this file is part of SOGo
*
* Copyright (C) 2007-2008 Inverse inc.
* Copyright (C) 2007-2009 Inverse inc.
*
* Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
*

View File

@ -274,7 +274,6 @@
"Search attendees" = "Pesquisar participantes";
"Search resources" = "Pesquisar recursos";
"Search appointments" = "Pesquisar apontamentos";
"Search in Anais" = "Pesquisar nos Anais";
"All day Event" = "Evento diário";
"check for conflicts" = "Checar conflitos";
@ -534,6 +533,7 @@ vtodo_class2 = "(Tarefa Confidencial)";
"Open Task..." = "Open Task...";
"Mark Completed" = "Mark Completed";
"Delete Task" = "Delete Task";
"Delete Event" = "Delete Event";
"Subscribe to a web calendar..." = "Subscribe to a web calendar...";
"URL of the Calendar" = "URL of the Calendar";

View File

@ -274,7 +274,6 @@
"Search attendees" = "Vyhledat účastníky";
"Search resources" = "Vyhledat zdroje";
"Search appointments" = "Vyhledat schůzky";
"Search in Anais" = "Vyhledat v Anais";
"All day Event" = "Celodenní událost";
"check for conflicts" = "Zkontrolovat překrývání";
@ -534,6 +533,7 @@ vtodo_class2 = "(Důvěrný úkol)";
"Open Task..." = "Open Task...";
"Mark Completed" = "Mark Completed";
"Delete Task" = "Delete Task";
"Delete Event" = "Delete Event";
"Subscribe to a web calendar..." = "Subscribe to a web calendar...";
"URL of the Calendar" = "Adresa vzdáleného kalendáře na webu";

View File

@ -274,7 +274,6 @@
"Search attendees" = "Deelnemers zoeken";
"Search resources" = "Resources zoeken";
"Search appointments" = "Afspraken zoeken";
"Search in Anais" = "Zoeken in Anais???";
"All day Event" = "Afspraak duurt de hele dag";
"check for conflicts" = "Op conflicten controleren";
@ -534,6 +533,7 @@ vtodo_class2 = "(Vertrouwelijke taak)";
"Open Task..." = "Open Task...";
"Mark Completed" = "Mark Completed";
"Delete Task" = "Delete Task";
"Delete Event" = "Delete Event";
"Subscribe to a web calendar..." = "Subscribe to a web calendar...";
"URL of the Calendar" = "URL of the Calendar";

View File

@ -274,7 +274,6 @@
"Search attendees" = "Search attendees";
"Search resources" = "Search resources";
"Search appointments" = "Search appointments";
"Search in Anais" = "Search in Anais";
"All day Event" = "All day Event";
"check for conflicts" = "Check for conflicts";
@ -534,6 +533,7 @@ vtodo_class2 = "(Confidential task)";
"Open Task..." = "Open Task...";
"Mark Completed" = "Mark Completed";
"Delete Task" = "Delete Task";
"Delete Event" = "Delete Event";
"Subscribe to a web calendar..." = "Subscribe to a web calendar...";
"URL of the Calendar" = "URL of the Calendar";

View File

@ -274,7 +274,6 @@
"Search attendees" = "Recherche de participants";
"Search resources" = "Recherche de ressources";
"Search appointments" = "Recherche de rendez-vous";
"Search in Anais" = "Recherche par Anaïs";
"All day Event" = "Événement sur la journée";
"check for conflicts" = "Vérifier les conflits";
@ -534,6 +533,7 @@ vtodo_class2 = "(Tâche confidentielle)";
"Open Task..." = "Ouvrir la tâche...";
"Mark Completed" = "Marquer comme accomplie";
"Delete Task" = "Supprimer la tâche";
"Delete Event" = "Supprimer l'événement";
"Subscribe to a web calendar..." = "S'inscrire à un agenda en ligne...";
"URL of the Calendar" = "URL de l'agenda";

View File

@ -63,7 +63,7 @@ SchedulerUI_RESOURCE_FILES += \
Toolbars/SOGoEmpty.toolbar
SchedulerUI_LOCALIZED_RESOURCE_FILES += \
Localizable.strings \
Localizable.strings
# if SoProduct is fixed to enable localized resources, add this to
# SchedulerUI_LOCALIZED_RESOURCE_FILES instead

View File

@ -274,7 +274,6 @@
"Search attendees" = "Teilnehmer suchen";
"Search resources" = "Ressourcen suchen";
"Search appointments" = "Termine suchen";
"Search in Anais" = "Suche über Anaïs";
"All day Event" = "Ganztägig";
"check for conflicts" = "Auf Konflikte überprüfen";
@ -534,6 +533,7 @@ vtodo_class2 = "(Vertrauliche Aufgabe)";
"Open Task..." = "Open Task...";
"Mark Completed" = "Mark Completed";
"Delete Task" = "Delete Task";
"Delete Event" = "Delete Event";
"Subscribe to a web calendar..." = "Subscribe to a web calendar...";
"URL of the Calendar" = "URL of the Calendar";

View File

@ -274,7 +274,6 @@
"Search attendees" = "Résztvevők keresése";
"Search resources" = "Erőforrások keresése";
"Search appointments" = "Találkozók keresése";
"Search in Anais" = "Anais keresése";
"All day Event" = "Egésznapos esemény";
"check for conflicts" = "Ütközés ellenőrzése";
@ -534,6 +533,7 @@ vtodo_class2 = "(Bizalmas feladat)";
"Open Task..." = "Open Task...";
"Mark Completed" = "Mark Completed";
"Delete Task" = "Delete Task";
"Delete Event" = "Delete Event";
"Subscribe to a web calendar..." = "Subscribe to a web calendar...";
"URL of the Calendar" = "URL of the Calendar";

View File

@ -274,7 +274,6 @@
"Search attendees" = "Cerca invitati";
"Search resources" = "Cerca risorse";
"Search appointments" = "Cerca appuntamenti";
"Search in Anais" = "Cerca in Anais";
"All day Event" = "Tutta la giornata";
"check for conflicts" = "Controlla conflitti";
@ -534,6 +533,7 @@ vtodo_class2 = "(Attività confidenziale)";
"Open Task..." = "Open Task...";
"Mark Completed" = "Mark Completed";
"Delete Task" = "Delete Task";
"Delete Event" = "Delete Event";
"Subscribe to a web calendar..." = "Subscribe to a web calendar...";
"URL of the Calendar" = "URL of the Calendar";

View File

@ -274,7 +274,6 @@
"Search attendees" = "Search attendees";
"Search resources" = "Search resources";
"Search appointments" = "Search appointments";
"Search in Anais" = "Search in Anais";
"All day Event" = "All day Event";
"check for conflicts" = "Check for conflicts";
@ -534,6 +533,7 @@ vtodo_class2 = "(Confidential task)";
"Open Task..." = "Open Task...";
"Mark Completed" = "Mark Completed";
"Delete Task" = "Delete Task";
"Delete Event" = "Delete Event";
"Subscribe to a web calendar..." = "Subscribe to a web calendar...";
"URL of the Calendar" = "URL of the Calendar";

View File

@ -274,7 +274,6 @@
"Search attendees" = "Buscar asistentes";
"Search resources" = "Search recursos";
"Search appointments" = "Buscar eventos";
"Search in Anais" = "Buscar en Anais";
"All day Event" = "Todo el día";
"check for conflicts" = "Buscar conflictos";
@ -534,6 +533,7 @@ vtodo_class2 = "(Tarea confidencial)";
"Open Task..." = "Open Task...";
"Mark Completed" = "Mark Completed";
"Delete Task" = "Delete Task";
"Delete Event" = "Delete Event";
"Subscribe to a web calendar..." = "Subscribe to a web calendar...";
"URL of the Calendar" = "URL of the Calendar";

View File

@ -274,7 +274,6 @@
"Search attendees" = "Sök deltagare";
"Search resources" = "Sök resurser";
"Search appointments" = "Sök möten";
"Search in Anais" = "Sök i Anais";
"All day Event" = "Heldagshändelse";
"check for conflicts" = "Kontrollera konflikter";
@ -534,6 +533,7 @@ vtodo_class2 = "(Konfidentiell uppgift)";
"Open Task..." = "Öppna uppgift...";
"Mark Completed" = "Märk utförd";
"Delete Task" = "Ta bort uppgift";
"Delete Event" = "Delete Event";
"Subscribe to a web calendar..." = "Prenumrera på en webbkalender...";
"URL of the Calendar" = "URL till kalendern";

View File

@ -1,4 +1,24 @@
// $Id: UIxCalView.h 1080 2007-06-12 22:15:47Z wolfgang $
/* UIxCalView.h - this file is part of SOGo
*
* Copyright (C) 2006-2009 Inverse inc.
*
* Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
*
* 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.
*/
#ifndef __SOGo_UIxCalView_H__
#define __SOGo_UIxCalView_H__

View File

@ -1,4 +1,4 @@
/* UIxCalMainView.m - this file is part of SOGo
/* UIxCalView.m - this file is part of SOGo
*
* Copyright (C) 2006-2009 Inverse inc.
*

View File

@ -274,7 +274,6 @@
"Search attendees" = "Chwilio mynychwyr";
"Search resources" = "Chwilio adnoddau";
"Search appointments" = "Chwilio apwyntiadau";
"Search in Anais" = "Search in Anais";
"All day Event" = "Digwyddiad trwy'r dydd";
"check for conflicts" = "Gwirio gwrthdaro";
@ -534,6 +533,7 @@ vtodo_class2 = "(Tasg gyhoeddus)";
"Open Task..." = "Open Task...";
"Mark Completed" = "Mark Completed";
"Delete Task" = "Delete Task";
"Delete Event" = "Delete Event";
"Subscribe to a web calendar..." = "Subscribe to a web calendar...";
"URL of the Calendar" = "URL of the Calendar";

View File

@ -1,181 +0,0 @@
<?xml version="1.0" standalone="yes"?>
<div xmlns="http://www.w3.org/1999/xhtml"
xmlns:var="http://www.skyrix.com/od/binding"
xmlns:label="OGo:label"
xmlns:const="http://www.skyrix.com/od/constant"
xmlns:rsrc="OGo:url"
class="linked_attachment_frame"
>
<fieldset>
<legend>
<var:string label:value="Kolab Contact" />:
<var:string value="domDocument./name/full-name.textValue" />
(ID: <var:string value="domDocument./uid.textValue" />)
</legend>
<div class="linked_attachment_meta" style="background-color: white;">
<!-- TODO: add some reasonable sorting .. -->
<table border="0" class="linked_attachment_meta">
<tr>
<td><var:string label:value="Name"/>:</td>
<td><var:string value="domDocument./name/full-name.textValue" /></td>
</tr>
<tr>
<td><var:string label:value="Categories"/>:</td>
<td><var:string value="domDocument./categories.textValue" /></td>
</tr>
<tr>
<td><var:string label:value="Sensitivity"/>:</td>
<td><var:string value="domDocument./sensitivity.textValue" /></td>
</tr>
<tr>
<td><var:string label:value="Organization"/>:</td>
<td><var:string value="domDocument./organization.textValue" /></td>
</tr>
<tr>
<td><var:string label:value="Web"/>:</td>
<td><var:string value="domDocument./web-page.textValue" /></td>
</tr>
<tr>
<td><var:string label:value="IM"/>:</td>
<td><var:string value="domDocument./im-address.textValue" /></td>
</tr>
<tr>
<td><var:string label:value="Department"/>:</td>
<td><var:string value="domDocument./department.textValue" /></td>
</tr>
<tr>
<td><var:string label:value="Office"/>:</td>
<td><var:string value="domDocument./office-location.textValue"/></td>
</tr>
<tr>
<td><var:string label:value="Profession"/>:</td>
<td><var:string value="domDocument./profession.textValue" /></td>
</tr>
<tr>
<td><var:string label:value="Job Title"/>:</td>
<td><var:string value="domDocument./job-title.textValue" /></td>
</tr>
<tr>
<td><var:string label:value="Manager"/>:</td>
<td><var:string value="domDocument./manager-name.textValue" /></td>
</tr>
<tr>
<td><var:string label:value="Assistant"/>:</td>
<td><var:string value="domDocument./assistant.textValue" /></td>
</tr>
<tr>
<td><var:string label:value="Job Title"/>:</td>
<td><var:string value="domDocument./job-title.textValue" /></td>
</tr>
<tr>
<td><var:string label:value="Nickname"/>:</td>
<td><var:string value="domDocument./nick-name.textValue" /></td>
</tr>
<tr>
<td><var:string label:value="Spouse"/>:</td>
<td><var:string value="domDocument./spouse-name.textValue" /></td>
</tr>
<tr>
<td><var:string label:value="Birthday"/>:</td>
<td><var:string value="domDocument./birthday.textValue" /></td>
</tr>
<tr>
<td><var:string label:value="Anniversary"/>:</td>
<td><var:string value="domDocument./anniversary.textValue" /></td>
</tr>
<tr>
<td><var:string label:value="Geo"/>:</td>
<td>
<!-- use gmaps: http://maps.google.com/maps?q=52.5+13.366 -->
<var:string label:value="Latitude"/>
<var:string value="domDocument./latitude.textValue" />
/
<var:string label:value="Longitude"/>
<var:string value="domDocument./longitude.textValue" />
</td>
</tr>
<tr>
<td valign="top"><var:string label:value="Phones"/>:</td>
<td>
<var:foreach list="phoneElements" item="item">
<var:string value="item./number.textValue"/>
(<var:string value="item./type.textValue"/>)
<br />
</var:foreach>
</td>
</tr>
<tr>
<td valign="top"><var:string label:value="Emails"/>:</td>
<td>
<var:foreach list="emailElements" item="item">
<var:string value="item./display-name.textValue"/>
&lt;<var:string value="item./smtp-address.textValue"/>&gt;
<br />
</var:foreach>
</td>
</tr>
</table>
<!--
creation-date
last-modification-date
picture
x-logo
preferred-address (type: home)
x-custom [ @value, @app, @name ]
-->
</div>
<br />
<var:foreach list="addressElements" item="item">
<fieldset>
<legend>
<var:string label:value="Address"/>:
<var:string value="item./type.textValue"/><br />
</legend>
<div class="linked_attachment_meta"
style="background-color: white; padding: 8px;">
<var:string value="item./street.textValue"/><br />
<var:string value="item./locality.textValue"/><br />
<var:string value="item./region.textValue"/><br />
<var:string value="item./postal-code.textValue"/><br />
<var:string value="item./country.textValue"/>
</div>
</fieldset>
</var:foreach>
<fieldset>
<legend>
<var:string label:value="Custom Attributes"/>
</legend>
<div class="linked_attachment_meta" style="background-color: white;">
<table border="0" class="linked_attachment_meta">
<var:foreach list="customElements" item="item">
<tr>
<td valign="top"><var:string value="item.@name.textValue"/>:</td>
<td><var:string value="item.@value.textValue"/></td>
</tr>
</var:foreach>
</table>
</div>
</fieldset>
<!--
DOC: <var:string value="domDocument" /><br />
DOCEL: <var:string value="domDocument.documentElement" /><br />
UID: <var:string value="domDocument./uid.textValue" /><br />
phone: <var:string value="domDocument./phone" /><br />
address: <var:string value="domDocument./address" /><br />
-->
</fieldset>
<pre style="display: none;"><var:string value="flatContentAsString" /></pre>
</div>

View File

@ -1,16 +0,0 @@
<?xml version="1.0" standalone="yes"?>
<div xmlns="http://www.w3.org/1999/xhtml"
xmlns:var="http://www.skyrix.com/od/binding"
xmlns:label="OGo:label"
xmlns:const="http://www.skyrix.com/od/constant"
xmlns:rsrc="OGo:url"
class="linked_attachment_frame"
>
<fieldset>
<legend>
Kolab Event
</legend>
<pre><var:string value="flatContentAsString" /></pre>
</fieldset>
</div>

View File

@ -1,16 +0,0 @@
<?xml version="1.0" standalone="yes"?>
<div xmlns="http://www.w3.org/1999/xhtml"
xmlns:var="http://www.skyrix.com/od/binding"
xmlns:label="OGo:label"
xmlns:const="http://www.skyrix.com/od/constant"
xmlns:rsrc="OGo:url"
class="linked_attachment_frame"
>
<fieldset>
<legend>
Kolab Task
</legend>
<pre><var:string value="flatContentAsString" /></pre>
</fieldset>
</div>

View File

@ -114,20 +114,6 @@
<var:component className="UIxContactSelector"
const:selectorId="resources" />
</td>
<!--
<td align="left" bgcolor="#FFFFF0">
<span class="aptview_text">
<var:component className="AnaisAttendeeSelector"
const:selectorID="resource"
const:role="NON-PARTICIPANT"
attendees="resources"
const:division="CC"
const:withAddressBook="1"
/>
TODO: need attendee selector (AB)
</span>
</td>
-->
</tr>
<tr><td colspan="2"> </td></tr>
<tr bgcolor="#e8e8e0">
@ -139,11 +125,6 @@
</tr>
<tr><td colspan="2"> </td></tr>
<tr valign="top">
<!-- <td align="right" width="15%" bgcolor="#E8E8E0">
<span class="aptview_text">
<var:string label:value="Search in Anais" />:
</span>
</td> -->
<td colspan="2">
<var:component className="UIxContactSelector"
const:selectorId="participants" />
@ -151,20 +132,6 @@
<!-- <td align="left" bgcolor="#FFFFF0">
<span class="aptview_text">
! use '1' instead of 'YES', otherwise breaks on OSX -->
<!-- <var:component className="AnaisAttendeeSelector"
const:selectorID="participant"
const:division="CC"
const:withCN="1"
const:role="REQ-PARTICIPANT"
attendees="participants"
var:emailForUser="emailForUser"
var:cnForUser="cnForUser"
const:withAddressBook="1"
/>
TODO: need attendee selector (AB)
</span>
</td>
-->
</tr>
<tr><td colspan="2"> </td></tr>
<tr>

View File

@ -14,6 +14,8 @@
<li><!-- separator --></li>
<li><var:string label:value="Previous Day"/></li>
<li><var:string label:value="Next Day"/></li>
<li><!-- separator --></li>
<li><var:string label:value="Delete Event"/></li>
</ul>
</div>
<a href="#"

View File

@ -14,6 +14,8 @@
<li><!-- separator --></li>
<li><var:string label:value="Previous Month"/></li>
<li><var:string label:value="Next Month"/></li>
<li><!-- separator --></li>
<li><var:string label:value="Delete Event"/></li>
</ul>
</div>
<a href="#"

View File

@ -13,6 +13,8 @@
<li><!-- separator --></li>
<li><var:string label:value="Previous Week"/></li>
<li><var:string label:value="Next Week"/></li>
<li><!-- separator --></li>
<li><var:string label:value="Delete Event"/></li>
</ul>
</div>
<a href="#"

View File

@ -114,20 +114,6 @@
<var:component className="UIxContactSelector"
const:selectorId="resources" />
</td>
<!--
<td align="left" bgcolor="#FFFFF0">
<span class="aptview_text">
<var:component className="AnaisAttendeeSelector"
const:selectorID="resource"
const:role="NON-PARTICIPANT"
attendees="resources"
const:division="CC"
const:withAddressBook="1"
/>
TODO: need attendee selector (AB)
</span>
</td>
-->
</tr>
<tr><td colspan="2"> </td></tr>
<tr bgcolor="#e8e8e0">
@ -139,11 +125,6 @@
</tr>
<tr><td colspan="2"> </td></tr>
<tr valign="top">
<!-- <td align="right" width="15%" bgcolor="#E8E8E0">
<span class="aptview_text">
<var:string label:value="Search in Anais" />:
</span>
</td> -->
<td colspan="2">
<var:component className="UIxContactSelector"
const:selectorId="participants" />
@ -151,20 +132,6 @@
<!-- <td align="left" bgcolor="#FFFFF0"
<span class="aptview_text">
use '1' instead of 'YES', otherwise breaks on OSX -->
<!-- <var:component className="AnaisAttendeeSelector"
const:selectorID="participant"
const:division="CC"
const:withCN="1"
const:role="REQ-PARTICIPANT"
attendees="participants"
var:emailForUser="emailForUser"
var:cnForUser="cnForUser"
const:withAddressBook="1"
/>
TODO: need attendee selector (AB)
</span>
</td>
-->
</tr>
<tr><td colspan="2"> </td></tr>
<tr>

View File

@ -127,16 +127,6 @@ DIV#folderTreeContent
font-style: italic;
}
.anais_me
{
color: #0000FF;
}
.anais_uids
{
}
/* new stuff for Thunderbird like mailer */
.vertframerow
@ -863,4 +853,4 @@ A#iCalendarDeleteFromCalendar
A#iCalendarAddToCalendar
{ border-left: 2px solid #E6E7E6;
margin-left: 5px;}
margin-left: 5px;}

View File

@ -1213,7 +1213,9 @@ function calendarDisplayCallback(http) {
onMenuNewTaskClick,
"-",
loadPreviousView,
loadNextView);
loadNextView,
"-",
deleteEvent);
observer = $("daysView");
}
else if (currentView == 'weekview') {
@ -1221,7 +1223,9 @@ function calendarDisplayCallback(http) {
onMenuNewTaskClick,
"-",
loadPreviousView,
loadNextView);
loadNextView,
"-",
deleteEvent);
observer = $("daysView");
}
else {
@ -1229,7 +1233,9 @@ function calendarDisplayCallback(http) {
onMenuNewTaskClick,
"-",
loadPreviousView,
loadNextView);
loadNextView,
"-",
deleteEvent);
observer = $("monthDaysView");
}
initMenu($("currentViewMenu"), menu);