From 806b38d1689df7de42a09297cac43239b005ff94 Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Fri, 14 Sep 2007 22:10:39 +0000 Subject: [PATCH] Monotone-Parent: e70627145b37fbab2e0e7b1108fd56e5ffcc5c96 Monotone-Revision: 0ca38e156b53ac1d513713a7a641b5b539767332 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2007-09-14T22:10:39 Monotone-Branch: ca.inverse.sogo --- ChangeLog | 6 +++ UI/Common/UIxParentFolderActions.h | 31 +++++++++++++++ UI/Common/UIxParentFolderActions.m | 61 ++++++++++++++++++++++++++++++ 3 files changed, 98 insertions(+) create mode 100644 UI/Common/UIxParentFolderActions.h create mode 100644 UI/Common/UIxParentFolderActions.m diff --git a/ChangeLog b/ChangeLog index 23834091d..2a1e038f4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2007-09-14 Wolfgang Sourdeau + * UI/Common/UIxParentFolderActions.m ([UIxParentFolderActions + -createFolderAction]): new standardized method for requesting + folder creations among gcs-based modules. + + * UI/Common/UIxParentFolderActions.[hm]: new action class module. + * SoObjects/Appointments/SOGoAppointmentFolders.m: new class module, equivalent to the SOGoParentFolder's child SOGoContactFolders, but for calendars. diff --git a/UI/Common/UIxParentFolderActions.h b/UI/Common/UIxParentFolderActions.h new file mode 100644 index 000000000..c380f0642 --- /dev/null +++ b/UI/Common/UIxParentFolderActions.h @@ -0,0 +1,31 @@ +/* UIxParentFolderActions.h - this file is part of SOGo + * + * Copyright (C) 2007 Inverse groupe conseil + * + * Author: Wolfgang Sourdeau + * + * This file is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This file is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef UIXPARENTFOLDERACTIONS_H +#define UIXPARENTFOLDERACTIONS_H + +#import + +@interface UIxParentFolderActions : WODirectAction +@end + +#endif /* UIXPARENTFOLDERACTIONS_H */ diff --git a/UI/Common/UIxParentFolderActions.m b/UI/Common/UIxParentFolderActions.m new file mode 100644 index 000000000..8f7599365 --- /dev/null +++ b/UI/Common/UIxParentFolderActions.m @@ -0,0 +1,61 @@ +/* UIxParentFolderActions.m - this file is part of SOGo + * + * Copyright (C) 2007 Inverse groupe conseil + * + * Author: Wolfgang Sourdeau + * + * This file is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This file is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#import + +#import +#import +#import + +#import +#import + +#import "UIxParentFolderActions.h" + +@implementation UIxParentFolderActions + +- (id ) createFolderAction +{ + WOResponse *response; + NSString *name, *nameInContainer; + + name = [[context request] formValueForKey: @"name"]; + if ([name length] > 0) + { + response = (WOResponse *) [[self clientObject] newFolderWithName: name + nameInContainer: &nameInContainer]; + if (!response) + { + response = [self responseWithStatus: 201]; + [response setHeader: @"text/plain; charset=us-ascii" + forKey: @"content-type"]; + [response appendContentString: nameInContainer]; + } + } + else + response = [NSException exceptionWithHTTPStatus: 400 + reason: @"The name is missing"]; + + return response; +} + +@end