+++ /dev/null
-/*
- Copyright (C) 2000-2004 SKYRIX Software AG
-
- This file is part of OGo
-
- 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 UIXCONTACTSELECTOR_H
-#define UIXCONTACTSELECTOR_H
-
-@class NSArray;
-@class NSDictionary;
-@class NSString;
-@class iCalPerson;
-
-@interface UIxContactSelector : UIxComponent
-{
- NSString *title;
- NSString *windowId;
- NSString *selectorId;
- NSString *callback;
-
- NSArray *contacts;
- NSArray *checkedBoxes;
- iCalPerson *currentContact;
-
- BOOL hasCheckBoxes;
- NSString *checkBoxOnChange;
-
- NSDictionary *userColors;
-}
-
-- (void) setHasCheckBoxes: (BOOL) aBool;
-- (BOOL) hasCheckBoxes;
-- (void) setCheckBoxOnChange: (NSString *) aString;
-- (NSString *) checkBoxOnChange;
-
-- (void)setTitle:(NSString *)_title;
-- (NSString *)title;
-- (void)setWindowId:(NSString *)_winId;
-- (NSString *)windowId;
-- (void)setSelectorId:(NSString *)_selId;
-- (NSString *)selectorId;
-- (void)setCallback:(NSString *)_callback;
-- (NSString *)callback;
-
-- (void) setContacts: (NSArray *) _contacts;
-- (NSArray *) contacts;
-
-- (void) setCurrentContact: (iCalPerson *) aContact;
-- (NSString *) currentContactId;
-- (NSString *) currentContactName;
-- (NSString *) initialContactsAsString;
-
-- (NSString *)relativeContactsPath;
-
-- (NSString *)jsFunctionName;
-- (NSString *)jsFunctionHref;
-- (NSString *)jsCode;
-@end
-
-#endif /* UIXCONTACTSELECTOR_H */
+++ /dev/null
-/*
- Copyright (C) 2000-2004 SKYRIX Software AG
-
- This file is part of OGo
-
- 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$
-
-#import <NGExtensions/NGExtensions.h>
-#import <NGCards/iCalPerson.h>
-
-#import <SOGoUI/UIxComponent.h>
-#import <SOGo/AgenorUserManager.h>
-
-#import "common.h"
-
-#import "UIxContactSelector.h"
-
-@implementation UIxContactSelector
-
-- (id)init {
- if ((self = [super init])) {
- [self setTitle:@"UIxContacts"];
- [self setWindowId:@"UIxContacts"];
- [self setCallback:@"undefined"];
- checkedBoxes = nil;
- userColors = nil;
- }
- return self;
-}
-
-- (void)dealloc {
- [self->title release];
- [self->windowId release];
- [self->callback release];
- [super dealloc];
-}
-
-/* accessors */
-
-- (void)setTitle:(NSString *)_title {
- ASSIGNCOPY(self->title, _title);
-}
-- (NSString *)title {
- return self->title;
-}
-
-- (void)setWindowId:(NSString *)_winId {
- ASSIGNCOPY(self->windowId, _winId);
-}
-- (NSString *)windowId {
- return self->windowId;
-}
-
-- (void)setSelectorId:(NSString *)_selId {
- ASSIGNCOPY(selectorId, _selId);
-}
-
-- (NSString *)selectorId {
- return selectorId;
-}
-
-- (NSString *)selectorIdList {
- return [NSString stringWithFormat: @"uixselector-%@-uidList", selectorId];
-}
-
-- (NSString *)selectorIdDisplay {
- return [NSString stringWithFormat: @"uixselector-%@-display", selectorId];
-}
-
-- (void)setCallback:(NSString *)_callback {
- ASSIGNCOPY(self->callback, _callback);
-}
-- (NSString *)callback {
- return self->callback;
-}
-
-/* Helper */
-
-- (NSString *)relativeContactsPath {
- return [self relativePathToUserFolderSubPath:@"Contacts/select"];
-}
-
-/* JavaScript */
-
-- (NSString *)jsFunctionName {
- return [NSString stringWithFormat:@"openUIxContactsListViewWindowWithId%@",
- [self windowId]];
-}
-
-- (NSString *)jsFunctionHref {
- return [NSString stringWithFormat:@"javascript:%@()",
- [self jsFunctionName]];
-}
-
-- (NSString *)jsCode {
- static NSString *codeFmt = \
- @"function %@() {\n"
- @" var url = '%@?callback=%@';\n"
- @" var contactsWindow = window.open(url, '%@', 'width=600, height=400, left=10, top=10, toolbar=no, dependent=yes, menubar=no, location=no, resizable=yes, scrollbars=yes, directories=no, status=no');\n"
- @" contactsWindow.focus();\n"
- @"}";
- return [NSString stringWithFormat:codeFmt,
- [self jsFunctionName],
- [self relativeContactsPath],
- [self callback],
- [self windowId]];
-}
-
-- (void) setContacts: (NSArray *) _contacts
-{
- contacts = _contacts;
-}
-
-- (NSArray *) contacts
-{
- return contacts;
-}
-
-- (NSArray *) getICalPersonsFromValue: (NSString *) selectorValue
-{
- NSMutableArray *persons;
- NSEnumerator *uids;
- NSString *uid;
- AgenorUserManager *um;
-
- um = [AgenorUserManager sharedUserManager];
-
- persons = [NSMutableArray new];
- [persons autorelease];
-
- if ([selectorValue length] > 0)
- {
- uids = [[selectorValue componentsSeparatedByString: @","]
- objectEnumerator];
- uid = [uids nextObject];
- while (uid)
- {
- [persons addObject: [um iCalPersonWithUid: uid]];
- uid = [uids nextObject];
- }
- }
-
- return persons;
-}
-
-- (void) takeValuesFromRequest: (WORequest *) _rq
- inContext: (WOContext *) _ctx
-{
- contacts = [self getICalPersonsFromValue: [_rq formValueForKey: selectorId]];
- if ([contacts count] > 0)
- NSLog (@"got %i attendees: %@", [contacts count], contacts);
- else
- NSLog (@"got no attendees!");
-}
-
-- (void) setCurrentContact: (iCalPerson *) aContact
-{
- currentContact = aContact;
-}
-
-- (NSString *) initialContactsAsString
-{
- NSEnumerator *persons;
- iCalPerson *person;
- NSMutableArray *participants;
-
- participants = [NSMutableArray arrayWithCapacity: [contacts count]];
- persons = [contacts objectEnumerator];
- person = [persons nextObject];
- while (person)
- {
- [participants addObject: [person cn]];
- person = [persons nextObject];
- }
-
- return [participants componentsJoinedByString: @","];
-}
-
-- (NSString *) currentContactId
-{
- return [currentContact cn];
-}
-
-- (NSString *) currentContactName
-{
- return [currentContact cn];
-}
-
-- (void) setCheckedBoxes: (NSArray *) boxes
-{
- checkedBoxes = boxes;
-}
-
-- (void) setHasCheckBoxes: (BOOL) aBool
-{
- hasCheckBoxes = aBool;
-}
-
-- (BOOL) hasCheckBoxes
-{
- return hasCheckBoxes;
-}
-
-- (BOOL) isCheckBoxChecked
-{
- return (checkedBoxes != nil
- && [checkedBoxes containsObject: currentContact]);
-}
-
-- (void) setCheckBoxOnChange: (NSString *) aString
-{
- checkBoxOnChange = aString;
-}
-
-- (NSString *) checkBoxOnChange
-{
- return checkBoxOnChange;
-}
-
-- (void) setColors: (NSDictionary *) colors
-{
- userColors = colors;
-}
-
-- (BOOL) hasColors
-{
- return (userColors != nil);
-}
-
-- (NSString *) currentContactStyle
-{
- return [NSString stringWithFormat: @"background-color: %@;",
- [userColors objectForKey: [currentContact cn]]];
-}
-
-@end /* UIxContactSelector */
+++ /dev/null
-<?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:uix="OGo:uix"
- xmlns:label="OGo:label"
- xmlns:rsrc="OGo:url"
- >
- <div class="contactSelector" var:id="selectorId">
- <span class="contactSelectorButtons">
- <a href="#" class="button"
- onclick="return onContactAdd(this);"
- ><img rsrc:src="add-contact.gif"
- label:title="Add..."
- /></a>
- <a href="#" class="button"
- onclick="return onContactRemove(this);"
- ><img rsrc:src="remove-contact.gif"
- label:title="Remove"
- /></a>
- </span>
- <input type="hidden"
- var:id="selectorIdList"
- var:name="selectorId"
- var:value="initialContactsAsString" />
- <ul var:id="selectorIdDisplay"
- multiselect="yes"
- class="contactList">
- <var:foreach list="contacts" item="currentContact"
- ><li var:uid="currentContactId"
- onmousedown="return false;"
- onclick="onRowClick(event);"
- >
- <var:if condition="hasColors"
- ><span class="colorBox" var:style="currentContactStyle"><!-- spacer --></span>
- </var:if><var:if condition="hasCheckBoxes">
- <input type="checkbox" class="checkBox"
- var:checked="isCheckBoxChecked"
- var:onchange="checkBoxOnChange" />
- </var:if>
- <var:if condition="hasCheckBoxes"
- const:negate="YES">
- <img rsrc:src="abcard.gif" />
- </var:if>
- <var:string value="currentContactName" /></li>
- </var:foreach>
- </ul><br />
- </div>
- </container>