chore: remove deprecated files and templates

pull/285/head
Francis Lachapelle 2020-07-22 15:03:01 -04:00
parent 0d297f21cf
commit 1579ebd233
67 changed files with 25 additions and 3897 deletions

View File

@ -18,9 +18,6 @@ AdministrationUI_OBJC_FILES = \
AdministrationUI_RESOURCE_FILES += \
product.plist
AdministrationUI_RESOURCE_FILES += \
Toolbars/UIxAdministration.toolbar
AdministrationUI_LOCALIZED_RESOURCE_FILES += \
Localizable.strings \

View File

@ -1,7 +0,0 @@
( /* the toolbar groups -*-cperl-*- */
( { link = "#";
label = "Help";
onclick = "help(this);";
image = "properties.png"; }
)
)

View File

@ -3,8 +3,7 @@
publicResources = ();
factories = {
};
factories = {};
categories = {
SOGoUserFolder = {

View File

@ -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 \

View File

@ -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"; } )
)

View File

@ -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;

View File

@ -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 */

View File

@ -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;

View File

@ -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 */

View File

@ -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;

View File

@ -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 */

View File

@ -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;

View File

@ -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;

View File

@ -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";
};
};
};
};

View File

@ -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

View File

@ -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"; }
)
)

View File

@ -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"; }
)
)

View File

@ -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"; }
)
)

View File

@ -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 */

View File

@ -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 */

View File

@ -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

View File

@ -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

View File

@ -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 */

View File

@ -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 = {

View File

@ -218,22 +218,6 @@
};
};
};
// SOGoGroupsFolder = {
// methods = {
// index = {
// protectedBy = "View";
// pageName = "SOGoGroupsPage";
// };
// };
// };
// SOGoGroupFolder = {
// methods = {
// index = {
// protectedBy = "View";
// pageName = "SOGoGroupPage";
// };
// };
// };
SOGoFreeBusyObject = {
methods = {
ajaxRead = {

View File

@ -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

View File

@ -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"; } )
)

View File

@ -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"; } )
)

View File

@ -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"; } )
)

View File

@ -1,2 +0,0 @@
( /* the toolbar groups -*-cperl-*- */
)

View File

@ -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"; } )
)

View File

@ -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 */

View File

@ -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

View File

@ -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 */

View File

@ -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 */

View File

@ -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

View File

@ -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 */

View File

@ -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__ */

View File

@ -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 */

View File

@ -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

View File

@ -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

View File

@ -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 */

View File

@ -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 */

View File

@ -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 */

View File

@ -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

View File

@ -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 */

View File

@ -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 */

View File

@ -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 = {

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>