From f2e7a70a2c872efa285059785fb87d66e5d56250 Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Tue, 11 Sep 2007 19:41:40 +0000 Subject: [PATCH] Monotone-Parent: 48ab3ba04ae37aa55ddec9a67b39c8be57786c6d Monotone-Revision: 66fc4d9ee925358de80c05092a80e0b39ae6c95d Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2007-09-11T19:41:40 Monotone-Branch: ca.inverse.sogo --- ChangeLog | 14 +++++++ UI/MailerUI/UIxMailActions.m | 45 +++++++++++++++-------- UI/MailerUI/UIxMailListView.m | 61 ------------------------------- UI/MailerUI/product.plist | 20 +++++----- UI/WebServerResources/MailerUI.js | 2 +- 5 files changed, 54 insertions(+), 88 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1cdacfa64..e960e5f61 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,19 @@ 2007-09-11 Wolfgang Sourdeau + * UI/MailerUI/UIxMailActions.m ([UIxMailActions -markMessageUnreadAction]) + ([UIxMailActions -markMessageReadAction]): new methods moved from + UIxMailListView and adapted to invoke the client object directly, + since the previous versions had to to a lookup from the parent + SOGoMailFolder. + + * UI/MailerUI/UIxMailListView.m ([-markMessageUnreadAction]): move + method into UIxMailActions. + ([-markMessageReadAction]): same as above. + ([-viewAction]): removed useless method. + ([-javaScriptOK]): removed useless method. + ([-isJavaScriptRequest]): removed useless method. + ([-lookupActiveMessage]): removed useless method. + * UI/Common/WODirectAction+SOGo.m ([WODirectAction -responseWithStatus:status]): new method that returns a WOResponse initialized with the specified status code. diff --git a/UI/MailerUI/UIxMailActions.m b/UI/MailerUI/UIxMailActions.m index 42b5fa0e3..3ebf019c0 100644 --- a/UI/MailerUI/UIxMailActions.m +++ b/UI/MailerUI/UIxMailActions.m @@ -94,10 +94,7 @@ response = [[self clientObject] trashInContext: context]; if (!response) - { - response = [context response]; - [response setStatus: 204]; - } + response = [self responseWith204]; return response; } @@ -113,10 +110,7 @@ response = [[self clientObject] moveToFolderNamed: destinationFolder inContext: context]; if (!response) - { - response = [context response]; - [response setStatus: 204]; - } + response = [self responseWith204]; } else response = [NSException exceptionWithHTTPStatus: 500 /* Server Error */ @@ -125,6 +119,30 @@ return response; } +/* active message */ + +- (id) markMessageUnreadAction +{ + id response; + + response = [[self clientObject] removeFlags: @"seen"]; + if (!response) + response = [self responseWith204]; + + return response; +} + +- (id) markMessageReadAction +{ + id response; + + response = [[self clientObject] addFlags: @"seen"]; + if (!response) + response = [self responseWith204]; + + return response; +} + /* SOGoDraftObject */ - (WOResponse *) editAction { @@ -158,10 +176,7 @@ if (error) response = error; else - { - response = [context response]; - [response setStatus: 204]; - } + response = [self responseWith204]; return response; } @@ -171,17 +186,15 @@ WOResponse *response; NSString *filename; - response = [context response]; - filename = [[context request] formValueForKey: @"filename"]; if ([filename length] > 0) { + response = [self responseWith204]; [[self clientObject] deleteAttachmentWithName: filename]; - [response setStatus: 204]; } else { - [response setStatus: 500]; + response = [self responseWithStatus: 500]; [response appendContentString: @"How did you end up here?"]; } diff --git a/UI/MailerUI/UIxMailListView.m b/UI/MailerUI/UIxMailListView.m index 9872f8bf8..143707c93 100644 --- a/UI/MailerUI/UIxMailListView.m +++ b/UI/MailerUI/UIxMailListView.m @@ -421,36 +421,8 @@ static int attachmentFlagSize = 8096; return [self redirectToLocation:url]; } -/* active message */ - -- (SOGoMailObject *) lookupActiveMessage -{ - NSString *uid; - - if ((uid = [[context request] formValueForKey: @"uid"]) == nil) - return nil; - - return [[self clientObject] lookupName: uid - inContext: context - acquire: NO]; -} - /* actions */ -- (BOOL) isJavaScriptRequest -{ - return [[[context request] formValueForKey:@"jsonly"] boolValue]; -} - -- (id) javaScriptOK -{ - WOResponse *r; - - r = [context response]; - [r setStatus:200 /* OK */]; - return r; -} - - (int) firstMessageOfPageFor: (int) messageNbr { NSArray *messageNbrs; @@ -523,39 +495,6 @@ static int attachmentFlagSize = 8096; return self; } -- (id) viewAction -{ - return [self defaultAction]; -} - -- (id) markMessageUnreadAction -{ - NSException *error; - - if ((error = [[self lookupActiveMessage] removeFlags:@"seen"]) != nil) - // TODO: improve error handling - return error; - - if ([self isJavaScriptRequest]) - return [self javaScriptOK]; - - return [self redirectToLocation:@"view"]; -} - -- (id) markMessageReadAction -{ - NSException *error; - - if ((error = [[self lookupActiveMessage] addFlags:@"seen"]) != nil) - // TODO: improve error handling - return error; - - if ([self isJavaScriptRequest]) - return [self javaScriptOK]; - - return [self redirectToLocation:@"view"]; -} - - (id) getMailAction { // TODO: we might want to flush the caches? diff --git a/UI/MailerUI/product.plist b/UI/MailerUI/product.plist index d6806567c..73ed08099 100644 --- a/UI/MailerUI/product.plist +++ b/UI/MailerUI/product.plist @@ -115,16 +115,6 @@ protectedBy = "View"; pageName = "UIxMailListView"; }; - markMessageUnread = { - protectedBy = "View"; - pageName = "UIxMailListView"; - actionName = "markMessageUnread"; - }; - markMessageRead = { - protectedBy = "View"; - pageName = "UIxMailListView"; - actionName = "markMessageRead"; - }; getMail = { protectedBy = "View"; pageName = "UIxMailListView"; @@ -235,6 +225,16 @@ actionClass = "UIxMailActions"; actionName = "forward"; }; + markMessageUnread = { + protectedBy = "View"; + actionClass = "UIxMailActions"; + actionName = "markMessageUnread"; + }; + markMessageRead = { + protectedBy = "View"; + actionClass = "UIxMailActions"; + actionName = "markMessageRead"; + }; }; }; diff --git a/UI/WebServerResources/MailerUI.js b/UI/WebServerResources/MailerUI.js index 09814bc55..6fca56d53 100644 --- a/UI/WebServerResources/MailerUI.js +++ b/UI/WebServerResources/MailerUI.js @@ -149,7 +149,7 @@ function openMessageWindowsForSelection(action, firstOnly) { function mailListMarkMessage(event) { var http = createHTTPClient(); - var url = ApplicationBaseURL + currentMailbox + "/" + action + "?uid=" + msguid; + var url = ApplicationBaseURL + currentMailbox + "/" + msguid + "/" + action; if (http) { // TODO: add parameter to signal that we are only interested in OK