]> err.no Git - sope/commitdiff
minor code cleanups
authorhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Sun, 3 Oct 2004 16:12:31 +0000 (16:12 +0000)
committerhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Sun, 3 Oct 2004 16:12:31 +0000 (16:12 +0000)
git-svn-id: http://svn.opengroupware.org/SOPE/trunk@218 e4a50df8-12e2-0310-a44c-efbce7f8a7e3

sope-appserver/NGObjWeb/ChangeLog
sope-appserver/NGObjWeb/DynamicElements/WOHyperlink.m
sope-appserver/NGObjWeb/DynamicElements/_WOComplexHyperlink.m
sope-appserver/NGObjWeb/Version

index cb96f497dae68d245c08dfbd53821db37cb755aa..9affb8af0524ecf09c216dfcbf556340606481cd 100644 (file)
@@ -1,3 +1,7 @@
+2004-10-03  Helge Hess  <helge.hess@opengroupware.org>
+
+       * DynamicElements/_WOComplexHyperlink.m: minor code cleanups (v4.3.51)
+
 2004-09-30  Helge Hess  <helge.hess@skyrix.com>
 
        * WOHttpAdaptor/WOHttpAdaptor.m: print listen address as a string value
index eb616ed3934d0387cbcf8a9349f03ef8b591b5e6..b8e70560e6ff0ee9129ddb69a0139d13e3502d95 100644 (file)
@@ -18,7 +18,6 @@
   Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
   02111-1307, USA.
 */
-// $Id$
 
 #include "WOHyperlink.h"
 #include "WOElement+private.h"
index 546f86371b0c3ee085334160a025bac270e710c3..37f2ab084355c386760067b5d8aced22d8051185 100644 (file)
@@ -18,7 +18,6 @@
   Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
   02111-1307, USA.
 */
-// $Id$
 
 #include "WOHyperlink.h"
 
@@ -363,6 +362,15 @@ static BOOL debugStaticLinks = NO;
 
 /* URI generation */
 
+- (BOOL)shouldRewriteURLString:(NSString *)_s inContext:(WOContext *)_ctx {
+  // TODO: we need a binding to disable rewriting!
+  if ([_s hasPrefix:@"mailto:"])
+    return NO;
+  if ([_s hasPrefix:@"javascript:"])
+    return NO;
+  return YES;
+}
+
 - (BOOL)_appendHrefToResponse:(WOResponse *)_r inContext:(WOContext *)_ctx {
   NSString *s;
   id    hrefValue;
@@ -374,21 +382,24 @@ static BOOL debugStaticLinks = NO;
   
   if (hrefValue == nil)
     return NO;
-   
+  
   if ([hrefValue isKindOfClass:NSURLClass]) {
     s = [hrefValue stringValueRelativeToURL:base];
   }
   else {
     s = [hrefValue stringValue];
     
-    if (!([s hasPrefix:@"mailto:"] || [s hasPrefix:@"javascript:"])) {
+    if ([self shouldRewriteURLString:s inContext:_ctx]) {
       if ([s isAbsoluteURL]) {
         // TODO: why are we doing this? we could just pass through the string?
         //    => probably to generate relative links
         url = [NSURLClass URLWithString:s];
       }
       else if (base != nil) {
-        url = [NSURLClass URLWithString:s relativeToURL:base];
+       /* avoid creating a new URL for ".", just return the base */
+       url = [s isEqualToString:@"."]
+         ? base
+         : [NSURLClass URLWithString:s relativeToURL:base];
       }
       else {
         [self logWithFormat:@"WARNING: missing base URL in context ..."];
@@ -402,6 +413,7 @@ static BOOL debugStaticLinks = NO;
                 s, base];
         return NO;
       }
+      
       s = [url stringValueRelativeToURL:base];
     }
   }
index 5ac309c02c93e977026632393beaf63c645040b5..52af96675c36f3a2cb71e5250ea014c1f23108ac 100644 (file)
@@ -1,6 +1,6 @@
 # version file
 
-SUBMINOR_VERSION:=50
+SUBMINOR_VERSION:=51
 
 # v4.3.42  requires libNGExtensions v4.3.116
 # v4.3.40  requires libNGExtensions v4.3.115