]> err.no Git - scalable-opengroupware.org/commitdiff
git-svn-id: http://svn.opengroupware.org/SOGo/inverse/trunk@1133 d1b88da0-ebda-0310...
authorwolfgang <wolfgang@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Mon, 6 Aug 2007 17:58:13 +0000 (17:58 +0000)
committerwolfgang <wolfgang@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Mon, 6 Aug 2007 17:58:13 +0000 (17:58 +0000)
22 files changed:
ChangeLog
GNUmakefile
SoObjects/Mailer/SOGoMailFolder.m
SoObjects/Mailer/SOGoMailFolderDataSource.h [deleted file]
SoObjects/Mailer/SOGoMailFolderDataSource.m [deleted file]
SoObjects/Mailer/SOGoMailObject.m
UI/Common/common.h
UI/Contacts/ContactsUIProduct.m
UI/Contacts/UIxContactFoldersView.m
UI/Contacts/UIxContactView.m
UI/Contacts/UIxContactsFilterPanel.m
UI/Contacts/common.h [deleted file]
UI/MainUI/SOGoGroupPage.m
UI/MainUI/SOGoGroupsPage.m
UI/MainUI/SOGoRootPage.m
UI/MainUI/common.h [deleted file]
UI/SOGoUI/common.h [deleted file]
UI/Templates/SchedulerUI/UIxAttendeesEditor.wox
UI/WebServerResources/HTMLElement.js
UI/WebServerResources/UIxAttendeesEditor.css
UI/WebServerResources/UIxAttendeesEditor.js
UI/WebServerResources/UIxContactsUserFolders.js

index bad50c6cff02b9538cf51d3a4a40eafff1e9231f..0a756afff6774db9c8e14faa6ae8ee7f4786f2d5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2007-08-06  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
+
+       * SoObjects/Mailer/SOGoMailObject.m ([SOGoMailObject
+       -bodyStructure]): fetch the "bodystructure" key instead of "body".
+
+2007-08-02  Francis Lachapelle  <flachapelle@inverse.ca>
+
+       * UI/Contacts/UIxContactFoldersView.m ([UIxContactFoldersView _responseForResults:]):
+       has to return only one element.
+
 2007-08-01  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
 
        * UI/MailPartViewers/UIxMailPartViewer.m ([UIxMailPartViewer
index 75961d3065c5194854582c73034085879f0e1150..fa15ad0d9da0bca9a50d0406cdb090538b166a0b 100644 (file)
@@ -9,6 +9,6 @@ SUBPROJECTS = \
        SoObjects       \
        Main            \
        UI              \
-       Protocols       \
+#      Protocols       \
 
 include $(GNUSTEP_MAKEFILES)/aggregate.make
index 5198482c70d03db7e0e16ddc2d66177ce4caaa09..7a2657142c012f505d5a562ceec53bda31afbf22 100644 (file)
@@ -37,7 +37,6 @@
 #import "SOGoMailObject.h"
 #import "SOGoMailAccount.h"
 #import "SOGoMailManager.h"
-#import "SOGoMailFolderDataSource.h"
 #import "SOGoMailFolder.h"
 
 static NSString *defaultUserID =  @"anyone";
@@ -174,15 +173,6 @@ static BOOL useAltNamespace = NO;
   return filenames;
 }
 
-- (EODataSource *) contentDataSourceInContext: (id) _ctx
-{
-  SOGoMailFolderDataSource *ds;
-  
-  ds = [[SOGoMailFolderDataSource alloc] initWithImap4URL:[self imap4URL]
-                                        imap4Password:[self imap4Password]];
-  return [ds autorelease];
-}
-
 /* messages */
 
 - (NSArray *) fetchUIDsMatchingQualifier: (id) _q
diff --git a/SoObjects/Mailer/SOGoMailFolderDataSource.h b/SoObjects/Mailer/SOGoMailFolderDataSource.h
deleted file mode 100644 (file)
index 8f6a885..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
-  Copyright (C) 2005 SKYRIX Software AG
-
-  This file is part of OpenGroupware.org.
-
-  OGo is free software; you can redistribute it and/or modify it under
-  the terms of the GNU Lesser General Public License as published by the
-  Free Software Foundation; either version 2, or (at your option) any
-  later version.
-
-  OGo is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or
-  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
-  License for more details.
-
-  You should have received a copy of the GNU Lesser General Public
-  License along with OGo; see the file COPYING.  If not, write to the
-  Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-  02111-1307, USA.
-*/
-
-#ifndef __Mailer_SOGoMailFolderDataSource_H__
-#define __Mailer_SOGoMailFolderDataSource_H__
-
-#include <EOControl/EODataSource.h>
-
-/*
-  SOGoMailFolderDataSource
-
-  This is used as the contentDataSource in the SOGoMailFolder, that is, as the
-  object to retrieve WebDAV listings of an IMAP4 folder.
-*/
-
-@class NSString, NSURL, NSArray;
-@class EOFetchSpecification;
-
-@interface SOGoMailFolderDataSource : EODataSource
-{
-  EOFetchSpecification *fetchSpecification;
-  NSURL    *imap4URL;
-  NSString *imap4Password;
-}
-
-- (id)initWithImap4URL:(NSURL *)_imap4URL imap4Password:(NSString *)_pwd;
-
-/* accessors */
-
-- (void)setFetchSpecification:(EOFetchSpecification *)_fetchSpec;
-- (EOFetchSpecification *)fetchSpecification;
-
-- (NSURL *)imap4URL;
-
-/* operations */
-
-- (NSArray *)fetchObjects;
-
-@end
-
-#endif /* SOGoMailFolderDataSource */
diff --git a/SoObjects/Mailer/SOGoMailFolderDataSource.m b/SoObjects/Mailer/SOGoMailFolderDataSource.m
deleted file mode 100644 (file)
index 2dbc71e..0000000
+++ /dev/null
@@ -1,227 +0,0 @@
-/*
-  Copyright (C) 2005 SKYRIX Software AG
-
-  This file is part of OpenGroupware.org.
-
-  OGo is free software; you can redistribute it and/or modify it under
-  the terms of the GNU Lesser General Public License as published by the
-  Free Software Foundation; either version 2, or (at your option) any
-  later version.
-
-  OGo is distributed in the hope that it will be useful, but WITHOUT ANY
-  WARRANTY; without even the implied warranty of MERCHANTABILITY or
-  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
-  License for more details.
-
-  You should have received a copy of the GNU Lesser General Public
-  License along with OGo; see the file COPYING.  If not, write to the
-  Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-  02111-1307, USA.
-*/
-
-#import <Foundation/NSArray.h>
-#import <Foundation/NSAutoreleasePool.h>
-#import <Foundation/NSString.h>
-#import <Foundation/NSUserDefaults.h>
-
-#import <NGObjWeb/EOFetchSpecification+SoDAV.h>
-#import <NGExtensions/EODataSource+NGExtensions.h>
-#import <NGExtensions/NSObject+Logs.h>
-#import <EOControl/EOQualifier.h>
-#import <EOControl/EOSortOrdering.h>
-#import <NGImap4/NGImap4Envelope.h>
-
-#import "SOGoMailManager.h"
-
-#import "SOGoMailFolderDataSource.h"
-
-@implementation SOGoMailFolderDataSource
-
-static BOOL debugOn = NO;
-
-- (id)initWithImap4URL:(NSURL *)_imap4URL imap4Password:(NSString *)_pwd {
-  if (_imap4URL == nil) {
-    [self release];
-    return nil;
-  }
-
-  if ((self = [super init])) {
-    self->imap4URL      = [_imap4URL copy];
-    self->imap4Password = [_pwd copy];
-  }
-  return self;
-}
-- (id)init {
-  return [self initWithImap4URL:nil imap4Password:nil];
-}
-
-- (void)dealloc {
-  [self->imap4Password      release];
-  [self->imap4URL           release];
-  [self->fetchSpecification release];
-  [super dealloc];
-}
-
-/* accessors */
-
-- (void)setFetchSpecification:(EOFetchSpecification *)_fetchSpec {
-  if ([_fetchSpec isEqual:self->fetchSpecification]) return;
-  
-  ASSIGN(self->fetchSpecification, _fetchSpec);
-  [self postDataSourceChangedNotification];
-}
-- (EOFetchSpecification *)fetchSpecification {
-  return self->fetchSpecification;
-}
-
-- (NSURL *)imap4URL {
-  return self->imap4URL;
-}
-
-- (NGImap4ConnectionManager *)mailManager {
-  static NGImap4ConnectionManager *mm = nil;
-  if (mm == nil) 
-    mm = [[NGImap4ConnectionManager defaultConnectionManager] retain];
-  return mm;
-}
-
-/* fetches */
-
-- (NSArray *)partsForWebDAVPropertyNames:(NSArray *)_names {
-  // TODO: implement
-  static NSArray *parts = nil;
-
-  // [self logWithFormat:@"props: %@", _names];
-  
-  if (parts == nil) {
-    parts = [[NSArray alloc] initWithObjects:
-                              @"FLAGS", @"ENVELOPE", @"RFC822.SIZE", nil];
-  }
-  return parts;
-}
-
-- (void)addRecordsForFolderNames:(NSArray *)_n toArray:(NSMutableArray *)_r {
-  unsigned i, count;
-  
-  for (i = 0, count = [_n count]; i < count; i++) {
-    NSDictionary *rec;
-    NSString *keys[2], *values[2];
-    
-    keys[0] = @"{DAV:}href";      values[0] = [_n objectAtIndex:i];
-    keys[1] = @"davResourceType"; values[1] = @"collection";
-    rec = [[NSDictionary alloc] initWithObjects:values forKeys:keys count:2];
-    [_r addObject:rec];
-    [rec release];
-  }
-}
-
-- (void)addRecordsForUIDs:(NSArray *)_uids toArray:(NSMutableArray *)_r {
-  NSAutoreleasePool *pool;
-  NSArray  *partNames, *results;
-  unsigned i, count;
-  
-  if ([_uids count] == 0)
-    return;
-
-  pool = [[NSAutoreleasePool alloc] init];
-  
-  partNames = [self partsForWebDAVPropertyNames:
-                     [[self fetchSpecification] selectedWebDAVPropertyNames]];
-  
-  results = [[self mailManager] fetchUIDs:_uids inURL:self->imap4URL
-                               parts:partNames password:self->imap4Password];
-  results = [results valueForKey:@"fetch"];
-
-  for (i = 0, count = [results count]; i < count; i++) {
-    NGImap4Envelope *envelope;
-    NSDictionary *result;
-    NSDictionary *rec;
-    NSString *keys[6];
-    id       values[6];
-    
-    result   = [results objectAtIndex:i];
-    envelope = [result valueForKey:@"envelope"];
-    // NSLog(@"RES: %@", result);
-    
-    keys[0]   = @"{DAV:}href";      
-    values[0] = [[[result objectForKey:@"uid"] stringValue]
-                 stringByAppendingString:@".mail"];
-    keys[1]   = @"davResourceType";
-    values[1] = @"";
-    keys[2]   = @"davContentLength";
-    values[2] = [result objectForKey:@"size"];
-    keys[3]   = @"davDisplayName";
-    values[3] = [envelope subject];
-    keys[4]   = @"davLastModified";
-    values[4] = [envelope date];
-    
-    rec = [[NSDictionary alloc] initWithObjects:values forKeys:keys count:5];
-    [_r addObject:rec];
-    [rec release];
-  }
-
-  [pool release];
-}
-
-/* operations */
-
-- (NSArray *)fetchObjects {
-  NSMutableArray *results;
-  EOQualifier    *qualifier;
-  NSArray        *sortOrderings;
-  NSArray  *uids, *folderNames;
-  unsigned total;
-  
-  // TODO: support [fs davBulkTargetKeys]
-  if ([[self fetchSpecification] davBulkTargetKeys] != nil) {
-    [self logWithFormat:@"unsupported fetch specification"];
-    return nil;
-  }
-  
-  /* fetch message uids */
-  
-  // TODO: translate WebDAV qualifier and sort-ordering into IMAP4 one
-  uids = [[self mailManager] fetchUIDsInURL:self->imap4URL
-                            qualifier:nil sortOrdering:@"DATE"
-                            password:self->imap4Password];
-  
-  /* fetch folders */
-  
-  folderNames = [[self mailManager] subfoldersForURL:self->imap4URL
-                                   password:self->imap4Password];
-  
-  /* builds results */
-  
-  if ((total = ([uids count] + [folderNames count])) == 0)
-    return [NSArray array];
-  
-  results = [NSMutableArray arrayWithCapacity:total];
-  
-  [self addRecordsForFolderNames:folderNames toArray:results];
-  [self addRecordsForUIDs:uids               toArray:results];
-  
-  /* filter and sort results */
-  
-  if ((qualifier = [[self fetchSpecification] qualifier]) != nil)
-    results = (id)[results filteredArrayUsingQualifier:qualifier];
-  
-  if ((sortOrderings = [[self fetchSpecification] sortOrderings]) != nil) {
-    if (qualifier != nil)
-      results = (id)[results sortedArrayUsingKeyOrderArray:sortOrderings];
-    else
-      [results sortUsingKeyOrderArray:sortOrderings];
-  }
-  
-  return results;
-}
-
-/* logging */
-
-- (NSString *)loggingPrefix {
-  return @"[mailfolder-ds]";
-}
-- (BOOL)isDebuggingEnabled {
-  return debugOn;
-}
-
-@end /* SOGoMailFolderDataSource */
index 75306461f284444fbc67d9a7123b970a3a9c278a..45e8bdcf9905f1e3258345ef7cfd24b9c6b40f99 100644 (file)
@@ -250,7 +250,7 @@ static BOOL debugSoParts       = NO;
 - (id)bodyStructure {
   id body;
 
-  body = [[self fetchCoreInfos] valueForKey:@"body"];
+  body = [[self fetchCoreInfos] valueForKey:@"bodystructure"];
   if (debugBodyStructure)
     [self logWithFormat:@"BODY: %@", body];
   return body;
index 803270d7a1be9004cea85ab9cdf352582f63a1e3..9c2549483cdf77fe87c2579e0ee7a36bc57ac3b2 100644 (file)
   Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
   02111-1307, USA.
 */
-// $Id: common.h,v 1.1 2003/11/24 01:24:40 helge Exp $
 
-#import <Foundation/Foundation.h>
-
-#warning importing common.h is baaad
-
-#if LIB_FOUNDATION_LIBRARY
-#  include <Foundation/exceptions/GeneralExceptions.h>
-#elif NeXT_Foundation_LIBRARY || COCOA_Foundation_LIBRARY
-#  include <NGExtensions/NGObjectMacros.h>
-#  include <NGExtensions/NSString+Ext.h>
-#endif
-
-#include <NGExtensions/NGExtensions.h>
-#include <NGObjWeb/NGObjWeb.h>
-#include <NGObjWeb/SoObjects.h>
+#import <NGObjWeb/WOAssociation.h>
+#import <NGObjWeb/WOContext+SoObjects.h>
+#import <NGObjWeb/WODynamicElement.h>
+#import <NGObjWeb/WORequest.h>
+#import <NGObjWeb/WOResourceManager.h>
+#import <NGObjWeb/WOSession.h>
+#import <NGExtensions/NSObject+Logs.h>
 
 @interface WOContext(WOExtensionsPrivate)
 - (void)addActiveFormElement:(WOElement *)_element;
index 80138260ad32fde0cbe5f0910d3e5fb46daf6132..e57ee717463fb83401b519cc67beb99833d15c04 100644 (file)
 #import <Foundation/NSObject.h>
 
 @interface ContactsUIProduct : NSObject
-{
-}
-
 @end
 
-#include "common.h"
-
 @implementation ContactsUIProduct
 @end /* ContactsUIProduct */
index a2af399e14780489ac6b2db52bbdfa78ef03df74..385a4955481ec30cf66942e537303f9aab0d480f 100644 (file)
 
 #import <NGObjWeb/NSException+HTTP.h>
 #import <NGObjWeb/SoObject.h>
-#import <NGObjWeb/WOResponse.h>
+#import <NGObjWeb/SoSecurityManager.h>
 #import <NGObjWeb/WOContext.h>
+#import <NGObjWeb/WORequest.h>
+#import <NGObjWeb/WOResponse.h>
 
 #import <GDLContentStore/GCSFolder.h>
 #import <GDLContentStore/GCSFolderManager.h>
 
 #import <SoObjects/SOGo/LDAPUserManager.h>
+#import <SoObjects/SOGo/SOGoPermissions.h>
 #import <SoObjects/SOGo/SOGoUser.h>
 #import <SoObjects/SOGo/NSString+Utilities.h>
 #import <SoObjects/Contacts/SOGoContactFolders.h>
@@ -38,8 +41,6 @@
 #import <SoObjects/Contacts/SOGoContactGCSFolder.h>
 #import <SoObjects/Contacts/SOGoContactLDAPFolder.h>
 
-#import "common.h"
-
 #import "UIxContactFoldersView.h"
 
 @implementation UIxContactFoldersView
     {
       contacts = [results objectEnumerator];
       contact = [contacts nextObject];
-      while (contact)
+      if (contact)
        {
          responseString = [NSString stringWithFormat: @"%@:%@:%@",
                                     [contact objectForKey: @"c_uid"],
 //       [response setHeader: @"text/plain; charset=iso-8859-1"
 //                 forKey: @"Content-Type"];
          [response appendContentString: responseString];
-         contact = [contacts nextObject];
+//       contact = [contacts nextObject];
        }
     }
   else
index b80dc597ee6b0af5dda0ab091278126daf88a2b0..01a07de902f00bd16dd0abbae1f19a2bd740853c 100644 (file)
   Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
   02111-1307, USA.
 */
-// $Id$
-
-#import <Contacts/SOGoContactObject.h>
 
+#import <NGObjWeb/NSException+HTTP.h>
+#import <NGObjWeb/WOResponse.h>
 #import <NGCards/NGVCard.h>
 #import <NGCards/CardElement.h>
 #import <NGCards/NSArray+NGCards.h>
 #import <NGExtensions/NSString+Ext.h>
 
-#import "common.h"
+#import <SoObjects/Contacts/SOGoContactObject.h>
 
 #import "UIxContactView.h"
 
index f08c6abc9e807524c4f5f000a9c70ab21b8ce6a2..c78796b810ad28ffd5fea0edc85d798c27af6a34 100644 (file)
@@ -19,7 +19,7 @@
  02111-1307, USA.
  */
 
-#include <SOGoUI/UIxComponent.h>
+#import <SOGoUI/UIxComponent.h>
 
 @interface UIxContactsFilterPanel : UIxComponent
 {
@@ -29,9 +29,6 @@
 
 @end
 
-#include <SOGoUI/UIxComponent.h>
-#include "common.h"
-
 @implementation UIxContactsFilterPanel
 
 static NSArray      *filters           = nil;
@@ -62,8 +59,8 @@ static NSArray      *filters           = nil;
 
 - (void) dealloc
 {
-  [self->searchCriteria release];
-  [self->searchText release];
+  [searchCriteria release];
+  [searchText release];
   [super dealloc];
 }
 
@@ -71,12 +68,12 @@ static NSArray      *filters           = nil;
 
 - (void) setSearchText: (NSString *)_txt
 {
-  ASSIGNCOPY(self->searchText, _txt);
+  ASSIGNCOPY(searchText, _txt);
 }
 
 - (void) setSearchCriteria: (NSString *)_txt
 {
-  ASSIGNCOPY(self->searchText, _txt);
+  ASSIGNCOPY(searchText, _txt);
 }
 
 - (NSString *) searchText
@@ -107,7 +104,7 @@ static NSArray      *filters           = nil;
 - (NSString *) filterLabel
 {
 #if 1
-  return [[[self context] page] labelForKey: [self valueForKey:@"filter"]];
+  return [[[self context] page] labelForKey: @"filter"];
 #else
   return [self valueForKey: @"filter"];
 #endif
diff --git a/UI/Contacts/common.h b/UI/Contacts/common.h
deleted file mode 100644 (file)
index 6443479..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
-  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$
-
-#import <Foundation/Foundation.h>
-
-#if LIB_FOUNDATION_LIBRARY
-#  include <Foundation/exceptions/GeneralExceptions.h>
-#elif NeXT_Foundation_LIBRARY || COCOA_Foundation_LIBRARY
-#  include <NGExtensions/NGObjectMacros.h>
-#  include <NGExtensions/NSString+Ext.h>
-#endif
-
-#include <NGExtensions/NGExtensions.h>
-#include <NGObjWeb/NGObjWeb.h>
-#include <NGObjWeb/SoObjects.h>
-
-#warning importing common.h is baaad
index f157417e6c133c53e6d74612d68aaebd9eca44aa..e59e1b776075eb948ab1a22a869a591fbb840af9 100644 (file)
   02111-1307, USA.
 */
 
-#include <NGObjWeb/SoComponent.h>
+#import <NGObjWeb/SoComponent.h>
 
 @interface SOGoGroupPage : SoComponent
 @end
 
-#include "common.h"
-
 @implementation SOGoGroupPage
 
 @end /* SOGoGroupPage */
index fe6e10ebd4807e42781284607da7575636493a83..87cf60de344175340869147d15d92a3adb831763 100644 (file)
@@ -20,7 +20,7 @@
 */
 // $Id: SOGoGroupsPage.m 106 2004-06-30 09:44:35Z helge $
 
-#include <NGObjWeb/SoComponent.h>
+#import <NGObjWeb/SoComponent.h>
 
 @interface SOGoGroupsPage : SoComponent
 {
@@ -28,8 +28,6 @@
 
 @end
 
-#include "common.h"
-
 @implementation SOGoGroupsPage
 
 @end /* SOGoGroupsPage */
index a10a6f7ddd0de2ae36093f223f9275675363d139..912def2172ccf67268e55afc3321b27b058397ff 100644 (file)
   02111-1307, USA.
 */
 
-#include <NGObjWeb/SoComponent.h>
+#import <Foundation/NSUserDefaults.h>
+
+#import <NGObjWeb/SoComponent.h>
+#import <NGObjWeb/SoObject.h>
+#import <NGObjWeb/WOApplication.h>
+#import <NGObjWeb/WOContext.h>
+#import <NGObjWeb/WORequest.h>
+#import <NGObjWeb/WOResponse.h>
+#import <NGExtensions/NSNull+misc.h>
+#import <NGExtensions/NSObject+Logs.h>
+#import <NGExtensions/NSString+misc.h>
+#import <SOGo/SOGoAuthenticator.h>
+#import <SOGo/SOGoUser.h>
 
 @interface SOGoRootPage : SoComponent
 {
@@ -28,9 +40,6 @@
 
 @end
 
-#include <SOGo/SOGoAuthenticator.h>
-#include "common.h"
-
 @implementation SOGoRootPage
 
 static BOOL doNotRedirect = NO;
diff --git a/UI/MainUI/common.h b/UI/MainUI/common.h
deleted file mode 100644 (file)
index 24b5c03..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
-  Copyright (C) 2002-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$
-
-#import <Foundation/Foundation.h>
-
-#if NeXT_Foundation_LIBRARY || COCOA_Foundation_LIBRARY
-#  include <NGExtensions/NGObjectMacros.h>
-#  include <NGExtensions/NSString+Ext.h>
-#endif
-
-#include <NGExtensions/NGExtensions.h>
-#include <NGObjWeb/NGObjWeb.h>
-#include <NGObjWeb/SoObjects.h>
-
-#include <GDLAccess/GDLAccess.h>
-
-#warning importing common.h is baaad
diff --git a/UI/SOGoUI/common.h b/UI/SOGoUI/common.h
deleted file mode 100644 (file)
index 56a455c..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
-  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.
-*/
-
-#import <Foundation/Foundation.h>
-#include <NGExtensions/NGExtensions.h>
-
-#include <NGObjWeb/NGObjWeb.h>
-#include <NGObjWeb/SoObjects.h>
-
-#warning importing common.h is baaad
index 1a37f96c47274fb48802465e150b91a6a4e5d32c..a2e393f3d2e53253dd0f1bcf30d0d6b86c9b201f 100644 (file)
@@ -26,6 +26,7 @@
        string="itemZoomText" selection="zoom"/>
       <a href="#" class="button _disabled"><var:string label:value="+" /></a>
     </div>
+    <div/>
     <div id="freeBusyView">
       <table id="freeBusy"
        xmlns="http://www.w3.org/1999/xhtml"
index c78cc95432fa6f66d9fc861a69c2fc1ebac4c6b8..5cf668d61490b9a0f161a56e97330a478157308e 100644 (file)
@@ -168,6 +168,35 @@ Element.addMethods({
       if (node.nodeType == 1)
        $(node).deselect();
     }
-  }
+  },
+
+  setCaretTo: function(element, pos) { 
+    element = $(element);
+    if (element.selectionStart) { // For Mozilla and Safari
+      element.focus(); 
+      element.setSelectionRange(pos, pos); 
+    }
+    else if (element.createTextRange) {       // For IE
+      var range = element.createTextRange(); 
+      range.move("character", pos); 
+      range.select();
+    } 
+  },
+
+  selectText: function(element, start, end) {
+    element = $(element);
+    if (element.setSelectionRange) {     // For Mozilla and Safari
+      element.setSelectionRange(start, end);
+    }
+    else if (element.createTextRange) {  // For IE
+      var textRange = element.createTextRange();
+      textRange.moveStart("character", start);
+      textRange.moveEnd("character", end-element.value.length);
+      textRange.select();
+    }
+    else {
+      element.select();
+    }
+ }
 
 });
index 6cc9a82a915a3d42e8ee68ce91131dbc1cd3b601..db0d0499f6ebef82b89a1384057675df8178c04b 100644 (file)
@@ -28,7 +28,8 @@ TABLE#freeBusy TH
 
 TABLE#freeBusy TH.attendees,
 TABLE#freeBusy TD.attendees
-{ position: absolute;
+{ /*position: absolute;*/
+  position: fixed;
   padding: 0px .5em;
   margin: 0px;
   width: 11em;
index 2c078deeda003b285aea8c1b2c6411c9628a3b5c..0c625255a346d917b4f71c519f2307e557252fe1 100644 (file)
@@ -14,7 +14,11 @@ var attendeesNames;
 var attendeesEmails;
 
 function onContactKeydown(event) {
-  if (event.keyCode == 9) {
+  if (event.ctrlKey || event.metaKey) {
+    this.focussed = true;
+    return;
+  }
+  if (event.keyCode == 9) { // Tab
     preventDefault(event);
     if (this.confirmedValue)
       this.value = this.confirmedValue;
@@ -26,14 +30,14 @@ function onContactKeydown(event) {
     if (input.readOnly)
       newAttendee(null);
     else {
-      input.focus();
-      input.select();
       input.focussed = true;
+      input.activate();
     }
   }
   else if (!running) {
-    if (event.keyCode == 8
-        || event.keyCode == 32
+    if (event.keyCode == 0
+       || event.keyCode == 8 // Backspace
+        || event.keyCode == 32  // Space
         || event.keyCode > 47) {
       running = true;
       requestField = this;
@@ -41,8 +45,8 @@ function onContactKeydown(event) {
       setTimeout("triggerRequest()", delay);
     }
     else if (this.confirmedValue) {
-      if (event.keyCode == 13) {
-        this.setSelectionRange(this.value.length, this.value.length);
+      if (event.keyCode == 13) { // Enter
+       $(this).setCaretTo(this.value.length);
       }
     }
   }
@@ -54,7 +58,8 @@ function triggerRequest() {
     document.contactLookupAjaxRequest.abort();
   }
   var urlstr = ( UserFolderURL + "Contacts/contactSearch?search="
-                 + requestField.value );
+                 + escape(requestField.value) );
+  //log (urlstr);
   document.contactLookupAjaxRequest = triggerAjaxRequest(urlstr,
                                                          updateResults,
                                                          requestField);
@@ -81,7 +86,7 @@ function updateResults(http) {
       searchField.confirmedValue = completeEmail;
       if (searchField.focussed) {
         var end = searchField.value.length;
-        searchField.setSelectionRange(start, end);
+       $(searchField).selectText(start, end);
       }
       else
         searchField.value = text[1];
@@ -182,24 +187,25 @@ function redisplayFreeBusyZone() {
 }
 
 function newAttendee(event) {
-  var table = $("freeBusy");
-  var tbody = table.tBodies[0];
-  var model = tbody.rows[tbody.rows.length - 1];
-  var newAttendeeRow = tbody.rows[tbody.rows.length - 2];
-  var newRow = model.cloneNode(true);
-  newRow.setAttribute("class", "");
-  tbody.insertBefore(newRow, newAttendeeRow);
-  //table.tBodies[0].appendChild(newRow);
-  var input = $(newRow.cells[0]).childNodesWithTag("input")[0];
-  input.setAttribute("autocomplete", "off");
-  input.serial = "pouet";
-  Event.observe(input, "blur", checkAttendee.bindAsEventListener(input));
-  Event.observe(input, "keydown", onContactKeydown.bindAsEventListener(input));
-  input.focus();
-  input.focussed = true;
+   var table = $("freeBusy");
+   var tbody = table.tBodies[0];
+   var model = tbody.rows[tbody.rows.length - 1];
+   var newAttendeeRow = tbody.rows[tbody.rows.length - 2];
+   var newRow = model.cloneNode(true);
+   tbody.insertBefore(newRow, newAttendeeRow);
+  
+   $(newRow).className = "";
+  
+   var input = $(newRow.cells[0]).childNodesWithTag("input")[0];
+   input.setAttribute("autocomplete", "off");
+   Event.observe(input, "blur", checkAttendee.bindAsEventListener(input));
+   Event.observe(input, "keydown", onContactKeydown.bindAsEventListener(input));
+
+   input.focussed = true;
+   input.activate();
 }
 
-function checkAttendee() {
+function checkAttendee() { log ("checkAttendee (loosing focus)");
   this.focussed = false;
   var th = this.parentNode.parentNode;
   var tbody = th.parentNode;
@@ -221,7 +227,7 @@ function displayFreeBusyForNode(node) {
       var nodes = node.parentNode.parentNode.cells;
       if (node.uid) {
         for (var i = 1; i < nodes.length; i++) {
-           nodes[i].removeClassName("noFreeBusy");
+           $(nodes[i]).removeClassName("noFreeBusy");
            nodes[i].innerHTML = ('<span class="freeBusyZoneElement"></span>'
                                  + '<span class="freeBusyZoneElement"></span>'
                                  + '<span class="freeBusyZoneElement"></span>'
@@ -242,7 +248,7 @@ function displayFreeBusyForNode(node) {
                                 node);
       } else {
         for (var i = 1; i < nodes.length; i++) {
-           nodes[i].addClassName("noFreeBusy");
+           $(nodes[i]).addClassName("noFreeBusy");
            nodes[i].innerHTML = '';
         }
       }
@@ -296,11 +302,11 @@ function resetAttendeesValue() {
       currentInput.setAttribute("uid", null);
     }
     currentInput.setAttribute("autocomplete", "off");
-    Event.observe(currentInput, "keydown", onContactKeydown.bindAsEventListener(currentInput), false);
-    Event.observe(currentInput, "blur", checkAttendee.bindAsEventListener(currentInput), false);
+    //Event.observe(currentInput, "keydown", onContactKeydown.bindAsEventListener(currentInput));
+    //Event.observe(currentInput, "blur", checkAttendee.bindAsEventListener(currentInput));
   }
   inputs[inputs.length - 2].setAttribute("autocomplete", "off");
-  Event.observe(inputs[inputs.length - 2], "click", newAttendee, false);
+  Event.observe(inputs[inputs.length - 2], "click", newAttendee);
 }
 
 function resetAllFreeBusys() {
index c4c6b2a3d679d6066e1b4c467efa7d502cefed5a..d87369e2cd8ed8e92c82f851e78bdbc189a680f5 100644 (file)
@@ -2,7 +2,7 @@ function onSearchFormSubmit() {
   var searchValue = $("searchValue");
 
   var url = (ApplicationBaseURL
-            + "/foldersSearch?ldap-only=YES&search=" + searchValue.value
+            + "/foldersSearch?ldap-only=YES&search=" + escape(searchValue.value)
             + "&type=" + window.opener.userFolderType);
   if (document.userFoldersRequest) {
      document.userFoldersRequest.aborted = true;