]> err.no Git - scalable-opengroupware.org/commitdiff
work on mailer
authorhelge <helge@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Mon, 20 Sep 2004 12:48:58 +0000 (12:48 +0000)
committerhelge <helge@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Mon, 20 Sep 2004 12:48:58 +0000 (12:48 +0000)
git-svn-id: http://svn.opengroupware.org/SOGo/trunk@309 d1b88da0-ebda-0310-925b-ed51d893ca5b

32 files changed:
SOGo/SoObjects/Mailer/ChangeLog
SOGo/SoObjects/Mailer/SOGoMailAccounts.m
SOGo/SoObjects/Mailer/Version
SOGo/SoObjects/SOGo/ChangeLog
SOGo/SoObjects/SOGo/SOGoObject.m
SOGo/SoObjects/SOGo/Version
SOGo/UI/Common/ChangeLog
SOGo/UI/Common/UIxPageFrame.m
SOGo/UI/Common/Version
SOGo/UI/Mailer/ChangeLog
SOGo/UI/Mailer/GNUmakefile
SOGo/UI/Mailer/GNUmakefile.preamble
SOGo/UI/Mailer/UIxMailAccountView.m [new file with mode: 0644]
SOGo/UI/Mailer/UIxMailAccountView.wox [new file with mode: 0644]
SOGo/UI/Mailer/UIxMailAccountsView.m [new file with mode: 0644]
SOGo/UI/Mailer/UIxMailAccountsView.wox [new file with mode: 0644]
SOGo/UI/Mailer/UIxMailEditor.wox
SOGo/UI/Mailer/UIxMailListView.wox
SOGo/UI/Mailer/UIxMailMainFrame.m [new file with mode: 0644]
SOGo/UI/Mailer/UIxMailMainFrame.wox [new file with mode: 0644]
SOGo/UI/Mailer/UIxMailView.m
SOGo/UI/Mailer/UIxMailView.wox
SOGo/UI/Mailer/Version
SOGo/UI/Mailer/bundle-info.plist
SOGo/UI/Mailer/mailer.css [new file with mode: 0644]
SOGo/UI/Mailer/product.plist
SOGo/UI/Mailer/screenshots/tbird_073_accountview.png [new file with mode: 0644]
SOGo/UI/Mailer/screenshots/tbird_073_compose.png [new file with mode: 0644]
SOGo/UI/Mailer/screenshots/tbird_073_mailwelcome.png [new file with mode: 0644]
SOGo/UI/Mailer/screenshots/tbird_073_settings.png [new file with mode: 0644]
SOGo/UI/Mailer/screenshots/tbird_073_viewer.png [new file with mode: 0644]
SOGo/UI/Mailer/uix.css [new file with mode: 0644]

index e7ca1869f595a7d6d9dc6fa54b005af8c28b950f..7080dcf7e889cbbc6d811b2ffcdabbd6f350bb94 100644 (file)
@@ -1,3 +1,7 @@
+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)
index ae903cf1d24507762b56d651384f2e0ed95a9821..2856feb090cd1ce3ae83e147d5d7670d2528cf15 100644 (file)
 
 @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 */
index 1bf86739af6e070f2b3946837285f951d5e6a275..fc795f55c1387b14d99ba68f17adc4f527276f1f 100644 (file)
@@ -1,3 +1,3 @@
 # $Id$
 
-SUBMINOR_VERSION:=2
+SUBMINOR_VERSION:=3
index 6cc26756e38d671acc5c4abc4b070bf2ebcd54f8..3d132a0d9cf63710e1c9f0f1e4831ec993f19163 100644 (file)
@@ -1,5 +1,8 @@
 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>
index 03087268b06e5a65be7b0a8d333c4a99c21d357c..889b25e1d71536d59ec8174cdbe36ae79e94b646 100644 (file)
@@ -85,7 +85,7 @@
 /* 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 {
index 15ba30f9c2ef5917f097a43e69ab8d836be54ccb..3b031fb7161e15e52ab7616f579c757b485c9c51 100644 (file)
@@ -1,3 +1,3 @@
 # $Id: Version 170 2004-08-11 10:45:40Z helge $
 
-SUBMINOR_VERSION:=17
+SUBMINOR_VERSION:=18
index 4b4aeb2d8e9fac6f599082cad8e48ddcbc9aae90..40e21db4bd286a5ca43608b5cd8ff6d887883644 100644 (file)
@@ -1,5 +1,7 @@
 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>
index 3ff669631e08fada3a6011cb09aec0d4b2520199..dc080ec53970ab94a8c1af37094f10407c5764cb 100644 (file)
@@ -1,12 +1,33 @@
+/*
+  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;
@@ -21,8 +42,9 @@
 @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;
 }
 
index 8b283eb3b53cdd6a8e556ffea74b87430ca7e635..3f89705521a483757db74bbbace46267ca691352 100644 (file)
@@ -1,3 +1,3 @@
-# $Id$
+# Version file
 
-SUBMINOR_VERSION:=25
+SUBMINOR_VERSION:=26
index fbd74c10932acb10ac46481af20040e71849c37b..6a613fc52696e73c5eb968949576bfa9526c02c3 100644 (file)
@@ -1,3 +1,7 @@
+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)
index dc95ec83b86ada274242df3efb2ddd38d50512d6..4a6011c75b844a8891533e67801ddff060772a7b 100644 (file)
@@ -10,28 +10,37 @@ MailerUI_PRINCIPAL_CLASS = MailerUIProduct
 
 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
 
index 5bc2f5c63260293897406dd3450e477863ec3169..25790009bbb780dd5b5ac6a9d28abc1db75f86f7 100644 (file)
@@ -1,5 +1,8 @@
 # $Id$
 
+ADDITIONAL_INCLUDE_DIRS += \
+       -I.. -I../.. -I../../..
+
 ADDITIONAL_INCLUDE_DIRS += \
        -I..            \
        -I../..         \
diff --git a/SOGo/UI/Mailer/UIxMailAccountView.m b/SOGo/UI/Mailer/UIxMailAccountView.m
new file mode 100644 (file)
index 0000000..baeaa01
--- /dev/null
@@ -0,0 +1,35 @@
+/*
+  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 */
diff --git a/SOGo/UI/Mailer/UIxMailAccountView.wox b/SOGo/UI/Mailer/UIxMailAccountView.wox
new file mode 100644 (file)
index 0000000..1aeccab
--- /dev/null
@@ -0,0 +1,12 @@
+<?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>
diff --git a/SOGo/UI/Mailer/UIxMailAccountsView.m b/SOGo/UI/Mailer/UIxMailAccountsView.m
new file mode 100644 (file)
index 0000000..15fed20
--- /dev/null
@@ -0,0 +1,35 @@
+/*
+  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 */
diff --git a/SOGo/UI/Mailer/UIxMailAccountsView.wox b/SOGo/UI/Mailer/UIxMailAccountsView.wox
new file mode 100644 (file)
index 0000000..0cc5de5
--- /dev/null
@@ -0,0 +1,13 @@
+<?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>
index 7f53e297705a3f1445658fe412ecf84ee220902f..1ec087dbb3a37833b62be6f209ffac71b13ae099 100644 (file)
@@ -7,8 +7,7 @@
                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
index 7f53e297705a3f1445658fe412ecf84ee220902f..cebf5060781645df925960387d4f972bdc5ed684 100644 (file)
@@ -7,8 +7,5 @@
                className="UIxPageFrame"
                title="name"
 >
-  <var:if condition="isUIxDebugEnabled">
-    <hr />
-    clientObject: <var:string value="clientObject" />
-  </var:if>
+
 </var:component>
\ No newline at end of file
diff --git a/SOGo/UI/Mailer/UIxMailMainFrame.m b/SOGo/UI/Mailer/UIxMailMainFrame.m
new file mode 100644 (file)
index 0000000..6e6f838
--- /dev/null
@@ -0,0 +1,118 @@
+/*
+  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 */
diff --git a/SOGo/UI/Mailer/UIxMailMainFrame.wox b/SOGo/UI/Mailer/UIxMailMainFrame.wox
new file mode 100644 (file)
index 0000000..a1260eb
--- /dev/null
@@ -0,0 +1,90 @@
+<?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>
index 95c28d140c51b315448664912fef2db629ea68e3..e04f18b5a3a3a857cfaf92a262142a27c7361566 100644 (file)
 
 @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 {
index 00d401b484e4d388d7248350c0d5a5444d84997a..33fa9bed8b34908ad5df0861bd87a3b355a76a26 100644 (file)
@@ -7,8 +7,7 @@
                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>
index 237a59049190fb100f4d3a877ebcfed082bc30dc..1bf86739af6e070f2b3946837285f951d5e6a275 100644 (file)
@@ -1,3 +1,3 @@
 # $Id$
 
-SUBMINOR_VERSION:=1
+SUBMINOR_VERSION:=2
index fa33c7dbdc1bfc249fe70bb4388f22fe7bbdef9a..ed8324005f6fb7c402b3663add764903febcd9c9 100644 (file)
@@ -1,6 +1,4 @@
 {
-  "__cvs__" = "$Id$";
-
   requires = {
     bundleManagerVersion = 1;
     classes = (
diff --git a/SOGo/UI/Mailer/mailer.css b/SOGo/UI/Mailer/mailer.css
new file mode 100644 (file)
index 0000000..c1656e1
--- /dev/null
@@ -0,0 +1,739 @@
+.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;
+}
index 68c3260d9e77876c5026b9e65375a75a826535ed..d27ac42adfe6f2ed6a7bceada0670f3969c0a6ed 100644 (file)
@@ -2,6 +2,11 @@
   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"; 
+        };
+      };
+    };
   };
 }
diff --git a/SOGo/UI/Mailer/screenshots/tbird_073_accountview.png b/SOGo/UI/Mailer/screenshots/tbird_073_accountview.png
new file mode 100644 (file)
index 0000000..fd86329
Binary files /dev/null and b/SOGo/UI/Mailer/screenshots/tbird_073_accountview.png differ
diff --git a/SOGo/UI/Mailer/screenshots/tbird_073_compose.png b/SOGo/UI/Mailer/screenshots/tbird_073_compose.png
new file mode 100644 (file)
index 0000000..7cf4fd2
Binary files /dev/null and b/SOGo/UI/Mailer/screenshots/tbird_073_compose.png differ
diff --git a/SOGo/UI/Mailer/screenshots/tbird_073_mailwelcome.png b/SOGo/UI/Mailer/screenshots/tbird_073_mailwelcome.png
new file mode 100644 (file)
index 0000000..3d8cd86
Binary files /dev/null and b/SOGo/UI/Mailer/screenshots/tbird_073_mailwelcome.png differ
diff --git a/SOGo/UI/Mailer/screenshots/tbird_073_settings.png b/SOGo/UI/Mailer/screenshots/tbird_073_settings.png
new file mode 100644 (file)
index 0000000..0842f35
Binary files /dev/null and b/SOGo/UI/Mailer/screenshots/tbird_073_settings.png differ
diff --git a/SOGo/UI/Mailer/screenshots/tbird_073_viewer.png b/SOGo/UI/Mailer/screenshots/tbird_073_viewer.png
new file mode 100644 (file)
index 0000000..c784f35
Binary files /dev/null and b/SOGo/UI/Mailer/screenshots/tbird_073_viewer.png differ
diff --git a/SOGo/UI/Mailer/uix.css b/SOGo/UI/Mailer/uix.css
new file mode 100644 (file)
index 0000000..de9a4fb
--- /dev/null
@@ -0,0 +1,238 @@
+/* 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;
+}