]> err.no Git - scalable-opengroupware.org/commitdiff
git-svn-id: http://svn.opengroupware.org/SOGo/trunk@143 d1b88da0-ebda-0310-925b-ed51d...
authorhelge <helge@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Fri, 16 Jul 2004 14:15:06 +0000 (14:15 +0000)
committerhelge <helge@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Fri, 16 Jul 2004 14:15:06 +0000 (14:15 +0000)
OGoContentStore/ChangeLog
OGoContentStore/OCSChannelManager.m
OGoContentStore/OCSFolder.m
OGoContentStore/OCSFolderManager.h
OGoContentStore/OCSFolderManager.m
OGoContentStore/sql/folderinfo-create.psql
SOGo/UI/Common/ChangeLog
SOGo/UI/Common/UIxAppNavView.m
SOGo/UI/Common/UIxAppNavView.wox

index c6cb08fa9c264f94150ad8f786ef538cd2e4d670..447d52a7b056bbaf35d4bfb92becc3029da119a4 100644 (file)
@@ -1,3 +1,7 @@
+2004-07-16  Helge Hess  <helge.hess@skyrix.com>
+
+       * improved error handling in various files
+
 2004-07-02  Helge Hess  <helge.hess@opengroupware.org>
 
        * OCSChannelManager.m: added garbage collector for channel pools
index 3d9a28bfc360dade0f27927e7338a21f2cfe61d1..d891bfc6bc751e976ae772d0d5bdac7a5d9ac910 100644 (file)
@@ -270,7 +270,7 @@ static NSTimeInterval ChannelCollectionTimer = 5 * 60;
     ;
   else if (![channel openChannel]) {
     [self logWithFormat:@"could not open channel %@ for URL: %@",
-           channel, _url];
+           channel, [_url absoluteString]];
     return nil;
   }
   
index f7dfce4b798ff93cebf3e83defa27dc754324e6e..599fc69424fdeecf26018808c3facf47665804a7 100644 (file)
@@ -32,8 +32,8 @@
 
 @implementation OCSFolder
 
-static BOOL debugOn    = YES;
-static BOOL doLogStore = YES;
+static BOOL debugOn    = NO;
+static BOOL doLogStore = NO;
 
 + (void)initialize {
   NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
@@ -160,7 +160,8 @@ static BOOL doLogStore = YES;
   NSString     *sql;
   
   if ((channel = [self acquireStoreChannel]) == nil) {
-    [self logWithFormat:@"ERROR(%s): could not open storage channel!"];
+    [self logWithFormat:@"ERROR(%s): could not open storage channel!",
+            __PRETTY_FUNCTION__];
     return nil;
   }
   
index 7fc7339ee98afccec98b9658ceb08cc14c53804b..6ce48480e55aaa9ae00147291fdf827c24328208 100644 (file)
@@ -48,6 +48,7 @@
 /* accessors */
 
 - (NSURL *)folderInfoLocation;
+- (NSString *)folderInfoTableName;
 
 /* connection */
 
index cb1cb3ac1eee9508895f5d2a9f694c6eed2d328f..4c395db0e8487c0eda5fb50212e2a8ebe7c7bd0e 100644 (file)
@@ -82,7 +82,7 @@ static const char *OCSPathColumnPattern     = "c_path%i";
   }
   if ((fm = [[self alloc] initWithFolderInfoLocation:url]) == nil) {
     NSLog(@"ERROR(%s): could not create folder manager with URL: '%@'",
-         __PRETTY_FUNCTION__, url);
+         __PRETTY_FUNCTION__, [url absoluteString]);
     return nil;
   }
   
@@ -102,6 +102,13 @@ static const char *OCSPathColumnPattern     = "c_path%i";
     
     self->channelManager = [[OCSChannelManager defaultChannelManager] retain];
     self->folderInfoLocation = [_url retain];
+
+    if ([[self folderInfoTableName] length] == 0) {
+      [self logWithFormat:@"ERROR(%s): missing tablename in URL: %@", 
+            __PRETTY_FUNCTION__, [_url absoluteString]];
+      [self release];
+      return nil;
+    }
     
     cal = [[OCSFolderType alloc] initWithFolderTypeName:@"appointment"];
     self->nameToType =
@@ -381,9 +388,11 @@ static const char *OCSPathColumnPattern     = "c_path%i";
   if ((name = [self internalNameFromPath:_path]) == nil) return nil;
   
   for (i = 0, count = [_records count]; i < count; i++) {
-    NSString *recName;
+    NSDictionary *record;
+    NSString     *recName;
     
-    recName = [[_records objectAtIndex:i] objectForKey:OCSPathRecordName];
+    record  = [_records objectAtIndex:i];
+    recName = [record objectForKey:OCSPathRecordName];
 #if 0
     [self logWithFormat:@"check '%@' vs '%@' (%@)...", 
          name, recName,[_records objectAtIndex:i]];
@@ -424,9 +433,11 @@ static const char *OCSPathColumnPattern     = "c_path%i";
   
   fname = [self internalNameFromPath:_path];
   if (count == 1) {
+    NSDictionary *record;
     NSString *sname;
     
-    sname = [[records objectAtIndex:0] objectForKey:OCSPathRecordName];
+    record = [records objectAtIndex:0];
+    sname  = [record objectForKey:OCSPathRecordName];
     return [fname isEqualToString:sname];
   }
   
@@ -468,9 +479,11 @@ static const char *OCSPathColumnPattern     = "c_path%i";
   fname = [self internalNameFromPath:_path];
   fname = [fname stringByAppendingString:@"/"]; /* add slash */
   for (i = 0; i < count; i++) {
+    NSDictionary *record;
     NSString *sname, *spath;
     
-    sname = [[records objectAtIndex:0] objectForKey:OCSPathRecordName];
+    record = [records objectAtIndex:0];
+    sname  = [record objectForKey:OCSPathRecordName];
     if (![sname hasPrefix:fname]) /* does not match at all ... */
       continue;
     
index d6eb20479e2a0f82256a07cbb127c8b9413b6a28..c8f5833bc0a64760eb617d3a17a11a9355ea5740 100644 (file)
@@ -35,8 +35,8 @@ VALUES
     NULL,
     NULL,
     'Users', 
-    'http://OGo:OGo@localhost/test/SOGo_user_folder', 
-    'http://OGo:OGo@localhost/test/SOGo_user_folder_quick', 
+    'http://OGo:OGo@localhost:5432/OGo/SOGo_user_folder', 
+    'http://OGo:OGo@localhost:5432/OGo/SOGo_user_folder_quick', 
     'Container' );
 
 INSERT INTO SOGo_folder_info 
@@ -49,8 +49,8 @@ VALUES
     NULL,
     NULL,
     'helge', 
-    'http://OGo:OGo@localhost/test/SOGo_user_folder', 
-    'http://OGo:OGo@localhost/test/SOGo_user_folder_quick', 
+    'http://OGo:OGo@localhost:5432/OGo/SOGo_user_folder', 
+    'http://OGo:OGo@localhost:5432/OGo/SOGo_user_folder_quick', 
     'Container' );
 
 INSERT INTO SOGo_folder_info 
@@ -63,6 +63,6 @@ VALUES
     'Calendar',
      NULL,
     'Calendar', 
-    'http://OGo:OGo@localhost/test/SOGo_helge_privcal', 
-    'http://OGo:OGo@localhost/test/SOGo_helge_privcal_quick', 
+    'http://OGo:OGo@localhost:5432/OGo/SOGo_helge_privcal', 
+    'http://OGo:OGo@localhost:5432/OGo/SOGo_helge_privcal_quick', 
     'Appointment' );
index 5d087fccfbdd369e466d852c6c76da738fbc5d83..3ebb328bb102efb73b67fe537b4f040b8a182615 100644 (file)
@@ -1,5 +1,9 @@
 2004-07-16  Helge Hess  <helge.hess@skyrix.com>
 
+       * UIxAppNavView.m: some fixes to navigation URLs
+
+       * UIxAppNavView.wox: fixed indention
+
        * product.plist: properly export uix.css as a public resource
 
 2004-07-01  Helge Hess  <helge.hess@opengroupware.org>
index 8bf1ff128a3a6771e1b6017890ec7680c1111d33..54d3930e46f38adc66822145500edfd78403de87 100644 (file)
@@ -1,7 +1,7 @@
 /*
-  Copyright (C) 2000-2004 SKYRIX Software AG
+  Copyright (C) 2004 SKYRIX Software AG
 
-  This file is part of OGo
+  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
 */
 // $Id$
 
-
-#import <NGObjWeb/NGObjWeb.h>
-#import <NGObjWeb/SoObject+SoDAV.h>
-#import <NGObjWeb/WOContext+SoObjects.h>
-#import <Foundation/Foundation.h>
-
+#include <NGObjWeb/WOComponent.h>
 
 @interface UIxAppNavView : WOComponent
 {
 
 @end
 
+#include <NGObjWeb/NGObjWeb.h>
+#include <NGObjWeb/SoObject+SoDAV.h>
+#include <NGObjWeb/WOContext+SoObjects.h>
+#include "common.h"
 
 @implementation UIxAppNavView
 
 - (void)dealloc {
-    [self->element release];
-    [self->lastElement release];
-    [super dealloc];
+  [self->element     release];
+  [self->lastElement release];
+  [super dealloc];
 }
 
 - (void)setElement:(id)_element {
-    ASSIGN(self->element, _element);
+  ASSIGN(self->element, _element);
 }
-
 - (id)element {
-    return self->element;
+  return self->element;
 }
 
 - (void)setLastElement:(id)_element {
-    ASSIGN(self->lastElement, _element);
+  ASSIGN(self->lastElement, _element);
 }
-
 - (id)lastElement {
-    return self->lastElement;
+  return self->lastElement;
 }
 
 - (NSArray *)navPathElements {
-    NSArray *traversalObjects;
-    NSMutableArray *navPathComponents;
-    NSMutableString *navURL;
-    unsigned int i, count;
-
-    traversalObjects = [[self context] objectTraversalStack];
-    count = ([traversalObjects count] - 1); /* remove SoPageInvocation */
-    navPathComponents = [[NSMutableArray alloc] initWithCapacity:count];
-    navURL = [[NSMutableString alloc] initWithString:@"/"];
-
-    for(i = 0; i < count; i++) {
-        NSString *name, *url;
-        id obj;
+  NSArray        *traversalObjects;
+  NSMutableArray *navPathComponents;
+  unsigned int   i, count;
+  
+  traversalObjects = [[self context] objectTraversalStack];
+  count = ([traversalObjects count] - 1); /* remove SoPageInvocation */
+  
+  navPathComponents = [[NSMutableArray alloc] initWithCapacity:count];
+  for (i = 0; i < count; i++) {
+    NSString *name;
+    id obj;
         
-        obj = [traversalObjects objectAtIndex:i];
-
-        name = [obj davDisplayName];
-        if(!name)
-            name = NSStringFromClass([obj class]);
-
-        [navURL appendString:name];
-        [navURL appendString:@"/"];
-        
-        if(! [name hasPrefix:@"ZideStore"]) {
-            NSMutableDictionary *c;
-
-            c = [[NSMutableDictionary alloc] initWithCapacity:2];
-            [c setObject:name forKey:@"name"];
-            url = [navURL copy];
-            [c setObject:url forKey:@"url"];
-            [url release];
-            [navPathComponents addObject:c];
-            [c release];
-        }
+    obj = [traversalObjects objectAtIndex:i];
+    
+    name = [obj davDisplayName];
+    if ([name length] == 0)
+      name = NSStringFromClass([obj class]);
+    
+    if (![name hasPrefix:@"sogod"]) {
+      NSMutableDictionary *c;
+      
+      c = [[NSMutableDictionary alloc] initWithCapacity:2];
+      [c setObject:name forKey:@"name"];
+      [c setObject:[obj baseURLInContext:[self context]] forKey:@"url"];
+      [navPathComponents addObject:c];
+      [c release];
     }
+  }
 
-    [self setLastElement:[navPathComponents lastObject]];
-    return [navPathComponents autorelease];
+  [self setLastElement:[navPathComponents lastObject]];
+  return [navPathComponents autorelease];
 }
 
-@end
+@end /* UIxAppNavView */
index 6e924d43ca803319f8b20efcced193ae59ac2947..2b4f1f8dd064aad77b8707aff96b6df52bd3b640 100644 (file)
@@ -1,10 +1,18 @@
 <?xml version='1.0' standalone='yes'?>
-
 <font 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"
       class="defaultfont"
 >
-<b>You are here:</b><var:entity const:name="nbsp" /><var:foreach list="navPathElements" item="element"><var:if condition="element" value="lastElement" const:negate="YES"><a var:href="element.url"><var:string value="element.name" /></a><var:entity const:name="nbsp" />/<var:entity const:name="nbsp" /></var:if><var:if condition="element" value="lastElement"><var:string value="element.name" /></var:if></var:foreach>
-</font>
\ No newline at end of file
+  <b>You are here:</b><var:entity const:name="nbsp" />
+  <var:foreach list="navPathElements" item="element">
+    <var:if condition="element" value="lastElement" const:negate="YES">
+      <a var:href="element.url"><var:string value="element.name" /></a>
+      /
+    </var:if>
+    <var:if condition="element" value="lastElement">
+      <var:string value="element.name" />
+    </var:if>
+  </var:foreach>
+</font>