From 8e55eeb4b90b5d017e36b486765af75e182be094 Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Thu, 13 Aug 2009 10:40:25 +0000 Subject: [PATCH] New administration module Monotone-Parent: 8542ad5d3580057a3e361ef25f6c24df41841c52 Monotone-Revision: f6040f9d8af2e51778344f97f1c76c9125f0af7b Monotone-Author: flachapelle@inverse.ca Monotone-Date: 2009-08-13T10:40:25 Monotone-Branch: ca.inverse.sogo --- ChangeLog | 5 + UI/AdministrationUI/AdministrationUIProduct.m | 33 +++++ .../Localizable.strings | 12 ++ .../Czech.lproj/Localizable.strings | 12 ++ .../Dutch.lproj/Localizable.strings | 12 ++ .../English.lproj/Localizable.strings | 12 ++ .../French.lproj/Localizable.strings | 12 ++ UI/AdministrationUI/GNUmakefile | 32 +++++ .../German.lproj/Localizable.strings | 12 ++ .../Hungarian.lproj/Localizable.strings | 12 ++ .../Italian.lproj/Localizable.strings | 12 ++ .../Russian.lproj/Localizable.strings | 12 ++ .../Spanish.lproj/Localizable.strings | 12 ++ UI/AdministrationUI/UIxAdministration.h | 37 ++++++ UI/AdministrationUI/UIxAdministration.m | 55 ++++++++ .../UIxAdministrationFilterPanel.m | 119 ++++++++++++++++++ UI/AdministrationUI/Version | 1 + .../Welsh.lproj/Localizable.strings | 12 ++ UI/AdministrationUI/product.plist | 22 ++++ UI/Common/English.lproj/Localizable.strings | 1 + UI/Common/UIxPageFrame.m | 14 ++- UI/GNUmakefile | 21 ++-- UI/MainUI/SOGoUserHomePage.m | 18 +-- UI/Templates/UIxPageFrame.wox | 11 ++ UI/WebServerResources/SOGoDragHandles.js | 1 + 25 files changed, 478 insertions(+), 24 deletions(-) create mode 100644 UI/AdministrationUI/AdministrationUIProduct.m create mode 100644 UI/AdministrationUI/BrazilianPortuguese.lproj/Localizable.strings create mode 100644 UI/AdministrationUI/Czech.lproj/Localizable.strings create mode 100644 UI/AdministrationUI/Dutch.lproj/Localizable.strings create mode 100644 UI/AdministrationUI/English.lproj/Localizable.strings create mode 100644 UI/AdministrationUI/French.lproj/Localizable.strings create mode 100644 UI/AdministrationUI/GNUmakefile create mode 100644 UI/AdministrationUI/German.lproj/Localizable.strings create mode 100644 UI/AdministrationUI/Hungarian.lproj/Localizable.strings create mode 100644 UI/AdministrationUI/Italian.lproj/Localizable.strings create mode 100644 UI/AdministrationUI/Russian.lproj/Localizable.strings create mode 100644 UI/AdministrationUI/Spanish.lproj/Localizable.strings create mode 100644 UI/AdministrationUI/UIxAdministration.h create mode 100644 UI/AdministrationUI/UIxAdministration.m create mode 100644 UI/AdministrationUI/UIxAdministrationFilterPanel.m create mode 100644 UI/AdministrationUI/Version create mode 100644 UI/AdministrationUI/Welsh.lproj/Localizable.strings create mode 100644 UI/AdministrationUI/product.plist diff --git a/ChangeLog b/ChangeLog index 76092fa85..3b04e789f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2009-08-14 Francis Lachapelle + + * UI/AdministrationUI/UIxAdministration.m: new administration + module. Initial functionalities are limited to ACLs management. + 2009-08-14 Wolfgang Sourdeau * Tools/SOGoToolRestore.m: new "sogo-tool" utility that restores diff --git a/UI/AdministrationUI/AdministrationUIProduct.m b/UI/AdministrationUI/AdministrationUIProduct.m new file mode 100644 index 000000000..8e6dd5c86 --- /dev/null +++ b/UI/AdministrationUI/AdministrationUIProduct.m @@ -0,0 +1,33 @@ +/* AdministrationUIProduct.m - this file is part of SOGo + * + * Copyright (C) 2009 Inverse inc. + * + * Author: Francis Lachapelle + * + * 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 + +@interface AdministrationUIProduct : NSObject +{ +} + +@end + +@implementation AdministrationUIProduct + +@end diff --git a/UI/AdministrationUI/BrazilianPortuguese.lproj/Localizable.strings b/UI/AdministrationUI/BrazilianPortuguese.lproj/Localizable.strings new file mode 100644 index 000000000..e36dddb3c --- /dev/null +++ b/UI/AdministrationUI/BrazilianPortuguese.lproj/Localizable.strings @@ -0,0 +1,12 @@ +/* this file is in UTF-8 format! */ + +"Modules" = "Modules"; + +/* Modules short names */ +"ACLs" = "ACLs"; + +/* Modules titles */ +"ACLs_title" = "Users folders ACLs management"; + +/* Modules descriptions */ +"ACLs_description" = "

The Access Control Lists administration module allows to change the ACLs of each user's Calendars and Address books.

To modify the ACLs of a user's folder, type the name of the user in the search field at the top of the window and double-click on the desired folder.

"; diff --git a/UI/AdministrationUI/Czech.lproj/Localizable.strings b/UI/AdministrationUI/Czech.lproj/Localizable.strings new file mode 100644 index 000000000..e36dddb3c --- /dev/null +++ b/UI/AdministrationUI/Czech.lproj/Localizable.strings @@ -0,0 +1,12 @@ +/* this file is in UTF-8 format! */ + +"Modules" = "Modules"; + +/* Modules short names */ +"ACLs" = "ACLs"; + +/* Modules titles */ +"ACLs_title" = "Users folders ACLs management"; + +/* Modules descriptions */ +"ACLs_description" = "

The Access Control Lists administration module allows to change the ACLs of each user's Calendars and Address books.

To modify the ACLs of a user's folder, type the name of the user in the search field at the top of the window and double-click on the desired folder.

"; diff --git a/UI/AdministrationUI/Dutch.lproj/Localizable.strings b/UI/AdministrationUI/Dutch.lproj/Localizable.strings new file mode 100644 index 000000000..e36dddb3c --- /dev/null +++ b/UI/AdministrationUI/Dutch.lproj/Localizable.strings @@ -0,0 +1,12 @@ +/* this file is in UTF-8 format! */ + +"Modules" = "Modules"; + +/* Modules short names */ +"ACLs" = "ACLs"; + +/* Modules titles */ +"ACLs_title" = "Users folders ACLs management"; + +/* Modules descriptions */ +"ACLs_description" = "

The Access Control Lists administration module allows to change the ACLs of each user's Calendars and Address books.

To modify the ACLs of a user's folder, type the name of the user in the search field at the top of the window and double-click on the desired folder.

"; diff --git a/UI/AdministrationUI/English.lproj/Localizable.strings b/UI/AdministrationUI/English.lproj/Localizable.strings new file mode 100644 index 000000000..e36dddb3c --- /dev/null +++ b/UI/AdministrationUI/English.lproj/Localizable.strings @@ -0,0 +1,12 @@ +/* this file is in UTF-8 format! */ + +"Modules" = "Modules"; + +/* Modules short names */ +"ACLs" = "ACLs"; + +/* Modules titles */ +"ACLs_title" = "Users folders ACLs management"; + +/* Modules descriptions */ +"ACLs_description" = "

The Access Control Lists administration module allows to change the ACLs of each user's Calendars and Address books.

To modify the ACLs of a user's folder, type the name of the user in the search field at the top of the window and double-click on the desired folder.

"; diff --git a/UI/AdministrationUI/French.lproj/Localizable.strings b/UI/AdministrationUI/French.lproj/Localizable.strings new file mode 100644 index 000000000..e36dddb3c --- /dev/null +++ b/UI/AdministrationUI/French.lproj/Localizable.strings @@ -0,0 +1,12 @@ +/* this file is in UTF-8 format! */ + +"Modules" = "Modules"; + +/* Modules short names */ +"ACLs" = "ACLs"; + +/* Modules titles */ +"ACLs_title" = "Users folders ACLs management"; + +/* Modules descriptions */ +"ACLs_description" = "

The Access Control Lists administration module allows to change the ACLs of each user's Calendars and Address books.

To modify the ACLs of a user's folder, type the name of the user in the search field at the top of the window and double-click on the desired folder.

"; diff --git a/UI/AdministrationUI/GNUmakefile b/UI/AdministrationUI/GNUmakefile new file mode 100644 index 000000000..33ebe5038 --- /dev/null +++ b/UI/AdministrationUI/GNUmakefile @@ -0,0 +1,32 @@ +# GNUstep makefile + +include ../common.make + +BUNDLE_NAME = AdministrationUI + +AdministrationUI_PRINCIPAL_CLASS = AdministrationUIProduct + +AdministrationUI_LANGUAGES = BrazilianPortuguese Czech Dutch English French German Hungarian Italian Spanish Welsh Russian + +AdministrationUI_OBJC_FILES = \ + AdministrationUIProduct.m \ + \ + UIxAdministration.m \ + UIxAdministrationFilterPanel.m + +AdministrationUI_RESOURCE_FILES += \ + Version \ + product.plist + +#AdministrationUI_RESOURCE_FILES += \ +# Toolbars/UIxAdministration.toolbar + +AdministrationUI_LOCALIZED_RESOURCE_FILES += \ + Localizable.strings \ + +ADDITIONAL_INCLUDE_DIRS += -I../../SOPE/ +ADDITIONAL_LIB_DIRS += -L../../SOPE/GDLContentStore/obj/ + +-include GNUmakefile.preamble +include $(GNUSTEP_MAKEFILES)/bundle.make +-include GNUmakefile.postamble diff --git a/UI/AdministrationUI/German.lproj/Localizable.strings b/UI/AdministrationUI/German.lproj/Localizable.strings new file mode 100644 index 000000000..e36dddb3c --- /dev/null +++ b/UI/AdministrationUI/German.lproj/Localizable.strings @@ -0,0 +1,12 @@ +/* this file is in UTF-8 format! */ + +"Modules" = "Modules"; + +/* Modules short names */ +"ACLs" = "ACLs"; + +/* Modules titles */ +"ACLs_title" = "Users folders ACLs management"; + +/* Modules descriptions */ +"ACLs_description" = "

The Access Control Lists administration module allows to change the ACLs of each user's Calendars and Address books.

To modify the ACLs of a user's folder, type the name of the user in the search field at the top of the window and double-click on the desired folder.

"; diff --git a/UI/AdministrationUI/Hungarian.lproj/Localizable.strings b/UI/AdministrationUI/Hungarian.lproj/Localizable.strings new file mode 100644 index 000000000..e36dddb3c --- /dev/null +++ b/UI/AdministrationUI/Hungarian.lproj/Localizable.strings @@ -0,0 +1,12 @@ +/* this file is in UTF-8 format! */ + +"Modules" = "Modules"; + +/* Modules short names */ +"ACLs" = "ACLs"; + +/* Modules titles */ +"ACLs_title" = "Users folders ACLs management"; + +/* Modules descriptions */ +"ACLs_description" = "

The Access Control Lists administration module allows to change the ACLs of each user's Calendars and Address books.

To modify the ACLs of a user's folder, type the name of the user in the search field at the top of the window and double-click on the desired folder.

"; diff --git a/UI/AdministrationUI/Italian.lproj/Localizable.strings b/UI/AdministrationUI/Italian.lproj/Localizable.strings new file mode 100644 index 000000000..e36dddb3c --- /dev/null +++ b/UI/AdministrationUI/Italian.lproj/Localizable.strings @@ -0,0 +1,12 @@ +/* this file is in UTF-8 format! */ + +"Modules" = "Modules"; + +/* Modules short names */ +"ACLs" = "ACLs"; + +/* Modules titles */ +"ACLs_title" = "Users folders ACLs management"; + +/* Modules descriptions */ +"ACLs_description" = "

The Access Control Lists administration module allows to change the ACLs of each user's Calendars and Address books.

To modify the ACLs of a user's folder, type the name of the user in the search field at the top of the window and double-click on the desired folder.

"; diff --git a/UI/AdministrationUI/Russian.lproj/Localizable.strings b/UI/AdministrationUI/Russian.lproj/Localizable.strings new file mode 100644 index 000000000..e36dddb3c --- /dev/null +++ b/UI/AdministrationUI/Russian.lproj/Localizable.strings @@ -0,0 +1,12 @@ +/* this file is in UTF-8 format! */ + +"Modules" = "Modules"; + +/* Modules short names */ +"ACLs" = "ACLs"; + +/* Modules titles */ +"ACLs_title" = "Users folders ACLs management"; + +/* Modules descriptions */ +"ACLs_description" = "

The Access Control Lists administration module allows to change the ACLs of each user's Calendars and Address books.

To modify the ACLs of a user's folder, type the name of the user in the search field at the top of the window and double-click on the desired folder.

"; diff --git a/UI/AdministrationUI/Spanish.lproj/Localizable.strings b/UI/AdministrationUI/Spanish.lproj/Localizable.strings new file mode 100644 index 000000000..e36dddb3c --- /dev/null +++ b/UI/AdministrationUI/Spanish.lproj/Localizable.strings @@ -0,0 +1,12 @@ +/* this file is in UTF-8 format! */ + +"Modules" = "Modules"; + +/* Modules short names */ +"ACLs" = "ACLs"; + +/* Modules titles */ +"ACLs_title" = "Users folders ACLs management"; + +/* Modules descriptions */ +"ACLs_description" = "

The Access Control Lists administration module allows to change the ACLs of each user's Calendars and Address books.

To modify the ACLs of a user's folder, type the name of the user in the search field at the top of the window and double-click on the desired folder.

"; diff --git a/UI/AdministrationUI/UIxAdministration.h b/UI/AdministrationUI/UIxAdministration.h new file mode 100644 index 000000000..a53a8dadd --- /dev/null +++ b/UI/AdministrationUI/UIxAdministration.h @@ -0,0 +1,37 @@ +/* UIxPreferences.h - this file is part of SOGo + * + * Copyright (C) 2009 Inverse inc. + * + * Author: Francis Lachapelle + * + * 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 UIXADMINISTRATION_H +#define UIXADMINISTRATION_H + +#import + +@class SOGoUser; + +@interface UIxAdministration : UIxComponent +{ + SOGoUser *user; +} + +@end + +#endif /* UIXADMINISTRATION_H */ diff --git a/UI/AdministrationUI/UIxAdministration.m b/UI/AdministrationUI/UIxAdministration.m new file mode 100644 index 000000000..e1fa48499 --- /dev/null +++ b/UI/AdministrationUI/UIxAdministration.m @@ -0,0 +1,55 @@ +/* UIxAdministration.m - this file is part of SOGo + * + * Copyright (C) 2009 Inverse inc. + * + * Author: Francis Lachapelle + * + * 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 "../../Main/SOGo.h" + +#import "UIxAdministration.h" + +@implementation UIxAdministration + +- (id) init +{ + if ((self = [super init])) + { + ASSIGN (user, [context activeUser]); + } + + return self; +} + +- (void) dealloc +{ + [user release]; + [super dealloc]; +} + +- (BOOL) shouldTakeValuesFromRequest: (WORequest *) request + inContext: (WOContext*) context +{ + return [[request method] isEqualToString: @"POST"]; +} + +@end diff --git a/UI/AdministrationUI/UIxAdministrationFilterPanel.m b/UI/AdministrationUI/UIxAdministrationFilterPanel.m new file mode 100644 index 000000000..4af89ffca --- /dev/null +++ b/UI/AdministrationUI/UIxAdministrationFilterPanel.m @@ -0,0 +1,119 @@ +/* UIxAdministrationFilterPanel.m - this file is part of SOGo + * + * Copyright (C) 2009 Inverse inc. + * + * Author: Francis Lachapelle + * + * 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 + +@interface UIxAdministrationFilterPanel : UIxComponent +{ + NSString *searchText; + NSString *searchCriteria; +} + +@end + +@implementation UIxAdministrationFilterPanel + +static NSArray *filters = nil; + ++ (void) initialize +{ + NSMutableDictionary *md; + NSMutableArray *ma; + + md = [[NSMutableDictionary alloc] initWithCapacity:8]; + ma = [[NSMutableArray alloc] initWithCapacity:4]; + + filters = [ma copy]; + [md release]; md = nil; + [ma release]; ma = nil; +} + +- (id) init +{ + if ((self = [super init])) + { + searchText = nil; + searchCriteria = nil; + } + + return self; +} + +- (void) dealloc +{ + [searchCriteria release]; + [searchText release]; + [super dealloc]; +} + +/* accessors */ + +- (void) setSearchText: (NSString *)_txt +{ + ASSIGNCOPY(searchText, _txt); +} + +- (void) setSearchCriteria: (NSString *)_txt +{ + ASSIGNCOPY(searchText, _txt); +} + +- (NSString *) searchText +{ + if (!searchText) + searchText = [[self queryParameterForKey: @"search"] copy]; + + return searchText; +} + +- (NSString *) searchCriteria +{ + if (!searchCriteria) + searchCriteria = [[self queryParameterForKey: @"criteria"] copy]; + + return searchCriteria; +} + +/* filters */ + +- (NSArray *) filters +{ + return filters; +} + +/* qualifiers */ + +- (NSString *) filterLabel +{ +#if 1 + return [[[self context] page] labelForKey: @"filter"]; +#else + return [self valueForKey: @"filter"]; +#endif +} + +- (NSString *) selectedFilter +{ + return [self queryParameterForKey: @"filterpopup"]; +} + +@end /* UIxAdministrationFilterPanel */ diff --git a/UI/AdministrationUI/Version b/UI/AdministrationUI/Version new file mode 100644 index 000000000..b2a4ba591 --- /dev/null +++ b/UI/AdministrationUI/Version @@ -0,0 +1 @@ +# nothing here diff --git a/UI/AdministrationUI/Welsh.lproj/Localizable.strings b/UI/AdministrationUI/Welsh.lproj/Localizable.strings new file mode 100644 index 000000000..e36dddb3c --- /dev/null +++ b/UI/AdministrationUI/Welsh.lproj/Localizable.strings @@ -0,0 +1,12 @@ +/* this file is in UTF-8 format! */ + +"Modules" = "Modules"; + +/* Modules short names */ +"ACLs" = "ACLs"; + +/* Modules titles */ +"ACLs_title" = "Users folders ACLs management"; + +/* Modules descriptions */ +"ACLs_description" = "

The Access Control Lists administration module allows to change the ACLs of each user's Calendars and Address books.

To modify the ACLs of a user's folder, type the name of the user in the search field at the top of the window and double-click on the desired folder.

"; diff --git a/UI/AdministrationUI/product.plist b/UI/AdministrationUI/product.plist new file mode 100644 index 000000000..43037f363 --- /dev/null +++ b/UI/AdministrationUI/product.plist @@ -0,0 +1,22 @@ +{ /* -*-javascript-*- */ + requires = ( MAIN, MainUI, CommonUI ); + + publicResources = ( + ); + + factories = { + }; + + categories = { + SOGoUserFolder = { + slots = { + }; + methods = { + Administration = { + protectedBy = "View"; + pageName = "UIxAdministration"; + }; + }; + }; + }; +} diff --git a/UI/Common/English.lproj/Localizable.strings b/UI/Common/English.lproj/Localizable.strings index c61877439..cfe7bff1d 100644 --- a/UI/Common/English.lproj/Localizable.strings +++ b/UI/Common/English.lproj/Localizable.strings @@ -10,6 +10,7 @@ "Address Book" = "Address Book"; "Mail" = "Mail"; "Preferences" = "Preferences"; +"Administration" = "Administration"; "Disconnect" = "Disconnect"; "Right Administration" = "Right Administration"; "Log Console (dev.)" = "Log Console (dev.)"; diff --git a/UI/Common/UIxPageFrame.m b/UI/Common/UIxPageFrame.m index 66523b599..ae51cc44b 100644 --- a/UI/Common/UIxPageFrame.m +++ b/UI/Common/UIxPageFrame.m @@ -100,8 +100,8 @@ static NSString *siteFavicon = nil; { return (@"\n" @""); + @" PUBLIC \"-//W3C//DTD XHTML 1.1//EN\"" + @" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">"); } /* Help URL/target */ @@ -153,6 +153,11 @@ static NSString *siteFavicon = nil; return [self relativePathToUserFolderSubPath: @"preferences"]; } +- (NSString *) relativeAdministrationPath +{ + return [self relativePathToUserFolderSubPath: @"Administration/"]; +} + - (NSString *) logoffPath { return [self relativePathToUserFolderSubPath: @"logoff"]; @@ -359,6 +364,11 @@ static NSString *siteFavicon = nil; return [self _moduleIs: @"MailerUI"]; } +- (BOOL) isAdministration +{ + return [self _moduleIs: @"AdministrationUI"]; +} + - (void) setToolbar: (NSString *) newToolbar { ASSIGN (toolbar, newToolbar); diff --git a/UI/GNUmakefile b/UI/GNUmakefile index 417b9df1f..6ad78eeaa 100644 --- a/UI/GNUmakefile +++ b/UI/GNUmakefile @@ -4,16 +4,17 @@ include $(GNUSTEP_MAKEFILES)/common.make SUBPROJECTS += \ - SOGoUI \ - SOGoElements \ - Common \ - Contacts \ - MailerUI \ - MailPartViewers \ - MainUI \ - PreferencesUI \ - Scheduler \ - Templates \ + SOGoUI \ + SOGoElements \ + Common \ + Contacts \ + MailerUI \ + MailPartViewers \ + MainUI \ + PreferencesUI \ + Scheduler \ + AdministrationUI \ + Templates \ WebServerResources include $(GNUSTEP_MAKEFILES)/aggregate.make diff --git a/UI/MainUI/SOGoUserHomePage.m b/UI/MainUI/SOGoUserHomePage.m index 3dee81769..6b01fc7cb 100644 --- a/UI/MainUI/SOGoUserHomePage.m +++ b/UI/MainUI/SOGoUserHomePage.m @@ -384,18 +384,12 @@ static NSString *LDAPContactInfoAttribute = nil; SOGoUserFolder *userFolder; folderType = [self queryParameterForKey: @"type"]; - if ([folderType length]) - { - userFolder = [self clientObject]; - folders - = [userFolder foldersOfType: folderType - forUID: [userFolder ownerInContext: context]]; - result = [self _foldersResponseForResults: folders]; - } - else - result = [NSException exceptionWithHTTPStatus: 400 - reason: @"missing 'type' parameter"]; - + userFolder = [self clientObject]; + folders + = [userFolder foldersOfType: folderType + forUID: [userFolder ownerInContext: context]]; + result = [self _foldersResponseForResults: folders]; + return result; } diff --git a/UI/Templates/UIxPageFrame.wox b/UI/Templates/UIxPageFrame.wox index 7f3b4b495..89251398d 100644 --- a/UI/Templates/UIxPageFrame.wox +++ b/UI/Templates/UIxPageFrame.wox @@ -84,6 +84,17 @@ + + | + + + + + + + |