mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-07-11 03:15:10 +00:00
see ChangeLog
Monotone-Revision: 9054022ef1ca8aeba6e34842d27d9b94ce002b89 Monotone-Author: dev-unix.inverse.qc.ca Monotone-Date: 2006-06-15T19:34:10 Monotone-Branch: ca.inverse.sogo
This commit is contained in:
@@ -0,0 +1,123 @@
|
||||
/*
|
||||
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: UIxContactSelector.m 394 2004-10-14 08:47:35Z znek $
|
||||
|
||||
|
||||
#include <SOGoUI/UIxComponent.h>
|
||||
|
||||
@interface UIxContactSelector : UIxComponent
|
||||
{
|
||||
NSString *title;
|
||||
NSString *windowId;
|
||||
NSString *callback;
|
||||
}
|
||||
|
||||
- (void)setTitle:(NSString *)_title;
|
||||
- (NSString *)title;
|
||||
- (void)setWindowId:(NSString *)_winId;
|
||||
- (NSString *)windowId;
|
||||
- (void)setCallback:(NSString *)_callback;
|
||||
- (NSString *)callback;
|
||||
|
||||
- (NSString *)relativeContactsPath;
|
||||
|
||||
- (NSString *)jsFunctionName;
|
||||
- (NSString *)jsFunctionHref;
|
||||
- (NSString *)jsCode;
|
||||
@end
|
||||
|
||||
#include "common.h"
|
||||
#include <NGExtensions/NGExtensions.h>
|
||||
|
||||
@implementation UIxContactSelector
|
||||
|
||||
- (id)init {
|
||||
if ((self = [super init])) {
|
||||
[self setTitle:@"UIxContacts"];
|
||||
[self setWindowId:@"UIxContacts"];
|
||||
[self setCallback:@"undefined"];
|
||||
}
|
||||
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)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]];
|
||||
}
|
||||
|
||||
@end /* UIxContactSelector */
|
||||
Reference in New Issue
Block a user