]> err.no Git - scalable-opengroupware.org/commitdiff
git-svn-id: http://svn.opengroupware.org/SOGo/inverse/trunk@1394 d1b88da0-ebda-0310...
authorwolfgang <wolfgang@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Fri, 28 Mar 2008 18:20:41 +0000 (18:20 +0000)
committerwolfgang <wolfgang@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Fri, 28 Mar 2008 18:20:41 +0000 (18:20 +0000)
ChangeLog
NEWS
SoObjects/Contacts/SOGoContactLDIFEntry.m
SoObjects/Mailer/SOGoDraftObject.m
UI/MailerUI/UIxMailEditor.m
UI/Scheduler/French.lproj/Localizable.strings
UI/WebServerResources/ContactsUI.js
UI/WebServerResources/SchedulerUI.js

index d960475d585ee49cc0a56e7286e221a9f9ae4c46..472cfde0f12c95e1b26293de0d15339bb8c214b1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2008-03-28  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
 
+       * SoObjects/Contacts/SOGoContactLDIFEntry.m ([SOGoContactLDIFEntry
+       -isFolderish]): new overriden method.
+
        * SoObjects/Appointments/SOGoAppointmentFolder.m
        ([SOGoAppointmentFolder
        -appendObject:objectproperties:propertieswithBaseURL:baseURLtoComplexResponse:r]):
diff --git a/NEWS b/NEWS
index 63ed59f2a207aac5c532fede4b84994da8a889b6..7a166c112885a9acf6acfde484972fff70aa2011 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,5 @@
 0.9.0-2008xxxx (1.0 rc6)
+------------------------
 - retrieving the freebusy DAV object was causing SOGo to crash
 - converted to use the gnustep-make 2 build framework
 - added custom DAV methods for managing user permissions from the SOGo Integrator
index 94615aba9f4046216fd34f54c7a28b5bbcdd2096..6caa7ca1742876030f8f1ad7c358e5b79c0aebd1 100644 (file)
   return vcard;
 }
 
+- (BOOL) isFolderish
+{
+  return NO;
+}
+
 - (NSString *) davEntityTag
 {
   unsigned int hash;
index 2e210e011a4115b8dd41f6e9ab13983e96213255..ae5e8137c36191751515c4dff4d74a6aaa23dc4f 100644 (file)
@@ -713,21 +713,25 @@ static BOOL        showTextAttachmentsInline  = NO;
   return ma;
 }
 
-- (BOOL) isValidAttachmentName: (NSString *) _name
+- (BOOL) isValidAttachmentName: (NSString *) filename
 {
   static NSString *sescape[] = { @"/", @"..", @"~", @"\"", @"'", nil };
-  unsigned i;
+  unsigned int i;
   NSRange  r;
+  BOOL result;
 
-  if (![_name isNotNull])     return NO;
-  if ([_name length] == 0)    return NO;
-  if ([_name hasPrefix: @"."]) return NO;
-  
-  for (i = 0; sescape[i] != nil; i++) {
-    r = [_name rangeOfString:sescape[i]];
-    if (r.length > 0) return NO;
-  }
-  return YES;
+  result = ([filename length] && ![filename hasPrefix: @"."]);
+  i = 0;
+  while (result && sescape[i])
+    {
+      r = [filename rangeOfString: sescape[i]];
+      if (r.length > 0)
+       result = NO;
+      else
+       i++;
+    }
+
+  return result;
 }
 
 - (NSString *) pathToAttachmentWithName: (NSString *) _name
index fd45643ca9a143f00de065c32f79d315f1ed290f..18e2bd8a0c3ef21fd35646e224606e5eed67f0ee 100644 (file)
@@ -337,15 +337,11 @@ static NSArray *infoKeys = nil;
 
   co = [self clientObject];
   allKeys = [[request formValueKeys] objectEnumerator];
-  key = [allKeys nextObject];
-  while (key && success)
-    {
-      if ([key hasPrefix: @"attachment"])
-       success
-         = (![co saveAttachment: (NSData *) [request formValueForKey: key]
-                 withMetadata: [filenames objectForKey: key]]);
-      key = [allKeys nextObject];
-    }
+  while ((key = [allKeys nextObject]) && success)
+    if ([key hasPrefix: @"attachment"])
+      success
+       = (![co saveAttachment: (NSData *) [request formValueForKey: key]
+               withMetadata: [filenames objectForKey: key]]);
 
   return success;
 }
index e6ebaac8a4611ba7e202d22c7ad3eada7a90c38b..1d7967c0d2f77dea8c1d9fb69cbb9465bea92443 100644 (file)
 
 "Browse URL" = "Visiter l'URL";
 
-"newAttendee" = "Nouvel invité";
+"newAttendee" = "Ajouter un participant";
 
 /* calendar modes */
 
index 4879afa2e7bab0a86e5c9ef86f54315f2a67fb40..b139ee3a462f1223c8f6cba3b2904f339afedad4 100644 (file)
@@ -510,11 +510,11 @@ function onConfirmContactSelection(event) {
    var initialValues = null;
 
    if (selector) {
-      var selectorId = selector.getAttribute("id");
-      selectorList = opener.window.document.getElementById('uixselector-'
-                                                           + selectorId
-                                                           + '-uidList');
-      initialValues = selectorList.value;
+     var selectorId = selector.getAttribute("id");
+     selectorList = opener.window.document.getElementById('uixselector-'
+                                                         + selectorId
+                                                         + '-uidList');
+     initialValues = selectorList.value;
    }
 
    var contactsList = $("contactsList");
@@ -718,10 +718,12 @@ function deniedFoldersLookupCallback(http) {
 
 function configureAbToolbar() {
    var toolbar = $("abToolbar");
-   var links = toolbar.childNodesWithTag("a");
-   Event.observe(links[0], "click", onAddressBookNew, false);
-   Event.observe(links[1], "click", onAddressBookAdd, false);
-   Event.observe(links[2], "click", onAddressBookRemove, false);
+   if (toolbar) {
+     var links = toolbar.childNodesWithTag("a");
+     $(links[0]).observe("click", onAddressBookNew);
+     $(links[1]).observe("click", onAddressBookAdd);
+     $(links[2]).observe("click", onAddressBookRemove);
+   }
 }
 
 function configureContactFolders() {
@@ -858,18 +860,18 @@ function getMenus() {
 }
 
 function configureSelectionButtons() {
-   var container = $("contactSelectionButtons");
-   if (container) {
-      var buttons = container.childNodesWithTag("input");
-      for (var i = 0; i < buttons.length; i++)
-         Event.observe(buttons[i], "click",
-                       onConfirmContactSelection.bindAsEventListener(buttons[i]));
-   }
+  var container = $("contactSelectionButtons");
+  if (container) {
+    var buttons = container.childNodesWithTag("input");
+    for (var i = 0; i < buttons.length; i++)
+      $(buttons[i]).observe("click",
+                           onConfirmContactSelection);
+  }
 }
 
 function initContacts(event) {
    if (document.body.hasClassName("popup"))
-      configureSelectionButtons();
+     configureSelectionButtons();
    configureAbToolbar();
    configureContactFolders();
    //     initDnd();
index ea68fdf82970c6544b140577c81cf8bacab8a976..e2f1f341bd4408361be4929496a48cef7fa1c8cf 100644 (file)
@@ -766,7 +766,11 @@ function refreshCalendarEventsCallback(http) {
                       dateTuples[j][c.start] < dateTuples[i][c.end] ||
                
                       dateTuples[j][c.start] == dateTuples[i][c.start] &&
-                      dateTuples[j][c.end] < dateTuples[i][c.end] ){
+                      dateTuples[j][c.end] < dateTuples[i][c.end] ||
+
+                      dateTuples[j][c.start] == dateTuples[i][c.start] &&
+                      dateTuples[j][c.end] == dateTuples[i][c.end] &&
+                      i < j) {
                      // Same period
                      if (dateTuples[j][c.siblingsCount] > maxCount)
                         maxCount = dateTuples[j][c.siblingsCount];