]> err.no Git - sope/blobdiff - sope-appserver/NGObjWeb/DynamicElements/_WOComplexHyperlink.m
improved query string handling
[sope] / sope-appserver / NGObjWeb / DynamicElements / _WOComplexHyperlink.m
index 2509c16e37d072c3905b733c3afc969e0f904c8d..e9cd262e3c2fd4cf2a7a820415c75f5f808318da 100644 (file)
@@ -89,7 +89,7 @@
 #include <NGObjWeb/WOApplication.h>
 #include <NGObjWeb/WOResourceManager.h>
 #include <NGExtensions/NSString+Ext.h>
-#include "common.h"
+#include "decommon.h"
 
 static Class NSURLClass = Nil;
 
@@ -148,48 +148,46 @@ static Class NSURLClass = Nil;
 
 /* accessors */
 
-- (WOElement *)template {
+- (id)template {
   return self->template;
 }
 
-// ******************** responder ********************
+/* handle requests */
 
-- (void)takeValuesFromRequest:(WORequest *)_req inContext:(WOContext *)_ctx {
+- (void)takeValuesFromRequest:(WORequest *)_rq inContext:(WOContext *)_ctx {
   /* links can take form values !!!! (for query-parameters) */
   
-  if (self->queryParameters) {
+  if (self->queryParameters != nil) {
     /* apply values to ?style parameters */
     WOComponent  *sComponent = [_ctx component];
     NSEnumerator *keys;
     NSString     *key;
-
+    
     keys = [self->queryParameters keyEnumerator];
-    while ((key = [keys nextObject])) {
+    while ((key = [keys nextObject]) != nil) {
       id assoc, value;
-
+      
       assoc = [self->queryParameters objectForKey:key];
       
       if ([assoc isValueSettable]) {
-        value = [_req formValueForKey:key];
+        value = [_rq formValueForKey:key];
         [assoc setValue:value inComponent:sComponent];
       }
     }
   }
   
-  [self->template takeValuesFromRequest:_req inContext:_ctx];
+  [self->template takeValuesFromRequest:_rq inContext:_ctx];
 }
 
-- (id)invokeActionForRequest:(WORequest *)_request
-  inContext:(WOContext *)_ctx
-{
-  if (self->disabled) {
+- (id)invokeActionForRequest:(WORequest *)_rq inContext:(WOContext *)_ctx {
+  if (self->disabled != nil) {
     if ([self->disabled boolValueInComponent:[_ctx component]])
       return nil;
   }
   
   if (![[_ctx elementID] isEqualToString:[_ctx senderID]])
     /* link is not the active element */
-    return [self->template invokeActionForRequest:_request inContext:_ctx];
+    return [self->template invokeActionForRequest:_rq inContext:_ctx];
   
   /* link is active */
   [[_ctx session] logWithFormat:@"%@[0x%08X]: no action/page set !",
@@ -334,6 +332,7 @@ static Class NSURLClass = Nil;
 
 @end /* _WOComplexHyperlink */
 
+
 @implementation _WOHrefHyperlink
 
 static BOOL debugStaticLinks = NO;
@@ -444,6 +443,7 @@ static BOOL debugStaticLinks = NO;
 
 @end /* _WOHrefHyperlink */
 
+
 @implementation _WOActionHyperlink
 
 - (id)initWithName:(NSString *)_name
@@ -463,7 +463,7 @@ static BOOL debugStaticLinks = NO;
 
 /* dynamic invocation */
 
-- (id)invokeActionForRequest:(WORequest *)_request
+- (id)invokeActionForRequest:(WORequest *)_rq
   inContext:(WOContext *)_ctx
 {
   if (self->disabled) {
@@ -473,7 +473,7 @@ static BOOL debugStaticLinks = NO;
 
   if (![[_ctx elementID] isEqualToString:[_ctx senderID]])
     /* link is not the active element */
-    return [self->template invokeActionForRequest:_request inContext:_ctx];
+    return [self->template invokeActionForRequest:_rq inContext:_ctx];
   
   /* link is active */
   return [self executeAction:self->action inContext:_ctx];
@@ -498,6 +498,7 @@ static BOOL debugStaticLinks = NO;
 
 @end /* _WOActionHyperlink */
 
+
 @implementation _WOPageHyperlink
 
 - (id)initWithName:(NSString *)_name
@@ -515,11 +516,9 @@ static BOOL debugStaticLinks = NO;
   [super dealloc];
 }
 
-/* actions */
+/* handle request */
 
-- (id)invokeActionForRequest:(WORequest *)_request
-  inContext:(WOContext *)_ctx
-{
+- (id)invokeActionForRequest:(WORequest *)_rq inContext:(WOContext *)_ctx {
   WOComponent *page;
   NSString    *name;
 
@@ -530,7 +529,7 @@ static BOOL debugStaticLinks = NO;
   
   if (![[_ctx elementID] isEqualToString:[_ctx senderID]])
     /* link is not the active element */
-    return [self->template invokeActionForRequest:_request inContext:_ctx];
+    return [self->template invokeActionForRequest:_rq inContext:_ctx];
   
   /* link is the active element */
   
@@ -545,16 +544,16 @@ static BOOL debugStaticLinks = NO;
   return page;
 }
 
-- (BOOL)_appendHrefToResponse:(WOResponse *)_response
-  inContext:(WOContext *)_ctx
-{
+/* generate response */
+
+- (BOOL)_appendHrefToResponse:(WOResponse *)_r inContext:(WOContext *)_ctx {
   /*
     Profiling:
       87% -componentActionURL
       13% NSString dataUsingEncoding(appendContentString!)
     TODO(prof): use addcstring
   */
-  WOResponse_AddString(_response, [_ctx componentActionURL]);
+  WOResponse_AddString(_r, [_ctx componentActionURL]);
   return YES;
 }
 
@@ -570,6 +569,7 @@ static BOOL debugStaticLinks = NO;
 
 @end /* _WOPageHyperlink */
 
+
 @implementation _WODirectActionHyperlink
 
 - (id)initWithName:(NSString *)_name
@@ -592,21 +592,21 @@ static BOOL debugStaticLinks = NO;
   [super dealloc];
 }
 
-/* href */
+/* handle requests */
 
 - (void)takeValuesFromRequest:(WORequest *)_req inContext:(WOContext *)_ctx {
   /* DA links can *never* take form values !!!! */
   [self->template takeValuesFromRequest:_req inContext:_ctx];
 }
 
-- (id)invokeActionForRequest:(WORequest *)_request
-  inContext:(WOContext *)_ctx
-{
+- (id)invokeActionForRequest:(WORequest *)_rq inContext:(WOContext *)_ctx {
   /* DA links can *never* invoke an action !!!! */
-  return [self->template invokeActionForRequest:_request inContext:_ctx];
+  return [self->template invokeActionForRequest:_rq inContext:_ctx];
 }
 
-- (BOOL)_appendHrefToResponse:(WOResponse *)_response
+/* generate response */
+
+- (BOOL)_appendHrefToResponse:(WOResponse *)_r
   inContext:(WOContext *)_ctx
 {
   WOComponent         *sComponent;
@@ -670,7 +670,7 @@ static BOOL debugStaticLinks = NO;
     }
   }
 
-  WOResponse_AddString(_response,
+  WOResponse_AddString(_r,
                        [_ctx directActionURLForActionNamed:daName
                              queryDictionary:qd]);
   return NO;