]> err.no Git - scalable-opengroupware.org/commitdiff
git-svn-id: http://svn.opengroupware.org/SOGo/trunk@107 d1b88da0-ebda-0310-925b-ed51d...
authorhelge <helge@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Wed, 30 Jun 2004 10:26:46 +0000 (10:26 +0000)
committerhelge <helge@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Wed, 30 Jun 2004 10:26:46 +0000 (10:26 +0000)
SOGo/SoObjects/SOGo/SOGoContentObject.h
SOGo/SoObjects/SOGo/SOGoContentObject.m
SOGo/SoObjects/SOGo/SOGoFolder.h
SOGo/SoObjects/SOGo/SOGoFolder.m
SOGo/SoObjects/SOGo/SOGoObject.m
SOGo/SoObjects/SOGo/SOGoUserFolder.h
SOGo/SoObjects/SOGo/SOGoUserFolder.m
SOGo/UI/Scheduler/ChangeLog
SOGo/UI/Scheduler/UIxAppointmentEditor.m
SOGo/UI/Scheduler/UIxAppointmentView.h
SOGo/UI/Scheduler/UIxCalView.h

index 0954f25cba2dd3684e2d19f909142997f6e3f117..2f8d7f2f7115bb1a70ba6cc8252aad72a587f6c6 100644 (file)
 
 @interface SOGoContentObject : SOGoObject
 {
+  NSString *ocsPath;
 }
 
+/* accessors */
+
+- (void)setOCSPath:(NSString *)_path;
+- (NSString *)ocsPath;
+
 @end
 
 #endif /* __SOGo_SOGoContentObject_H__ */
index 98a8216e1bc3f69cfba36b382e45e25296f827f0..452d782a13cfeedd04a3f53ea4736364cd7b35ec 100644 (file)
 @implementation SOGoContentObject
 
 - (void)dealloc {
+  [self->ocsPath release];
   [super dealloc];
 }
 
+/* accessors */
+
+- (BOOL)isFolderish {
+  return NO;
+}
+
+- (void)setOCSPath:(NSString *)_path {
+  if ([self->ocsPath isEqualToString:_path])
+    return;
+  
+  if (self->ocsPath)
+    [self logWithFormat:@"WARNING: OCS path is already set! '%@'", _path];
+  
+  ASSIGNCOPY(self->ocsPath, _path);
+}
+- (NSString *)ocsPath {
+  return self->ocsPath;
+}
+
 @end /* SOGoContentObject */
index 26b7d1f50e244fd9018163b6fcdc852851418eb9..c62459f22b561832c1dac42cb2426514d3812929 100644 (file)
 
 @interface SOGoFolder : SOGoObject
 {
+  NSString *ocsPath;
 }
 
+/* accessors */
+
+- (void)setOCSPath:(NSString *)_Path;
+- (NSString *)ocsPath;
+
 @end
 
 #endif /* __SOGo_SOGoFolder_H__ */
index c282fbef7a5b5e2a8e9c4110df2c70c92460b2de..28f8b1c6d08ba675d5a2443f47d81b9b48dc1293 100644 (file)
@@ -26,6 +26,7 @@
 @implementation SOGoFolder
 
 - (void)dealloc {
+  [self->ocsPath release];
   [super dealloc];
 }
 
   return YES;
 }
 
+- (void)setOCSPath:(NSString *)_path {
+  if ([self->ocsPath isEqualToString:_path])
+    return;
+  
+  if (self->ocsPath)
+    [self logWithFormat:@"WARNING: OCS path is already set! '%@'", _path];
+  
+  ASSIGNCOPY(self->ocsPath, _path);
+}
+- (NSString *)ocsPath {
+  return self->ocsPath;
+}
+
 @end /* SOGoFolder */
index 8a15b44012a5cc7a732655498df05beaefb9846d..dbde44b32b4eb7730196b3484afd48503475942d 100644 (file)
   return [self->container lookupUserFolder];
 }
 
+/* KVC hacks */
+
+- (id)valueForUndefinedKey:(NSString *)_key {
+  return nil;
+}
+
 @end /* SOGoObject */
index 022206cb0663715ee23edbfbf0cdd83322f6287c..69454f17a64c9b8a24c955efcf4af3c4531c33c2 100644 (file)
@@ -25,6 +25,8 @@
 
 #include <SOGo/SOGoFolder.h>
 
+@class NSString;
+
 @interface SOGoUserFolder : SOGoFolder
 {
 }
 
 - (NSString *)login;
 
+/* pathes */
+
+- (NSString *)ocsUserPath;
+- (NSString *)ocsPrivateCalendarPath;
+
 @end
 
 #endif /* __SOGo_SOGoUserFolder_H__ */
index 79ee1a36998917c02939ca42a9d6db45da8b0fbd..b8dd3478bbd00ca9230a9db60b3b35e5283c914d 100644 (file)
   return self;
 }
 
+/* pathes */
+
+- (void)setOCSPath:(NSString *)_path {
+  [self logWithFormat:
+         @"WARNING: rejected attempt to reset user-folder path: '%@'",
+         _path];
+}
+- (NSString *)ocsPath {
+  return [@"/Users/" stringByAppendingString:[self login]];
+}
+
+- (NSString *)ocsUserPath {
+  return [self ocsPath];
+}
+- (NSString *)ocsPrivateCalendarPath {
+  return [[self ocsUserPath] stringByAppendingString:@"/Calendar"];
+}
+
+/* name lookup */
+
+- (id)privateCalendar:(NSString *)_key inContext:(id)_ctx {
+  static Class calClass = Nil;
+  id calendar;
+  
+  if (calClass == Nil)
+    calClass = NSClassFromString(@"SOGoAppointmentFolder");
+  if (calClass == Nil) {
+    [self logWithFormat:@"ERROR: missing SOGoAppointmentFolder!"];
+    return nil;
+  }
+  
+  calendar = [[calClass alloc] initWithName:_key inContainer:self];
+  [calendar setOCSPath:[self ocsPrivateCalendarPath]];
+  return [calendar 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 ([_key isEqualToString:@"Calendar"])
+    return [self privateCalendar:_key inContext:_ctx];
+  
+  /* return 404 to stop acquisition */
+  return [NSException exceptionWithHTTPStatus:404 /* Not Found */];
+}
+
 @end /* SOGoUserFolder */
index 752c93ca8dab43b885f9b02bb6c915aa73f258e6..fff230bd18254f537950141028a1187584c6d7ae 100644 (file)
@@ -1,5 +1,8 @@
 2004-06-30  Helge Hess  <helge.hess@opengroupware.org>
 
+       * UIxCalView.h, UIxAppointmentView.h, UIxAppointmentEditor.m: include 
+         UIxComponent from SOGoUI
+
        * removed backend stuff from some sources
 
        * product.plist: bind things on SOGoAppointmentXXX instead of SX...
index 2287b597d0c7d39c20bcf62be62b9a20422c6e62..ccfe386ffcdd29c45192cbee58894c7bd07d335e 100644 (file)
@@ -1,7 +1,7 @@
 /*
   Copyright (C) 2000-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
 
 
 #include "common.h"
-#include <Common/UIxComponent.h>
+#include <SOGoUI/UIxComponent.h>
 #include <SOGoLogic/SOGoAppointment.h>
 #include <NGiCal/NGiCal.h>
 
 
 /* TODO: CLEAN THIS MESS UP */
 
+@interface NSDate(UsedPrivates)
+- (NSString *)icalString; // TODO: this is in NGiCal
+@end
 
 @interface NSObject (AppointmentHack)
 - (BOOL)isAppointment;
index 9038594dbaa0c1cec1c94b0f63f7aca4d0cf290c..22dce8980e51677f074244c640fdceafec5fbc51 100644 (file)
@@ -3,7 +3,7 @@
 #ifndef __ZideStoreUI_UIxAppointmentView_H__
 #define __ZideStoreUI_UIxAppointmentView_H__
 
-#include <Common/UIxComponent.h>
+#include <SOGoUI/UIxComponent.h>
 
 @interface UIxAppointmentView : UIxComponent
 {
index dca1329c994b7e8b36870760a7878e4eccc65e70..cf3e8816048790b7c13f6c18fa32d47d254895a5 100644 (file)
@@ -3,7 +3,7 @@
 #ifndef __ZideStoreUI_UIxCalView_H__
 #define __ZideStoreUI_UIxCalView_H__
 
-#include <Common/UIxComponent.h>
+#include <SOGoUI/UIxComponent.h>
 
 @class NSArray, NSCalendarDate;