mirror of
https://github.com/gnustep/libs-gsweb.git
synced 2025-02-19 10:01:05 +00:00
* GSWeb/GSWAjaxRequestHandler.*
new files * GSWeb/GNUmakefile add GSWAjaxRequestHandler.*, WOAjaxRequestHandler.h * GSWeb/GSWApplication+Defaults.* add AjaxRequestHanderKey * GSWeb/GSWApplication.h add +ajaxRequestHandlerKey add +setAjaxRequestHandlerKey: * GSWeb/GSWApplication.m create ajax request handler in registerRequestHandlers * GSWeb/GSWComponentRequestHandler.m return current class instance in +handler (works in subclasses too..) * GSWConstants.* added ajax * GSWContext.* added +shouldNotStorePageInBacktrackCache * GSWeb/GSWMessage.* added storePageInBacktrackCache * GSWeb/GSWRequest.* added -isAjaxSubmit, ajaxFormSubmitKey * GSWeb/GSWSession.m * GSWeb/GSWeb.h * GSWeb/GSWWOCompatibility.h ajax adjustments
This commit is contained in:
parent
237ae78d01
commit
2bb828acb7
17 changed files with 260 additions and 113 deletions
27
ChangeLog
27
ChangeLog
|
@ -1,3 +1,30 @@
|
|||
2017-11-19 David Wetzel <dave@turbocat.de>
|
||||
* GSWeb/GSWAjaxRequestHandler.*
|
||||
new files
|
||||
* GSWeb/GNUmakefile
|
||||
add GSWAjaxRequestHandler.*, WOAjaxRequestHandler.h
|
||||
* GSWeb/GSWApplication+Defaults.*
|
||||
add AjaxRequestHanderKey
|
||||
* GSWeb/GSWApplication.h
|
||||
add +ajaxRequestHandlerKey
|
||||
add +setAjaxRequestHandlerKey:
|
||||
* GSWeb/GSWApplication.m
|
||||
create ajax request handler in registerRequestHandlers
|
||||
* GSWeb/GSWComponentRequestHandler.m
|
||||
return current class instance in +handler (works in subclasses too..)
|
||||
* GSWConstants.*
|
||||
added ajax
|
||||
* GSWContext.*
|
||||
added +shouldNotStorePageInBacktrackCache
|
||||
* GSWeb/GSWMessage.*
|
||||
added storePageInBacktrackCache
|
||||
* GSWeb/GSWRequest.*
|
||||
added -isAjaxSubmit, ajaxFormSubmitKey
|
||||
* GSWeb/GSWSession.m
|
||||
* GSWeb/GSWeb.h
|
||||
* GSWeb/GSWWOCompatibility.h
|
||||
ajax adjustments
|
||||
|
||||
2017-11-16 David Wetzel <dave@turbocat.de>
|
||||
* GSWExtensions/GSWSessionRestorationErrorPage.gswc/GSWSessionRestorationErrorPage.html
|
||||
* GSWExtensions/GSWExceptionPage.gswc/GSWExceptionPage.html
|
||||
|
|
|
@ -122,6 +122,7 @@ GSWDefaultAdaptor.m \
|
|||
GSWUtils.m \
|
||||
GSWClientSideScript.m \
|
||||
GSWActiveImage.m \
|
||||
GSWAjaxRequestHandler.m \
|
||||
GSWBody.m \
|
||||
GSWTextField.m \
|
||||
GSWForm.m \
|
||||
|
@ -213,6 +214,7 @@ GSWeb_HEADER_FILES = \
|
|||
GSWeb.h \
|
||||
GSWActiveImage.h \
|
||||
GSWAdaptor.h \
|
||||
GSWAjaxRequestHandler.h \
|
||||
GSWApplet.h \
|
||||
GSWApplication.h \
|
||||
GSWAssociation.h \
|
||||
|
@ -350,6 +352,7 @@ WO_HEADER_FILES = \
|
|||
WOMailDelivery.h \
|
||||
WORequest.h \
|
||||
WORequestHandler.h \
|
||||
WOAjaxRequestHandler.h \
|
||||
WOResourceManager.h \
|
||||
WOResponse.h \
|
||||
WOSession.h \
|
||||
|
|
|
@ -261,6 +261,10 @@ GSWeb_InitializeGlobalAppDefaultOptions(void)
|
|||
LOGOPT_NC(GSWOPTValue_DirectActionRequestHandlerKey);
|
||||
LOGOPT_NC(GSWOPT_DirectActionRequestHandlerKey);
|
||||
|
||||
// ajax
|
||||
LOGOPT_NC(GSWOPTValue_AjaxRequestHanderKey);
|
||||
LOGOPT_NC(GSWOPT_AjaxRequestHandlerKey);
|
||||
|
||||
LOGOPT_NC(GSWOPTValue_PingActionRequestHandlerKey);
|
||||
LOGOPT_NC(GSWOPT_PingActionRequestHandlerKey);
|
||||
|
||||
|
@ -386,7 +390,10 @@ GSWeb_InitializeGlobalAppDefaultOptions(void)
|
|||
|
||||
GSWOPTValue_DirectActionRequestHandlerKey[GSWebNamingConv],
|
||||
GSWOPT_DirectActionRequestHandlerKey[GSWebNamingConv],
|
||||
|
||||
|
||||
GSWOPTValue_AjaxRequestHanderKey[GSWebNamingConv],
|
||||
GSWOPT_AjaxRequestHandlerKey[GSWebNamingConv],
|
||||
|
||||
GSWOPTValue_StreamActionRequestHandlerKey[GSWebNamingConv],
|
||||
GSWOPT_StreamActionRequestHandlerKey[GSWebNamingConv],
|
||||
|
||||
|
@ -1082,13 +1089,29 @@ static NSString *_dflt_directActionRequestHandlerKey;
|
|||
GSWOPT_DirectActionRequestHandlerKey[GSWebNamingConv]);
|
||||
return _dflt_directActionRequestHandlerKey;
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
+(void)setDirectActionRequestHandlerKey:(NSString*)aKey
|
||||
{
|
||||
ASSIGNCOPY(_dflt_directActionRequestHandlerKey, aKey);
|
||||
_dflt_init_directActionRequestHandlerKey = YES;
|
||||
};
|
||||
//--------------------------------------------------------------------
|
||||
|
||||
static BOOL _dflt_init_ajaxRequestHandlerKey = NO;
|
||||
static NSString *_dflt_ajaxRequestHandlerKey;
|
||||
+(NSString*)ajaxRequestHandlerKey
|
||||
{
|
||||
INIT_DFLT_OBJ(ajaxRequestHandlerKey,
|
||||
GSWOPT_AjaxRequestHandlerKey[GSWebNamingConv]);
|
||||
return _dflt_ajaxRequestHandlerKey;
|
||||
};
|
||||
|
||||
+(void)setAjaxRequestHandlerKey:(NSString*)aKey
|
||||
{
|
||||
ASSIGNCOPY(_dflt_ajaxRequestHandlerKey, aKey);
|
||||
_dflt_init_ajaxRequestHandlerKey = YES;
|
||||
};
|
||||
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
static BOOL _dflt_init_resourceRequestHandlerKey = NO;
|
||||
|
|
|
@ -615,6 +615,8 @@ GSWEB_EXPORT GSWApplication* GSWApp;
|
|||
+(void)setComponentRequestHandlerKey:(NSString*)aKey;
|
||||
+(NSString*)directActionRequestHandlerKey;
|
||||
+(void)setDirectActionRequestHandlerKey:(NSString*)aKey;
|
||||
+(NSString*)ajaxRequestHandlerKey;
|
||||
+(void)setAjaxRequestHandlerKey:(NSString*)aKey;
|
||||
+(NSString*)resourceRequestHandlerKey;
|
||||
+(void)setResourceRequestHandlerKey:(NSString*)aKey;
|
||||
+(NSString*)statisticsStoreClassName;
|
||||
|
|
|
@ -583,91 +583,100 @@ int GSWApplicationMain(NSString* applicationClassName,
|
|||
//--------------------------------------------------------------------
|
||||
-(void)registerRequestHandlers
|
||||
{
|
||||
//OK
|
||||
NSString* componentRequestHandlerKey=nil;
|
||||
NSString* resourceRequestHandlerKey=nil;
|
||||
NSString* directActionRequestHandlerKey=nil;
|
||||
NSString* pingDirectActionRequestHandlerKey=nil;
|
||||
NSString* streamDirectActionRequestHandlerKey=nil;
|
||||
//OK
|
||||
NSString* componentRequestHandlerKey=nil;
|
||||
NSString* resourceRequestHandlerKey=nil;
|
||||
NSString* directActionRequestHandlerKey=nil;
|
||||
NSString* pingDirectActionRequestHandlerKey=nil;
|
||||
NSString* streamDirectActionRequestHandlerKey=nil;
|
||||
NSString* ajaxRequestHandlerKey=nil;
|
||||
|
||||
GSWRequestHandler* componentRequestHandler=nil;
|
||||
GSWResourceRequestHandler* resourceRequestHandler=nil;
|
||||
GSWDirectActionRequestHandler* directActionRequestHandler=nil;
|
||||
GSWDirectActionRequestHandler* pingDirectActionRequestHandler=nil;
|
||||
GSWDirectActionRequestHandler* streamDirectActionRequestHandler=nil;
|
||||
GSWRequestHandler* defaultRequestHandler=nil;
|
||||
|
||||
Class defaultRequestHandlerClass=nil;
|
||||
|
||||
|
||||
|
||||
// Component Handler
|
||||
componentRequestHandler=[[self class] _componentRequestHandler];
|
||||
componentRequestHandlerKey=[[self class] componentRequestHandlerKey];
|
||||
|
||||
|
||||
// Resource Handler
|
||||
resourceRequestHandler=(GSWResourceRequestHandler*)
|
||||
GSWRequestHandler* componentRequestHandler=nil;
|
||||
GSWResourceRequestHandler* resourceRequestHandler=nil;
|
||||
GSWDirectActionRequestHandler* directActionRequestHandler=nil;
|
||||
GSWDirectActionRequestHandler* pingDirectActionRequestHandler=nil;
|
||||
GSWDirectActionRequestHandler* streamDirectActionRequestHandler=nil;
|
||||
GSWAjaxRequestHandler* ajaxRequestHander=nil;
|
||||
GSWRequestHandler* defaultRequestHandler=nil;
|
||||
|
||||
Class defaultRequestHandlerClass=nil;
|
||||
|
||||
|
||||
|
||||
// Component Handler
|
||||
componentRequestHandler=[[self class] _componentRequestHandler];
|
||||
componentRequestHandlerKey=[[self class] componentRequestHandlerKey];
|
||||
|
||||
|
||||
// Resource Handler
|
||||
resourceRequestHandler=(GSWResourceRequestHandler*)
|
||||
[GSWResourceRequestHandler handler];
|
||||
|
||||
resourceRequestHandlerKey=[[self class] resourceRequestHandlerKey];
|
||||
|
||||
|
||||
// DirectAction Handler
|
||||
directActionRequestHandler=(GSWDirectActionRequestHandler*)
|
||||
|
||||
resourceRequestHandlerKey=[[self class] resourceRequestHandlerKey];
|
||||
|
||||
|
||||
// DirectAction Handler
|
||||
directActionRequestHandler=(GSWDirectActionRequestHandler*)
|
||||
[GSWDirectActionRequestHandler handler];
|
||||
|
||||
directActionRequestHandlerKey=[[self class] directActionRequestHandlerKey];
|
||||
|
||||
|
||||
// "Ping" Handler
|
||||
pingDirectActionRequestHandler=(GSWDirectActionRequestHandler*)
|
||||
|
||||
directActionRequestHandlerKey=[[self class] directActionRequestHandlerKey];
|
||||
|
||||
|
||||
// "Ping" Handler
|
||||
pingDirectActionRequestHandler=(GSWDirectActionRequestHandler*)
|
||||
[GSWDirectActionRequestHandler handlerWithDefaultActionClassName:@"GSWAdminAction"
|
||||
defaultActionName:@"ping"
|
||||
shouldAddToStatistics:NO];
|
||||
pingDirectActionRequestHandlerKey=[[self class] pingActionRequestHandlerKey];
|
||||
|
||||
|
||||
// Stream Handler
|
||||
streamDirectActionRequestHandler=(GSWDirectActionRequestHandler*)
|
||||
defaultActionName:@"ping"
|
||||
shouldAddToStatistics:NO];
|
||||
pingDirectActionRequestHandlerKey=[[self class] pingActionRequestHandlerKey];
|
||||
|
||||
|
||||
// Stream Handler
|
||||
streamDirectActionRequestHandler=(GSWDirectActionRequestHandler*)
|
||||
[GSWDirectActionRequestHandler handler];
|
||||
|
||||
streamDirectActionRequestHandlerKey=[[self class] streamActionRequestHandlerKey];
|
||||
[streamDirectActionRequestHandler setAllowsContentInputStream:YES];
|
||||
|
||||
// Ajax
|
||||
|
||||
ajaxRequestHandlerKey = [[self class] ajaxRequestHandlerKey];
|
||||
ajaxRequestHander = [GSWAjaxRequestHandler handler];
|
||||
|
||||
[self registerRequestHandler:componentRequestHandler
|
||||
forKey:componentRequestHandlerKey];
|
||||
[self registerRequestHandler:resourceRequestHandler
|
||||
forKey:resourceRequestHandlerKey];
|
||||
[self registerRequestHandler:directActionRequestHandler
|
||||
forKey:directActionRequestHandlerKey];
|
||||
[self registerRequestHandler:directActionRequestHandler
|
||||
forKey:GSWDirectActionRequestHandlerKey[GSWebNamingConvInversed]];
|
||||
[self registerRequestHandler:pingDirectActionRequestHandler
|
||||
forKey:pingDirectActionRequestHandlerKey];
|
||||
[self registerRequestHandler:streamDirectActionRequestHandler
|
||||
forKey:streamDirectActionRequestHandlerKey];
|
||||
|
||||
[self registerRequestHandler:ajaxRequestHander
|
||||
forKey:ajaxRequestHandlerKey];
|
||||
|
||||
streamDirectActionRequestHandlerKey=[[self class] streamActionRequestHandlerKey];
|
||||
[streamDirectActionRequestHandler setAllowsContentInputStream:YES];
|
||||
|
||||
|
||||
[self registerRequestHandler:componentRequestHandler
|
||||
forKey:componentRequestHandlerKey];
|
||||
[self registerRequestHandler:resourceRequestHandler
|
||||
forKey:resourceRequestHandlerKey];
|
||||
[self registerRequestHandler:directActionRequestHandler
|
||||
forKey:directActionRequestHandlerKey];
|
||||
[self registerRequestHandler:directActionRequestHandler
|
||||
forKey:GSWDirectActionRequestHandlerKey[GSWebNamingConvInversed]];
|
||||
[self registerRequestHandler:pingDirectActionRequestHandler
|
||||
forKey:pingDirectActionRequestHandlerKey];
|
||||
[self registerRequestHandler:streamDirectActionRequestHandler
|
||||
forKey:streamDirectActionRequestHandlerKey];
|
||||
|
||||
// Default Request Handler
|
||||
defaultRequestHandlerClass=[self defaultRequestHandlerClass];
|
||||
if (defaultRequestHandlerClass)
|
||||
// Default Request Handler
|
||||
defaultRequestHandlerClass=[self defaultRequestHandlerClass];
|
||||
if (defaultRequestHandlerClass)
|
||||
defaultRequestHandler=(GSWRequestHandler*)[defaultRequestHandlerClass handler];
|
||||
else
|
||||
else
|
||||
defaultRequestHandler=componentRequestHandler;
|
||||
[self setDefaultRequestHandler:defaultRequestHandler];
|
||||
|
||||
|
||||
// If direct connect enabled, add static resources handler
|
||||
if ([[self class] isDirectConnectEnabled])
|
||||
[self setDefaultRequestHandler:defaultRequestHandler];
|
||||
|
||||
|
||||
// If direct connect enabled, add static resources handler
|
||||
if ([[self class] isDirectConnectEnabled])
|
||||
{
|
||||
GSWStaticResourceRequestHandler* staticResourceRequestHandler = (GSWStaticResourceRequestHandler*)
|
||||
GSWStaticResourceRequestHandler* staticResourceRequestHandler = (GSWStaticResourceRequestHandler*)
|
||||
[GSWStaticResourceRequestHandler handler];
|
||||
NSString* staticResourceRequestHandlerKey=[[self class] staticResourceRequestHandlerKey];
|
||||
[self registerRequestHandler:staticResourceRequestHandler
|
||||
forKey:staticResourceRequestHandlerKey];
|
||||
NSString* staticResourceRequestHandlerKey=[[self class] staticResourceRequestHandlerKey];
|
||||
[self registerRequestHandler:staticResourceRequestHandler
|
||||
forKey:staticResourceRequestHandlerKey];
|
||||
};
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -438,7 +438,7 @@ GSWResponse * _dispatchWithPreparedApplication(GSWApplication *app, GSWContext *
|
|||
// used in GSWApplication _componentRequestHandler
|
||||
+(id)handler
|
||||
{
|
||||
return [[GSWComponentRequestHandler new] autorelease];
|
||||
return [[self new] autorelease];
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -60,6 +60,8 @@ GSWEB_EXPORT NSString* GSWScriptPSuffix[2];
|
|||
GSWEB_EXPORT NSString* GSWResourceRequestHandlerKey[2];
|
||||
GSWEB_EXPORT NSString* GSWComponentRequestHandlerKey[2];
|
||||
GSWEB_EXPORT NSString* GSWDirectActionRequestHandlerKey[2];
|
||||
GSWEB_EXPORT NSString* GSWAjaxRequestHandlerKey[2];
|
||||
|
||||
GSWEB_EXPORT NSString* GSWPingActionRequestHandlerKey[2];
|
||||
GSWEB_EXPORT NSString* GSWStaticResourceRequestHandlerKey[2];
|
||||
GSWEB_EXPORT NSString* GSWComponentTemplateSuffix;
|
||||
|
@ -207,6 +209,7 @@ GSWEB_EXPORT NSString* GSWOPT_DebuggingEnabled[2];
|
|||
GSWEB_EXPORT NSString* GSWOPT_StatusDebuggingEnabled[2];
|
||||
GSWEB_EXPORT NSString* GSWOPT_StatusLoggingEnabled[2];
|
||||
GSWEB_EXPORT NSString* GSWOPT_DirectActionRequestHandlerKey[2];
|
||||
GSWEB_EXPORT NSString* GSWOPT_AjaxRequestHandlerKey[2];
|
||||
GSWEB_EXPORT NSString* GSWOPT_DirectConnectEnabled[2];
|
||||
GSWEB_EXPORT NSString* GSWOPT_FrameworksBaseURL[2];
|
||||
GSWEB_EXPORT NSString* GSWOPT_OutputPath[2];
|
||||
|
@ -258,6 +261,7 @@ GSWEB_EXPORT NSString* GSWOPTValue_DefaultTemplateParser_RawHTML;
|
|||
GSWEB_EXPORT NSString* GSWOPTValue_ComponentRequestHandlerKey[2];
|
||||
GSWEB_EXPORT NSString* GSWOPTValue_ResourceRequestHandlerKey[2];
|
||||
GSWEB_EXPORT NSString* GSWOPTValue_DirectActionRequestHandlerKey[2];
|
||||
GSWEB_EXPORT NSString* GSWOPTValue_AjaxRequestHanderKey[2];
|
||||
GSWEB_EXPORT NSString* GSWOPTValue_StreamActionRequestHandlerKey[2];
|
||||
GSWEB_EXPORT NSString* GSWOPTValue_PingActionRequestHandlerKey[2];
|
||||
GSWEB_EXPORT NSString* GSWOPTValue_StaticResourceRequestHandlerKey[2];
|
||||
|
|
|
@ -57,6 +57,7 @@ NSString* GSWScriptPSuffix[2]={ @".gsws", @".wos" };
|
|||
NSString* GSWResourceRequestHandlerKey[2]={ @"rr", @"wr" };
|
||||
NSString* GSWComponentRequestHandlerKey[2]={ @"cr", @"wo" };
|
||||
NSString* GSWDirectActionRequestHandlerKey[2]={ @"dr", @"wa" };
|
||||
NSString* GSWAjaxRequestHandlerKey[2]={ @"ja", @"ja" };
|
||||
NSString* GSWPingActionRequestHandlerKey[2]={ @"lb", @"wlb" };
|
||||
NSString* GSWComponentDeclarationsSuffix[2]={ @"gswd", @"wod" };
|
||||
NSString* GSWComponentDeclarationsPSuffix[2]={ @".gswd", @".wod" };
|
||||
|
@ -202,6 +203,7 @@ NSString* GSWOPT_DebuggingEnabled[2]={ @"GSWDebuggingEnabled", @"WODebuggingEnab
|
|||
NSString* GSWOPT_StatusDebuggingEnabled[2]={ @"GSWStatusDebuggingEnabled", @"WOStatusDebuggingEnabled" };//NDFN
|
||||
NSString* GSWOPT_StatusLoggingEnabled[2]={ @"GSWStatusLoggingEnabled", @"WOStatusLoggingEnabled" };//NDFN
|
||||
NSString* GSWOPT_DirectActionRequestHandlerKey[2]={ @"GSWDirectActionRequestHandlerKey", @"WODirectActionRequestHandlerKey" };
|
||||
NSString* GSWOPT_AjaxRequestHandlerKey[2]={ @"AjaxRequestHandlerKey", @"AjaxRequestHandlerKey" };
|
||||
NSString* GSWOPT_PingActionRequestHandlerKey[2]={ @"GSWPingActionRequestHandlerKey", @"WOPingActionRequestHandlerKey" };
|
||||
NSString* GSWOPT_StaticResourceRequestHandlerKey[2]={ @"GSWStaticResourceRequestHandlerKey", @"WOStaticResourceRequestHandlerKey" };
|
||||
NSString* GSWOPT_DirectConnectEnabled[2]={ @"GSWDirectConnectEnabled", @"WODirectConnectEnabled" };
|
||||
|
@ -253,6 +255,8 @@ NSString* GSWOPTValue_DefaultTemplateParser_RawHTML = @"RawHTML";
|
|||
NSString* GSWOPTValue_ComponentRequestHandlerKey[2]={ @"cr", @"wo" };
|
||||
NSString* GSWOPTValue_ResourceRequestHandlerKey[2]={ @"rr", @"wr" };
|
||||
NSString* GSWOPTValue_DirectActionRequestHandlerKey[2]={ @"dr", @"wa" };
|
||||
// Ajax
|
||||
NSString* GSWOPTValue_AjaxRequestHanderKey[2]={ @"ja", @"ja" };
|
||||
NSString* GSWOPTValue_StreamActionRequestHandlerKey[2]={ @"sr", @"wis" };
|
||||
NSString* GSWOPTValue_PingActionRequestHandlerKey[2]={ @"lb", @"wlb" };
|
||||
NSString* GSWOPTValue_StaticResourceRequestHandlerKey[2]={ @"_rr_", @"_wr_" };
|
||||
|
|
|
@ -177,6 +177,8 @@ GSWEB_EXPORT BOOL GSWContext_isSenderIDSearchOver(GSWContext* aContext);
|
|||
-(NSString*)docStructure;
|
||||
#endif
|
||||
|
||||
- (BOOL) shouldNotStorePageInBacktrackCache;
|
||||
|
||||
-(GSWDynamicURLString*)directActionURLForActionNamed:(NSString*)actionName
|
||||
urlPrefix:(NSString*)urlPrefix
|
||||
queryDictionary:(NSDictionary*)queryDictionary;
|
||||
|
|
|
@ -740,6 +740,21 @@ GSWEB_EXPORT BOOL GSWContext_isSenderIDSearchOver(GSWContext* aContext)
|
|||
}
|
||||
#endif
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
|
||||
- (BOOL) shouldNotStorePageInBacktrackCache
|
||||
{
|
||||
BOOL shouldNot = NO;
|
||||
|
||||
BOOL requestNotStorePageInBacktrackCache = ((_request) && ([_request storePageInBacktrackCache] == NO));
|
||||
BOOL responseNotStorePageInBacktrackCache = ((_response) && ([_response storePageInBacktrackCache] == NO));
|
||||
BOOL requestIsAjaxSubmit = ((_request) && [_request isAjaxSubmit]);
|
||||
|
||||
shouldNot = (responseNotStorePageInBacktrackCache || requestNotStorePageInBacktrackCache || requestIsAjaxSubmit);
|
||||
|
||||
return shouldNot;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
-(GSWDynamicURLString*)directActionURLForActionNamed:(NSString*)actionName
|
||||
urlPrefix:(NSString*)urlPrefix
|
||||
|
|
|
@ -84,22 +84,27 @@ GSWEB_EXPORT NSString* GSWMessage_stringByConvertingToHTML(GSWMessage* aMessage,
|
|||
//====================================================================
|
||||
@interface GSWMessage : NSObject <NSCopying>
|
||||
{
|
||||
NSString* _httpVersion;
|
||||
NSMutableDictionary* _headers;
|
||||
NSMutableArray* _cookies;
|
||||
NSStringEncoding _contentEncoding;
|
||||
NSDictionary* _userInfo;
|
||||
NSMutableData* _contentData;
|
||||
IMP _contentDataADImp;
|
||||
|
||||
NSMutableArray* _cachesStack; // Cache Stacks
|
||||
NSMutableData* _currentCacheData; // Current Cache Data (last object of _cachesStack). Do not retain/release
|
||||
IMP _currentCacheDataADImp;
|
||||
|
||||
BOOL _storePageInBacktrackCache;
|
||||
NSString* _httpVersion;
|
||||
NSMutableDictionary* _headers;
|
||||
NSMutableArray* _cookies;
|
||||
NSStringEncoding _contentEncoding;
|
||||
NSDictionary* _userInfo;
|
||||
NSMutableData* _contentData;
|
||||
IMP _contentDataADImp;
|
||||
|
||||
NSMutableArray* _cachesStack; // Cache Stacks
|
||||
NSMutableData* _currentCacheData; // Current Cache Data (last object of _cachesStack). Do not retain/release
|
||||
IMP _currentCacheDataADImp;
|
||||
|
||||
@public // For functions
|
||||
GSWMessageIMPs _selfMsgIMPs;
|
||||
GSWMessageIMPs _selfMsgIMPs;
|
||||
};
|
||||
|
||||
-(BOOL)storePageInBacktrackCache;
|
||||
|
||||
-(void)setStorePageInBacktrackCache:(BOOL) yn;
|
||||
|
||||
-(void)setHTTPVersion:(NSString*)version;
|
||||
-(NSString*)httpVersion;
|
||||
|
||||
|
|
|
@ -455,6 +455,7 @@ static __inline__ NSMutableData *_checkBody(GSWMessage *self) {
|
|||
{
|
||||
GetGSWMessageIMPs(&_selfMsgIMPs,self);
|
||||
ASSIGN(_httpVersion,@"HTTP/1.0");
|
||||
_storePageInBacktrackCache = YES;
|
||||
_headers=[NSMutableDictionary new];
|
||||
_contentEncoding=[[self class] defaultEncoding];
|
||||
_checkBody(self);
|
||||
|
@ -538,6 +539,16 @@ static __inline__ NSMutableData *_checkBody(GSWMessage *self) {
|
|||
return isEqual;
|
||||
}
|
||||
|
||||
-(BOOL)storePageInBacktrackCache
|
||||
{
|
||||
return _storePageInBacktrackCache;
|
||||
}
|
||||
|
||||
-(void)setStorePageInBacktrackCache:(BOOL) yn
|
||||
{
|
||||
_storePageInBacktrackCache = yn;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
// setHTTPVersion:
|
||||
|
||||
|
|
|
@ -64,25 +64,25 @@ Cf RFC 2616 (http://www.rfc-editor.org/rfc/rfc2616.txt)
|
|||
@interface GSWRequest : GSWMessage
|
||||
{
|
||||
@private
|
||||
NSString* _method;
|
||||
GSWDynamicURLString* _uri;
|
||||
NSStringEncoding _defaultFormValueEncoding;
|
||||
NSStringEncoding _formValueEncoding;
|
||||
NSDictionary* _formValues;
|
||||
NSDictionary* _uriElements;
|
||||
NSDictionary* _cookie;
|
||||
BOOL _finishedParsingMultipartFormData;
|
||||
NSString* _applicationURLPrefix;
|
||||
NSArray* _requestHandlerPathArray;
|
||||
NSArray* _browserLanguages;
|
||||
NSArray* _browserAcceptedEncodings;
|
||||
int _requestType;
|
||||
NSString* _originatingAddress;
|
||||
uint16_t _originatingPort;
|
||||
BOOL _isUsingWebServer;
|
||||
BOOL _formValueEncodingDetectionEnabled;
|
||||
int _applicationNumber;
|
||||
GSWContext* _context;//Don't retain/release because request is retained by context
|
||||
NSString* _method;
|
||||
GSWDynamicURLString* _uri;
|
||||
NSStringEncoding _defaultFormValueEncoding;
|
||||
NSStringEncoding _formValueEncoding;
|
||||
NSDictionary* _formValues;
|
||||
NSDictionary* _uriElements;
|
||||
NSDictionary* _cookie;
|
||||
BOOL _finishedParsingMultipartFormData;
|
||||
NSString* _applicationURLPrefix;
|
||||
NSArray* _requestHandlerPathArray;
|
||||
NSArray* _browserLanguages;
|
||||
NSArray* _browserAcceptedEncodings;
|
||||
int _requestType;
|
||||
NSString* _originatingAddress;
|
||||
uint16_t _originatingPort;
|
||||
BOOL _isUsingWebServer;
|
||||
BOOL _formValueEncodingDetectionEnabled;
|
||||
int _applicationNumber;
|
||||
GSWContext* _context;//Don't retain/release because request is retained by context
|
||||
};
|
||||
|
||||
-(id)initWithMethod:(NSString*)aMethod
|
||||
|
@ -166,6 +166,12 @@ Cf RFC 2616 (http://www.rfc-editor.org/rfc/rfc2616.txt)
|
|||
-(NSString*)_contentType;
|
||||
-(NSString*)_urlQueryString;
|
||||
|
||||
-(BOOL)isAjaxSubmit;
|
||||
|
||||
+(NSString*)ajaxFormSubmitKey;
|
||||
|
||||
+(void)setAjaxFormSubmitKey:(NSString*) value;
|
||||
|
||||
-(BOOL)_isUsingWebServer;
|
||||
-(BOOL)isUsingWebServer;
|
||||
|
||||
|
|
|
@ -4,10 +4,6 @@
|
|||
|
||||
Written by: Manuel Guesdon <mguesdon@orange-concept.com>
|
||||
Date: Jan 1999
|
||||
|
||||
$Revision$
|
||||
$Date$
|
||||
$Id$
|
||||
|
||||
This file is part of the GNUstep Web Library.
|
||||
|
||||
|
@ -198,6 +194,8 @@
|
|||
|
||||
@implementation GSWRequest
|
||||
|
||||
static NSString * __AJAX_FORM_SUBMIT_KEY = @"AJAX_SUBMIT_BUTTON_NAME";
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
// initWithMethod:uri:httpVersion:headers:content:userInfo:
|
||||
|
||||
|
@ -722,6 +720,10 @@
|
|||
{
|
||||
id formValue=nil;
|
||||
NSArray* formValuesForKey=nil;
|
||||
|
||||
if (!key) {
|
||||
return nil;
|
||||
}
|
||||
|
||||
formValuesForKey=[self formValuesForKey:key];
|
||||
NSAssert3(!formValuesForKey || [formValuesForKey isKindOfClass:[NSArray class]],@"formValues:%@ ForKey:%@ is not a NSArray it's a %@",
|
||||
|
@ -1369,6 +1371,22 @@
|
|||
};
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
|
||||
-(BOOL) isAjaxSubmit
|
||||
{
|
||||
return ([self formValueForKey:[[self class] ajaxFormSubmitKey]] != nil);
|
||||
}
|
||||
|
||||
+ (NSString*) ajaxFormSubmitKey
|
||||
{
|
||||
return (__AJAX_FORM_SUBMIT_KEY == nil) ? @"" : __AJAX_FORM_SUBMIT_KEY;
|
||||
}
|
||||
|
||||
+ (void) setAjaxFormSubmitKey:(NSString*) value
|
||||
{
|
||||
ASSIGN(__AJAX_FORM_SUBMIT_KEY,(value == nil) ? @"" : value);
|
||||
}
|
||||
|
||||
// FIXME:check if that is needed for 4.5 compat
|
||||
-(BOOL)_isUsingWebServer
|
||||
{
|
||||
|
|
|
@ -588,7 +588,22 @@ extern id gcObjectsToBeVisited;
|
|||
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
|
||||
-(void)savePageInPageFragmentCache:(GSWComponent*)page
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
-(void)savePage:(GSWComponent*)page
|
||||
{
|
||||
if ([_currentContext shouldNotStorePageInBacktrackCache]) {
|
||||
[self savePageInPageFragmentCache:page];
|
||||
} else {
|
||||
[self savePageInPageCache:page];
|
||||
}
|
||||
}
|
||||
|
||||
-(void)savePageInPageCache:(GSWComponent*)page
|
||||
{
|
||||
GSWTransactionRecord * transactionrec = nil;
|
||||
BOOL pageChanged = [_currentContext _pageChanged];
|
||||
|
|
|
@ -66,6 +66,7 @@
|
|||
#define GSWBundle WOBundle
|
||||
#define GSWMultiKeyDictionary WOMultiKeyDictionary
|
||||
#define GSWElementID WOElementIDString
|
||||
#define GSWAjaxRequestHandler WOAjaxRequestHandler
|
||||
#define GSWComponentRequestHandler WOComponentRequestHandler
|
||||
#define GSWResourceRequestHandler WOResourceRequestHandler
|
||||
#define GSWDirectActionRequestHandler WODirectActionRequestHandler
|
||||
|
|
|
@ -111,6 +111,7 @@
|
|||
@class GSWResourceRequestHandler;
|
||||
@class GSWStaticResourceRequestHandler;
|
||||
@class GSWActionRequestHandler;
|
||||
@class GSWAjaxRequestHandler;
|
||||
@class GSWDirectActionRequestHandler;
|
||||
@class GSWKeyValueAssociation;
|
||||
@class GSWConstantValueAssociation;
|
||||
|
@ -236,6 +237,7 @@
|
|||
#include "GSWResourceRequestHandler.h"
|
||||
#include "GSWStaticResourceRequestHandler.h"
|
||||
#include "GSWActionRequestHandler.h"
|
||||
#include "GSWAjaxRequestHandler.h"
|
||||
#include "GSWDirectActionRequestHandler.h"
|
||||
#include "GSWKeyValueAssociation.h"
|
||||
#include "GSWConstantValueAssociation.h"
|
||||
|
|
Loading…
Reference in a new issue