From ab1e7046a4804b57b732144cbe9d57c19465abcd Mon Sep 17 00:00:00 2001 From: helge Date: Thu, 24 Mar 2005 23:03:49 +0000 Subject: [PATCH] added folder create/delete buttons git-svn-id: http://svn.opengroupware.org/SOGo/trunk@637 d1b88da0-ebda-0310-925b-ed51d893ca5b --- SOGo/UI/MailerUI/ChangeLog | 8 +++++ SOGo/UI/MailerUI/UIxMailListView.m | 45 +++++++++++++++++++++++++++ SOGo/UI/MailerUI/Version | 2 +- SOGo/UI/MailerUI/product.plist | 19 ++++++++++- SOGo/UI/WebServerResources/mailer.css | 2 ++ SOGo/UI/WebServerResources/mailer.js | 24 ++++++++++++++ 6 files changed, 98 insertions(+), 2 deletions(-) diff --git a/SOGo/UI/MailerUI/ChangeLog b/SOGo/UI/MailerUI/ChangeLog index 5c34a68e..48862a75 100644 --- a/SOGo/UI/MailerUI/ChangeLog +++ b/SOGo/UI/MailerUI/ChangeLog @@ -1,3 +1,11 @@ +2005-03-24 Helge Hess + + * v0.9.123 + + * UIxMailListView.m: added create/delete folder operations + + * product.plist: added folder-add/delete buttons in toolbar + 2005-03-23 Marcus Mueller * renamed "default.strings" to "Localizable.strings" (v0.9.122) diff --git a/SOGo/UI/MailerUI/UIxMailListView.m b/SOGo/UI/MailerUI/UIxMailListView.m index f8a2f102..495e7dbd 100644 --- a/SOGo/UI/MailerUI/UIxMailListView.m +++ b/SOGo/UI/MailerUI/UIxMailListView.m @@ -517,4 +517,49 @@ static int attachmentFlagSize = 8096; return [self redirectToLocation:@"view"]; } +/* folder operations */ + +- (id)createFolderAction { + NSException *error; + NSString *folderName; + id client; + + folderName = [[[self context] request] formValueForKey:@"name"]; + if ([folderName length] == 0) { + return [NSException exceptionWithHTTPStatus:400 /* Bad Request */ + reason:@"missing 'name' query parameter!"]; + } + + if ((client = [self clientObject]) == nil) { + return [NSException exceptionWithHTTPStatus:404 /* Not Found */ + reason:@"did not find mail folder"]; + } + + if ((error = [[self clientObject] davCreateCollection:folderName + inContext:[self context]]) != nil) + return error; + + return [self redirectToLocation:[folderName stringByAppendingString:@"/"]]; +} + +- (id)deleteFolderAction { + NSException *error; + NSString *url; + id client; + + if ((client = [self clientObject]) == nil) { + return [NSException exceptionWithHTTPStatus:404 /* Not Found */ + reason:@"did not find mail folder"]; + } + + /* jump to parent folder afterwards */ + url = [[client container] baseURLInContext:[self context]]; + if (![url hasSuffix:@"/"]) url = [url stringByAppendingString:@"/"]; + + if ((error = [[self clientObject] delete]) != nil) + return error; + + return [self redirectToLocation:url]; +} + @end /* UIxMailListView */ diff --git a/SOGo/UI/MailerUI/Version b/SOGo/UI/MailerUI/Version index 9c01ce9a..96d59ce0 100644 --- a/SOGo/UI/MailerUI/Version +++ b/SOGo/UI/MailerUI/Version @@ -1,6 +1,6 @@ # version file -SUBMINOR_VERSION:=122 +SUBMINOR_VERSION:=123 # v0.9.100 requires libNGMime v4.5.213 # v0.9.99 requires libNGMime v4.5.212 diff --git a/SOGo/UI/MailerUI/product.plist b/SOGo/UI/MailerUI/product.plist index 3d334677..ae4559a3 100644 --- a/SOGo/UI/MailerUI/product.plist +++ b/SOGo/UI/MailerUI/product.plist @@ -113,6 +113,12 @@ cssClass = "tbicon_junk"; label = "Junk"; }, */ ), + ( // fourth group (folders) + { link = "#"; onclick="return ctxFolderAdd(this)"; + cssClass = "tbicon_folderadd"; label = "Create"; }, + { link = "#"; onclick="return ctxFolderDelete(this)"; + cssClass = "tbicon_folderdel"; label = "Delete"; }, + ), ( /* fourth group */ /* TODO: enable when we can print (#1207) { link = "#"; cssClass = "tbicon_print"; label = "Print"; }, @@ -160,7 +166,18 @@ pageName = "UIxMailListView"; actionName = "expunge"; }; - + + createFolder = { + protectedBy = "View"; + pageName = "UIxMailListView"; + actionName = "createFolder"; + }; + deleteFolder = { + protectedBy = "View"; + pageName = "UIxMailListView"; + actionName = "deleteFolder"; + }; + compose = { protectedBy = "View"; actionClass = "UIxMailEditorAction"; diff --git a/SOGo/UI/WebServerResources/mailer.css b/SOGo/UI/WebServerResources/mailer.css index ff116df0..0ce73304 100644 --- a/SOGo/UI/WebServerResources/mailer.css +++ b/SOGo/UI/WebServerResources/mailer.css @@ -180,6 +180,8 @@ td.titlecell { .tbicon_send { background-image: url(tbtb_compose_send_30x30.png); } .tbicon_attach { background-image: url(tbtb_compose_attach_30x30.png); } .tbicon_save { background-image: url(tbtb_compose_file_30x30.png); } +.tbicon_folderadd { background-image: url(tbtb_folderadd.png); } +.tbicon_folderdel { background-image: url(tbtb_folderdel.png); } /* mail tableview */ diff --git a/SOGo/UI/WebServerResources/mailer.js b/SOGo/UI/WebServerResources/mailer.js index 7c6e9ad2..8c347e67 100644 --- a/SOGo/UI/WebServerResources/mailer.js +++ b/SOGo/UI/WebServerResources/mailer.js @@ -294,3 +294,27 @@ function ml_lowlight(sender) { else sender.className = "tableview"; } + + +/* folder operations */ + +function ctxFolderAdd(sender) { + var folderName; + + folderName = prompt("Foldername: "); + if (folderName == undefined) + return false; + if (folderName == "") + return false; + + window.location.href = "createFolder?name=" + escape(folderName); + return false; +} + +function ctxFolderDelete(sender) { + if (!confirm("Delete current folder?")) + return false; + + window.location.href = "deleteFolder"; + return false; +} -- 2.39.5