]> err.no Git - scalable-opengroupware.org/commitdiff
improved share support
authorhelge <helge@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Thu, 7 Jul 2005 13:49:15 +0000 (13:49 +0000)
committerhelge <helge@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Thu, 7 Jul 2005 13:49:15 +0000 (13:49 +0000)
git-svn-id: http://svn.opengroupware.org/SOGo/trunk@686 d1b88da0-ebda-0310-925b-ed51d893ca5b

SOGo/UI/MailerUI/ChangeLog
SOGo/UI/MailerUI/UIxMailAccountView.m
SOGo/UI/MailerUI/UIxMailTree.m
SOGo/UI/MailerUI/Version
SOGo/UI/Templates/UIxMailAccountView.wox

index aef0bc642e19b065cdf840de5e8ec5823a5e4ae7..9a4c8c3fddcbbc758dd64c07eba5d2cab99c50be 100644 (file)
@@ -1,3 +1,12 @@
+2005-07-07  Helge Hess  <helge.hess@opengroupware.org>
+
+       * v0.9.129
+
+       * UIxMailAccountView.m: added code to better display shared accounts
+
+       * UIxMailTree.m: moved IMAP4 connection string => label code to a
+         NSString category
+       
 2005-07-07  Helge Hess  <helge.hess@opengroupware.org>
 
        * UIxMailTree.m: properly display share names in account list (show
index a0d605773677193382c4daa6f9f18a594476175f..d4840521d0b95c8aabb20a9419f70dcaf523adca 100644 (file)
 
 #include "common.h"
 
+@interface NSString(DotCutting)
+
+- (NSString *)titleForSOGoIMAP4String;
+
+@end
+
 @implementation UIxMailAccountView
 
 /* title */
 
 - (NSString *)objectTitle {
-  return [[self clientObject] nameInContainer];
+  return [[[self clientObject] nameInContainer] titleForSOGoIMAP4String];
 }
+
+- (BOOL)isShareAccount {
+  return [[[self clientObject] nameInContainer] rangeOfString:@".-."].length >0
+    ? YES : NO;
+}
+
+- (NSString *)fullSharePath {
+  NSRange  r;
+  NSString *s;
+  
+  s = [[self clientObject] nameInContainer];
+  r = [s rangeOfString:@".-."];
+  if (r.length == 0) return nil;
+  
+  s = [s substringFromIndex:(r.location + r.length)];
+  r = [s rangeOfString:@"@"];
+  if (r.length == 0) return s;
+  
+  return [s substringToIndex:r.location];
+}
+
 - (NSString *)panelTitle {
   NSString *s;
   
index a1c722d24ff1fa2b368f0664d1d6d7b0d828bf9e..a6538ec8798e9f68f32344234dbcd78c72d633b3 100644 (file)
@@ -50,6 +50,8 @@
 
 - (NSString *)stringByCuttingOffAtDotsWhenExceedingLength:(int)_maxLength;
 
+- (NSString *)titleForSOGoIMAP4String;
+
 @end
 
 @implementation UIxMailTree
@@ -183,43 +185,6 @@ static BOOL debugBlocks = NO;
   return link;
 }
 
-- (NSString *)titleForIMAP4String:(NSString *)_constr {
-  /* 
-     eg:
-       guizmo.g.-.baluh.hommes.tests-montee-en-charge-ogo@\
-       amelie-01.ac.melanie2.i2
-  */
-  static int CutOffLength = 16;
-  NSString *s;
-  NSRange  r;
-  
-  s = _constr;
-  
-  /* check for connect strings without hostnames */
-  
-  r = [s rangeOfString:@"@"];
-  if (r.length == 0) {
-    /* no login provide, just use the hostname (without domain) */
-    r = [s rangeOfString:@"."];
-    return r.length > 0 ? [s substringToIndex:r.location] : s;
-  }
-  
-  s = [s substringToIndex:r.location];
-  
-  /* check for shares */
-  
-  r = [s rangeOfString:@".-."];
-  if (r.length > 0) {
-    /* eg: 'baluh.hommes.tests-montee-en-charge-ogo' */
-    s = [s substringFromIndex:(r.location + r.length)];
-    
-    return [s stringByCuttingOffAtDotsWhenExceedingLength:CutOffLength];
-  }
-  
-  /* just the login name, possibly long (test.et.di.cete-lyon) */
-  return [s stringByCuttingOffAtDotsWhenExceedingLength:CutOffLength];
-}
-
 - (void)getTitle:(NSString **)_t andIcon:(NSString **)_icon
   forObject:(id)_object
 {
@@ -273,7 +238,7 @@ static BOOL debugBlocks = NO;
     *_icon = @"tbtv_inbox_17x17.gif";
     
     /* title processing is somehow Agenor specific and should be done in UI */
-    *_t = [self titleForIMAP4String:[_object nameInContainer]];
+    *_t = [[_object nameInContainer] titleForSOGoIMAP4String];
   }
   else if ([_object isKindOfClass:NSClassFromString(@"SOGoMailAccounts")])
     *_icon = @"tbtv_inbox_17x17.gif";
@@ -556,4 +521,41 @@ static BOOL debugBlocks = NO;
   return [s substringToIndex:r.location];
 }
 
+- (NSString *)titleForSOGoIMAP4String {
+  /* 
+     eg:
+       guizmo.g.-.baluh.hommes.tests-montee-en-charge-ogo@\
+       amelie-01.ac.melanie2.i2
+  */
+  static int CutOffLength = 16;
+  NSString *s;
+  NSRange  r;
+  
+  s = self;
+  
+  /* check for connect strings without hostnames */
+  
+  r = [s rangeOfString:@"@"];
+  if (r.length == 0) {
+    /* no login provide, just use the hostname (without domain) */
+    r = [s rangeOfString:@"."];
+    return r.length > 0 ? [s substringToIndex:r.location] : s;
+  }
+  
+  s = [s substringToIndex:r.location];
+  
+  /* check for shares */
+  
+  r = [s rangeOfString:@".-."];
+  if (r.length > 0) {
+    /* eg: 'baluh.hommes.tests-montee-en-charge-ogo' */
+    s = [s substringFromIndex:(r.location + r.length)];
+    
+    return [s stringByCuttingOffAtDotsWhenExceedingLength:CutOffLength];
+  }
+  
+  /* just the login name, possibly long (test.et.di.cete-lyon) */
+  return [s stringByCuttingOffAtDotsWhenExceedingLength:CutOffLength];
+}
+
 @end /* NSString(DotCutting) */
index bff1a237abe85bc46fd0e010eabbee42124ebd7d..9100925244a7fd04e7c9f12921c82e6e6386393e 100644 (file)
@@ -1,6 +1,6 @@
 # version file
 
-SUBMINOR_VERSION:=128
+SUBMINOR_VERSION:=129
 
 # v0.9.100 requires libNGMime        v4.5.213
 # v0.9.99  requires libNGMime        v4.5.212
index af04877ccc1449e2862fd3cf3fb597123ea1599b..17c4de91999900d15e85dd060b9e353aa978b55f 100644 (file)
   title="panelTitle"
 >
   <div class="titlediv">
-    <var:string value="clientObject.nameInContainer"/>
+    <var:if condition="isShareAccount">
+      <var:string label:value="Share: " />
+    </var:if>
+    <var:if condition="isShareAccount" const:negate="1">
+      <var:string label:value="Account: " />
+    </var:if>
+    <var:string value="objectTitle"/>
   </div>
 
   <div class="embedwhite_out">
     <div class="embedwhite_in">
      <div style="padding: 8px;">
       <div style="font-weight: bold; font-size: 16px;">
-        SOGo Mail - <var:string value="clientObject.nameInContainer"/>
+        SOGo Mail - 
+
+        <var:if condition="isShareAccount">
+          <var:string label:value="Shared Account: " />
+        </var:if>
+
+        <var:string value="objectTitle"/>
       </div>
       <br />
+      <var:if condition="isShareAccount">
+        <div>
+          <var:string label:value="Share: " />
+          <var:string value="fullSharePath" />
+        </div>
+      </var:if>
       <br />
 
       <div class="whitesec_title">Email</div><br />