#include <NGObjWeb/WOApplication.h>
#include <NGObjWeb/WOResourceManager.h>
#include <NGExtensions/NSString+Ext.h>
-#include "common.h"
+#include "decommon.h"
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 !",
WOResponse_AddChar(_resp, '"');
[self appendExtraAttributesToResponse:_resp inContext:_ctx];
- WOResponse_AddCString(_resp, " />");
+
+ WOResponse_AddEmptyCloseParens(_resp, _ctx);
}
- (void)appendToResponse:(WOResponse *)_response inContext:(WOContext *)_ctx {
WOResponse_AddCString(_response, "<a href=\"");
if ([self _appendHrefToResponse:_response inContext:_ctx]) {
- queryString = [self queryStringForQueryDictionary:
- [self->queryDictionary valueInComponent:sComponent]
- andQueryParameters:self->queryParameters
- inContext:_ctx];
+ queryString = [self queryStringForQueryDictionary:
+ [self->queryDictionary valueInComponent:sComponent]
+ andQueryParameters:self->queryParameters
+ inContext:_ctx];
}
if (self->fragmentIdentifier) {
@end /* _WOComplexHyperlink */
+
@implementation _WOHrefHyperlink
static BOOL debugStaticLinks = NO;
@end /* _WOHrefHyperlink */
+
@implementation _WOActionHyperlink
- (id)initWithName:(NSString *)_name
/* dynamic invocation */
-- (id)invokeActionForRequest:(WORequest *)_request
+- (id)invokeActionForRequest:(WORequest *)_rq
inContext:(WOContext *)_ctx
{
if (self->disabled) {
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];
@end /* _WOActionHyperlink */
+
@implementation _WOPageHyperlink
- (id)initWithName:(NSString *)_name
[super dealloc];
}
-/* actions */
+/* handle request */
-- (id)invokeActionForRequest:(WORequest *)_request
- inContext:(WOContext *)_ctx
-{
+- (id)invokeActionForRequest:(WORequest *)_rq inContext:(WOContext *)_ctx {
WOComponent *page;
NSString *name;
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 */
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;
}
@end /* _WOPageHyperlink */
+
@implementation _WODirectActionHyperlink
- (id)initWithName:(NSString *)_name
[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;
}
}
- WOResponse_AddString(_response,
+ WOResponse_AddString(_r,
[_ctx directActionURLForActionNamed:daName
queryDictionary:qd]);
return NO;