*/
#import <Foundation/NSUserDefaults.h>
+
+#import <NGObjWeb/WOContext.h>
#import <NGObjWeb/WORequest.h>
+#import <NGObjWeb/WOResponse.h>
#import <NGObjWeb/SoComponent.h>
#import <NGExtensions/NSString+misc.h>
@implementation UIxMailMainFrame
+- (void) _setupContext
+{
+ SOGoUser *activeUser;
+ NSString *login, *module;
+ SOGoMailAccounts *clientObject;
+
+ activeUser = [context activeUser];
+ login = [activeUser login];
+ clientObject = [self clientObject];
+
+ module = [clientObject nameInContainer];
+
+ ud = [activeUser userSettings];
+ moduleSettings = [ud objectForKey: module];
+ if (!moduleSettings)
+ {
+ moduleSettings = [NSMutableDictionary new];
+ [moduleSettings autorelease];
+ }
+ [ud setObject: moduleSettings forKey: module];
+}
+
/* accessors */
- (NSString *) mailAccounts
{
- (id <WOActionResults>) composeAction
{
NSArray *accounts;
- NSString *firstAccount, *newLocation;
+ NSString *firstAccount, *newLocation, *parameters;
SOGoMailAccounts *co;
NSDictionary *formValues;
accounts = [[context activeUser] mailAccounts];
firstAccount = [[accounts objectsForKey: @"name"] objectAtIndex: 0];
formValues = [[context request] formValues];
+ parameters = [formValues count] > 0 ? [formValues asURLParameters] : @"?mailto=";
newLocation = [NSString stringWithFormat: @"%@/%@/compose%@",
[co baseURLInContext: context],
firstAccount,
- [formValues asURLParameters]];
+ parameters];
return [self redirectToLocation: newLocation];
}
+- (WOResponse *) getFoldersStateAction
+{
+ NSString *expandedFolders;
+
+ [self _setupContext];
+ expandedFolders = [moduleSettings objectForKey: @"ExpandedFolders"];
+
+ return [self responseWithStatus: 200 andString: expandedFolders];
+}
+
+- (WOResponse *) saveFoldersStateAction
+{
+ WORequest *request;
+ NSString *expandedFolders;
+
+ [self _setupContext];
+ request = [context request];
+ expandedFolders = [request formValueForKey: @"expandedFolders"];
+
+ [moduleSettings setObject: expandedFolders
+ forKey: @"ExpandedFolders"];
+
+ [ud synchronize];
+
+ return [self responseWithStatus: 204];
+}
+
@end /* UIxMailMainFrame */