chore: remove deprecated files and templates
parent
0d297f21cf
commit
1579ebd233
|
@ -18,9 +18,6 @@ AdministrationUI_OBJC_FILES = \
|
|||
AdministrationUI_RESOURCE_FILES += \
|
||||
product.plist
|
||||
|
||||
AdministrationUI_RESOURCE_FILES += \
|
||||
Toolbars/UIxAdministration.toolbar
|
||||
|
||||
AdministrationUI_LOCALIZED_RESOURCE_FILES += \
|
||||
Localizable.strings \
|
||||
|
||||
|
|
|
@ -1,7 +0,0 @@
|
|||
( /* the toolbar groups -*-cperl-*- */
|
||||
( { link = "#";
|
||||
label = "Help";
|
||||
onclick = "help(this);";
|
||||
image = "properties.png"; }
|
||||
)
|
||||
)
|
|
@ -3,8 +3,7 @@
|
|||
|
||||
publicResources = ();
|
||||
|
||||
factories = {
|
||||
};
|
||||
factories = {};
|
||||
|
||||
categories = {
|
||||
SOGoUserFolder = {
|
||||
|
|
|
@ -10,11 +10,9 @@ ContactsUI_LANGUAGES = $(SOGO_LANGUAGES)
|
|||
|
||||
ContactsUI_OBJC_FILES = \
|
||||
UIxContactsUserFolders.m \
|
||||
UIxContactsMailerSelection.m \
|
||||
UIxContactsUserRightsEditor.m \
|
||||
\
|
||||
ContactsUIProduct.m \
|
||||
UIxContactsFilterPanel.m \
|
||||
UIxContactActions.m \
|
||||
UIxContactView.m \
|
||||
UIxContactEditor.m \
|
||||
|
@ -29,9 +27,6 @@ ContactsUI_OBJC_FILES = \
|
|||
ContactsUI_RESOURCE_FILES += \
|
||||
product.plist \
|
||||
|
||||
ContactsUI_RESOURCE_FILES += \
|
||||
Toolbars/SOGoContactFolder.toolbar
|
||||
|
||||
ContactsUI_LOCALIZED_RESOURCE_FILES += \
|
||||
Localizable.strings \
|
||||
|
||||
|
|
|
@ -1,39 +0,0 @@
|
|||
( /* the toolbar groups -*-java-*- */
|
||||
(
|
||||
{ link = "#";
|
||||
jsLink="js_card";
|
||||
label="New Card";
|
||||
image="new-card.png";
|
||||
onclick = "newContact(this); return false;";
|
||||
tooltip = "Create a new address book card"; },
|
||||
{ link = "#";
|
||||
label="New List";
|
||||
image="new-list.png";
|
||||
onclick = "newList(this); return false;";
|
||||
tooltip = "Create a new list"; }
|
||||
),
|
||||
(
|
||||
{ link = "#";
|
||||
label = "Edit";
|
||||
onclick = "return onToolbarEditSelectedContacts(this);";
|
||||
image = "properties.png";
|
||||
tooltip = "Edit the selected card"; },
|
||||
{ link = "#";
|
||||
label="Write";
|
||||
onclick = "return onToolbarWriteToSelectedContacts(this);";
|
||||
image="write.png";
|
||||
tooltip = "Send a mail message"; }
|
||||
),
|
||||
(
|
||||
{ link = "#";
|
||||
label="Delete";
|
||||
onclick = "return onToolbarDeleteSelectedContacts(this);";
|
||||
image="tb-mail-delete-flat-24x24.png";
|
||||
tooltip = "Delete selected card or address book"; }
|
||||
),
|
||||
( { link = "#";
|
||||
label = "Reload";
|
||||
onclick = "return onContactsReload();";
|
||||
image = "calendar-reload.png";
|
||||
tooltip = "Reload all contacts"; } )
|
||||
)
|
|
@ -23,14 +23,14 @@
|
|||
#ifndef __UIxContactEditor_H__
|
||||
#define __UIxContactEditor_H__
|
||||
|
||||
#include <SOGoUI/UIxComponent.h>
|
||||
#include <SOGoUI/SOGoDirectAction.h>
|
||||
|
||||
@class NSString;
|
||||
@class NSMutableDictionary;
|
||||
|
||||
@protocol SOGoContactFolder;
|
||||
|
||||
@interface UIxContactEditor : UIxComponent
|
||||
@interface UIxContactEditor : SOGoDirectAction
|
||||
{
|
||||
id addressBookItem;
|
||||
NGVCard *card;
|
||||
|
|
|
@ -26,11 +26,11 @@
|
|||
#import <NGObjWeb/NSException+HTTP.h>
|
||||
#import <NGObjWeb/SoPermissions.h>
|
||||
#import <NGObjWeb/SoSecurityManager.h>
|
||||
#import <NGObjWeb/WOContext+SoObjects.h>
|
||||
#import <NGObjWeb/WORequest.h>
|
||||
#import <NGObjWeb/WOResponse.h>
|
||||
#import <NGExtensions/NSNull+misc.h>
|
||||
|
||||
|
||||
#import <SOGo/CardElement+SOGo.h>
|
||||
#import <SOGo/NSArray+Utilities.h>
|
||||
#import <SOGo/NSDictionary+Utilities.h>
|
||||
|
@ -141,30 +141,6 @@ static Class SOGoContactGCSEntryK = Nil;
|
|||
|
||||
/* helper */
|
||||
|
||||
- (NSString *) _completeURIForMethod: (NSString *) _method
|
||||
{
|
||||
// TODO: this is a DUP of UIxAppointmentEditor
|
||||
NSString *uri;
|
||||
NSRange r;
|
||||
|
||||
uri = [[[self context] request] uri];
|
||||
|
||||
/* first: identify query parameters */
|
||||
r = [uri rangeOfString: @"?" options:NSBackwardsSearch];
|
||||
if (r.length > 0)
|
||||
uri = [uri substringToIndex:r.location];
|
||||
|
||||
/* next: append trailing slash */
|
||||
if (![uri hasSuffix: @"/"])
|
||||
uri = [uri stringByAppendingString: @"/"];
|
||||
|
||||
/* next: append method */
|
||||
uri = [uri stringByAppendingString:_method];
|
||||
|
||||
/* next: append query parameters */
|
||||
return [self completeHrefForMethod:uri];
|
||||
}
|
||||
|
||||
- (BOOL) isNew
|
||||
{
|
||||
return ([[self clientObject] isNew]);
|
||||
|
@ -213,85 +189,6 @@ static Class SOGoContactGCSEntryK = Nil;
|
|||
return [addressBookItem displayName];
|
||||
}
|
||||
|
||||
- (BOOL) supportCategories
|
||||
{
|
||||
return [[self clientObject] isKindOfClass: SOGoContactGCSEntryK];
|
||||
}
|
||||
|
||||
- (void) setJsonContactCategories: (NSString *) jsonCategories
|
||||
{
|
||||
NSArray *newCategories;
|
||||
|
||||
newCategories = [jsonCategories objectFromJSONString];
|
||||
if ([newCategories isKindOfClass: [NSArray class]])
|
||||
[[self ldifRecord] setObject: newCategories
|
||||
forKey: @"vcardcategories"];
|
||||
else
|
||||
[[self ldifRecord] removeObjectForKey: @"vcardcategories"];
|
||||
}
|
||||
|
||||
- (NSString *) jsonContactCategories
|
||||
{
|
||||
NSArray *categories;
|
||||
|
||||
categories = [[self ldifRecord] objectForKey: @"vcardcategories"];
|
||||
|
||||
return [categories jsonRepresentation];
|
||||
}
|
||||
|
||||
- (NSArray *) _languageContactsCategories
|
||||
{
|
||||
NSArray *categoryLabels;
|
||||
|
||||
categoryLabels = [[self labelForKey: @"contacts_category_labels"]
|
||||
componentsSeparatedByString: @","];
|
||||
if (!categoryLabels)
|
||||
categoryLabels = [NSArray array];
|
||||
|
||||
return [categoryLabels trimmedComponents];
|
||||
}
|
||||
|
||||
- (NSArray *) _fetchAndCombineCategoriesList
|
||||
{
|
||||
NSString *ownerLogin;
|
||||
SOGoUserDefaults *ud;
|
||||
NSArray *cats, *newCats, *contactCategories;
|
||||
|
||||
ownerLogin = [[self clientObject] ownerInContext: context];
|
||||
ud = [[SOGoUser userWithLogin: ownerLogin] userDefaults];
|
||||
cats = [ud contactsCategories];
|
||||
if (!cats)
|
||||
cats = [self _languageContactsCategories];
|
||||
|
||||
contactCategories = [[self ldifRecord] objectForKey: @"vcardcategories"];
|
||||
if (contactCategories)
|
||||
{
|
||||
newCats = [cats mergedArrayWithArray: contactCategories];
|
||||
if ([newCats count] != [cats count])
|
||||
{
|
||||
cats = [newCats sortedArrayUsingSelector:
|
||||
@selector (localizedCaseInsensitiveCompare:)];
|
||||
[ud setContactsCategories: cats];
|
||||
[ud synchronize];
|
||||
}
|
||||
}
|
||||
|
||||
return cats;
|
||||
}
|
||||
|
||||
- (NSString *) contactCategoriesList
|
||||
{
|
||||
NSArray *cats;
|
||||
NSString *list;
|
||||
|
||||
cats = [self _fetchAndCombineCategoriesList];
|
||||
list = [cats jsonRepresentation];
|
||||
if (!list)
|
||||
list = @"[]";
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
/* actions */
|
||||
|
||||
// - (BOOL) shouldTakeValuesFromRequest: (WORequest *) request
|
||||
|
@ -590,33 +487,5 @@ static Class SOGoContactGCSEntryK = Nil;
|
|||
return [self responseWithStatus: 200 andJSONRepresentation: data];
|
||||
}
|
||||
|
||||
- (id) writeAction
|
||||
{
|
||||
NSString *email, *cn, *url;
|
||||
NSMutableString *address;
|
||||
|
||||
[self ldifRecord];
|
||||
email = [ldifRecord objectForKey: @"mail"];
|
||||
if ([email length] == 0)
|
||||
email = [ldifRecord objectForKey: @"mozillasecondemail"];
|
||||
|
||||
if (email)
|
||||
{
|
||||
address = [NSMutableString string];
|
||||
cn = [ldifRecord objectForKey: @"cn"];
|
||||
if ([cn length] > 0)
|
||||
[address appendFormat: @"%@ <%@>", cn, email];
|
||||
else
|
||||
[address appendString: email];
|
||||
|
||||
url = [NSString stringWithFormat: @"%@/Mail/compose?mailto=%@",
|
||||
[self userFolderPath], address];
|
||||
}
|
||||
else
|
||||
url = [NSString stringWithFormat: @"%@/Mail/compose", [self userFolderPath]];
|
||||
|
||||
return [self redirectToLocation: url];
|
||||
}
|
||||
|
||||
@end /* UIxContactEditor */
|
||||
|
||||
|
|
|
@ -124,13 +124,6 @@ Class SOGoContactSourceFolderK, SOGoGCSFolderK;
|
|||
return contactInfos;
|
||||
}
|
||||
|
||||
- (id <WOActionResults>) mailerContactsAction
|
||||
{
|
||||
selectorComponentClass = @"UIxContactsMailerSelection";
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (NSString *) selectorComponentClass
|
||||
{
|
||||
return selectorComponentClass;
|
||||
|
@ -290,7 +283,7 @@ Class SOGoContactSourceFolderK, SOGoGCSFolderK;
|
|||
NSString *userLogin, *owner;
|
||||
NSArray *folders, *allACLs;
|
||||
NSDictionary *folderAttrs;
|
||||
id currentFolder;
|
||||
id <SOGoContactFolder> currentFolder;
|
||||
|
||||
BOOL objectCreator, objectEditor, objectEraser, synchronize;
|
||||
int max, i;
|
||||
|
|
|
@ -1,97 +0,0 @@
|
|||
/*
|
||||
Copyright (C) 2000-2005 SKYRIX Software AG
|
||||
Copyright (C) 2000-2012 Inverse inc.
|
||||
|
||||
This file is part of SOGo.
|
||||
|
||||
SOGo is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU Lesser General Public License as published by the
|
||||
Free Software Foundation; either version 2, or (at your option) any
|
||||
later version.
|
||||
|
||||
SOGo 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 Lesser General Public
|
||||
License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with OGo; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
|
||||
02111-1307, USA.
|
||||
*/
|
||||
|
||||
#import <SOGoUI/UIxComponent.h>
|
||||
|
||||
@interface UIxContactsFilterPanel : UIxComponent
|
||||
{
|
||||
NSString *searchText;
|
||||
NSString *searchCriteria;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation UIxContactsFilterPanel
|
||||
|
||||
- (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;
|
||||
}
|
||||
|
||||
/* qualifiers */
|
||||
|
||||
- (NSString *) filterLabel
|
||||
{
|
||||
#if 1
|
||||
return [[[self context] page] labelForKey: @"filter"];
|
||||
#else
|
||||
return [self valueForKey: @"filter"];
|
||||
#endif
|
||||
}
|
||||
|
||||
- (NSString *) selectedFilter
|
||||
{
|
||||
return [self queryParameterForKey: @"filterpopup"];
|
||||
}
|
||||
|
||||
@end /* UIxContactsFilterPanel */
|
|
@ -159,7 +159,7 @@
|
|||
|
||||
searchFields = [data objectForKey: @"search"];
|
||||
valueText = [data objectForKey: @"value"];
|
||||
if (![searchFields isKindOfClass: [NSArray class]] || ![searchFields count] > 0)
|
||||
if (![searchFields isKindOfClass: [NSArray class]] || !([searchFields count] > 0))
|
||||
{
|
||||
searchFields = nil;
|
||||
}
|
||||
|
@ -461,72 +461,6 @@
|
|||
return response;
|
||||
}
|
||||
|
||||
- (id <WOActionResults>) contactSearchAction
|
||||
{
|
||||
id <WOActionResults> result;
|
||||
id <SOGoContactFolder> folder;
|
||||
BOOL excludeLists;
|
||||
NSString *searchText, *mail, *domain;
|
||||
NSDictionary *contact, *data;
|
||||
NSArray *contacts, *descriptors, *sortedContacts;
|
||||
NSMutableDictionary *uniqueContacts;
|
||||
unsigned int i;
|
||||
NSSortDescriptor *commonNameDescriptor;
|
||||
|
||||
excludeLists = [[[self requestData] objectForKey: @"excludeLists"] boolValue];
|
||||
searchText = [[self requestData] objectForKey: @"search"];
|
||||
if ([searchText length] > 0)
|
||||
{
|
||||
NS_DURING
|
||||
folder = [self clientObject];
|
||||
NS_HANDLER
|
||||
if ([[localException name] isEqualToString: @"SOGoDBException"])
|
||||
folder = nil;
|
||||
else
|
||||
[localException raise];
|
||||
NS_ENDHANDLER
|
||||
|
||||
domain = [[context activeUser] domain];
|
||||
uniqueContacts = [NSMutableDictionary dictionary];
|
||||
contacts = [folder lookupContactsWithFilter: searchText
|
||||
onCriteria: nil
|
||||
sortBy: @"c_cn"
|
||||
ordering: NSOrderedAscending
|
||||
inDomain: domain];
|
||||
for (i = 0; i < [contacts count]; i++)
|
||||
{
|
||||
contact = [contacts objectAtIndex: i];
|
||||
if (!excludeLists || ![[contact objectForKey: @"c_component"] isEqualToString: @"vlist"])
|
||||
{
|
||||
mail = [contact objectForKey: @"c_mail"];
|
||||
if ([mail isNotNull] && [uniqueContacts objectForKey: mail] == nil)
|
||||
[uniqueContacts setObject: contact forKey: mail];
|
||||
}
|
||||
}
|
||||
|
||||
if ([uniqueContacts count] > 0)
|
||||
{
|
||||
// Sort the contacts by display name
|
||||
commonNameDescriptor = [[[NSSortDescriptor alloc] initWithKey: @"c_cn"
|
||||
ascending:YES] autorelease];
|
||||
descriptors = [NSArray arrayWithObjects: commonNameDescriptor, nil];
|
||||
sortedContacts = [[uniqueContacts allValues] sortedArrayUsingDescriptors: descriptors];
|
||||
}
|
||||
else
|
||||
sortedContacts = [NSArray array];
|
||||
|
||||
data = [NSDictionary dictionaryWithObjectsAndKeys: searchText, @"searchText",
|
||||
sortedContacts, @"cards", nil];
|
||||
result = [self responseWithStatus: 200
|
||||
andString: [data jsonRepresentation]];
|
||||
}
|
||||
else
|
||||
result = [NSException exceptionWithHTTPStatus: 400
|
||||
reason: @"missing 'search' parameter"];
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
- (NSString *) cardDavURL
|
||||
{
|
||||
NSString *davURL, *baseCardDAVURL;
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
/*
|
||||
Copyright (C) 2004-2005 SKYRIX Software AG
|
||||
|
||||
This file is part of OpenGroupware.org.
|
||||
|
||||
OGo is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU Lesser General Public License as published by the
|
||||
Free Software Foundation; either version 2, or (at your option) any
|
||||
later version.
|
||||
|
||||
OGo 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 Lesser General Public
|
||||
License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with OGo; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
|
||||
02111-1307, USA.
|
||||
*/
|
||||
|
||||
#import <SOGoUI/UIxComponent.h>
|
||||
|
||||
@interface UIxContactsMailerSelection : UIxComponent
|
||||
|
||||
@end
|
||||
|
||||
@implementation UIxContactsMailerSelection
|
||||
|
||||
@end /* UIxContactsMailerSelection */
|
|
@ -1,8 +1,6 @@
|
|||
/* UIxListEditor.h - this file is part of SOGo
|
||||
*
|
||||
* Copyright (C) 2008 Inverse inc.
|
||||
*
|
||||
* Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||
* Copyright (C) 2008-2020 Inverse inc.
|
||||
*
|
||||
* 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
|
||||
|
@ -23,10 +21,10 @@
|
|||
#ifndef UIXLISTEDITOR_H
|
||||
#define UIXLISTEDITOR_H
|
||||
|
||||
#import <SOGoUI/UIxComponent.h>
|
||||
#import <SOGoUI/SOGoDirectAction.h>
|
||||
#import <SoObjects/Contacts/SOGoContactGCSList.h>
|
||||
|
||||
@interface UIxListEditor : UIxComponent
|
||||
@interface UIxListEditor : SOGoDirectAction
|
||||
{
|
||||
NGVList *list;
|
||||
SOGoContactGCSList *co;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* UIxListEditor.m - this file is part of SOGo
|
||||
*
|
||||
* Copyright (C) 2008-2015 Inverse inc.
|
||||
* Copyright (C) 2008-2020 Inverse inc.
|
||||
*
|
||||
* 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
|
||||
|
@ -19,8 +19,9 @@
|
|||
*/
|
||||
|
||||
|
||||
#import <NGObjWeb/WORequest.h>
|
||||
#import <NGObjWeb/NSException+HTTP.h>
|
||||
#import <NGObjWeb/WOContext+SoObjects.h>
|
||||
#import <NGObjWeb/WORequest.h>
|
||||
#import <NGObjWeb/WOResponse.h>
|
||||
|
||||
#import <NGCards/NGVCardReference.h>
|
||||
|
@ -42,15 +43,6 @@
|
|||
[super dealloc];
|
||||
}
|
||||
|
||||
- (id <WOActionResults>) defaultAction
|
||||
{
|
||||
co = [self clientObject];
|
||||
list = [co vList];
|
||||
[list retain];
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (NSArray *) references
|
||||
{
|
||||
NSArray *references;
|
||||
|
@ -292,12 +284,6 @@
|
|||
[list setDescription: [attributes objectForKey: @"description"]];
|
||||
}
|
||||
|
||||
- (BOOL) canCreateOrModify
|
||||
{
|
||||
return ([co isKindOfClass: [SOGoContentObject class]]
|
||||
&& [super canCreateOrModify]);
|
||||
}
|
||||
|
||||
- (id <WOActionResults>) saveAction
|
||||
{
|
||||
WORequest *request;
|
||||
|
|
|
@ -18,21 +18,11 @@
|
|||
protectedBy = "View";
|
||||
pageName = "UIxContactFoldersView";
|
||||
};
|
||||
mailer-contacts = {
|
||||
protectedBy = "View";
|
||||
pageName = "UIxContactFoldersView";
|
||||
actionName = "mailerContacts";
|
||||
};
|
||||
allContactSearch = {
|
||||
protectedBy = "<public>";
|
||||
pageName = "UIxContactFoldersView";
|
||||
actionName = "allContactSearch";
|
||||
};
|
||||
updateAdditionalAddressBooks = {
|
||||
protectedBy = "View";
|
||||
pageName = "UIxContactFoldersView";
|
||||
actionName = "updateAdditionalAddressBooks";
|
||||
};
|
||||
acls = {
|
||||
protectedBy = "ReadAcls";
|
||||
pageName = "UIxAclEditor";
|
||||
|
@ -42,11 +32,6 @@
|
|||
pageName = "UIxAclEditor";
|
||||
actionName = "saveAcls";
|
||||
};
|
||||
checkRights = {
|
||||
protectedBy = "View";
|
||||
pageName = "UIxContactFoldersView";
|
||||
actionName = "checkRights";
|
||||
};
|
||||
UIxContactEditorTemplate = {
|
||||
protectedBy = "View";
|
||||
pageName = "UIxContactEditorTemplate";
|
||||
|
@ -60,7 +45,7 @@
|
|||
pageName = "UIxContactFoldersView";
|
||||
actionName = "addressbooksList";
|
||||
};
|
||||
saveDragHandleState = {
|
||||
saveDragHandleState = {
|
||||
protectedBy = "View";
|
||||
pageName = "UIxContactFoldersView";
|
||||
actionName = "saveDragHandleState";
|
||||
|
@ -88,41 +73,11 @@
|
|||
actionClass = "UIxContactsListActions";
|
||||
actionName = "getHeaders";
|
||||
};
|
||||
// contacts = {
|
||||
// protectedBy = "View";
|
||||
// actionClass = "UIxContactsListActions";
|
||||
// actionName = "contactsList";
|
||||
// };
|
||||
contactSearch = {
|
||||
protectedBy = "<public>";
|
||||
actionClass = "UIxContactsListActions";
|
||||
actionName = "contactSearch";
|
||||
};
|
||||
newcontact = {
|
||||
protectedBy = "<public>";
|
||||
pageName = "UIxContactEditor";
|
||||
actionName = "new";
|
||||
};
|
||||
newlist = {
|
||||
protectedBy = "Add Documents, Images, and Files";
|
||||
pageName = "UIxListEditor";
|
||||
actionName = "new";
|
||||
};
|
||||
mailer-contacts = {
|
||||
protectedBy = "View";
|
||||
pageName = "UIxContactFoldersView";
|
||||
actionName = "mailerContacts";
|
||||
};
|
||||
export = {
|
||||
protectedBy = "View";
|
||||
actionClass = "UIxContactFolderActions";
|
||||
actionName = "export";
|
||||
};
|
||||
exportFolder = {
|
||||
protectedBy = "View";
|
||||
actionClass = "UIxContactFolderActions";
|
||||
actionName = "export";
|
||||
};
|
||||
import = {
|
||||
protectedBy = "Add Documents, Images, and Files";
|
||||
actionClass = "UIxContactFolderActions";
|
||||
|
@ -171,21 +126,6 @@
|
|||
actionClass = "UIxContactsListActions";
|
||||
actionName = "contactsList";
|
||||
};
|
||||
newcontact = {
|
||||
protectedBy = "<public>";
|
||||
pageName = "UIxContactEditor";
|
||||
actionName = "new";
|
||||
};
|
||||
mailer-contacts = {
|
||||
protectedBy = "<public>";
|
||||
pageName = "UIxContactFoldersView";
|
||||
actionName = "mailerContacts";
|
||||
};
|
||||
canAccessContent = {
|
||||
protectedBy = "<public>";
|
||||
actionClass = "UIxFolderActions";
|
||||
actionName = "canAccessContent";
|
||||
};
|
||||
copy = {
|
||||
protectedBy = "Access Contents Information";
|
||||
actionClass = "UIxFolderActions";
|
||||
|
@ -201,29 +141,16 @@
|
|||
pageName = "UIxContactView";
|
||||
actionName = "data";
|
||||
};
|
||||
edit = {
|
||||
protectedBy = "Access Contents Information";
|
||||
pageName = "UIxContactEditor";
|
||||
};
|
||||
editAsContact = {
|
||||
protectedBy = "Access Contents Information";
|
||||
pageName = "UIxContactEditor";
|
||||
};
|
||||
save = {
|
||||
protectedBy = "Change Images And Files";
|
||||
pageName = "UIxContactEditor";
|
||||
actionClass = "UIxContactEditor";
|
||||
actionName = "save";
|
||||
};
|
||||
saveAsContact = {
|
||||
protectedBy = "Change Images And Files";
|
||||
pageName = "UIxContactEditor";
|
||||
actionClass = "UIxContactEditor";
|
||||
actionName = "save";
|
||||
};
|
||||
write = {
|
||||
protectedBy = "View";
|
||||
pageName = "UIxContactEditor";
|
||||
actionName = "write";
|
||||
};
|
||||
setCategory = {
|
||||
protectedBy = "Change Images And Files";
|
||||
actionClass = "UIxContactActions";
|
||||
|
@ -264,22 +191,14 @@
|
|||
pageName = "UIxListView";
|
||||
actionName = "properties";
|
||||
};
|
||||
edit = {
|
||||
protectedBy = "Access Contents Information";
|
||||
pageName = "UIxListEditor";
|
||||
};
|
||||
editAsList = {
|
||||
protectedBy = "Access Contents Information";
|
||||
pageName = "UIxListEditor";
|
||||
};
|
||||
save = {
|
||||
protectedBy = "Change Images And Files";
|
||||
pageName = "UIxListEditor";
|
||||
actionClass = "UIxListEditor";
|
||||
actionName = "save";
|
||||
};
|
||||
saveAsList = {
|
||||
protectedBy = "Change Images And Files";
|
||||
pageName = "UIxListEditor";
|
||||
actionClass = "UIxListEditor";
|
||||
actionName = "save";
|
||||
};
|
||||
raw = {
|
||||
|
@ -297,14 +216,6 @@
|
|||
pageName = "UIxContactView";
|
||||
actionName = "data";
|
||||
};
|
||||
edit = {
|
||||
protectedBy = "Access Contents Information";
|
||||
pageName = "UIxContactEditor";
|
||||
};
|
||||
editAsContact = {
|
||||
protectedBy = "Access Contents Information";
|
||||
pageName = "UIxContactEditor";
|
||||
};
|
||||
members = {
|
||||
protectedBy = "Access Contents Information";
|
||||
pageName = "UIxContactView";
|
||||
|
@ -312,19 +223,14 @@
|
|||
};
|
||||
save = {
|
||||
protectedBy = "Change Images And Files";
|
||||
pageName = "UIxContactEditor";
|
||||
actionClass = "UIxContactEditor";
|
||||
actionName = "save";
|
||||
};
|
||||
saveAsContact = {
|
||||
protectedBy = "Change Images And Files";
|
||||
pageName = "UIxContactEditor";
|
||||
actionClass = "UIxContactEditor";
|
||||
actionName = "save";
|
||||
};
|
||||
write = {
|
||||
protectedBy = "<public>";
|
||||
pageName = "UIxContactEditor";
|
||||
actionName = "write";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -22,23 +22,19 @@ MailerUI_OBJC_FILES += \
|
|||
UIxMailSourceView.m \
|
||||
UIxMailPopupView.m \
|
||||
UIxMailMoveToPopUp.m \
|
||||
UIxMailFilterPanel.m \
|
||||
UIxMailSearch.m \
|
||||
\
|
||||
UIxMailAccountActions.m \
|
||||
UIxMailFolderActions.m \
|
||||
UIxMailFolderSubscriptions.m \
|
||||
UIxMailActions.m \
|
||||
UIxMailEditor.m \
|
||||
UIxMailToSelection.m \
|
||||
UIxMailWindowCloser.m \
|
||||
\
|
||||
UIxMailUserRightsEditor.m \
|
||||
UIxMailUserDelegationEditor.m
|
||||
|
||||
MailerUI_RESOURCE_FILES += \
|
||||
product.plist \
|
||||
Toolbars/*.toolbar
|
||||
product.plist
|
||||
|
||||
MailerUI_LOCALIZED_RESOURCE_FILES += \
|
||||
Localizable.strings
|
||||
|
|
|
@ -1,39 +0,0 @@
|
|||
( /* the toolbar groups -*-cperl-*- */
|
||||
( /* first group */
|
||||
{ link = "#";
|
||||
isSafe = NO;
|
||||
onclick = "return clickedEditorSend(this);";
|
||||
image = "tb-compose-send-flat-24x24.png";
|
||||
cssClass = "tbicon_send";
|
||||
label = "Send";
|
||||
tooltip = "Send this message now"; }
|
||||
),
|
||||
(
|
||||
{ link = "#";
|
||||
onclick = "return onContactAdd(this);";
|
||||
image = "tb-compose-contacts-flat-24x24.png";
|
||||
cssClass = "tbicon_addressbook";
|
||||
label = "Contacts";
|
||||
tooltip = "Select a recipient from an Address Book"; },
|
||||
{ link = "#";
|
||||
isSafe = NO;
|
||||
onclick = "return clickedEditorSave(this);";
|
||||
image = "tb-mail-file-flat-24x24.png";
|
||||
cssClass = "tbicon_save";
|
||||
label = "Save";
|
||||
tooltip = "Save this message"; },
|
||||
{ link = "#";
|
||||
hasMenu = YES;
|
||||
onclick = "return onSelectOptions(event);";
|
||||
image = "options.png";
|
||||
cssClass = "tbicon_options";
|
||||
label = "Options"; }
|
||||
),
|
||||
(
|
||||
{ link = "#";
|
||||
isSafe = NO;
|
||||
onclick = "return onCloseButtonClick(event);";
|
||||
label = "Close";
|
||||
image = "tb-mail-stop-flat-24x24.png"; }
|
||||
)
|
||||
)
|
|
@ -1,74 +0,0 @@
|
|||
( /* the toolbar groups -*-cperl-*- */
|
||||
|
||||
( // first group
|
||||
{ link = "#";
|
||||
image = "tb-mail-getmail-flat-24x24.png";
|
||||
cssClass = "tbicon_getmail";
|
||||
label = "Get Mail";
|
||||
onclick = "return refreshMailbox(this);";
|
||||
tooltip = "Get new messages"; },
|
||||
{ link = "#";
|
||||
isSafe = NO;
|
||||
image = "tb-mail-write-flat-24x24.png";
|
||||
onclick = "return onComposeMessage();";
|
||||
cssClass = "tbicon_compose";
|
||||
label = "Write";
|
||||
tooltip = "Create a new message"; },
|
||||
),
|
||||
|
||||
( // second group
|
||||
{ link = "#";
|
||||
onclick = "return openMessageWindowsForSelection('reply');";
|
||||
isSafe = NO;
|
||||
image = "tb-mail-reply-flat-24x24.png";
|
||||
cssClass = "tbicon_reply";
|
||||
label = "Reply";
|
||||
tooltip = "Reply to the message"; },
|
||||
{ link = "#";
|
||||
onclick = "return openMessageWindowsForSelection('replyall');";
|
||||
isSafe = NO;
|
||||
image = "tb-mail-replyall-flat-24x24.png";
|
||||
cssClass = "tbicon_replyall";
|
||||
label = "Reply All";
|
||||
tooltip = "Reply to sender and all recipients"; },
|
||||
{ link = "#";
|
||||
onclick = "return openMessageWindowsForSelection('forward');";
|
||||
isSafe = NO;
|
||||
image = "tb-mail-forward-flat-24x24.png";
|
||||
cssClass = "tbicon_forward";
|
||||
label = "Forward";
|
||||
tooltip = "Forward selected message"; },
|
||||
),
|
||||
|
||||
( // third group
|
||||
{ link = "#";
|
||||
isSafe = NO;
|
||||
onclick = "onMenuDeleteMessage(event);";
|
||||
// enabled = showMarkDeletedButton;
|
||||
image = "tb-mail-delete-flat-24x24.png";
|
||||
cssClass = "tbicon_delete";
|
||||
label = "Delete";
|
||||
tooltip = "Delete selected message or folder"; },
|
||||
// { link = "#";
|
||||
// isSafe = NO;
|
||||
// image = "tb-mail-junk-flat-24x24.png";
|
||||
// cssClass = "tbicon_junk";
|
||||
// label = "Junk";
|
||||
// tooltip = "Mark the selected messages as junk"; },
|
||||
),
|
||||
(
|
||||
{ link = "#";
|
||||
onclick = "return onPrintCurrentMessage(event);";
|
||||
cssClass = "tbicon_print single-window-not-conditional";
|
||||
image = "tb-mail-print-flat-24x24.png";
|
||||
label = "Print";
|
||||
tooltip = "Print this message"; },
|
||||
|
||||
{ link = "#";
|
||||
onclick = "return onSearchMail(event);";
|
||||
cssClass = "";
|
||||
image = "search-messages.png";
|
||||
label = "Search";
|
||||
tooltip = "Search multiple mailboxes"; }
|
||||
)
|
||||
)
|
|
@ -1,58 +0,0 @@
|
|||
( /* the toolbar groups -*-cperl-*- */
|
||||
|
||||
( // first group
|
||||
{ link = "#";
|
||||
onclick = "return openMessageWindowsForSelection('reply');";
|
||||
isSafe = NO;
|
||||
image = "tb-mail-reply-flat-24x24.png";
|
||||
cssClass = "tbicon_reply";
|
||||
label = "Reply";
|
||||
tooltip = "Reply to the message"; },
|
||||
{ link = "#";
|
||||
onclick = "return openMessageWindowsForSelection('replyall');";
|
||||
isSafe = NO;
|
||||
image = "tb-mail-replyall-flat-24x24.png";
|
||||
cssClass = "tbicon_replyall";
|
||||
label = "Reply All";
|
||||
tooltip = "Reply to sender and all recipients"; },
|
||||
{ link = "#";
|
||||
onclick = "return openMessageWindowsForSelection('forward');";
|
||||
isSafe = NO;
|
||||
image = "tb-mail-forward-flat-24x24.png";
|
||||
cssClass = "tbicon_forward";
|
||||
label = "Forward";
|
||||
tooltip = "Forward selected message"; },
|
||||
),
|
||||
|
||||
( // second group
|
||||
{ link = "#";
|
||||
isSafe = NO;
|
||||
onclick = "onMenuDeleteMessage(event);";
|
||||
// enabled = showMarkDeletedButton;
|
||||
image = "tb-mail-delete-flat-24x24.png";
|
||||
cssClass = "tbicon_delete";
|
||||
label = "Delete";
|
||||
tooltip = "Delete selected message or folder"; },
|
||||
// { link = "#";
|
||||
// isSafe = NO;
|
||||
// image = "tb-mail-junk-flat-24x24.png";
|
||||
// cssClass = "tbicon_junk";
|
||||
// label = "Junk";
|
||||
// tooltip = "Mark the selected messages as junk"; },
|
||||
),
|
||||
(
|
||||
{ link = "#";
|
||||
onclick = "return onPrintCurrentMessage(event);";
|
||||
cssClass = "tbicon_print single-window-not-conditional";
|
||||
image = "tb-mail-print-flat-24x24.png";
|
||||
label = "Print";
|
||||
tooltip = "Print this message"; },
|
||||
),
|
||||
(
|
||||
{ link = "#";
|
||||
isSafe = NO;
|
||||
onclick = "return onCloseButtonClick(event);";
|
||||
label = "Close";
|
||||
image = "tb-mail-stop-flat-24x24.png"; }
|
||||
)
|
||||
)
|
|
@ -1,111 +0,0 @@
|
|||
/*
|
||||
Copyright (C) 2004-2005 SKYRIX Software AG
|
||||
|
||||
This file is part of OpenGroupware.org.
|
||||
|
||||
OGo is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU Lesser General Public License as published by the
|
||||
Free Software Foundation; either version 2, or (at your option) any
|
||||
later version.
|
||||
|
||||
OGo 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 Lesser General Public
|
||||
License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with OGo; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
|
||||
02111-1307, USA.
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
UIxFilterList
|
||||
|
||||
This component shows a list of filter scripts and is (usually) attached to
|
||||
a SOGoSieveScriptsFolder object.
|
||||
*/
|
||||
|
||||
@interface UIxFilterList : UIxComponent
|
||||
{
|
||||
NSArray *filters;
|
||||
id filter;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation UIxFilterList
|
||||
|
||||
- (void)dealloc {
|
||||
[self->filter release];
|
||||
[self->filters release];
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
/* notifications */
|
||||
|
||||
- (void)sleep {
|
||||
[self->filter release]; self->filter = nil;
|
||||
[self->filters release]; self->filters = nil;
|
||||
[super sleep];
|
||||
}
|
||||
|
||||
/* accessors */
|
||||
|
||||
- (void)setFilter:(id)_msg {
|
||||
ASSIGN(self->filter, _msg);
|
||||
}
|
||||
- (id)filter {
|
||||
return self->filter;
|
||||
}
|
||||
|
||||
- (NSArray *)filters {
|
||||
return self->filters;
|
||||
}
|
||||
|
||||
- (NSString *)panelTitle {
|
||||
return [self labelForKey:@"Mail Filters"];
|
||||
}
|
||||
|
||||
/* JavaScript code */
|
||||
|
||||
- (NSString *)clickedFilterJS {
|
||||
/* return 'false' aborts processing */
|
||||
return [NSString stringWithFormat:
|
||||
@"clickedFilter(this, '%@'); return false",
|
||||
[self filter]];
|
||||
}
|
||||
|
||||
/* creating scripts */
|
||||
|
||||
- (NSString *)newScriptName {
|
||||
NSCalendarDate *now;
|
||||
|
||||
now = [NSCalendarDate date];
|
||||
return [NSString stringWithFormat:@"MyFilter-%04d%02d%02d-%02d%02d%02d",
|
||||
[now yearOfCommonEra], [now monthOfYear],
|
||||
[now dayOfMonth],
|
||||
[now hourOfDay], [now minuteOfHour], [now secondOfMinute]];
|
||||
}
|
||||
|
||||
/* actions */
|
||||
|
||||
- (id)defaultAction {
|
||||
[self debugWithFormat:@"fetch scripts in: %@", [self clientObject]];
|
||||
self->filters = [[[self clientObject] toOneRelationshipKeys] copy];
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)createAction {
|
||||
NSString *newURL;
|
||||
|
||||
newURL = [[self clientObject] baseURLInContext:[self context]];
|
||||
if (![newURL hasSuffix:@"/"]) newURL = [newURL stringByAppendingString:@"/"];
|
||||
newURL = [newURL stringByAppendingString:[self newScriptName]];
|
||||
newURL = [newURL stringByAppendingString:@"/edit"];
|
||||
|
||||
return [self redirectToLocation:newURL];
|
||||
}
|
||||
|
||||
@end /* UIxFilterList */
|
|
@ -1,192 +0,0 @@
|
|||
/*
|
||||
Copyright (C) 2000-2005 SKYRIX Software AG
|
||||
|
||||
This file is part of OpenGroupware.org.
|
||||
|
||||
OGo is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU Lesser General Public License as published by the
|
||||
Free Software Foundation; either version 2, or (at your option) any
|
||||
later version.
|
||||
|
||||
OGo 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 Lesser General Public
|
||||
License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with OGo; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
|
||||
02111-1307, USA.
|
||||
*/
|
||||
|
||||
#import <Foundation/NSDictionary.h>
|
||||
|
||||
#import <NGObjWeb/WOContext.h>
|
||||
#import <NGObjWeb/WORequest.h>
|
||||
#import <EOControl/EOQualifier.h>
|
||||
#import <NGObjWeb/WOComponent.h>
|
||||
|
||||
@interface UIxMailFilterPanel : WOComponent
|
||||
{
|
||||
NSString *searchText;
|
||||
NSString *searchCriteria;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation UIxMailFilterPanel
|
||||
|
||||
static NSArray *filters = nil;
|
||||
// static NSDictionary *filterToQualifier = nil;
|
||||
|
||||
+ (void)initialize {
|
||||
// TODO: also available: answered, draft [custom: NotJunk and Junk]
|
||||
// Note: we currently cannot use: "flags != 'deleted'"
|
||||
static NSString *quals[] = {
|
||||
@"all", nil,
|
||||
@"read", @"flags = 'seen' AND NOT (flags = 'deleted')",
|
||||
@"unread", @"flags = 'unseen' AND NOT (flags = 'deleted')",
|
||||
@"deleted", @"flags = 'deleted'",
|
||||
@"flagged", @"flags = 'flagged'",
|
||||
nil, nil
|
||||
};
|
||||
NSMutableDictionary *md;
|
||||
NSMutableArray *ma;
|
||||
unsigned i;
|
||||
|
||||
#warning why not populate "filters" directly, as an NSMutableArray?
|
||||
md = [[NSMutableDictionary alloc] initWithCapacity:8];
|
||||
ma = [[NSMutableArray alloc] initWithCapacity:4];
|
||||
|
||||
for (i = 0; quals[i] != nil; i += 2) {
|
||||
[ma addObject:quals[i]];
|
||||
if (quals[i + 1] != nil) {
|
||||
[md setObject:[EOQualifier qualifierWithQualifierFormat:quals[i + 1]]
|
||||
forKey:quals[i]];
|
||||
}
|
||||
}
|
||||
|
||||
// filterToQualifier = [md copy];
|
||||
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
|
||||
{
|
||||
ASSIGN (searchText, _txt);
|
||||
}
|
||||
|
||||
- (void) setSearchCriteria: (NSString *) _txt
|
||||
{
|
||||
ASSIGN (searchText, _txt);
|
||||
}
|
||||
|
||||
- (NSString *) searchText
|
||||
{
|
||||
if (!searchText)
|
||||
{
|
||||
searchText = [[context request] formValueForKey: @"value"];
|
||||
[searchText retain];
|
||||
}
|
||||
|
||||
return searchText;
|
||||
}
|
||||
|
||||
- (NSString *) searchCriteria
|
||||
{
|
||||
if (!searchCriteria)
|
||||
{
|
||||
searchCriteria = [[context request] formValueForKey: @"criteria"];
|
||||
[searchCriteria retain];
|
||||
}
|
||||
|
||||
return searchCriteria;
|
||||
}
|
||||
|
||||
/* filters */
|
||||
|
||||
- (NSArray *) filters
|
||||
{
|
||||
return filters;
|
||||
}
|
||||
|
||||
/* qualifiers */
|
||||
|
||||
// - (EOQualifier *) searchTextQualifier
|
||||
// {
|
||||
// EOQualifier *q;
|
||||
// NSString *s;
|
||||
|
||||
// s = [self searchText];
|
||||
// if ([s length] == 0)
|
||||
// return nil;
|
||||
|
||||
// q = [EOQualifier qualifierWithQualifierFormat:
|
||||
// @"(subject doesContain: %@) OR "
|
||||
// @"(from doesContain: %@)",
|
||||
// s, s];
|
||||
// return q;
|
||||
// }
|
||||
|
||||
// - (NSString *) filterLabel
|
||||
// {
|
||||
// #if 1
|
||||
// return [[context page] labelForKey:[self valueForKey:@"filter"]];
|
||||
// #else
|
||||
// return [self valueForKey:@"filter"];
|
||||
// #endif
|
||||
// }
|
||||
|
||||
// - (NSString *) selectedFilter
|
||||
// {
|
||||
// return [[context request] formValueForKey: @"filterpopup"];
|
||||
// }
|
||||
|
||||
// - (EOQualifier *) filterQualifier
|
||||
// {
|
||||
// NSString *selectedFilter;
|
||||
|
||||
// selectedFilter = [self selectedFilter];
|
||||
|
||||
// return [selectedFilter length] > 0
|
||||
// ? [filterToQualifier objectForKey:selectedFilter] : nil;
|
||||
// }
|
||||
|
||||
// - (EOQualifier *) qualifier
|
||||
// {
|
||||
// EOQualifier *sq, *fq;
|
||||
// NSArray *qa;
|
||||
|
||||
// sq = [self searchTextQualifier];
|
||||
// fq = [self filterQualifier];
|
||||
|
||||
// if (fq == nil) return sq;
|
||||
// if (sq == nil) return fq;
|
||||
|
||||
// qa = [NSArray arrayWithObjects:fq, sq, nil];
|
||||
|
||||
// return [[[EOAndQualifier alloc] initWithQualifierArray:qa] autorelease];
|
||||
// }
|
||||
|
||||
@end /* UIxMailFilterPanel */
|
|
@ -1,29 +0,0 @@
|
|||
/* UIxMailSearch.h - this file is part of SOGo
|
||||
*
|
||||
* Copyright (C) 2006-2014 Inverse inc.
|
||||
*
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#include <SOGoUI/UIxComponent.h>
|
||||
|
||||
@interface UIxMailSearch : UIxComponent
|
||||
{
|
||||
id item;
|
||||
|
||||
}
|
||||
@end
|
|
@ -1,103 +0,0 @@
|
|||
/* UIxMailSearch.m - this file is part of SOGo
|
||||
*
|
||||
* Copyright (C) 2006-2014 Inverse inc.
|
||||
*
|
||||
* 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 <Foundation/NSDictionary.h>
|
||||
|
||||
#import <Mailer/SOGoMailAccount.h>
|
||||
#import <Mailer/SOGoMailAccounts.h>
|
||||
|
||||
#import <UIxMailSearch.h>
|
||||
|
||||
@implementation UIxMailSearch
|
||||
|
||||
- (id) init
|
||||
{
|
||||
item = nil;
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void) dealloc
|
||||
{
|
||||
[item release];
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (void) setItem: (id) newItem
|
||||
{
|
||||
ASSIGN(item, newItem);
|
||||
}
|
||||
|
||||
- (id) item
|
||||
{
|
||||
return item;
|
||||
}
|
||||
|
||||
- (NSString *) currentFolderDisplayName
|
||||
{
|
||||
return [[item allValues] lastObject];
|
||||
}
|
||||
|
||||
- (NSString *) currentFolderPath
|
||||
{
|
||||
return [[item allKeys] lastObject];
|
||||
}
|
||||
|
||||
- (NSArray *) mailAccountsList
|
||||
{
|
||||
NSDictionary *accountName, *mailbox;
|
||||
NSString *userName, *aString;
|
||||
SOGoMailAccounts *mAccounts;
|
||||
SOGoMailAccount *mAccount;
|
||||
NSArray *accountFolders;
|
||||
NSMutableArray *mailboxes;
|
||||
|
||||
int nbMailboxes, nbMailAccounts, i, j;
|
||||
|
||||
// Number of accounts linked with the current user
|
||||
mAccounts = [self clientObject];
|
||||
nbMailAccounts = [[mAccounts mailAccounts] count];
|
||||
|
||||
mailboxes = [NSMutableArray array];
|
||||
for (i = 0; i < nbMailAccounts; i++)
|
||||
{
|
||||
accountName = [[[mAccounts mailAccounts] objectAtIndex:i] objectForKey:@"name"]; // Keys on this account = (name, port, encryption, mailboxes, serverName, identities, userName)
|
||||
userName = [[[mAccounts mailAccounts] objectAtIndex:i] objectForKey:@"userName"];
|
||||
|
||||
aString = [NSString stringWithFormat:@"%i", i];
|
||||
mAccount = [mAccounts lookupName:aString inContext: context acquire: NO];
|
||||
accountFolders = [mAccount allFoldersMetadata];
|
||||
|
||||
// Number of mailboxes inside the current account
|
||||
nbMailboxes = [accountFolders count];
|
||||
[mailboxes addObject: [NSDictionary dictionaryWithObject: accountName forKey: accountName]];
|
||||
|
||||
for (j = 0; j < nbMailboxes; j++)
|
||||
{
|
||||
mailbox = [NSDictionary dictionaryWithObject: [NSString stringWithFormat:@"%@%@", userName, [[accountFolders objectAtIndex:j] objectForKey: @"displayName"]]
|
||||
forKey: [[accountFolders objectAtIndex:j] objectForKey: @"path"]];
|
||||
[mailboxes addObject: mailbox];
|
||||
}
|
||||
}
|
||||
|
||||
return mailboxes;
|
||||
}
|
||||
|
||||
@end
|
|
@ -1,333 +0,0 @@
|
|||
/*
|
||||
Copyright (C) 2004-2005 SKYRIX Software AG
|
||||
|
||||
This file is part of OpenGroupware.org.
|
||||
|
||||
OGo is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU Lesser General Public License as published by the
|
||||
Free Software Foundation; either version 2, or (at your option) any
|
||||
later version.
|
||||
|
||||
OGo 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 Lesser General Public
|
||||
License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with OGo; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
|
||||
02111-1307, USA.
|
||||
*/
|
||||
|
||||
#import <Foundation/NSDictionary.h>
|
||||
|
||||
#import <NGObjWeb/WORequest.h>
|
||||
#import <NGExtensions/NSNull+misc.h>
|
||||
|
||||
#import <SOGoUI/UIxComponent.h>
|
||||
|
||||
/*
|
||||
UIxMailToSelection
|
||||
|
||||
Select a set of address headers for composing an email.
|
||||
|
||||
Bindings:
|
||||
to - array of strings suitable for placement in a To: header
|
||||
cc - array of strings suitable for placement in a Cc: header
|
||||
bcc - array of strings suitable for placement in a Bcc: header
|
||||
|
||||
Sample:
|
||||
<var:component className="UIxMailToSelection"
|
||||
to="to"
|
||||
cc="cc"
|
||||
bcc="bcc"
|
||||
/>
|
||||
*/
|
||||
|
||||
@class NSArray;
|
||||
|
||||
@interface UIxMailToSelection : UIxComponent
|
||||
{
|
||||
NSArray *to;
|
||||
NSArray *cc;
|
||||
NSArray *bcc;
|
||||
id item;
|
||||
id address;
|
||||
NSArray *addressList;
|
||||
int currentIndex;
|
||||
}
|
||||
|
||||
- (void) setTo: (NSArray *) _to;
|
||||
- (NSArray *) to;
|
||||
- (void) setCc: (NSArray *) _cc;
|
||||
- (NSArray *) cc;
|
||||
- (void) setBcc: (NSArray *) _bcc;
|
||||
- (NSArray *) bcc;
|
||||
|
||||
- (void) getAddressesFromFormValues: (NSDictionary *) _dict;
|
||||
- (NSString *) getIndexFromIdentifier: (NSString *) _identifier;
|
||||
|
||||
@end
|
||||
|
||||
@implementation UIxMailToSelection
|
||||
|
||||
static NSArray *headers = nil;
|
||||
|
||||
+ (void) initialize
|
||||
{
|
||||
static BOOL didInit = NO;
|
||||
if (!didInit)
|
||||
{
|
||||
didInit = YES;
|
||||
headers = [[NSArray alloc] initWithObjects: @"to", @"cc", @"bcc", nil];
|
||||
}
|
||||
}
|
||||
|
||||
- (id) init
|
||||
{
|
||||
if ((self = [super init]))
|
||||
currentIndex = -1;
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void) dealloc
|
||||
{
|
||||
[to release];
|
||||
[cc release];
|
||||
[bcc release];
|
||||
[item release];
|
||||
[address release];
|
||||
[addressList release];
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
/* accessors */
|
||||
|
||||
- (void) setTo: (NSArray *) _to
|
||||
{
|
||||
ASSIGN (to, _to);
|
||||
}
|
||||
|
||||
- (NSArray *) to
|
||||
{
|
||||
NSString *mailto;
|
||||
|
||||
mailto = [self queryParameterForKey: @"mailto"];
|
||||
if ([mailto length] > 0 && ![to count])
|
||||
{
|
||||
to = [NSArray arrayWithObject: mailto];
|
||||
[to retain];
|
||||
}
|
||||
|
||||
return to;
|
||||
}
|
||||
|
||||
- (void) setCc: (NSArray *) _cc
|
||||
{
|
||||
ASSIGN (cc, _cc);
|
||||
}
|
||||
|
||||
- (NSArray *) cc
|
||||
{
|
||||
return cc;
|
||||
}
|
||||
|
||||
- (void) setBcc: (NSArray *) _bcc
|
||||
{
|
||||
ASSIGN (bcc, _bcc);
|
||||
}
|
||||
|
||||
- (NSArray *) bcc
|
||||
{
|
||||
return bcc;
|
||||
}
|
||||
|
||||
- (void) setAddressList: (NSArray *) _addressList
|
||||
{
|
||||
ASSIGN (addressList, _addressList);
|
||||
}
|
||||
|
||||
- (NSArray *) addressList
|
||||
{
|
||||
return addressList;
|
||||
}
|
||||
|
||||
- (void) setAddress: (id) _address
|
||||
{
|
||||
ASSIGN (address, _address);
|
||||
}
|
||||
|
||||
- (id) address
|
||||
{
|
||||
return address;
|
||||
}
|
||||
|
||||
- (void) setItem: (id) _item
|
||||
{
|
||||
ASSIGN (item, _item);
|
||||
}
|
||||
|
||||
- (id) item
|
||||
{
|
||||
return item;
|
||||
}
|
||||
|
||||
- (NSArray *) addressLists
|
||||
{
|
||||
NSMutableArray *ma;
|
||||
NSArray *tmp;
|
||||
|
||||
ma = [NSMutableArray arrayWithCapacity:3];
|
||||
if ([to isNotNull] && [to count] > 0)
|
||||
[ma addObject: to];
|
||||
if ([cc isNotNull])
|
||||
[ma addObject: cc];
|
||||
if ([bcc isNotNull])
|
||||
[ma addObject: bcc];
|
||||
|
||||
/* ensure that at least one object is available */
|
||||
if ([ma count] == 0)
|
||||
{
|
||||
tmp = [NSArray arrayWithObject: @""];
|
||||
ASSIGN (to, tmp);
|
||||
[ma addObject: to];
|
||||
}
|
||||
|
||||
return ma;
|
||||
}
|
||||
|
||||
- (NSArray *) headers
|
||||
{
|
||||
return headers;
|
||||
}
|
||||
|
||||
- (NSString *) currentHeader
|
||||
{
|
||||
if (addressList == to)
|
||||
return @"to";
|
||||
else if (addressList == cc)
|
||||
return @"cc";
|
||||
|
||||
return @"bcc";
|
||||
}
|
||||
|
||||
/* identifiers */
|
||||
|
||||
- (NSString *) nextId
|
||||
{
|
||||
currentIndex++;
|
||||
|
||||
return @"";
|
||||
}
|
||||
|
||||
- (NSString *) currentRowId
|
||||
{
|
||||
[self nextId];
|
||||
|
||||
return [NSString stringWithFormat: @"row_%d", currentIndex];
|
||||
}
|
||||
|
||||
- (NSString *) currentPopUpId
|
||||
{
|
||||
|
||||
return [NSString stringWithFormat: @"popup_%d", currentIndex];
|
||||
}
|
||||
|
||||
- (NSString *) currentAddressId
|
||||
{
|
||||
return [NSString stringWithFormat: @"addr_%d", currentIndex];
|
||||
}
|
||||
|
||||
/* handling requests */
|
||||
|
||||
- (void) _fillAddresses: (NSMutableArray *) addresses
|
||||
withObject: (id) object
|
||||
{
|
||||
NSEnumerator *list;
|
||||
NSString *currentAddress;
|
||||
|
||||
if ([object isKindOfClass: [NSString class]])
|
||||
[addresses addObject: object];
|
||||
else if ([object isKindOfClass: [NSArray class]])
|
||||
{
|
||||
list = [object objectEnumerator];
|
||||
while ((currentAddress
|
||||
= [[list nextObject] stringByTrimmingSpaces]))
|
||||
if ([currentAddress length])
|
||||
[addresses addObject: currentAddress];
|
||||
}
|
||||
}
|
||||
|
||||
- (void) getAddressesFromFormValues: (NSDictionary *) _dict
|
||||
{
|
||||
NSMutableArray *rawTo, *rawCc, *rawBcc;
|
||||
NSString *idx, *popupKey, *popupValue;
|
||||
NSArray *keys;
|
||||
unsigned i, count;
|
||||
id addr;
|
||||
|
||||
rawTo = [NSMutableArray arrayWithCapacity:4];
|
||||
rawCc = [NSMutableArray arrayWithCapacity:4];
|
||||
rawBcc = [NSMutableArray arrayWithCapacity:2];
|
||||
|
||||
keys = [_dict allKeys];
|
||||
count = [keys count];
|
||||
for (i = 0; i < count; i++)
|
||||
{
|
||||
NSString *key;
|
||||
|
||||
key = [keys objectAtIndex:i];
|
||||
if ([key hasPrefix:@"addr_"])
|
||||
{
|
||||
addr = [_dict objectForKey:key];
|
||||
idx = [self getIndexFromIdentifier:key];
|
||||
popupKey = [NSString stringWithFormat:@"popup_%@", idx];
|
||||
popupValue = [[_dict objectForKey:popupKey] lastObject];
|
||||
if([popupValue isEqualToString:@"0"])
|
||||
[self _fillAddresses: rawTo withObject: addr];
|
||||
else if([popupValue isEqualToString:@"1"])
|
||||
[self _fillAddresses: rawCc withObject: addr];
|
||||
else
|
||||
[self _fillAddresses: rawBcc withObject: addr];
|
||||
}
|
||||
}
|
||||
|
||||
[self setTo: rawTo];
|
||||
[self setCc: rawCc];
|
||||
[self setBcc: rawBcc];
|
||||
}
|
||||
|
||||
- (NSString *) getIndexFromIdentifier: (NSString *) _identifier
|
||||
{
|
||||
NSRange r;
|
||||
|
||||
r = [_identifier rangeOfString: @"_"];
|
||||
|
||||
return [_identifier substringFromIndex: NSMaxRange(r)];
|
||||
}
|
||||
|
||||
- (void) takeValuesFromRequest: (WORequest *) _rq
|
||||
inContext: (WOContext *) _ctx
|
||||
{
|
||||
/* OK, we have a special form value processor */
|
||||
NSDictionary *d;
|
||||
|
||||
if ((d = [_rq formValues]) == nil)
|
||||
return;
|
||||
|
||||
#if 0
|
||||
[self debugWithFormat:@"Note: will take values ..."];
|
||||
NSLog(@"%s formValues: %@",
|
||||
__PRETTY_FUNCTION__,
|
||||
d);
|
||||
#endif
|
||||
[self getAddressesFromFormValues: d];
|
||||
}
|
||||
|
||||
- (int) addressCount
|
||||
{
|
||||
return [to count] + [cc count] + [bcc count];
|
||||
}
|
||||
|
||||
@end /* UIxMailToSelection */
|
|
@ -1,72 +1,9 @@
|
|||
{ /* -*- Mode: java; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
requires = ( MAIN, MainUI, CommonUI, Mailer, MailPartViewers );
|
||||
|
||||
publicResources = ("generic.js",
|
||||
"UIxAppointmentEditor.js",
|
||||
"UIxContactEditor.js",
|
||||
"UIxMailToSelection.js",
|
||||
publicResources = ();
|
||||
|
||||
"lori_32x32.png",
|
||||
|
||||
"tbtv_account_17x17.gif",
|
||||
"tbtv_drafts_17x17.gif",
|
||||
"tbtv_inbox_17x17.png",
|
||||
"tbtv_junction2_17x17.gif",
|
||||
"tbtv_junction_17x17.gif",
|
||||
"tbtv_leaf_corner_17x17.png",
|
||||
"tbtv_line_17x17.gif",
|
||||
"tbtv_minus_17x17.gif",
|
||||
"tbtv_plus_17x17.gif",
|
||||
"tbtv_corner_17x17.gif",
|
||||
"tbtv_corner_minus_17x17.gif",
|
||||
"tbtv_corner_plus_17x17.gif",
|
||||
"tbtv_sent_17x17.gif",
|
||||
"tbtv_trash_17x17.gif",
|
||||
|
||||
"tbtb_addressbook.png",
|
||||
"tbtb_compose.png",
|
||||
"tbtb_delete.png",
|
||||
"tbtb_deletedoc.png",
|
||||
"tbtb_filetofolder.png",
|
||||
"tbtb_forward.png",
|
||||
"tbtb_getmail.png",
|
||||
"tbtb_next.png",
|
||||
"tbtb_previous.png",
|
||||
"tbtb_print.png",
|
||||
"tbtb_reply.png",
|
||||
"tbtb_replyall.png",
|
||||
"tbtb_search.png",
|
||||
"tbtb_trash.png",
|
||||
|
||||
"tbtb_compose_addressbook_30x30.png",
|
||||
"tbtb_compose_attach_30x30.png",
|
||||
"tbtb_compose_clip_30x30.png",
|
||||
"tbtb_compose_cut_30x30.png",
|
||||
"tbtb_compose_dup_30x30.png",
|
||||
"tbtb_compose_file_30x30.png",
|
||||
"tbtb_compose_lock_30x30.png",
|
||||
"tbtb_compose_quote_30x30.png",
|
||||
"tbtb_compose_send_30x30.png",
|
||||
"tbtb_compose_spell_30x30.png",
|
||||
|
||||
"message-mail.png",
|
||||
"message-mail-read.png",
|
||||
|
||||
"dot.png",
|
||||
"flag.png",
|
||||
"icon_unread.gif",
|
||||
|
||||
"title_attachment_14x14.png",
|
||||
"title_config.png",
|
||||
"title_junk.png",
|
||||
"title_read_14x14.png",
|
||||
"title_thread.png",
|
||||
"title_sortdown_12x12.png",
|
||||
"title_sortup_12x12.png",
|
||||
);
|
||||
|
||||
factories = {
|
||||
};
|
||||
factories = {};
|
||||
|
||||
categories = {
|
||||
SOGoMailFolder = {
|
||||
|
|
|
@ -218,22 +218,6 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
// SOGoGroupsFolder = {
|
||||
// methods = {
|
||||
// index = {
|
||||
// protectedBy = "View";
|
||||
// pageName = "SOGoGroupsPage";
|
||||
// };
|
||||
// };
|
||||
// };
|
||||
// SOGoGroupFolder = {
|
||||
// methods = {
|
||||
// index = {
|
||||
// protectedBy = "View";
|
||||
// pageName = "SOGoGroupPage";
|
||||
// };
|
||||
// };
|
||||
// };
|
||||
SOGoFreeBusyObject = {
|
||||
methods = {
|
||||
ajaxRead = {
|
||||
|
|
|
@ -17,14 +17,11 @@ SchedulerUI_OBJC_FILES = \
|
|||
UIxCalendarProperties.m \
|
||||
UIxCalendarFolderLinksTemplate.m\
|
||||
\
|
||||
UIxCalFilterPanel.m \
|
||||
UIxCalDayTable.m \
|
||||
UIxCalDateSelector.m \
|
||||
UIxCalUserRightsEditor.m \
|
||||
UIxCalFolderActions.m \
|
||||
\
|
||||
UIxCalView.m \
|
||||
UIxCalViewPrint.m \
|
||||
UIxCalDayView.m \
|
||||
UIxCalMulticolumnDayView.m \
|
||||
UIxCalWeekView.m \
|
||||
|
@ -39,24 +36,12 @@ SchedulerUI_OBJC_FILES = \
|
|||
UIxAppointmentActions.m \
|
||||
UIxAppointmentEditor.m \
|
||||
UIxTaskEditor.m \
|
||||
UIxDatePicker.m \
|
||||
UIxTimeDateControl.m \
|
||||
UIxCalMonthOverview.m \
|
||||
UIxCalMonthViewOld.m \
|
||||
UIxRecurrenceEditor.m \
|
||||
UIxReminderEditor.m \
|
||||
UIxOccurenceDialog.m
|
||||
UIxReminderEditor.m
|
||||
|
||||
SchedulerUI_RESOURCE_FILES += \
|
||||
product.plist
|
||||
|
||||
SchedulerUI_RESOURCE_FILES += \
|
||||
Toolbars/SOGoAppointmentFolders.toolbar \
|
||||
Toolbars/SOGoAppointmentObject.toolbar \
|
||||
Toolbars/SOGoTaskObject.toolbar \
|
||||
Toolbars/SOGoComponentClose.toolbar \
|
||||
Toolbars/SOGoEmpty.toolbar
|
||||
|
||||
SchedulerUI_LOCALIZED_RESOURCE_FILES += \
|
||||
Localizable.strings
|
||||
|
||||
|
|
|
@ -1,55 +0,0 @@
|
|||
( /* the toolbar groups -*-java-*- */
|
||||
( { link = "#";
|
||||
isSafe = NO;
|
||||
label = "New Event";
|
||||
onclick = "return newEvent('event');";
|
||||
image = "new-event.png";
|
||||
tooltip = "Create a new event"; },
|
||||
{ link = "#";
|
||||
label="New Task";
|
||||
image = "new-task.png";
|
||||
onclick = "return newEvent('task');";
|
||||
image = "new-task.png";
|
||||
tooltip = "Create a new task"; } ),
|
||||
( { link = "#";
|
||||
label="Go to Today";
|
||||
onclick = "return gotoToday();";
|
||||
image = "goto-today.png";
|
||||
tooltip = "Go to today"; } ),
|
||||
( { link = "#";
|
||||
label="Day View";
|
||||
onclick = "return onDayOverview();";
|
||||
image = "day-view.png";
|
||||
tooltip = "Switch to day view"; },
|
||||
{ link = "#";
|
||||
label="Multicolumn Day View";
|
||||
onclick = "return onMulticolumnDayOverview();";
|
||||
image = "day-view-multicolumn.png";
|
||||
tooltip = "Switch to multi-columns day view"; },
|
||||
{ link = "#";
|
||||
label="Week View";
|
||||
onclick = "return onWeekOverview();";
|
||||
image = "week-view.png";
|
||||
tooltip = "Switch to week view"; },
|
||||
{ link = "#";
|
||||
label="Month View";
|
||||
onclick = "return onMonthOverview();";
|
||||
image = "month-view.png";
|
||||
tooltip = "Switch to month view"; } ),
|
||||
( { link = "#";
|
||||
onclick = "return printView();";
|
||||
cssClass = "tbicon_print single-window-not-conditional";
|
||||
image = "tb-mail-print-flat-24x24.png";
|
||||
label = "Print view";
|
||||
tooltip = "Print the current calendar view"; } ),
|
||||
( { link = "#";
|
||||
label="Delete";
|
||||
onclick = "return deleteEvent(this);";
|
||||
image = "tb-mail-delete-flat-24x24.png";
|
||||
tooltip = "Delete this event or task"; } ),
|
||||
( { link = "#";
|
||||
label = "Reload";
|
||||
onclick = "return onCalendarReload();";
|
||||
image = "calendar-reload.png";
|
||||
tooltip = "Reload all calendars"; } )
|
||||
)
|
|
@ -1,19 +0,0 @@
|
|||
( /* the toolbar groups -*-cperl-*- */
|
||||
( { link = "#";
|
||||
label = "Save and Close";
|
||||
onclick = "return saveEvent();";
|
||||
image = "tb-compose-save-flat-24x24.png"; },
|
||||
{ link = "#";
|
||||
label = "Invite Attendees";
|
||||
onclick = "return onPopupAttendeesWindow();";
|
||||
image = "tb-compose-contacts-flat-24x24.png"; },
|
||||
{ link = "#";
|
||||
hasMenu = YES;
|
||||
label = "Privacy";
|
||||
onclick = "return onSelectClassification(event);";
|
||||
image = "tb-compose-security-flat-24x24.png"; },
|
||||
{ link = "#";
|
||||
label = "Attach";
|
||||
onclick = "return onPopupAttachWindow();";
|
||||
image = "tb-compose-attach-flat-24x24.png"; } )
|
||||
)
|
|
@ -1,7 +0,0 @@
|
|||
( /* the toolbar groups -*-cperl-*- */
|
||||
( { link = "#";
|
||||
isSafe = NO;
|
||||
label = "Close";
|
||||
onclick = "window.close(); return false;";
|
||||
image = "tb-mail-stop-flat-24x24.png"; } )
|
||||
)
|
|
@ -1,2 +0,0 @@
|
|||
( /* the toolbar groups -*-cperl-*- */
|
||||
)
|
|
@ -1,15 +0,0 @@
|
|||
( /* the toolbar groups -*-cperl-*- */
|
||||
( { link = "#";
|
||||
label = "Save and Close";
|
||||
onclick = "return saveEvent();";
|
||||
image = "tb-compose-save-flat-24x24.png"; },
|
||||
{ link = "#";
|
||||
hasMenu = YES;
|
||||
label = "Privacy";
|
||||
onclick = "return onSelectClassification(event);";
|
||||
image = "tb-compose-security-flat-24x24.png"; },
|
||||
{ link = "#";
|
||||
label = "Attach";
|
||||
onclick = "return onPopupAttachWindow();";
|
||||
image = "tb-compose-attach-flat-24x24.png"; } )
|
||||
)
|
|
@ -1,47 +0,0 @@
|
|||
/* UIxCalDateSelector.h - this file is part of SOGo
|
||||
*
|
||||
* Copyright (C) 2006 Inverse inc.
|
||||
*
|
||||
* Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||
*
|
||||
* 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 UIXCALDATESELECTOR_H
|
||||
#define UIXCALDATESELECTOR_H
|
||||
|
||||
#include "UIxCalMonthOverview.h"
|
||||
|
||||
@interface UIxCalDateSelector : UIxCalMonthOverview
|
||||
{
|
||||
NSCalendarDate *selectedDate;
|
||||
NSString *style;
|
||||
NSString *headerStyle;
|
||||
NSString *weekStyle;
|
||||
NSString *todayWeekStyle;
|
||||
NSString *dayHeaderStyle;
|
||||
NSString *dayBodyStyle;
|
||||
NSString *todayBodyStyle;
|
||||
NSString *inactiveDayBodyStyle;
|
||||
NSString *selectedDayExtraStyle;
|
||||
NSString *daySelectionHref;
|
||||
NSString *weekSelectionHref;
|
||||
NSString *monthSelectionHref;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
#endif /* UIXCALDATESELECTOR_H */
|
|
@ -1,193 +0,0 @@
|
|||
/* UIxCalDateSelector.m - this file is part of SOGo
|
||||
*
|
||||
* Copyright (C) 2006 Inverse inc.
|
||||
*
|
||||
* Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||
*
|
||||
* 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 <NGExtensions/NSCalendarDate+misc.h>
|
||||
|
||||
#import <SOGo/SOGoUser.h>
|
||||
#import <SOGo/SOGoUserDefaults.h>
|
||||
#import <SOGo/NSCalendarDate+SOGo.h>
|
||||
|
||||
#import "UIxCalDateSelector.h"
|
||||
|
||||
@implementation UIxCalDateSelector
|
||||
|
||||
/* binding accessors */
|
||||
|
||||
- (void) setSelectedDate: (NSCalendarDate *) _date
|
||||
{
|
||||
ASSIGN (selectedDate, _date);
|
||||
[selectedDate setTimeZone: timeZone];
|
||||
}
|
||||
|
||||
- (NSCalendarDate *) selectedDate
|
||||
{
|
||||
if (!selectedDate)
|
||||
selectedDate = [super selectedDate];
|
||||
|
||||
return selectedDate;
|
||||
}
|
||||
|
||||
- (NSString *) style
|
||||
{
|
||||
return style;
|
||||
}
|
||||
|
||||
- (NSString *) headerStyle
|
||||
{
|
||||
return headerStyle;
|
||||
}
|
||||
|
||||
- (NSString *) weekStyle
|
||||
{
|
||||
return weekStyle;
|
||||
}
|
||||
|
||||
- (void) setTodayWeekStyle: (NSString *) _style
|
||||
{
|
||||
ASSIGN (todayWeekStyle, _style);
|
||||
}
|
||||
|
||||
- (NSString *) todayWeekStyle
|
||||
{
|
||||
return ((todayWeekStyle)
|
||||
? todayWeekStyle
|
||||
: [self weekStyle]);
|
||||
}
|
||||
|
||||
- (NSString *) dayHeaderStyle
|
||||
{
|
||||
return dayHeaderStyle;
|
||||
}
|
||||
|
||||
- (void) setSelectedDayExtraStyle: (NSString *) _style
|
||||
{
|
||||
ASSIGN(selectedDayExtraStyle, _style);
|
||||
}
|
||||
|
||||
- (NSString *) selectedDayExtraStyle
|
||||
{
|
||||
return selectedDayExtraStyle;
|
||||
}
|
||||
|
||||
- (NSTimeZone *) viewTimeZone
|
||||
{
|
||||
return timeZone;
|
||||
}
|
||||
|
||||
/* date ranges */
|
||||
|
||||
- (NSCalendarDate *) startDate
|
||||
{
|
||||
return [[self selectedDate] firstDayOfMonth];
|
||||
}
|
||||
|
||||
- (unsigned int) firstDayOfWeek
|
||||
{
|
||||
SOGoUserDefaults *ud;
|
||||
|
||||
ud = [[context activeUser] userDefaults];
|
||||
|
||||
return [ud firstDayOfWeek];
|
||||
}
|
||||
|
||||
/* labels */
|
||||
|
||||
- (NSString *) headerMonthValue
|
||||
{
|
||||
NSCalendarDate *date;
|
||||
|
||||
date = [self startDate];
|
||||
|
||||
return [NSString stringWithFormat: @"%.2d", (int)[date monthOfYear]];
|
||||
}
|
||||
|
||||
- (NSString *) headerMonthString
|
||||
{
|
||||
NSCalendarDate *date;
|
||||
|
||||
date = [self startDate];
|
||||
|
||||
return [NSString stringWithFormat:@"%@",
|
||||
[self localizedNameForMonthOfYear: [date monthOfYear]]];
|
||||
}
|
||||
|
||||
- (NSString *) headerYearString
|
||||
{
|
||||
NSCalendarDate *date;
|
||||
|
||||
date = [self startDate];
|
||||
|
||||
return [NSString stringWithFormat: @"%d", (int)[date yearOfCommonEra]];
|
||||
}
|
||||
|
||||
- (NSString *) localizedDayOfWeekName
|
||||
{
|
||||
return [self localizedAbbreviatedNameForDayOfWeek: [self dayOfWeek]];
|
||||
}
|
||||
|
||||
/* stylesheets */
|
||||
|
||||
- (NSString *) currentWeekStyle
|
||||
{
|
||||
return (([currentWeekStart isDateInSameWeek:[NSCalendarDate date]] &&
|
||||
[currentWeekStart isDateInSameMonth:[self selectedDate]])
|
||||
? [self todayWeekStyle]
|
||||
: [self weekStyle]);
|
||||
}
|
||||
|
||||
- (NSString *) contentStyle
|
||||
{
|
||||
return (([currentDay isToday]
|
||||
&& [currentDay isDateInSameMonth:[self selectedDate]])
|
||||
? @"dayOfToday"
|
||||
: (([currentDay monthOfYear] != [[self startDate] monthOfYear])
|
||||
? @"inactiveDay"
|
||||
: @"activeDay"));
|
||||
}
|
||||
|
||||
- (NSString *) extraStyle
|
||||
{
|
||||
NSString *extraStyle;
|
||||
|
||||
if ([[self selectedDate] isDateOnSameDay: currentDay])
|
||||
extraStyle = [self selectedDayExtraStyle];
|
||||
else
|
||||
extraStyle = nil;
|
||||
|
||||
return extraStyle;
|
||||
}
|
||||
|
||||
/* URLs */
|
||||
|
||||
- (NSDictionary *) currentMonthQueryParameters
|
||||
{
|
||||
return [self queryParametersBySettingSelectedDate: [self startDate]];
|
||||
}
|
||||
|
||||
/* overriding */
|
||||
|
||||
- (NSArray *) fetchCoreInfos
|
||||
{
|
||||
return nil;
|
||||
}
|
||||
|
||||
@end
|
|
@ -1,36 +0,0 @@
|
|||
/* UIxContactsFilterPanel.h - this file is part of SOGo
|
||||
*
|
||||
* Copyright (C) 2006-2018 Inverse inc.
|
||||
*
|
||||
* 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 UIXCONTACTSFILTERPANEL_H
|
||||
#define UIXCONTACTSFILTERPANEL_H
|
||||
|
||||
#import <SOGoUI/UIxComponent.h>
|
||||
|
||||
@class NSString;
|
||||
|
||||
@interface UIxCalFilterPanel : UIxComponent
|
||||
{
|
||||
NSString *searchText;
|
||||
NSString *searchCriteria;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
#endif /* UIXCONTACTSFILTERPANEL_H */
|
|
@ -1,125 +0,0 @@
|
|||
/* UIxContactsFilterPanel.m - this file is part of SOGo
|
||||
*
|
||||
* Copyright (C) 2006-2018 Inverse inc.
|
||||
*
|
||||
* 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 <Foundation/NSKeyValueCoding.h>
|
||||
|
||||
|
||||
#import <SOGo/SOGoUser.h>
|
||||
#import <SOGo/SOGoUserSettings.h>
|
||||
|
||||
#import "UIxCalFilterPanel.h"
|
||||
|
||||
static NSArray *filters = nil;
|
||||
|
||||
@implementation UIxCalFilterPanel
|
||||
|
||||
+ (void) initialize
|
||||
{
|
||||
static NSString *quals[]
|
||||
= {@"view_all",
|
||||
@"view_today", @"view_next7", @"view_next14",
|
||||
@"view_next31", @"view_thismonth", @"view_thisyear", @"view_future",
|
||||
@"view_selectedday" };
|
||||
|
||||
if (!filters)
|
||||
{
|
||||
filters = [NSArray arrayWithObjects: quals count: 8];
|
||||
[filters retain];
|
||||
}
|
||||
}
|
||||
|
||||
- (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
|
||||
{
|
||||
ASSIGN (searchText, _txt);
|
||||
}
|
||||
|
||||
- (void) setSearchCriteria: (NSString *)_txt
|
||||
{
|
||||
ASSIGN (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
|
||||
{
|
||||
return [self labelForKey: [self valueForKey:@"filter"]];
|
||||
}
|
||||
|
||||
- (NSString *) selectedFilter
|
||||
{
|
||||
NSString *selectedFilter;
|
||||
SOGoUserSettings *us;
|
||||
|
||||
selectedFilter = [self queryParameterForKey: @"filterpopup"];
|
||||
if (![selectedFilter length])
|
||||
{
|
||||
us = [[context activeUser] userSettings];
|
||||
selectedFilter = [us objectForKey: @"CalendarDefaultFilter"];
|
||||
}
|
||||
if (![selectedFilter length])
|
||||
selectedFilter = @"view_today";
|
||||
|
||||
return selectedFilter;
|
||||
}
|
||||
|
||||
@end /* UIxCalFilterPanel */
|
|
@ -1,60 +0,0 @@
|
|||
/*
|
||||
Copyright (C) 2004 SKYRIX Software AG
|
||||
|
||||
This file is part of OpenGroupware.org.
|
||||
|
||||
OGo is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU Lesser General Public License as published by the
|
||||
Free Software Foundation; either version 2, or (at your option) any
|
||||
later version.
|
||||
|
||||
OGo 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 Lesser General Public
|
||||
License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with OGo; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
|
||||
02111-1307, USA.
|
||||
*/
|
||||
// $Id: UIxCalMonthOverview.h 181 2004-08-11 15:13:25Z helge $
|
||||
|
||||
|
||||
#import "UIxCalMonthViewOld.h"
|
||||
|
||||
@class NSCalendarDate, NSString, NSDictionary, NSArray;
|
||||
|
||||
@interface UIxCalMonthOverview : UIxCalMonthViewOld
|
||||
{
|
||||
int dayIndex;
|
||||
int dayOfWeek;
|
||||
int weekOfYear;
|
||||
NSCalendarDate *currentWeekStart;
|
||||
}
|
||||
|
||||
- (void)setDayIndex:(int)_idx;
|
||||
- (int)dayIndex;
|
||||
- (void)setDayOfWeek:(int)_day;
|
||||
- (int)dayOfWeek;
|
||||
|
||||
- (void)setCurrentWeekStartDate:(NSCalendarDate *)_date;
|
||||
- (NSCalendarDate *)currentWeekStartDate;
|
||||
- (void)setWeekOfYear:(int)_week;
|
||||
- (int)weekOfYear;
|
||||
- (int)year;
|
||||
- (int)month;
|
||||
- (NSString *)localizedDayOfWeekName;
|
||||
- (NSDictionary *)currentWeekQueryParameters;
|
||||
|
||||
/* style sheet */
|
||||
|
||||
- (NSString *)weekStyle;
|
||||
- (NSString *)contentStyle;
|
||||
|
||||
/* appointments */
|
||||
|
||||
// - (NSArray *)appointments;
|
||||
|
||||
@end
|
||||
|
|
@ -1,104 +0,0 @@
|
|||
|
||||
#import <NGExtensions/NSCalendarDate+misc.h>
|
||||
|
||||
#import <SOGoUI/SOGoAptFormatter.h>
|
||||
|
||||
#import "UIxCalMonthOverview.h"
|
||||
|
||||
@implementation UIxCalMonthOverview
|
||||
|
||||
- (void)dealloc {
|
||||
[currentWeekStart release];
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (void)configureFormatters {
|
||||
[super configureFormatters];
|
||||
|
||||
[aptFormatter setShortTitleOnly];
|
||||
[privateAptFormatter setPrivateTitleOnly];
|
||||
}
|
||||
|
||||
- (void)setDayIndex:(int)_idx {
|
||||
dayIndex = _idx;
|
||||
}
|
||||
|
||||
- (int)dayIndex {
|
||||
return dayIndex;
|
||||
}
|
||||
|
||||
- (void)setDayOfWeek:(int)_day {
|
||||
dayOfWeek = _day;
|
||||
}
|
||||
|
||||
- (int)dayOfWeek {
|
||||
return dayOfWeek;
|
||||
}
|
||||
|
||||
- (void)setCurrentWeekStartDate:(NSCalendarDate *)_date {
|
||||
ASSIGN(currentWeekStart, _date);
|
||||
}
|
||||
|
||||
- (NSCalendarDate *)currentWeekStartDate {
|
||||
return currentWeekStart;
|
||||
}
|
||||
|
||||
- (void)setWeekOfYear:(int)_week {
|
||||
NSCalendarDate *date;
|
||||
|
||||
weekOfYear = _week;
|
||||
if(_week == 52 || _week == 53)
|
||||
date = [[self startOfMonth] mondayOfWeek];
|
||||
else
|
||||
date = [self startOfMonth];
|
||||
date = [date mondayOfWeek:_week];
|
||||
[self setCurrentWeekStartDate:date];
|
||||
}
|
||||
|
||||
- (int)weekOfYear {
|
||||
return weekOfYear;
|
||||
}
|
||||
|
||||
- (int)year {
|
||||
return [[self startOfMonth] yearOfCommonEra];
|
||||
}
|
||||
|
||||
- (int)month {
|
||||
return [[self startOfMonth] monthOfYear];
|
||||
}
|
||||
|
||||
- (NSString *)localizedDayOfWeekName {
|
||||
return [self localizedNameForDayOfWeek:dayOfWeek];
|
||||
}
|
||||
|
||||
- (NSDictionary *)currentWeekQueryParameters {
|
||||
return [self queryParametersBySettingSelectedDate:currentWeekStart];
|
||||
}
|
||||
|
||||
|
||||
/* style sheet */
|
||||
|
||||
|
||||
- (NSString *)weekStyle {
|
||||
if([currentWeekStart isDateInSameWeek:[NSCalendarDate date]])
|
||||
return @"monthoverview_week_hilite";
|
||||
return @"monthoverview_week";
|
||||
}
|
||||
|
||||
- (NSString *)contentStyle {
|
||||
if([currentDay isToday])
|
||||
return @"monthoverview_content_hilite";
|
||||
else if([currentDay monthOfYear] != [[self startOfMonth] monthOfYear])
|
||||
return @"monthoverview_content_dimmed";
|
||||
return @"monthoverview_content";
|
||||
}
|
||||
|
||||
|
||||
/* appointments */
|
||||
|
||||
|
||||
// - (NSArray *)appointments {
|
||||
// return [self fetchCoreAppointmentsInfos];
|
||||
// }
|
||||
|
||||
@end /* UIxCalMonthOverview */
|
|
@ -1,23 +0,0 @@
|
|||
// $Id: UIxCalMonthView.h 163 2004-08-02 12:59:28Z znek $
|
||||
|
||||
#ifndef __SOGo_UIxCalMonthViewOld_H__
|
||||
#define __SOGo_UIxCalMonthViewOld_H__
|
||||
|
||||
#include "UIxCalView.h"
|
||||
|
||||
/*
|
||||
UIxCalMonthView
|
||||
|
||||
Abstract superclass for views which display months.
|
||||
*/
|
||||
|
||||
@interface UIxCalMonthViewOld : UIxCalView
|
||||
|
||||
- (NSCalendarDate *) startOfMonth;
|
||||
|
||||
- (NSDictionary *) prevMonthQueryParameters;
|
||||
- (NSDictionary *) nextMonthQueryParameters;
|
||||
|
||||
@end
|
||||
|
||||
#endif /* __SOGo_UIxCalMonthViewOld_H__ */
|
|
@ -1,39 +0,0 @@
|
|||
#import <NGExtensions/NSCalendarDate+misc.h>
|
||||
|
||||
#import <SOGo/NSCalendarDate+SOGo.h>
|
||||
|
||||
#import "UIxCalMonthViewOld.h"
|
||||
|
||||
@implementation UIxCalMonthViewOld
|
||||
|
||||
- (NSCalendarDate *) startOfMonth
|
||||
{
|
||||
return [[[super startDate] firstDayOfMonth] beginOfDay];
|
||||
}
|
||||
|
||||
- (NSCalendarDate *) startDate
|
||||
{
|
||||
return [[self startOfMonth] mondayOfWeek];
|
||||
}
|
||||
|
||||
/* URLs */
|
||||
|
||||
- (NSDictionary *) prevMonthQueryParameters
|
||||
{
|
||||
NSCalendarDate *date;
|
||||
|
||||
date = [[self startOfMonth] dateByAddingYears:0 months:-1 days:0
|
||||
hours:0 minutes:0 seconds:0];
|
||||
return [self queryParametersBySettingSelectedDate:date];
|
||||
}
|
||||
|
||||
- (NSDictionary *)nextMonthQueryParameters
|
||||
{
|
||||
NSCalendarDate *date;
|
||||
|
||||
date = [[self startOfMonth] dateByAddingYears:0 months:1 days:0
|
||||
hours:0 minutes:0 seconds:0];
|
||||
return [self queryParametersBySettingSelectedDate:date];
|
||||
}
|
||||
|
||||
@end /* UIxCalMonthView */
|
|
@ -1,31 +0,0 @@
|
|||
/* UIxCalViewPrint.h - this file is part of SOGo
|
||||
*
|
||||
* Copyright (C) 2006-2014 Inverse inc.
|
||||
*
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#include <UIxCalendarSelector.h>
|
||||
|
||||
@interface UIxCalViewPrint : UIxCalendarSelector
|
||||
{
|
||||
id item;
|
||||
SOGoUserSettings *us;
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
@ -1,99 +0,0 @@
|
|||
/* UIxCalViewPrint.m - this file is part of SOGo
|
||||
*
|
||||
* Copyright (C) 2006-2014 Inverse inc.
|
||||
*
|
||||
* 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 <SOGo/SOGoUserSettings.h>
|
||||
#import <SOGo/SOGoUser.h>
|
||||
|
||||
#import <UIxCalViewPrint.h>
|
||||
|
||||
static NSArray *layoutItems = nil;
|
||||
|
||||
@implementation UIxCalViewPrint
|
||||
|
||||
+ (void) initialize
|
||||
{
|
||||
if (!layoutItems)
|
||||
{
|
||||
layoutItems = [NSArray arrayWithObjects: @"LIST", @"Daily", @"Multi-Columns", @"Weekly", nil];
|
||||
[layoutItems retain];
|
||||
}
|
||||
}
|
||||
|
||||
- (id) init
|
||||
{
|
||||
item = nil;
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void) dealloc
|
||||
{
|
||||
[item release];
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (void) setItem: (NSString *) newItem
|
||||
{
|
||||
ASSIGN(item, newItem);
|
||||
}
|
||||
|
||||
- (NSString *) item
|
||||
{
|
||||
return item;
|
||||
}
|
||||
|
||||
- (NSArray *) printLayoutList
|
||||
{
|
||||
return layoutItems;
|
||||
}
|
||||
|
||||
- (NSString *) itemPrintLayoutText
|
||||
{
|
||||
return [self labelForKey: [NSString stringWithFormat: @"%@", item]];
|
||||
}
|
||||
|
||||
//
|
||||
// The objective here is to return the parent view layout and select the print
|
||||
// layout corresponding. Default print view: list view
|
||||
//
|
||||
- (NSString *) parentPrintLayout
|
||||
{
|
||||
SOGoUser *activeUser;
|
||||
NSString *parentView;
|
||||
|
||||
activeUser = [[self context] activeUser];
|
||||
us = [activeUser userSettings];
|
||||
parentView = [[us objectForKey:@"Calendar"] objectForKey:@"View" ];
|
||||
|
||||
if ([parentView isEqualToString:@"dayview"])
|
||||
return @"Daily";
|
||||
|
||||
else if ([parentView isEqualToString:@"weekview"])
|
||||
return @"Weekly";
|
||||
|
||||
else if ([parentView isEqualToString:@"multicolumndayview"])
|
||||
return @"Multi-Columns";
|
||||
|
||||
else
|
||||
return @"LIST";
|
||||
}
|
||||
|
||||
@end
|
|
@ -1,43 +0,0 @@
|
|||
/* UIxDatePicker.h - this file is part of SOGo
|
||||
*
|
||||
* Copyright (C) 2009-2014 Inverse inc.
|
||||
*
|
||||
* 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 UIXDATEPICKER_H
|
||||
#define UIXDATEPICKER_H
|
||||
|
||||
|
||||
@class NSString;
|
||||
|
||||
@interface UIxDatePicker : WOComponent
|
||||
{
|
||||
NSString *dateID;
|
||||
id day;
|
||||
id month;
|
||||
id year;
|
||||
NSString *label;
|
||||
BOOL isDisabled;
|
||||
}
|
||||
|
||||
- (NSString *) dateID;
|
||||
- (NSString *) dateFormat;
|
||||
- (NSString *) jsDateFormat;
|
||||
- (BOOL) useISOFormats;
|
||||
@end
|
||||
|
||||
#endif /* UIXDATEPICKER_H */
|
|
@ -1,224 +0,0 @@
|
|||
/* UIxDatePicker.h - this file is part of SOGo
|
||||
*
|
||||
* Copyright (C) 2009-2014 Inverse inc.
|
||||
*
|
||||
* 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 <Foundation/NSValue.h>
|
||||
#import <Foundation/NSCalendarDate.h>
|
||||
#import <Foundation/NSTimeZone.h>
|
||||
|
||||
#import <NGObjWeb/WOContext+SoObjects.h>
|
||||
#import <NGObjWeb/WORequest.h>
|
||||
#import <NGExtensions/NSObject+Logs.h>
|
||||
|
||||
#import <SOGo/SOGoUser.h>
|
||||
#import <SOGo/SOGoUserDefaults.h>
|
||||
|
||||
#import "UIxDatePicker.h"
|
||||
|
||||
@implementation UIxDatePicker
|
||||
|
||||
- (id) init
|
||||
{
|
||||
if ((self = [super init]))
|
||||
{
|
||||
dateID = nil;
|
||||
day = nil;
|
||||
year = nil;
|
||||
label = nil;
|
||||
isDisabled = NO;
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void) dealloc
|
||||
{
|
||||
[self->dateID release];
|
||||
[self->day release];
|
||||
[self->month release];
|
||||
[self->year release];
|
||||
[self->label release];
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
/* Accessors */
|
||||
|
||||
- (void) setDateID: (NSString *) _dateID
|
||||
{
|
||||
ASSIGNCOPY(self->dateID, _dateID);
|
||||
}
|
||||
- (NSString *) dateID
|
||||
{
|
||||
return self->dateID;
|
||||
}
|
||||
|
||||
- (void) setDay: (id) _day
|
||||
{
|
||||
ASSIGN(self->day, _day);
|
||||
}
|
||||
- (id) day
|
||||
{
|
||||
return self->day;
|
||||
}
|
||||
|
||||
- (void) setMonth: (id) _month
|
||||
{
|
||||
ASSIGN(self->month, _month);
|
||||
}
|
||||
- (id) month
|
||||
{
|
||||
return self->month;
|
||||
}
|
||||
|
||||
- (void) setYear: (id) _year
|
||||
{
|
||||
ASSIGN(self->year, _year);
|
||||
}
|
||||
- (id) year
|
||||
{
|
||||
return self->year;
|
||||
}
|
||||
|
||||
- (void) setLabel: (NSString *) _label
|
||||
{
|
||||
ASSIGNCOPY(self->label, _label);
|
||||
}
|
||||
- (NSString *) label
|
||||
{
|
||||
return self->label;
|
||||
}
|
||||
|
||||
|
||||
/* formats */
|
||||
|
||||
- (BOOL) useISOFormats
|
||||
{
|
||||
NSNumber *useISOFormats;
|
||||
WOContext *ctx;
|
||||
|
||||
ctx = [self context];
|
||||
useISOFormats = [ctx valueForKey:@"useISOFormats"];
|
||||
if (!useISOFormats)
|
||||
{
|
||||
NSArray *languages;
|
||||
|
||||
languages = [ctx resourceLookupLanguages];
|
||||
if (languages && [languages count] > 0)
|
||||
{
|
||||
if ([[languages objectAtIndex:0] isEqualToString:@"French"])
|
||||
{
|
||||
useISOFormats = [NSNumber numberWithBool:NO];
|
||||
}
|
||||
}
|
||||
if (!useISOFormats)
|
||||
useISOFormats = [NSNumber numberWithBool: YES];
|
||||
|
||||
[ctx takeValue: useISOFormats forKey:@"useISOFormats"];
|
||||
}
|
||||
|
||||
return [useISOFormats boolValue];
|
||||
}
|
||||
|
||||
- (NSString *) formattedDateString
|
||||
{
|
||||
char buf[22];
|
||||
|
||||
if ([self useISOFormats])
|
||||
{
|
||||
sprintf(buf, "%04d-%02d-%02d",
|
||||
[[self year] intValue],
|
||||
[[self month] intValue],
|
||||
[[self day] intValue]);
|
||||
}
|
||||
else
|
||||
{
|
||||
sprintf(buf, "%02d/%02d/%04d",
|
||||
[[self day] intValue],
|
||||
[[self month] intValue],
|
||||
[[self year] intValue]);
|
||||
}
|
||||
return [NSString stringWithCString:buf];
|
||||
}
|
||||
|
||||
- (NSString *) dateFormat
|
||||
{
|
||||
return [self useISOFormats] ? @"%Y-%m-%d" : @"%d/%m/%Y";
|
||||
}
|
||||
|
||||
- (NSString *) jsDateFormat
|
||||
{
|
||||
return [self useISOFormats] ? @"yyyy-mm-dd" : @"dd/mm/yyyy";
|
||||
}
|
||||
|
||||
- (void) takeValuesFromRequest: (WORequest *) _rq
|
||||
inContext: (WOContext *) _ctx
|
||||
{
|
||||
NSInteger dateTZOffset, userTZOffset;
|
||||
NSTimeZone *systemTZ, *userTZ;
|
||||
SOGoUserDefaults *ud;
|
||||
NSString *dateString;
|
||||
NSCalendarDate *d;
|
||||
|
||||
dateString = [_rq formValueForKey:[self dateID]];
|
||||
|
||||
if (dateString == nil)
|
||||
{
|
||||
[self debugWithFormat:@"got no date string!"];
|
||||
return;
|
||||
}
|
||||
|
||||
d = [NSCalendarDate dateWithString: dateString
|
||||
calendarFormat: [self dateFormat]];
|
||||
if (!d)
|
||||
{
|
||||
[self warnWithFormat: @"Could not parse dateString: '%@'",
|
||||
dateString];
|
||||
}
|
||||
|
||||
/* we must adjust the date timezone because "dateWithString:..." uses the
|
||||
system timezone, which can be different from the user's. */
|
||||
ud = [[_ctx activeUser] userDefaults];
|
||||
systemTZ = [d timeZone];
|
||||
dateTZOffset = [systemTZ secondsFromGMTForDate: d];
|
||||
userTZ = [ud timeZone];
|
||||
userTZOffset = [userTZ secondsFromGMTForDate: d];
|
||||
if (dateTZOffset != userTZOffset)
|
||||
d = [d dateByAddingYears: 0 months: 0 days: 0
|
||||
hours: 0 minutes: 0
|
||||
seconds: (dateTZOffset - userTZOffset)];
|
||||
[d setTimeZone: userTZ];
|
||||
|
||||
[self setDay: [NSNumber numberWithInt:[d dayOfMonth]]];
|
||||
[self setMonth: [NSNumber numberWithInt:[d monthOfYear]]];
|
||||
[self setYear: [NSNumber numberWithInt:[d yearOfCommonEra]]];
|
||||
|
||||
[super takeValuesFromRequest: _rq inContext: _ctx];
|
||||
}
|
||||
|
||||
- (void) setDisabled: (BOOL) disabled
|
||||
{
|
||||
isDisabled = disabled;
|
||||
}
|
||||
|
||||
- (BOOL) disabled
|
||||
{
|
||||
return isDisabled;
|
||||
}
|
||||
|
||||
@end /* UIxDatePicker */
|
|
@ -1,45 +0,0 @@
|
|||
/* UIxOccurenceDialog.h - this file is part of SOGo
|
||||
*
|
||||
* Copyright (C) 2008 Inverse inc.
|
||||
*
|
||||
* Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||
*
|
||||
* 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 UIXRECURRENCEEDITOR_H
|
||||
#define UIXRECURRENCEEDITOR_H
|
||||
|
||||
|
||||
@class NSString;
|
||||
|
||||
@interface UIxOccurenceDialog : UIxComponent
|
||||
{
|
||||
NSString *action;
|
||||
}
|
||||
|
||||
- (NSString *) action;
|
||||
|
||||
- (NSString *) calendarFolder;
|
||||
- (NSString *) componentName;
|
||||
- (NSString *) recurrenceName;
|
||||
|
||||
- (id <WOActionResults>) defaultAction;
|
||||
- (id <WOActionResults>) confirmDeletionAction;
|
||||
|
||||
@end
|
||||
|
||||
#endif /* UIXRECURRENCEEDITOR_H */
|
|
@ -1,106 +0,0 @@
|
|||
/* UIxOccurenceDialog.m - this file is part of SOGo
|
||||
*
|
||||
* Copyright (C) 2008-2014 Inverse inc.
|
||||
*
|
||||
* 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 <Common/UIxPageFrame.h>
|
||||
|
||||
#import <SoObjects/Appointments/SOGoCalendarComponent.h>
|
||||
|
||||
#import "UIxOccurenceDialog.h"
|
||||
|
||||
@implementation UIxOccurenceDialog
|
||||
|
||||
- (id) init
|
||||
{
|
||||
if ((self = [super init]))
|
||||
action = nil;
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void) dealloc
|
||||
{
|
||||
[action release];
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (NSString *) action
|
||||
{
|
||||
return action;
|
||||
}
|
||||
|
||||
- (NSString *) calendarFolder
|
||||
{
|
||||
SOGoCalendarComponent *component;
|
||||
|
||||
component = [[self clientObject] container];
|
||||
|
||||
return [[component container] nameInContainer];
|
||||
}
|
||||
|
||||
- (NSString *) componentName
|
||||
{
|
||||
SOGoCalendarComponent *component;
|
||||
|
||||
component = [[self clientObject] container];
|
||||
|
||||
return [component nameInContainer];
|
||||
}
|
||||
|
||||
- (NSString *) recurrenceName
|
||||
{
|
||||
return [[self clientObject] nameInContainer];
|
||||
}
|
||||
|
||||
- (id <WOActionResults>) defaultAction
|
||||
{
|
||||
ASSIGN (action, @"edit");
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id <WOActionResults>) confirmDeletionAction
|
||||
{
|
||||
ASSIGN (action, @"delete");
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id <WOActionResults>) confirmAdjustmentAction
|
||||
{
|
||||
ASSIGN (action, @"adjust");
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (WOResponse *) deleteAction
|
||||
{
|
||||
SOGoCalendarComponent *component;
|
||||
WOResponse *response;
|
||||
|
||||
component = [self clientObject];
|
||||
response = (WOResponse *) [component prepareDelete];
|
||||
if (!response)
|
||||
response = [self responseWithStatus: 204];
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
@end
|
|
@ -1,67 +0,0 @@
|
|||
/*
|
||||
Copyright (C) 2004 SKYRIX Software AG
|
||||
|
||||
This file is part of OpenGroupware.org.
|
||||
|
||||
OGo is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU Lesser General Public License as published by the
|
||||
Free Software Foundation; either version 2, or (at your option) any
|
||||
later version.
|
||||
|
||||
OGo 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 Lesser General Public
|
||||
License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with OGo; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
|
||||
02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef UIXTIMEDATECONTROL_H
|
||||
#define UIXTIMEDATECONTROL_H
|
||||
|
||||
#import <SOGoUI/UIxComponent.h>
|
||||
|
||||
@class NSString;
|
||||
@class NSCalendarDate;
|
||||
@class NSNumber;
|
||||
|
||||
@interface UIxTimeDateControl : UIxComponent
|
||||
{
|
||||
NSString *controlID;
|
||||
NSString *label;
|
||||
NSCalendarDate *date;
|
||||
NSString *time;
|
||||
id day;
|
||||
id month;
|
||||
id year;
|
||||
BOOL displayTimeControl;
|
||||
BOOL isDisabled;
|
||||
}
|
||||
|
||||
- (void)setControlID:(NSString *)_controlID;
|
||||
- (NSString *)controlID;
|
||||
- (void)setLabel:(NSString *)_label;
|
||||
- (NSString *)label;
|
||||
- (void)setDate:(NSCalendarDate *)_date;
|
||||
- (NSCalendarDate *)date;
|
||||
- (void)setTime:(NSString *)_time;
|
||||
- (NSString *)time;
|
||||
|
||||
- (void)setDay:(id)_day;
|
||||
- (id)day;
|
||||
- (void)setMonth:(id)_month;
|
||||
- (id)month;
|
||||
- (void)setYear:(id)_year;
|
||||
- (id)year;
|
||||
|
||||
- (NSString *)timeID;
|
||||
- (NSString *)dateID;
|
||||
|
||||
- (void)_setDate:(NSCalendarDate *)_date;
|
||||
|
||||
@end
|
||||
|
||||
#endif /* UIXTIMEDATECONTROL_H */
|
|
@ -1,205 +0,0 @@
|
|||
/*
|
||||
Copyright (C) 2004 SKYRIX Software AG
|
||||
|
||||
This file is part of OpenGroupware.org.
|
||||
|
||||
OGo is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU Lesser General Public License as published by the
|
||||
Free Software Foundation; either version 2, or (at your option) any
|
||||
later version.
|
||||
|
||||
OGo 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 Lesser General Public
|
||||
License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with OGo; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
|
||||
02111-1307, USA.
|
||||
*/
|
||||
|
||||
#import <Foundation/NSValue.h>
|
||||
|
||||
#import <NGObjWeb/SoObjects.h>
|
||||
#import <SOGo/NSCalendarDate+SOGo.h>
|
||||
#import <SOGo/SOGoUser.h>
|
||||
#import <SOGo/SOGoUserDefaults.h>
|
||||
|
||||
#import "UIxTimeDateControl.h"
|
||||
|
||||
@implementation UIxTimeDateControl
|
||||
|
||||
- (id)init {
|
||||
self = [super init];
|
||||
if (self) {
|
||||
displayTimeControl = YES;
|
||||
isDisabled = NO;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)dealloc {
|
||||
[controlID release];
|
||||
[label release];
|
||||
[date release];
|
||||
[time release];
|
||||
[day release];
|
||||
[month release];
|
||||
[year release];
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
/* accessors */
|
||||
|
||||
- (void)setControlID:(NSString *)_controlID
|
||||
{
|
||||
ASSIGNCOPY(controlID, _controlID);
|
||||
}
|
||||
|
||||
- (NSString *)controlID
|
||||
{
|
||||
return controlID;
|
||||
}
|
||||
|
||||
- (void)setLabel:(NSString *)_label
|
||||
{
|
||||
ASSIGNCOPY(label, _label);
|
||||
}
|
||||
- (NSString *)label
|
||||
{
|
||||
return label;
|
||||
}
|
||||
|
||||
- (void) setDate: (NSCalendarDate *) _date
|
||||
{
|
||||
SOGoUserDefaults *ud;
|
||||
|
||||
if (!_date)
|
||||
_date = [NSCalendarDate date];
|
||||
|
||||
ud = [[context activeUser] userDefaults];
|
||||
[_date setTimeZone: [ud timeZone]];
|
||||
|
||||
[self _setDate: _date];
|
||||
[self setTime: [_date descriptionWithCalendarFormat: @"%H:%M"]];
|
||||
|
||||
[self setYear: [NSNumber numberWithInt: [_date yearOfCommonEra]]];
|
||||
[self setMonth: [NSNumber numberWithInt: [_date monthOfYear]]];
|
||||
[self setDay: [NSNumber numberWithInt: [_date dayOfMonth]]];
|
||||
}
|
||||
|
||||
- (void)_setDate:(NSCalendarDate *)_date
|
||||
{
|
||||
ASSIGN(date, _date);
|
||||
}
|
||||
|
||||
- (NSCalendarDate *)date
|
||||
{
|
||||
return date;
|
||||
}
|
||||
|
||||
- (void) setTime: (NSString *)_time
|
||||
{
|
||||
ASSIGN(time, _time);
|
||||
}
|
||||
|
||||
- (NSString *) time
|
||||
{
|
||||
return time;
|
||||
}
|
||||
|
||||
- (void)setDay:(id)_day
|
||||
{
|
||||
ASSIGN(day, _day);
|
||||
}
|
||||
|
||||
- (id)day
|
||||
{
|
||||
return day;
|
||||
}
|
||||
|
||||
- (void)setMonth:(id)_month
|
||||
{
|
||||
ASSIGN(month, _month);
|
||||
}
|
||||
|
||||
- (id)month
|
||||
{
|
||||
return month;
|
||||
}
|
||||
|
||||
- (void)setYear:(id)_year
|
||||
{
|
||||
ASSIGN(year, _year);
|
||||
}
|
||||
|
||||
- (id)year
|
||||
{
|
||||
return year;
|
||||
}
|
||||
|
||||
- (NSString *) timeID
|
||||
{
|
||||
return [[self controlID] stringByAppendingString:@"_time"];
|
||||
}
|
||||
|
||||
- (NSString *) dateID
|
||||
{
|
||||
return [[self controlID] stringByAppendingString:@"_date"];
|
||||
}
|
||||
|
||||
- (void) setDisplayTimeControl: (BOOL) _displayTimeControl
|
||||
{
|
||||
displayTimeControl = _displayTimeControl;
|
||||
}
|
||||
|
||||
- (BOOL) displayTimeControl
|
||||
{
|
||||
return displayTimeControl;
|
||||
}
|
||||
|
||||
/* processing request */
|
||||
|
||||
- (void) takeValuesFromRequest: (WORequest *) _rq
|
||||
inContext: (WOContext *) _ctx
|
||||
{
|
||||
NSCalendarDate *d;
|
||||
unsigned _year, _month, _day, _hour, _minute;//, _second;
|
||||
SOGoUserDefaults *ud;
|
||||
NSArray *_time;
|
||||
|
||||
/* call super, so that the form values are applied on the popups */
|
||||
[super takeValuesFromRequest:_rq inContext:_ctx];
|
||||
|
||||
_year = [[self year] intValue];
|
||||
if (_year > 0)
|
||||
{
|
||||
[self setTime: [_rq formValueForKey: [self timeID]]];
|
||||
|
||||
_month = [[self month] intValue];
|
||||
_day = [[self day] intValue];
|
||||
_time = [[self time] componentsSeparatedByString: @":"];
|
||||
_hour = [[_time objectAtIndex: 0] intValue];
|
||||
_minute = [[_time objectAtIndex: 1] intValue];
|
||||
// _second = [[self second] intValue];
|
||||
|
||||
ud = [[context activeUser] userDefaults];
|
||||
d = [NSCalendarDate dateWithYear: _year month: _month day: _day
|
||||
hour: _hour minute: _minute second: 0
|
||||
timeZone: [ud timeZone]];
|
||||
[self _setDate: d];
|
||||
}
|
||||
}
|
||||
|
||||
- (void) setDisabled: (BOOL) disabled
|
||||
{
|
||||
isDisabled = disabled;
|
||||
}
|
||||
|
||||
- (BOOL) disabled
|
||||
{
|
||||
return isDisabled;
|
||||
}
|
||||
|
||||
@end /* UIxTimeDateControl */
|
|
@ -1,31 +1,9 @@
|
|||
{ /* -*- Mode: java; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
requires = ( MAIN, MainUI, CommonUI, Appointments, Contacts, ContactsUI );
|
||||
|
||||
publicResources = (
|
||||
previous_week.gif,
|
||||
next_week.gif,
|
||||
icon_view_overview.gif,
|
||||
icon_view_overview_inactive.gif,
|
||||
icon_view_chart.gif,
|
||||
icon_view_chart_inactive.gif,
|
||||
icon_view_list.gif,
|
||||
icon_view_list_inactive.gif,
|
||||
icon_view_columns.gif,
|
||||
icon_view_columns_inactive.gif,
|
||||
icon_popupcalendar.gif,
|
||||
first.gif,
|
||||
previous.gif,
|
||||
next.gif,
|
||||
last.gif,
|
||||
skycalendar.html,
|
||||
skycalendar.js,
|
||||
green_corner.gif,
|
||||
invisible_space_2.gif,
|
||||
cycles.plist,
|
||||
);
|
||||
publicResources = ();
|
||||
|
||||
factories = {
|
||||
};
|
||||
factories = {};
|
||||
|
||||
categories = {
|
||||
SOGoAppointmentFolders = {
|
||||
|
@ -70,10 +48,6 @@
|
|||
pageName = "UIxCalMainView";
|
||||
actionName = "saveFoldersOrder";
|
||||
};
|
||||
dateselector = {
|
||||
protectedBy = "View";
|
||||
pageName = "UIxCalDateSelector";
|
||||
};
|
||||
calendarslist = {
|
||||
protectedBy = "View";
|
||||
pageName = "UIxCalendarSelector";
|
||||
|
@ -318,25 +292,6 @@
|
|||
};
|
||||
};
|
||||
|
||||
SOGoComponentOccurence = {
|
||||
methods = {
|
||||
confirmEditing = {
|
||||
protectedBy = "ViewAllComponent";
|
||||
pageName = "UIxOccurenceDialog";
|
||||
};
|
||||
confirmAdjustment = {
|
||||
protectedBy = "ViewAllComponent";
|
||||
pageName = "UIxOccurenceDialog";
|
||||
actionName = "confirmAdjustment";
|
||||
};
|
||||
confirmDeletion = {
|
||||
protectedBy = "Delete Object";
|
||||
pageName = "UIxOccurenceDialog";
|
||||
actionName = "confirmDeletion";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
SOGoAppointmentOccurence = {
|
||||
slots = {
|
||||
toolbar = {
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
<?xml version='1.0'?>
|
||||
<!DOCTYPE container>
|
||||
<container
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:var="http://www.skyrix.com/od/binding"
|
||||
xmlns:const="http://www.skyrix.com/od/constant"
|
||||
xmlns:label="OGo:label">
|
||||
|
||||
<div>foo</div>
|
||||
|
||||
</container>
|
|
@ -1,24 +0,0 @@
|
|||
<?xml version='1.0' standalone='yes'?>
|
||||
<container
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:var="http://www.skyrix.com/od/binding"
|
||||
xmlns:const="http://www.skyrix.com/od/constant"
|
||||
xmlns:label="OGo:label"
|
||||
>
|
||||
<div class="filterPanel" search="contacts">
|
||||
<div class="menu" id="searchMenu">
|
||||
<ul id="searchOptions" class="choiceMenu">
|
||||
<li option="name_or_address"><var:string
|
||||
label:value="Name or Email"/></li>
|
||||
<li option="category"><var:string label:value="Category"/></li>
|
||||
<li option="organization"><var:string label:value="Organization"/></li>
|
||||
</ul>
|
||||
</div>
|
||||
<span class="searchBox" style="float: right;">
|
||||
<input name="criteria" type="hidden" var:value="searchCriteria" />
|
||||
<input name="search" class="textField" autocomplete="off"
|
||||
menuid="searchMenu"
|
||||
type="text" var:value="searchText" />
|
||||
</span>
|
||||
</div>
|
||||
</container>
|
|
@ -1,18 +0,0 @@
|
|||
<?xml version='1.0' standalone='yes'?>
|
||||
<!DOCTYPE span>
|
||||
<span
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:var="http://www.skyrix.com/od/binding"
|
||||
xmlns:const="http://www.skyrix.com/od/constant"
|
||||
xmlns:uix="OGo:uix"
|
||||
xmlns:label="OGo:label"
|
||||
xmlns:rsrc="OGo:url"
|
||||
id="contactSelectionButtons">
|
||||
<span id="selectionLabel"><var:string label:value="Add as..."/></span><br/>
|
||||
<p id="mailerSelectionContainer"><a href="#" class="button" name="to">
|
||||
<span><var:string label:value="Recipient" /></span></a>
|
||||
<br/><a href="#" class="button" name="cc">
|
||||
<span><var:string label:value="Carbon Copy" /></span></a>
|
||||
<br/><a href="#" class="button" name="bcc">
|
||||
<span><var:string label:value="Blind Carbon Copy" /></span></a></p>
|
||||
</span>
|
|
@ -1,83 +0,0 @@
|
|||
<?xml version='1.0' standalone='yes'?>
|
||||
<var:component
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:var="http://www.skyrix.com/od/binding"
|
||||
xmlns:const="http://www.skyrix.com/od/constant"
|
||||
xmlns:rsrc="OGo:url"
|
||||
xmlns:label="OGo:label"
|
||||
xmlns:uix="OGo:uix"
|
||||
className="UIxPageFrame"
|
||||
title="name"
|
||||
const:popup="YES"
|
||||
const:jsFiles="UIxMailEditor.js,SOGoAutoCompletion.js"
|
||||
>
|
||||
<script type="text/javascript">
|
||||
var activeAddressBook = '<var:string value="clientObject.container.nameInContainer"/>';
|
||||
</script>
|
||||
<div class="popupMenu" id="contactsMenu">
|
||||
<ul></ul>
|
||||
</div>
|
||||
<form var:href="saveURL" name="editform" id="mainForm">
|
||||
<div id="listEditor">
|
||||
<span class="caption"><var:string label:value="List details" /></span>
|
||||
<table class="frame"><tr><td width="35%"><var:string label:value="List name"/></td>
|
||||
<td><input type="text" const:id="listName" const:name="listName"
|
||||
var:value="listName" class="textField" /></td></tr>
|
||||
<tr><td><var:string label:value="List nickname"/></td>
|
||||
<td><input type="text" const:id="nickname" const:name="nickname"
|
||||
var:value="nickname" class="textField" /></td></tr>
|
||||
<tr><td><var:string label:value="List description"/></td>
|
||||
<td><input type="text" const:id="description" const:name="description"
|
||||
var:value="description" class="textField" /></td></tr>
|
||||
</table>
|
||||
<span class="caption"><var:string label:value="Members" /></span>
|
||||
<table class="frame"><tr><td>
|
||||
<div id="referenceListWrapper">
|
||||
<table id="referenceList" cellspacing="0">
|
||||
<thead>
|
||||
<tr class="tableview">
|
||||
<td const:class="tbtv_headercell" const:id="nameTableHeader">
|
||||
<var:string label:value="Contacts" />
|
||||
</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<var:foreach list="references" item="reference">
|
||||
<tr const:class="referenceListRow">
|
||||
<td const:class="referenceListCell">
|
||||
<input var:uid="reference.id"
|
||||
var:value="reference.name"
|
||||
const:style="display: none"/>
|
||||
<span><var:string var:value="reference.name"/></span>
|
||||
</td></tr>
|
||||
</var:foreach>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</td></tr>
|
||||
<tr><td>
|
||||
<div class="bottomToolbar">
|
||||
<a const:id="referenceAdd" class="bottomButton" href="#">
|
||||
<span><img rsrc:src="add-icon.png" label:title="Add" />
|
||||
</span></a>
|
||||
<a const:id="referenceDelete" class="bottomButton" href="#">
|
||||
<span><img rsrc:src="remove-icon.png" label:title="Delete" />
|
||||
</span></a>
|
||||
</div>
|
||||
</td></tr>
|
||||
</table>
|
||||
</div>
|
||||
<input type="hidden" name="referencesValue" id="referencesValue"
|
||||
var:value="referencesValue" />
|
||||
<div id="buttons">
|
||||
<var:if condition="canCreateOrModify"
|
||||
><a class="button actionButton" name="submit"
|
||||
id="submitButton" href="#" >
|
||||
<span><var:string label:value="Save"/></span>
|
||||
</a></var:if>
|
||||
<a const:id="cancelButton" class="button" name="cancel" href="#">
|
||||
<span><var:string label:value="Cancel"/></span>
|
||||
</a>
|
||||
</div>
|
||||
</form>
|
||||
</var:component>
|
|
@ -1,30 +0,0 @@
|
|||
<?xml version='1.0' standalone='yes'?>
|
||||
<container
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:var="http://www.skyrix.com/od/binding"
|
||||
xmlns:const="http://www.skyrix.com/od/constant"
|
||||
xmlns:label="OGo:label"
|
||||
>
|
||||
<div class="filterPanel" search="mail">
|
||||
<div class="menu" id="searchMenu">
|
||||
<ul class="choiceMenu">
|
||||
<li option="subject"><var:string label:value="Subject"/></li>
|
||||
<li option="sender"><var:string label:value="Sender"/></li>
|
||||
<li option="subject_or_sender"><var:string
|
||||
label:value="Subject or Sender"/></li>
|
||||
<li option="to_or_cc"><var:string label:value="To or Cc"/></li>
|
||||
<li option="entire_message"><var:string
|
||||
label:value="Entire Message"/></li>
|
||||
</ul>
|
||||
</div>
|
||||
<var:if condition="hideFrame" const:negate="YES"
|
||||
><span class="searchBox" style="float: right">
|
||||
<input name="criteria" type="hidden" var:value="searchCriteria" />
|
||||
<input name="search"
|
||||
class="textField"
|
||||
autocomplete="off" type="text" var:value="searchText"
|
||||
menuid="searchMenu" />
|
||||
</span>
|
||||
</var:if>
|
||||
</div>
|
||||
</container>
|
|
@ -1,94 +0,0 @@
|
|||
<?xml version='1.0' standalone='yes'?>
|
||||
<div xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:var="http://www.skyrix.com/od/binding"
|
||||
xmlns:const="http://www.skyrix.com/od/constant"
|
||||
xmlns:uix="OGo:uix"
|
||||
xmlns:rsrc="OGo:url"
|
||||
xmlns:label="OGo:label"
|
||||
const:jsFiles="tablekit.js, tablekit-sogo.js, tablekit-trueresize.js">
|
||||
|
||||
<ul id="searchByList" class="hidden">
|
||||
<li><var:string label:value="Subject"/></li>
|
||||
<li><var:string label:value="From"/></li>
|
||||
<li><var:string label:value="To"/></li>
|
||||
<li><var:string label:value="Cc"/></li>
|
||||
<li><var:string label:value="Body"/></li>
|
||||
</ul>
|
||||
<ul id="stringArgumentsList" class="hidden">
|
||||
<li><var:string label:value="contains"/></li>
|
||||
<li><var:string label:value="does not contain"/></li>
|
||||
</ul>
|
||||
|
||||
<table id="searchMailHeader">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td id="mailAccountsCell">
|
||||
<label><var:string label:value="Search messages in" /></label>
|
||||
<var:popup const:id="mailAccountsList"
|
||||
list="mailAccountsList"
|
||||
item="item"
|
||||
string="currentFolderDisplayName"
|
||||
value="currentFolderPath"
|
||||
/>
|
||||
</td>
|
||||
<td id="headerButtons">
|
||||
<a class="button" name="search" id="searchButton" onclick="onSearchClick()">
|
||||
<span><var:string label:value="Search"/></span></a>
|
||||
<a class="button" name="cancel" id="cancelButton" onclick="onCancelClick()">
|
||||
<span><var:string label:value="Close" /></span></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<div>
|
||||
<input type="checkbox" id="searchSubfolders" checked="true" onChange="onSearchSubfoldersCheck(this);" />
|
||||
<var:string label:value="Search subfolders" /></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<div>
|
||||
<input type="radio" name="matchfilters" id="matchAllFilters" value="all" onChange="onMatchFilters(this);" selection="all" />
|
||||
<var:string label:value="Match all of the following" />
|
||||
<input type="radio" name="matchfilters" id="matchAnyFilters" value="any" onChange="onMatchFilters(this);" />
|
||||
<var:string label:value="Match any of the following" />
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div id="searchFiltersList">
|
||||
<table><!-- filters --></table>
|
||||
</div>
|
||||
<div id="resultsTable">
|
||||
<table id="searchMailFooter" class="sortable messageList" cellspacing="0">
|
||||
<thead>
|
||||
<tr class="tableview">
|
||||
<td id="subjectSearchHeader" class="td_header"><var:string label:value="Subject" /></td>
|
||||
<td id="fromSearchHeader" class="td_header"><var:string label:value="From"/></td>
|
||||
<td id="toSearchHeader" class="td_header"><var:string label:value="To" /></td>
|
||||
<td id="dateSearchHeader" class="td_header"><var:string label:value="Date" /></td>
|
||||
<td id="locationSearchHeader" class="td_header"><var:string label:value="Location" /></td>
|
||||
<td id="buttonExpandHeader" class="td_header"
|
||||
><a href="#" id="listCollapse"
|
||||
><img rsrc:src="collapse.png" class="collapse" onclick="onResizeClick()"
|
||||
/></a
|
||||
></td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="6" id="noSearchResults"><var:string label:value="No matches found" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div id="optionsButtons">
|
||||
<a class="button" name="open" id="openButton" onclick="onOpenClick(this)">
|
||||
<span><var:string label:value="Open" /></span></a>
|
||||
<a class="button" name="delete" id="deleteButton" onclick="onDeleteClick(this)">
|
||||
<span><var:string label:value="Delete" /></span></a>
|
||||
</div>
|
||||
<div id="resultsFound">
|
||||
</div>
|
||||
</div>
|
|
@ -1,61 +0,0 @@
|
|||
<?xml version='1.0' standalone='yes'?>
|
||||
<container xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:var="http://www.skyrix.com/od/binding"
|
||||
xmlns:const="http://www.skyrix.com/od/constant"
|
||||
xmlns:rsrc="OGo:url"
|
||||
xmlns:label="OGo:label"
|
||||
>
|
||||
<script type="text/javascript">
|
||||
var currentIndex = <var:string value="currentIndex" />;
|
||||
</script>
|
||||
|
||||
<div class="addressList">
|
||||
<table id="addressList" cellpadding="0" cellspacing="0"
|
||||
><tbody
|
||||
><var:foreach list="addressLists" item="addressList"
|
||||
><var:foreach list="addressList" item="address">
|
||||
<tr class="addressListElement" var:id="currentRowId">
|
||||
<td class="headerField">
|
||||
<var:popup name="currentPopUpId"
|
||||
list="headers"
|
||||
item="item"
|
||||
label:displayString="$item"
|
||||
selection="currentHeader"
|
||||
/>
|
||||
</td>
|
||||
<td class="headerInput">
|
||||
<input var:id="currentAddressId"
|
||||
var:name="currentAddressId"
|
||||
class="textField"
|
||||
type="text"
|
||||
var:value="address"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
</var:foreach>
|
||||
</var:foreach>
|
||||
<tr class="addressListElement" id="lastRow">
|
||||
<td class="headerField" onclick="fancyAddRow('');">
|
||||
<var:popup name="currentPopUpId"
|
||||
list="headers"
|
||||
item="item"
|
||||
label:displayString="$item"
|
||||
/>
|
||||
</td>
|
||||
<td class="headerInput">
|
||||
<span class="headerInput"><input onfocus="fancyAddRow('');"
|
||||
readonly="1"
|
||||
tabindex="-1"
|
||||
type="text"
|
||||
class="textField" /></span>
|
||||
</td>
|
||||
</tr>
|
||||
<!--<var:if condition="isUIxDebugEnabled">
|
||||
<a href="#" onclick="checkAddresses();">check addresses</a>
|
||||
</var:if>-->
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<span id="addr_addresses" style="display: none; visibility: hidden;"><var:foreach list="addressLists" item="addressList"><var:foreach list="addressList" item="address"><span var:id="address"><!-- Space! --></span></var:foreach></var:foreach></span>
|
||||
</container>
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
<?xml version='1.0' standalone='yes'?>
|
||||
<var:component
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:var="http://www.skyrix.com/od/binding"
|
||||
xmlns:const="http://www.skyrix.com/od/constant"
|
||||
xmlns:uix="OGo:uix"
|
||||
className="UIxPageFrame"
|
||||
const:title="SOGo User Homepage"
|
||||
>
|
||||
<h3 class="window_label">
|
||||
OpenGroupware.org:
|
||||
<var:string value="clientObject.davDisplayName" />
|
||||
</h3>
|
||||
|
||||
<h4>Actions</h4>
|
||||
<ul>
|
||||
<li><a href="Calendar/weekoverview">Calendar</a></li>
|
||||
</ul>
|
||||
|
||||
<h4>Group Members</h4>
|
||||
<ul>
|
||||
<var:foreach list="clientObject.uids" item="item">
|
||||
<li><var:string value="item" /></li>
|
||||
</var:foreach>
|
||||
</ul>
|
||||
|
||||
</var:component>
|
|
@ -1,18 +0,0 @@
|
|||
<?xml version='1.0' standalone='yes'?>
|
||||
<var:component
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:var="http://www.skyrix.com/od/binding"
|
||||
xmlns:const="http://www.skyrix.com/od/constant"
|
||||
xmlns:uix="OGo:uix"
|
||||
className="UIxPageFrame"
|
||||
const:title="SOGo User Homepage"
|
||||
>
|
||||
<h3 class="window_label">
|
||||
OpenGroupware.org:
|
||||
<var:string value="clientObject.davDisplayName" />
|
||||
</h3>
|
||||
|
||||
<p>
|
||||
This is an (intentionally) empty page, <a href="..">go back</a>.
|
||||
</p>
|
||||
</var:component>
|
|
@ -1,44 +0,0 @@
|
|||
<?xml version='1.0' standalone='yes'?>
|
||||
<div xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:var="http://www.skyrix.com/od/binding"
|
||||
xmlns:const="http://www.skyrix.com/od/constant"
|
||||
xmlns:rsrc="OGo:url"
|
||||
xmlns:label="OGo:label"
|
||||
id="dateSelector">
|
||||
<div class="header">
|
||||
<a href="#" id="rightArrow" var:date="nextMonthAsString"
|
||||
><img id="next" rsrc:src="arrow-right.png"/></a>
|
||||
<a href="#" id="leftArrow" var:date="prevMonthAsString"
|
||||
><img id="previous" rsrc:src="arrow-left.png" />
|
||||
</a><span id="monthLabel" var:month="headerMonthValue"
|
||||
><var:string value="headerMonthString" /></span
|
||||
><span id="yearLabel"><var:string value="headerYearString" /></span>
|
||||
</div>
|
||||
|
||||
<var:month-overview
|
||||
const:id="dateSelectorTable"
|
||||
currentDay="currentDay"
|
||||
firstDay="firstDayOfWeek"
|
||||
index="dayIndex"
|
||||
year="year"
|
||||
month="month"
|
||||
var:timeZone="viewTimeZone"
|
||||
const:startDateKey="startDate"
|
||||
const:endDateKey="endDate"
|
||||
><var:month-label
|
||||
const:orientation="top"
|
||||
dayOfWeek="dayOfWeek"
|
||||
class="dayHeaderStyle"
|
||||
><span class="dayOfWeek"
|
||||
><var:string value="localizedDayOfWeekName"
|
||||
/></span
|
||||
></var:month-label>
|
||||
<var:month-title class="contentStyle"
|
||||
><span var:class="extraStyle"
|
||||
var:day="currentDay.shortDateString"
|
||||
onclick="return onDaySelect(this);"
|
||||
><var:string value="currentDay.dayOfMonth"/>
|
||||
</span
|
||||
></var:month-title
|
||||
></var:month-overview>
|
||||
</div>
|
|
@ -1,32 +0,0 @@
|
|||
<?xml version='1.0' standalone='yes'?>
|
||||
<container
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:var="http://www.skyrix.com/od/binding"
|
||||
xmlns:const="http://www.skyrix.com/od/constant"
|
||||
xmlns:label="OGo:label">
|
||||
|
||||
<div class="filterPanel" search="events">
|
||||
<div class="menu" id="eventSearchMenu">
|
||||
<ul class="choiceMenu">
|
||||
<li option="title"><var:string label:value="Title"/></li>
|
||||
<li option="title_Category_Location"><var:string label:value="Title, category or location"/></li>
|
||||
<li option="entireContent"><var:string label:value="Entire content"/></li>
|
||||
</ul>
|
||||
</div>
|
||||
<span class="searchBox" style="float: right">
|
||||
<input id="searchCriteria" name="criteria" type="hidden" var:value="searchCriteria" />
|
||||
<input id="searchValue"
|
||||
class="textField"
|
||||
autocomplete="off" name="search" type="text" var:value="searchText"
|
||||
menuid="eventSearchMenu" />
|
||||
</span>
|
||||
|
||||
<var:string label:value="View" />
|
||||
<var:popup list="filters"
|
||||
const:id="filterpopup"
|
||||
item="filter" string="filterLabel" value="filter"
|
||||
selection="selectedFilter"
|
||||
const:name="filterpopup"
|
||||
const:onchange="return onEventsListFilterChange();" />
|
||||
</div>
|
||||
</container>
|
|
@ -1,132 +0,0 @@
|
|||
<?xml version='1.0'?>
|
||||
<!DOCTYPE var:component>
|
||||
<var:component
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:var="http://www.skyrix.com/od/binding"
|
||||
xmlns:const="http://www.skyrix.com/od/constant"
|
||||
xmlns:uix="OGo:uix"
|
||||
xmlns:label="OGo:label"
|
||||
className="UIxPageFrame"
|
||||
const:popup="YES">
|
||||
<style type="text/css">
|
||||
<var:foreach list="calendars" item="currentCalendar">
|
||||
DIV.borderCalendarFolder<var:string value="currentCalendar.folder" />
|
||||
{ border: 1px solid <var:string value="currentCalendar.color" />; }
|
||||
DIV.backgroundCalendarFolder<var:string value="currentCalendar.folder" />
|
||||
{ background-color: <var:string value="currentCalendar.color" />; color: <var:string value="contrastingTextColor" />; }
|
||||
</var:foreach>
|
||||
</style>
|
||||
<div id="leftSide" class="no-print">
|
||||
<!-- Print settings -->
|
||||
<span class="caption"><var:string label:value="Print Settings" /></span>
|
||||
<table class="frame">
|
||||
<tr>
|
||||
<td style="width: 30%;">
|
||||
<label id="labelTitle"><var:string label:value="Title" /></label></td>
|
||||
<td>
|
||||
<input type="text" id="inputFieldTitle" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<label><var:string label:value="Layout" /></label></td>
|
||||
<td>
|
||||
<var:popup list="printLayoutList" item="item"
|
||||
const:id="printLayoutList"
|
||||
string="itemPrintLayoutText" selection="parentPrintLayout" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<!-- What to print -->
|
||||
<span class="caption"><var:string label:value="What to Print" /></span>
|
||||
<table class="frame">
|
||||
<tr>
|
||||
<td>
|
||||
<input type="checkbox" id="printEvents" value="eventsSelected" checked="true" onChange="onEventsCheck(this);"/>
|
||||
<var:string label:value="Events"/>
|
||||
<input type="checkbox" id ="printTasks" value="tasksSelected" checked="true" onChange="onTasksCheck(this);"/>
|
||||
<var:string label:value="Tasks"/></td></tr>
|
||||
<!-- TODO
|
||||
<tr>
|
||||
<td>
|
||||
<label>
|
||||
<input type="radio" name="printView" id="currentView" value="currentViewSelected" checked="true" onChange="onPrintDateCheck();"/>
|
||||
<var:string label:value="Current view" /></label></td></tr>
|
||||
<tr>
|
||||
<td>
|
||||
<label>
|
||||
<input type="radio" name="printView" id="eventsTasks" value="eventsTasksSelected" onChange="onPrintDateCheck();"/>
|
||||
<var:string label:value="Selected events and tasks" /></label></td></tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<label>
|
||||
<input type="radio" name="printView" id="customDate" value="customDateSelected" onChange="onPrintDateCheck();" />
|
||||
<var:string label:value="Custom date range" /></label></td></tr>
|
||||
<tr>
|
||||
<td id="dateRangeFrom" name="dateRange">
|
||||
<label id="labelFrom"><var:string label:value="From" /></label>
|
||||
<var:component className="UIxDatePicker"
|
||||
const:dateID="startingDate"
|
||||
day="startDay"
|
||||
month="startMonth"
|
||||
year="startYear"
|
||||
label:label="Select starting date"/></td></tr>
|
||||
<tr>
|
||||
<td id="dateRangeTo" name="dateRange">
|
||||
<label id="labelTo"><var:string label:value="To" /></label>
|
||||
<var:component className="UIxDatePicker"
|
||||
const:dateID="endingDate"
|
||||
day="endDay"
|
||||
month="endMonth"
|
||||
year="endYear"
|
||||
label:label="Select ending date"/></td></tr>
|
||||
-->
|
||||
</table>
|
||||
|
||||
<!-- Options -->
|
||||
<span class="caption"><var:string label:value="Options" /></span>
|
||||
<table class="frame">
|
||||
<tr>
|
||||
<td>
|
||||
<input type="checkbox" name="printWorkingHours" id="printHours" checked="true" onChange="onPrintWorkingHoursCheck(this);" />
|
||||
<var:string label:value="Display working hours only" /></td></tr>
|
||||
<tr>
|
||||
<td>
|
||||
<hr /></td></tr>
|
||||
<tr>
|
||||
<td>
|
||||
<input type="checkbox" id="printColors" checked="true" onChange="onPrintColorsCheck(this);" />
|
||||
<var:string label:value="Display events and tasks colors" /></td></tr>
|
||||
<tr>
|
||||
<td>
|
||||
<input type="radio" name="printColors" id="printBorderColors" value="borders" onChange="onPrintColors(this);" selection="borders"/>
|
||||
<var:string label:value="Borders" />
|
||||
<input type="radio" name="printColors" id="printBackgroundColors" value="backgrounds" onChange="onPrintColors(this);" />
|
||||
<var:string label:value="Backgrounds" /></td></tr>
|
||||
<tr>
|
||||
<td>
|
||||
<hr /></td></tr>
|
||||
<tr>
|
||||
<td>
|
||||
<input type="checkbox" name="printOptions" id="selectNoDueDateTasks" checked="true" onChange="onPrintNoDueDateTasksCheck(this);" />
|
||||
<var:string label:value="Tasks with no due date" /></td></tr>
|
||||
<tr>
|
||||
<td>
|
||||
<input type="checkbox" name="printOptions" id="selectCompletedTasks" checked="true" onChange="onPrintCompletedTasksCheck(this);" />
|
||||
<var:string label:value="Completed tasks" /></td></tr>
|
||||
</table>
|
||||
</div>
|
||||
<div id="rightSide">
|
||||
<div id="rightFrame">
|
||||
<div id="rightFrameTitle"><!-- Spacer --></div>
|
||||
<div id="rightFrameEvents"><!-- Spacer --></div>
|
||||
<div id="rightFrameTasks"><!-- Spacer --></div>
|
||||
</div>
|
||||
<div id="printButtons" class="no-print">
|
||||
<a class="button" name="print" id="printButton">
|
||||
<span><var:string label:value="Print view" /></span></a>
|
||||
<a class="button" name="cancel" id="cancelButton">
|
||||
<span><var:string label:value="Cancel"/></span></a>
|
||||
</div>
|
||||
</div>
|
||||
</var:component>
|
|
@ -1,16 +0,0 @@
|
|||
<?xml version='1.0' standalone='yes'?>
|
||||
<!DOCTYPE var:component>
|
||||
<var:component xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:var="http://www.skyrix.com/od/binding"
|
||||
xmlns:const="http://www.skyrix.com/od/constant"
|
||||
xmlns:uix="OGo:uix"
|
||||
xmlns:rsrc="OGo:url"
|
||||
xmlns:label="OGo:label"
|
||||
className="UIxPageFrame"
|
||||
const:toolbar="none"
|
||||
const:popup="YES"
|
||||
title="title"
|
||||
const:jsFiles="js_color_picker_v2.js"
|
||||
const:cssFiles="js_color_picker_v2.css">
|
||||
<input type="hidden" const:name="pickerValue" const:id="pickerValue"/>
|
||||
</var:component>
|
|
@ -1,25 +0,0 @@
|
|||
<?xml version='1.0' standalone='yes'?>
|
||||
<span xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:var="http://www.skyrix.com/od/binding"
|
||||
xmlns:const="http://www.skyrix.com/od/constant"
|
||||
xmlns:rsrc="OGo:url"
|
||||
class="datePicker date"
|
||||
var:date-format="jsDateFormat"
|
||||
var:date-weekstart="jsWeekStart"
|
||||
><input type="text"
|
||||
var:disabled="disabled"
|
||||
class="textField"
|
||||
var:id="dateID"
|
||||
var:name="dateID"
|
||||
var:shadow-value="formattedDateString"
|
||||
var:value="formattedDateString"
|
||||
size="12"
|
||||
/><a href="#"
|
||||
class="calendarButton add-on"
|
||||
var:inputId="dateID"
|
||||
><span><img rsrc:src="choose-date.png"
|
||||
var:title="label"
|
||||
var:alt="label"
|
||||
/></span></a
|
||||
>
|
||||
</span>
|
|
@ -1,50 +0,0 @@
|
|||
<?xml version='1.0' standalone='yes'?>
|
||||
<var:component
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:var="http://www.skyrix.com/od/binding"
|
||||
xmlns:const="http://www.skyrix.com/od/constant"
|
||||
xmlns:uix="OGo:uix"
|
||||
xmlns:rsrc="OGo:url"
|
||||
xmlns:label="OGo:label"
|
||||
className="UIxMailMainFrame"
|
||||
title="panelTitle"
|
||||
>
|
||||
|
||||
<div class="titlediv" style="white-space: nowrap;">
|
||||
Server Side Filter Scripts
|
||||
</div>
|
||||
|
||||
<div class="embedwhite_out">
|
||||
<div class="embedwhite_in">
|
||||
|
||||
<table border="0" width="100%" cellspacing="0" cellpadding="1">
|
||||
<tr class="tableview">
|
||||
<td class="tbtv_headercell" width="17">
|
||||
<var:entity const:name="nbsp" />
|
||||
</td>
|
||||
<td class="tbtv_headercell">
|
||||
Filters
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="tableview">
|
||||
<td colspan="2" class="tbtv_navcell" align="right">
|
||||
<var:string value="filters.count" />
|
||||
<var:string label:value="filters" />
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<var:foreach list="filters" item="filter">
|
||||
<tr class="tableview" var:id="msgRowID">
|
||||
<td colspan="2">
|
||||
<a href="#" var:onclick="clickedFilterJS">
|
||||
<var:string value="filter" />
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</var:foreach>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</var:component>
|
|
@ -1,10 +0,0 @@
|
|||
<?xml version='1.0' standalone='yes'?>
|
||||
<!DOCTYPE container>
|
||||
<container
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:var="http://www.skyrix.com/od/binding"
|
||||
xmlns:const="http://www.skyrix.com/od/constant"
|
||||
xmlns:uix="OGo:uix"
|
||||
xmlns:rsrc="OGo:url"
|
||||
xmlns:label="OGo:label">
|
||||
</container>
|
|
@ -1,35 +0,0 @@
|
|||
<?xml version='1.0' standalone='yes'?>
|
||||
<!DOCTYPE var:component>
|
||||
<var:component
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:var="http://www.skyrix.com/od/binding"
|
||||
xmlns:const="http://www.skyrix.com/od/constant"
|
||||
xmlns:uix="OGo:uix"
|
||||
xmlns:rsrc="OGo:url"
|
||||
xmlns:label="OGo:label"
|
||||
className="UIxPageFrame"
|
||||
const:popup="YES"
|
||||
title="name"
|
||||
const:toolbar="none">
|
||||
<script type="text/javascript">
|
||||
var calendarFolder = '<var:string value="calendarFolder"/>';
|
||||
var componentName = '<var:string value="componentName"/>';
|
||||
var recurrenceName = '<var:string value="recurrenceName"/>';
|
||||
var action = '<var:string value="action"/>';
|
||||
</script>
|
||||
<div id="message">
|
||||
<var:string label:value="editRepeatingItem"/>
|
||||
</div>
|
||||
<div id="windowButtons">
|
||||
<div id="leftButtons">
|
||||
<a class="button actionButton" id="thisButton" href="#">
|
||||
<span><var:string label:value="button_thisOccurrenceOnly"/></span></a>
|
||||
</div>
|
||||
<div id="rightButtons">
|
||||
<a class="button actionButton" id="allButton" href="#">
|
||||
<span><var:string label:value="button_allOccurrences"/></span></a>
|
||||
<a class="button" id="cancelButton" href="#">
|
||||
<span><var:string label:value="Cancel"/></span></a>
|
||||
</div>
|
||||
</div>
|
||||
</var:component>
|
|
@ -1,11 +0,0 @@
|
|||
<?xml version='1.0' standalone='yes'?>
|
||||
<span xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:var="http://www.skyrix.com/od/binding"
|
||||
xmlns:const="http://www.skyrix.com/od/constant"
|
||||
xmlns:rsrc="OGo:url"
|
||||
>
|
||||
<!--
|
||||
The resource cannot be found, for unknown reasons ...
|
||||
-->
|
||||
<img filename="non_sorted.gif" border="0" />
|
||||
</span>
|
|
@ -1,28 +0,0 @@
|
|||
<?xml version='1.0' standalone='yes'?>
|
||||
<!-- $Id$ -->
|
||||
<span
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:var="http://www.skyrix.com/od/binding"
|
||||
xmlns:const="http://www.skyrix.com/od/constant"
|
||||
xmlns:rsrc="OGo:url"
|
||||
class="timeDateControl"
|
||||
>
|
||||
<var:component className="UIxDatePicker"
|
||||
dateID="dateID"
|
||||
year="year"
|
||||
month="month"
|
||||
day="day"
|
||||
label="label"
|
||||
var:disabled="disabled"
|
||||
/>
|
||||
<var:if condition="displayTimeControl">
|
||||
<input type="text"
|
||||
var:disabled="disabled"
|
||||
class="textField"
|
||||
var:id="timeID"
|
||||
var:name="timeID"
|
||||
var:shadow-value="time"
|
||||
var:value="time"
|
||||
size="5"/>
|
||||
</var:if>
|
||||
</span>
|
Loading…
Reference in New Issue