+2004-09-20 Helge Hess <helge.hess@skyrix.com>
+
+ * SOGoMailAccounts.m: added hardcoded mail-account key (v0.9.3)
+
2004-09-08 Helge Hess <helge.hess@skyrix.com>
* added missing account objects (v0.9.2)
@implementation SOGoMailAccounts
+/* listing the available mailboxes */
+
+- (NSArray *)toManyRelationshipKeys {
+ // TODO: hardcoded
+ return [NSArray arrayWithObjects:
+ @"mail.opengroupware.org",
+ nil];
+}
+
+/* name lookup */
+
+- (BOOL)isValidMailAccountName:(NSString *)_key {
+ if ([_key length] == 0)
+ return NO;
+
+ return YES;
+}
+
+- (id)mailAccountWithName:(NSString *)_key inContext:(id)_ctx {
+ static Class ctClass = Nil;
+ id ct;
+
+ if (ctClass == Nil)
+ ctClass = NSClassFromString(@"SOGoMailAccount");
+ if (ctClass == Nil) {
+ [self logWithFormat:@"ERROR: missing SOGoMailAccount class!"];
+ return nil;
+ }
+
+ ct = [[ctClass alloc] initWithName:_key inContainer:self];
+ return [ct autorelease];
+}
+
+- (id)lookupName:(NSString *)_key inContext:(id)_ctx acquire:(BOOL)_flag {
+ id obj;
+
+ /* first check attributes directly bound to the application */
+ if ((obj = [super lookupName:_key inContext:_ctx acquire:NO]))
+ return obj;
+
+ if ([self isValidMailAccountName:_key])
+ return [self mailAccountWithName:_key inContext:_ctx];
+
+ /* return 404 to stop acquisition */
+ return [NSException exceptionWithHTTPStatus:404 /* Not Found */];
+}
+
@end /* SOGoMailAccounts */
# $Id$
-SUBMINOR_VERSION:=2
+SUBMINOR_VERSION:=3
2004-09-20 Helge Hess <helge.hess@skyrix.com>
+ * SOGoObject.m: added a default GET method which redirects to
+ url + "/view" (v0.9.18)
+
* SOGoObject.m(-description): added name of container (v0.9.17)
2004-09-08 Helge Hess <helge.hess@skyrix.com>
/* operations */
- (NSException *)delete {
- return [NSException exceptionWithHTTPStatus:500 /* not implemented */
+ return [NSException exceptionWithHTTPStatus:501 /* not implemented */
reason:@"delete not yet implemented, sorry ..."];
}
return [self delete];
}
+- (id)GETAction:(WOContext *)_ctx {
+ // TODO: I guess this should really be done by SOPE (redirect to
+ // default method)
+ WOResponse *r;
+ NSString *uri;
+
+ uri = [[_ctx request] uri];
+ if (![uri hasSuffix:@"/"]) uri = [uri stringByAppendingString:@"/"];
+ uri = [uri stringByAppendingString:@"view"];
+
+ r = [_ctx response];
+ [r setStatus:302 /* moved */];
+ [r setHeader:uri forKey:@"location"];
+ return r;
+}
+
/* description */
- (void)appendAttributesToDescription:(NSMutableString *)_ms {
# $Id: Version 170 2004-08-11 10:45:40Z helge $
-SUBMINOR_VERSION:=17
+SUBMINOR_VERSION:=18
2004-09-20 Helge Hess <helge.hess@skyrix.com>
+ * UIxPageFrame.m: added item ivar (v0.9.26)
+
* UIxPageFrame.wox: improved debugging section (v0.9.25)
2004-09-10 Marcus Mueller <znek@mulle-kybernetik.com>
+/*
+ Copyright (C) 2004 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.
+*/
// $Id$
#include <SOGoUI/UIxComponent.h>
@interface UIxPageFrame : UIxComponent
{
- NSString *title;
- NSString *rootURL;
- NSString *userRootURL;
+ NSString *title;
+ NSString *rootURL;
+ NSString *userRootURL;
+ id item;
}
- (NSString *)rootURL;
@implementation UIxPageFrame
- (void)dealloc {
- [self->title release];
- [self->rootURL release];
+ [self->item release];
+ [self->title release];
+ [self->rootURL release];
[self->userRootURL release];
[super dealloc];
}
/* accessors */
- (void)setTitle:(NSString *)_value {
- ASSIGN(self->title, _value);
+ ASSIGNCOPY(self->title, _value);
}
- (NSString *)title {
- if([self isUIxDebugEnabled])
+ if ([self isUIxDebugEnabled])
return self->title;
- return [self labelForKey:@"OpenGroupware.org"];
+
+ return [self labelForKey:@"OpenGroupware.org"];
+}
+
+- (void)setItem:(id)_item {
+ ASSIGN(self->item, _item);
+}
+- (id)item {
+ return self->item;
+}
+
+/* notifications */
+
+- (void)sleep {
+ [self->item release]; self->item = nil;
+ [super sleep];
}
/* URL generation */
WOContext *ctx;
NSArray *traversalObjects;
- if (self->rootURL)
+ if (self->rootURL != nil)
return self->rootURL;
ctx = [self context];
traversalObjects = [ctx objectTraversalStack];
self->rootURL = [[[traversalObjects objectAtIndex:0]
rootURLInContext:ctx]
- retain];
+ copy];
return self->rootURL;
}
-# $Id$
+# Version file
-SUBMINOR_VERSION:=25
+SUBMINOR_VERSION:=26
+2004-09-20 Helge Hess <helge.hess@skyrix.com>
+
+ * work on mailer (v0.9.2)
+
2004-09-01 Marcus Mueller <znek@mulle-kybernetik.com>
* GNUmakefile.preamble: fixed for gsmake 1.9.2 build (v0.9.1)
MailerUI_LANGUAGES = English French
-MailerUI_OBJC_FILES = \
- MailerUIProduct.m \
- \
- UIxMailListView.m \
+MailerUI_OBJC_FILES += \
+ MailerUIProduct.m \
+ \
+ UIxMailMainFrame.m \
+ UIxMailAccountsView.m \
+ UIxMailAccountView.m \
+ UIxMailListView.m \
UIxMailView.m \
UIxMailEditor.m \
-MailerUI_RESOURCE_FILES += \
- Version \
- product.plist \
+MailerUI_RESOURCE_FILES += \
+ Version \
+ product.plist \
-MailerUI_RESOURCE_FILES += \
- UIxMailListView.wox \
+MailerUI_RESOURCE_FILES += \
+ UIxMailMainFrame.wox \
+ UIxMailAccountsView.wox \
+ UIxMailAccountView.wox \
+ UIxMailListView.wox \
UIxMailView.wox \
- UIxMailEditor.wox \
+ UIxMailEditor.wox \
-MailerUI_LOCALIZED_RESOURCE_FILES += \
- default.strings \
+MailerUI_RESOURCE_FILES += \
+ uix.css \
+ mailer.css \
-ADDITIONAL_INCLUDE_DIRS += \
- -I.. -I../.. -I../../..
+MailerUI_RESOURCE_FILES += \
+ screenshots/*.png
+MailerUI_LOCALIZED_RESOURCE_FILES += \
+ default.strings
# make
# $Id$
+ADDITIONAL_INCLUDE_DIRS += \
+ -I.. -I../.. -I../../..
+
ADDITIONAL_INCLUDE_DIRS += \
-I.. \
-I../.. \
--- /dev/null
+/*
+ Copyright (C) 2004 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.
+*/
+// $Id: UIxMailAccountView.m 308 2004-09-20 10:51:12Z helge $
+
+#include <SOGoUI/UIxComponent.h>
+
+@interface UIxMailAccountView : UIxComponent
+{
+}
+
+@end
+
+#include "common.h"
+
+@implementation UIxMailAccountView
+
+@end /* UIxMailAccountView */
--- /dev/null
+<?xml version='1.0' standalone='yes'?>
+<var:component xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:var="http://www.skyrix.com/od/binding"
+ xmlns:const="http://www.skyrix.com/od/constant"
+ xmlns:uix="OGo:uix"
+ xmlns:label="OGo:label"
+ className="UIxMailMainFrame"
+ title="name"
+>
+ <h4>Account Settings Page</h4>
+ <a rsrc:href="tbird_073_accountview.png">screenshot</a>
+</var:component>
--- /dev/null
+/*
+ Copyright (C) 2004 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.
+*/
+// $Id: UIxMailAccountsView.m 308 2004-09-20 10:51:12Z helge $
+
+#include <SOGoUI/UIxComponent.h>
+
+@interface UIxMailAccountsView : UIxComponent
+{
+}
+
+@end
+
+#include "common.h"
+
+@implementation UIxMailAccountsView
+
+@end /* UIxMailAccountsView */
--- /dev/null
+<?xml version='1.0' standalone='yes'?>
+<var:component xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:var="http://www.skyrix.com/od/binding"
+ xmlns:const="http://www.skyrix.com/od/constant"
+ xmlns:uix="OGo:uix"
+ xmlns:label="OGo:label"
+ className="UIxMailMainFrame"
+ title="name"
+>
+ <h4>Account Settings Page</h4>
+ <a rsrc:href="tbird_073_accountview.png">screenshot</a>
+
+</var:component>
className="UIxPageFrame"
title="name"
>
- <var:if condition="isUIxDebugEnabled">
- <hr />
- clientObject: <var:string value="clientObject" />
- </var:if>
+ <h4>Mail Compose</h4>
+ <a rsrc:href="tbird_073_compose.png">screenshot</a>
+
</var:component>
\ No newline at end of file
className="UIxPageFrame"
title="name"
>
- <var:if condition="isUIxDebugEnabled">
- <hr />
- clientObject: <var:string value="clientObject" />
- </var:if>
+
</var:component>
\ No newline at end of file
--- /dev/null
+/*
+ Copyright (C) 2004 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.
+*/
+// $Id: UIxPageFrame.m 278 2004-08-26 23:29:09Z helge $
+
+#include <SOGoUI/UIxComponent.h>
+
+@interface UIxPageFrame : UIxComponent
+{
+ NSString *title;
+ NSString *rootURL;
+ NSString *userRootURL;
+ id item;
+}
+
+- (NSString *)rootURL;
+- (NSString *)userRootURL;
+- (NSString *)calendarRootURL;
+
+@end
+
+#include "common.h"
+#include <NGObjWeb/SoComponent.h>
+
+@implementation UIxPageFrame
+
+- (void)dealloc {
+ [self->item release];
+ [self->title release];
+ [self->rootURL release];
+ [self->userRootURL release];
+ [super dealloc];
+}
+
+/* accessors */
+
+- (void)setTitle:(NSString *)_value {
+ ASSIGNCOPY(self->title, _value);
+}
+- (NSString *)title {
+ if ([self isUIxDebugEnabled])
+ return self->title;
+
+ return [self labelForKey:@"OpenGroupware.org"];
+}
+
+- (void)setItem:(id)_item {
+ ASSIGN(self->item, _item);
+}
+- (id)item {
+ return self->item;
+}
+
+/* notifications */
+
+- (void)sleep {
+ [self->item release]; self->item = nil;
+ [super sleep];
+}
+
+/* URL generation */
+
+- (NSString *)rootURL {
+ WOContext *ctx;
+ NSArray *traversalObjects;
+
+ if (self->rootURL != nil)
+ return self->rootURL;
+
+ ctx = [self context];
+ traversalObjects = [ctx objectTraversalStack];
+ self->rootURL = [[[traversalObjects objectAtIndex:0]
+ rootURLInContext:ctx]
+ copy];
+ return self->rootURL;
+}
+
+- (NSString *)userRootURL {
+ WOContext *ctx;
+ NSArray *traversalObjects;
+
+ if (self->userRootURL)
+ return self->userRootURL;
+
+ ctx = [self context];
+ traversalObjects = [ctx objectTraversalStack];
+ self->userRootURL = [[[[traversalObjects objectAtIndex:1]
+ baseURLInContext:ctx]
+ stringByAppendingString:@"/"]
+ retain];
+ return self->userRootURL;
+}
+
+- (NSString *)calendarRootURL {
+ return [[self userRootURL] stringByAppendingString:@"Calendar/"];
+}
+- (NSString *)contactsRootURL {
+ return [[self userRootURL] stringByAppendingString:@"Contacts/"];
+}
+
+@end /* UIxPageFrame */
--- /dev/null
+<?xml version="1.0" standalone="yes"?>
+<html 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"
+>
+ <head>
+ <title>
+ <var:string value="title"/>
+ </title>
+ <meta name="description" content="SOGo Web Interface"/>
+ <meta name="author" content="SKYRIX Software AG"/>
+ <meta name="robots" content="stop"/>
+ <link type="text/css" rel="stylesheet" rsrc:href="uix.css"/>
+ <link type="text/css" rel="stylesheet" rsrc:href="mailer.css"/>
+ <link href="mailto:info@skyrix.com" rev="made"/>
+ </head>
+
+ <body>
+ <table border="0" width="100%">
+ <tr>
+ <td colspan="2" width="100%" valign="top">
+ Toolbar
+ </td>
+ </tr>
+ <tr>
+ <td width="25%" valign="top">
+ Folder Tree
+ <var:foreach list="clientObject.toManyRelationshipKeys" item="item">
+ <li><a var:href="item"><var:string value="item"/></a></li>
+ </var:foreach>
+ </td>
+ <td valign="top">
+ <var:component-content/>
+ </td>
+ </tr>
+ </table>
+
+ <var:if condition="isUIxDebugEnabled">
+ <table border="0" width="100%">
+ <tr>
+ <td colspan="2">
+ <hr />
+ <table border="0" style="font-size: 9pt;">
+ <tr>
+ <td valign="top">clientObject:</td>
+ <td valign="top"><var:string value="clientObject" /></td>
+ </tr>
+ <tr>
+ <td valign="top">traversal stack:</td>
+ <td valign="top">
+ <var:foreach list="context.objectTraversalStack" item="item">
+ <var:string value="item" /><br />
+ </var:foreach>
+ </td>
+ </tr>
+ <tr>
+ <td valign="top">traversal path:</td>
+ <td valign="top">
+ <var:foreach list="context.soRequestTraversalPath"
+ item="item" const:separator=" => ">
+ <var:string value="item" />
+ </var:foreach>
+ </td>
+ </tr>
+ <tr>
+ <td valign="top">request type:</td>
+ <td valign="top"><var:string value="context.soRequestType"/>
+ </td>
+ </tr>
+ <tr>
+ <td valign="top">path info:</td>
+ <td valign="top"><var:string value="context.pathInfo"/></td>
+ </tr>
+ <tr>
+ <td valign="top">rootURL:</td>
+ <td valign="top"><var:string value="context.rootURL"/></td>
+ </tr>
+ <tr>
+ <td valign="top">active user:</td>
+ <td valign="top"><var:string value="context.activeUser"/></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </var:if>
+ </body>
+</html>
@end
+#include <SoObjects/Mailer/SOGoMailObject.h>
#include "common.h"
@implementation UIxMailView
- (BOOL)isDeletableClientObject {
- return [[self clientObject] respondsToSelector:@selector(delete)];
+ return [[self clientObject] respondsToSelector:@selector(delete)];
}
- (id)deleteAction {
className="UIxPageFrame"
title="name"
>
- <var:if condition="isUIxDebugEnabled">
- <hr />
- clientObject: <var:string value="clientObject" />
- </var:if>
+ <h4>Mail View</h4>
+ <a rsrc:href="tbird_073_viewer.png">screenshot</a>
+
</var:component>
# $Id$
-SUBMINOR_VERSION:=1
+SUBMINOR_VERSION:=2
{
- "__cvs__" = "$Id$";
-
requires = {
bundleManagerVersion = 1;
classes = (
--- /dev/null
+.aptview_title {
+ font-size: 10pt;
+ font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif;
+ color: #000000;
+ font-weight: bold;
+}
+
+.aptview_text {
+ font-size: 10pt;
+ font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif;
+ color: #000000;
+}
+
+.apt_other {
+ color: #000000;
+}
+
+.apt_other_print {
+ font-style: italic;
+}
+
+.anais_me {
+ color: #0000FF;
+}
+
+.anais_uids {
+ font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif;
+ font-size: 10pt;
+}
+
+/* day overview */
+
+
+.dayoverview_content {
+ padding: 1px;
+ margin: 0px 0px 0px 0px;
+ vertical-align: top;
+ font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif;
+ letter-spacing: 0pt;
+ font-size: 9pt;
+}
+
+.dayoverview_content_time {
+ background-color: #d2d2cc;
+ text-align: center;
+}
+
+.dayoverview_content_time_link {
+ font-size: 8pt;
+}
+.dayoverview_content_time_link a {
+ color: #0033cc;
+ text-decoration: none;
+}
+.dayoverview_content_time_link a:hover {
+ color: #ff0000;
+ text-decoration: underline;
+}
+
+.dayoverview_content_apts {
+ color: #0033cc;
+ background-color: #e8e8e0;
+ text-align: left;
+ vertical-align: top;
+}
+
+.dayoverview_cal {
+ color: #000000;
+ font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif;
+ font-size: 10pt;
+ letter-spacing: 0pt;
+ padding: 0px 0px 0px 0px;
+ margin: 0px 0px 0px 0px;
+}
+
+.dayoverview_cal table {
+ padding: 0px 0px 0px 0px;
+ margin: 0px 0px 0px 0px;
+}
+
+.dayoverview_cal td {
+ padding: 0px 0px 0px 0px;
+ margin: 0px 0px 0px 0px;
+}
+
+.dayoverview_cal a {
+ color: #000000;
+ font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif;
+ font-size: 10pt;
+ letter-spacing: 0pt;
+ padding: 0px;
+ text-decoration: none;
+}
+.dayoverview_cal a:hover {
+ text-decoration: underline;
+}
+
+.dayoverview_cal_title {
+ background-color: #d2d2cc;
+ text-align: center;
+ font-size: 10pt;
+ font-weight: bold;
+ letter-spacing: 0pt;
+}
+
+.dayoverview_cal_day_header {
+ background-color: #d2d2cc;
+ text-align: center;
+ vertical-align: top;
+ font-size: 11pt;
+// width: 24px;
+// padding: 2px 2px 2px 2px;
+// margin: 2px 2px 2px 2px;
+}
+
+.dayoverview_cal_content {
+ color: #0033cc;
+ background-color: #e8e8e0;
+ text-align: center;
+ vertical-align: top;
+}
+
+.dayoverview_cal_content_hilite {
+ color: #0033cc;
+ background-color: #fffff0;
+ text-align: center;
+ vertical-align: top;
+}
+
+.dayoverview_cal_content_selected {
+ color: #ff0000;
+}
+.dayoverview_cal_content_selected a {
+ color: #ff0000;
+}
+.dayoverview_cal_content_selected a:hover {
+ color: #ff0000;
+}
+
+.dayoverview_cal_content_dimmed {
+ color: #0033cc;
+ background-color: #d2d2cc;
+ text-align: center;
+ vertical-align: top;
+}
+.dayoverview_cal_content_dimmed a {
+ color: #5a5a5a;
+}
+.dayoverview_cal_content_dimmed a:hover {
+ color: #5a5a5a;
+}
+
+
+/* day printview */
+
+
+.dayprintview {
+ font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif;
+ letter-spacing: 0pt;
+ font-size: 10pt;
+}
+
+td.dayprintview_time {
+ font-size: 10pt;
+ font-weight: bold;
+ text-align: center;
+}
+
+td.dayprintview_content {
+ font-size: 10pt;
+ text-align: left;
+}
+
+h1.dayprintview, h2.dayprintview {
+ font-size: 11pt;
+ font-weight: bold;
+ margin: 0px;
+ padding: 0px;
+ text-align: center;
+}
+
+h1.dayprintview {
+ font-style: italic;
+}
+
+
+/* week overview */
+
+
+.weekoverview_title {
+ font-size: 10pt;
+ font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif;
+ letter-spacing: 0pt;
+ color: #000000;
+ background-color: #d2d2cc;
+}
+
+.weekoverview_title a {
+ color: #0033cc;
+ text-decoration: none;
+}
+
+.weekoverview_title_hilite {
+ font-size: 10pt;
+ font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif;
+ letter-spacing: 0pt;
+ color: #000000;
+ background-color: #d2d2cc;
+ font-weight: bold;
+}
+
+.weekoverview_title_hilite a {
+ color: #0033cc;
+ text-decoration: none;
+}
+
+.weekoverview_title_daylink {
+ font-size: 12pt;
+ color: #0033cc;
+ font-weight: bold;
+}
+
+.weekoverview_title_newlink {
+ font-size: 8pt;
+}
+
+.weekoverview_holidayinfo {
+ font-size: 8pt;
+ font-weight: bold;
+}
+
+.weekoverview_content {
+ color: #FFFFFF;
+ background-color: #e8e8e0;
+}
+
+.weekoverview_content a {
+ color: #0000FF;
+ font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif;
+ letter-spacing: 0pt;
+ text-decoration: none;
+}
+
+.weekoverview_content_hilite {
+ background-color: #fffff0;
+}
+
+.weekoverview_content_hilite a {
+ color: #0000FF;
+ font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif;
+ letter-spacing: 0pt;
+ text-decoration: none;
+}
+
+
+/* week columnsview */
+
+
+.weekcolumnsview {
+}
+
+.weekcolumnsview_title {
+ font-size: 10pt;
+ font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif;
+ letter-spacing: 0pt;
+ color: #000000;
+ background-color: #d2d2cc;
+ padding: 4px;
+}
+
+.weekcolumnsview_title a {
+ color: #0033cc;
+ text-decoration: none;
+}
+
+.weekcolumnsview_title_hilite {
+ font-size: 10pt;
+ font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif;
+ letter-spacing: 0pt;
+ color: #000000;
+ background-color: #d2d2cc;
+ font-weight: bold;
+ padding: 4px;
+}
+
+.weekcolumnsview_title_hilite a {
+ color: #0033cc;
+ text-decoration: none;
+}
+
+.weekcolumnsview_title_daylink {
+ font-size: 12pt;
+ color: #0033cc;
+ font-weight: bold;
+}
+
+.weekcolumnsview_title_newlink {
+ font-size: 8pt;
+}
+
+.weekcolumnsview_holidayinfo {
+ font-size: 8pt;
+ font-weight: bold;
+}
+
+.weekcolumnsview_content {
+ color: #FFFFFF;
+ background-color: #e8e8e0;
+}
+
+.weekcolumnsview_content a {
+ color: #0000FF;
+ font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif;
+ letter-spacing: 0pt;
+ text-decoration: none;
+}
+
+.weekcolumnsview_content_hilite {
+ background-color: #fffff0;
+}
+
+.weekcolumnsview_content_hilite a {
+ color: #0000FF;
+ font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif;
+ letter-spacing: 0pt;
+ text-decoration: none;
+}
+
+.weekcolumnsview_cal {
+ color: #000000;
+ font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif;
+ font-size: 10pt;
+ letter-spacing: 0pt;
+ padding: 0px 0px 0px 0px;
+ margin: 0px 0px 0px 0px;
+}
+
+.weekcolumnsview_cal table {
+ padding: 0px 0px 0px 0px;
+ margin: 0px 0px 0px 0px;
+}
+
+.weekcolumnsview_cal td {
+ padding: 0px 0px 0px 0px;
+ margin: 0px 0px 0px 0px;
+}
+
+.weekcolumnsview_cal a {
+ color: #000000;
+ font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif;
+ font-size: 10pt;
+ letter-spacing: 0pt;
+ padding: 0px;
+ text-decoration: none;
+}
+.weekcolumnsview_cal a:hover {
+ text-decoration: underline;
+}
+
+.weekcolumnsview_cal_title {
+ background-color: #d2d2cc;
+ text-align: center;
+ font-size: 10pt;
+ font-weight: bold;
+ letter-spacing: 0pt;
+}
+
+.weekcolumnsview_cal_day_header {
+ background-color: #d2d2cc;
+ text-align: center;
+ vertical-align: middle;
+ font-size: 11pt;
+ width: 20px;
+ padding: 2px 2px 2px 2px;
+ margin: 2px 2px 2px 2px;
+}
+
+.weekcolumnsview_cal_content {
+ color: #000000;
+ background-color: #e8e8e0;
+ text-align: center;
+ vertical-align: middle;
+ font-size: 10pt;
+ letter-spacing: 0pt;
+}
+
+.weekcolumnsview_cal_content_hilite {
+ color: #000000;
+ background-color: #fffff0;
+ text-align: center;
+ vertical-align: middle;
+ font-size: 10pt;
+ letter-spacing: 0pt;
+}
+
+.weekcolumnsview_cal_content_dimmed {
+ color: #5a5a5a;
+ background-color: #d2d2cc;
+ text-align: center;
+ vertical-align: middle;
+ font-size: 10pt;
+ letter-spacing: 0pt;
+}
+
+.weekcolumnsview_cal_week {
+ background-color: #d2d2cc;
+ width: 16pt;
+ text-align: center;
+ vertical-align: middle;
+}
+
+
+/* week printview */
+
+td.weekprintview {
+ border: 1px solid;
+}
+
+h1.weekprintview, h2.weekprintview {
+ font-size: 10pt;
+ font-weight: bold;
+ margin: 0px;
+ padding: 0px;
+ text-align: center;
+}
+
+h1.weekprintview {
+ font-size: 12pt;
+ font-style: italic;
+}
+
+
+.weekprintview_title {
+ font-size: 11pt;
+ font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif;
+ letter-spacing: 0pt;
+}
+
+.weekprintview_title_hilite a {
+ color: #0033cc;
+ text-decoration: none;
+}
+
+.weekprintview_holidayinfo {
+ font-size: 10pt;
+ font-weight: bold;
+}
+
+.weekprintview_content, .weekprintview_apt_time {
+ font-size: 10pt;
+}
+
+.weekprintview_apt_time {
+ font-weight: bold;
+ font-style: italic;
+}
+
+
+/* month overview */
+
+
+.monthoverview {
+ color: #000000;
+ font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif;
+ font-size: 10pt;
+ letter-spacing: 0pt;
+ padding: 2px;
+}
+
+.monthoverview a {
+ color: #0033cc;
+ font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif;
+ font-size: 7pt;
+ font-style: normal;
+ font-weight: normal;
+ letter-spacing: 0pt;
+ text-decoration: none;
+}
+
+.monthoverview a:hover {
+ text-decoration: underline;
+}
+
+.monthoverview_title {
+ background-color: #d2d2cc;
+ text-align: center;
+}
+
+.monthoverview_week {
+ background-color: #d2d2cc;
+ width: 16pt;
+ text-align: center;
+ vertical-align: middle;
+}
+
+.monthoverview_week a {
+ color: #000000;
+ font-size: 10pt;
+}
+
+.monthoverview_week_hilite {
+ background-color: #fffff0;
+ width: 16pt;
+ text-align: center;
+ vertical-align: middle;
+}
+
+.monthoverview_week_hilite a {
+ color: #000000;
+ font-size: 10pt;
+}
+
+.monthoverview_content {
+ background-color: #e8e8e0;
+ font-size: 9pt;
+ height: 60;
+}
+.monthoverview_content a {
+ font-style: italic;
+ font-weight: bold;
+}
+.monthoverview_content td {
+ text-align: left;
+ vertical-align: top;
+}
+
+.monthoverview_content_hilite {
+ background-color: #fffff0;
+ font-size: 9pt;
+ height: 60;
+}
+.monthoverview_content_hilite a {
+ font-style: italic;
+ font-weight: bold;
+}
+.monthoverview_content_hilite td {
+ text-align: left;
+ vertical-align: top;
+}
+
+.monthoverview_content_dimmed {
+ background-color: #d2d2cc;
+ font-size: 9pt;
+ height: 60;
+}
+.monthoverview_content_dimmed a {
+ font-style: normal;
+ font-weight: normal;
+}
+.monthoverview_content_dimmed td {
+ text-align: left;
+ vertical-align: top;
+}
+
+.monthoverview_day a {
+ color: #000000;
+ font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif;
+ font-size: 12pt;
+}
+
+.monthoverview_day_new a {
+ font-style: normal;
+ font-weight: normal;
+}
+
+.monthoverview_day_new a:hover {
+ font-style: normal;
+ font-weight: normal;
+ color: #ff0000;
+}
+
+.monthoverview_content_link {
+ font-style: normal;
+ font-weight: normal;
+}
+
+/* month printview */
+
+.monthprintview {
+ font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif;
+ letter-spacing: 0pt;
+ font-size: 9pt;
+}
+
+h1.monthprintview_header, h2.monthprintview_header {
+ font-size: 10pt;
+ font-weight: bold;
+ margin: 0px;
+ padding: 0px;
+ text-align: center;
+}
+
+h1.monthprintview_header {
+ font-size: 12pt;
+ font-style: italic;
+}
+
+.monthprintview_title {
+ text-align: center;
+}
+
+.monthprintview_week {
+ width: 16pt;
+ text-align: center;
+ vertical-align: middle;
+}
+
+.monthprintview_apt, .monthprintview_apt_time {
+ font-size: 7pt;
+}
+
+.monthprintview_apt_time {
+ font-weight: bold;
+ font-style: italic;
+}
+
+td.monthprintview_content {
+ text-align: left;
+ vertical-align: top;
+ font-style: italic;
+ font-weight: bold;
+ font-size: 12pt;
+ height: 60;
+}
+
+td.monthprintview_content_dimmed {
+ text-align: left;
+ vertical-align: top;
+ font-size: 12pt;
+ height: 60;
+}
+
+
+/* year overview */
+
+
+.yearoverview {
+ color: #000000;
+ font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif;
+ font-size: 10pt;
+ letter-spacing: 0pt;
+ padding: 0px 0px 0px 0px;
+ margin: 0px 0px 0px 0px;
+}
+
+.yearoverview table {
+ padding: 0px 0px 0px 0px;
+ margin: 0px 0px 0px 0px;
+}
+
+.yearoverview td {
+ padding: 0px 0px 0px 0px;
+ margin: 0px 0px 0px 0px;
+}
+
+.yearoverview a {
+ color: #000000;
+ font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif;
+ font-size: 10pt;
+ letter-spacing: 0pt;
+ padding: 0px;
+ text-decoration: none;
+}
+.yearoverview a:hover {
+ text-decoration: underline;
+}
+
+.yearoverview_title {
+ background-color: #d2d2cc;
+ text-align: center;
+ font-size: 10pt;
+ font-weight: bold;
+ letter-spacing: 0pt;
+}
+
+.yearoverview_day_header {
+ background-color: #d2d2cc;
+ text-align: center;
+ vertical-align: middle;
+ font-size: 10pt;
+ width: 18px; /* this delimits all td's! */
+}
+
+.yearoverview_content {
+ color: #0033cc;
+ background-color: #e8e8e0;
+ text-align: center;
+ vertical-align: middle;
+ font-weight: bold;
+ font-style: italic;
+}
+.yearoverview_content a {
+ color: #0033cc;
+}
+.yearoverview_content a:hover {
+ color: #ff0000;
+}
+
+.yearoverview_content_hilite {
+ color: #0033cc;
+ background-color: #fffff0;
+ text-align: center;
+ vertical-align: middle;
+ font-weight: bold;
+ font-style: italic;
+}
+.yearoverview_content_hilite a {
+ color: #0033cc;
+}
+.yearoverview_content_hilite a:hover {
+ color: #ff0000;
+}
+
+.yearoverview_content_dimmed {
+ color: #0033cc;
+ background-color: #d2d2cc;
+ text-align: center;
+ vertical-align: middle;
+}
+.yearoverview_content_dimmed a {
+ color: #0033cc;
+}
+.yearoverview_content_dimmed a:hover {
+ color: #ff0000;
+}
+
+.yearoverview_week {
+ background-color: #d2d2cc;
+ width: 16pt;
+ text-align: center;
+ vertical-align: middle;
+}
+
+.yearoverview_week_hilite {
+ background-color: #fffff0;
+ width: 16pt;
+ text-align: center;
+ vertical-align: middle;
+}
requires = ( MAIN, CommonUI, Mailer );
publicResources = (
+ "tbird_073_accountview.png",
+ "tbird_073_compose.png",
+ "tbird_073_mailwelcome.png",
+ "tbird_073_settings.png",
+ "tbird_073_viewer.png",
);
factories = {
};
};
};
+
+ SOGoMailAccounts = {
+ methods = {
+ view = {
+ protectedBy = "View";
+ pageName = "UIxMailAccountsView";
+ };
+ };
+ };
+
+ SOGoMailAccount = {
+ methods = {
+ view = {
+ protectedBy = "View";
+ pageName = "UIxMailAccountView";
+ };
+ };
+ };
};
}
--- /dev/null
+/* SOGo UI Stylesheet */
+
+/* common stuff */
+
+body {
+ color: #000000;
+ font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif;
+ font-size: 10pt;
+ background-color: #FFFFFF;
+ margin: 0px;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ margin-left: 0px;
+ margin-right: 0px;
+}
+
+a:link {
+ color: #0033CC;
+ font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif;
+ text-decoration: none;
+}
+a:visited {
+ color: #660066;
+ font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif;
+ text-decoration: none;
+}
+a:hover {
+ color: #FF0000;
+ font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif;
+ text-decoration: underline;
+}
+
+.linecolor {
+ background-color: #06348B;
+}
+
+.defaultfont {
+ text-decoration: none;
+ font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif;
+ font-size: 8pt;
+ color: #000000;
+}
+
+.window_label {
+ color: #06348b;
+ font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif;
+ font-size: 12pt;
+ font-weight: bold;
+}
+
+
+/* tabs */
+
+.tab {
+ color: #000000;
+ background-color: #e8e8e0;
+ font-size: 10pt;
+ text-decoration: none;
+ width: 100px;
+ height: 22px;
+ border-top: 1px solid #06348b;
+ border-right: 1px solid #06348b;
+}
+
+.tab a {
+ color: #000000;
+ border: none;
+ text-decoration: none;
+}
+
+.tab_selected {
+ color: #000000;
+ background-color: #f5f5e9;
+ font-size: 10pt;
+ text-decoration: none;
+ font-weight: bold;
+ width: 100px;
+ height: 22px;
+ border-top: 1px solid #06348b;
+ border-right: 1px solid #06348b;
+}
+
+.tab_selected a {
+ color: #000000;
+ border: none;
+ text-decoration: none;
+}
+
+.tabview_body {
+ background-color: #f5f5e9;
+}
+
+
+/* buttons */
+
+.button_auto_env {
+ height: 16px;
+ text-align: center;
+ vertical-align: middle;
+ padding: 0px 0px 0px 0px;
+ margin: 0px 0px 0px 0px;
+ overflow: hidden;
+}
+
+.button_auto_env a {
+ text-decoration: none;
+ color: #000000;
+}
+
+.button_auto_env a:hover {
+ text-decoration: underline;
+ color: #ff0000;
+}
+
+.button_auto {
+ height: 20px;
+ border-style: outset;
+ border-color: #DDDDDD;
+ border-width: 2px;
+ color: #000000;
+ background-color: #e8e8e0;
+ font-size: 8pt;
+ font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif;
+ letter-spacing: 0pt;
+ text-decoration: none;
+ text-color: #000000;
+ text-align: center;
+ vertical-align: middle;
+ padding-left: 5px;
+ padding-right: 5px;
+ padding-top: 1px;
+ padding-bottom: 1px;
+ overflow: hidden;
+}
+
+.button_submit_env {
+ height: 24px;
+ text-align: center;
+ vertical-align: middle;
+ padding: 0px 0px 0px 0px;
+ margin: 0px 0px 0px 0px;
+ overflow: hidden;
+}
+
+.button_submit_env a {
+ text-decoration: none;
+ color: #000000;
+}
+
+.button_submit_env a:hover {
+ text-decoration: underline;
+ color: #ff0000;
+}
+
+.button_submit {
+ height: 30px;
+ border-style: outset;
+ border-color: #DDDDDD;
+ border-width: 2px;
+ color: #000000;
+ background-color: #e8e8e0;
+ font-size: 8pt;
+ font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif;
+ letter-spacing: 0pt;
+ text-decoration: none;
+ text-color: #000000;
+ text-align: center;
+ vertical-align: middle;
+ padding-left: 5px;
+ padding-right: 5px;
+ padding-top: 2px;
+ padding-bottom: 3px;
+ overflow: hidden;
+}
+
+/* header */
+
+div#header {
+ margin-left: 5px;
+ margin-right: 5px;
+ padding: 0;
+ border-bottom: 1px solid #000000;
+}
+div#header img.headerlogo {
+ float: right;
+ width: 182px;
+ height: 30px;
+}
+
+div#header div#headerhistory {
+ font-size: 11px;
+ color: #000000;
+ margin: 0px;
+ padding-top: 18px;
+ height: 12px;
+}
+div#header a, div#header span {
+ margin: 0px;
+}
+div#header span#navtitle {
+ font-weight: bold;
+}
+div#header a:hover {
+ text-decoration: none;
+}
+
+/* the dock */
+
+a.skydockfont {
+ text-decoration: none;
+ font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif;
+ font-size: 8pt;
+ color: #06348B;
+}
+font.skydockfont {
+ text-decoration: none;
+ font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif;
+ font-size: 8pt;
+ color: #06348B;
+}
+font.skydockfont_inactiveMail {
+ text-decoration: none;
+ font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif;
+ font-size: 8pt;
+ color: #CCCCCC;
+ font-weight: bold;
+}
+font.skydockfont_newMail {
+ text-decoration: none;
+ font-family: Arial, Helvetica, Verdana, Geneva, Tahoma, sans-serif;
+ font-size: 8pt;
+ color: #06348B;
+ font-weight: bold;
+}
+table.skytextdocktable {
+ padding: 0px;
+ table-layout: auto;
+}