]> err.no Git - scalable-opengroupware.org/blobdiff - SOGo/UI/Anais/AnaisSelector.m
better Anais integration
[scalable-opengroupware.org] / SOGo / UI / Anais / AnaisSelector.m
index e12bb4e7ac2ff84651daaa7447a984d806d04e61..ecde16326d759f0351c88f6eed6740beaa60f409 100644 (file)
 
 #include <SOGoUI/UIxComponent.h>
 
-
 @interface AnaisSelector : UIxComponent
 {
+    NSString *title;
+    NSString *windowId;
+    NSString *division;
+    NSString *callback;
 }
 
+- (void)setTitle:(NSString *)_title;
+- (NSString *)title;
+- (void)setWindowId:(NSString *)_winId;
+- (NSString *)windowId;
+- (void)setDivision:(NSString *)_division;
+- (NSString *)division;
+- (void)setCallback:(NSString *)_callback;
+- (NSString *)callback;
+
+- (NSString *)jsFunctionName;
+- (NSString *)jsFunctionHref;
+- (NSString *)getCode;
 @end
 
+#include "common.h"
 
 @implementation AnaisSelector
 
+- (id)init {
+    self = [super init];
+    if(self) {
+        [self setTitle:@"Anais"];
+        [self setWindowId:@"Anais"];
+        [self setCallback:@"undefined"];
+    }
+    return self;
+}
+
+- (void)dealloc {
+    [self->title release];
+    [self->windowId release];
+    [self->division release];
+    [self->callback release];
+    [super dealloc];
+}
+
+- (void)setTitle:(NSString *)_title {
+    ASSIGN(self->title, _title);
+}
+- (NSString *)title {
+    return self->title;
+}
+
+- (void)setWindowId:(NSString *)_winId {
+    ASSIGN(self->windowId, _winId);
+}
+- (NSString *)windowId {
+    return self->windowId;
+}
+
+- (void)setDivision:(NSString *)_division {
+    ASSIGN(self->division, _division);
+}
+- (NSString *)division {
+    return self->division;
+}
+
+- (void)setCallback:(NSString *)_callback {
+    ASSIGN(self->callback, _callback);
+}
+- (NSString *)callback {
+    return self->callback;
+}
+
+
+/* JavaScript */
+
+- (NSString *)jsFunctionName {
+    return [NSString stringWithFormat:@"openAnaisWindowWithId%@",
+        [self windowId]];
+}
+
+- (NSString *)jsFunctionHref {
+    return [NSString stringWithFormat:@"javascript:%@()",
+        [self jsFunctionName]];
+}
+
+- (NSString *)getCode {
+    static NSString *codeFmt = \
+    @"function %@() {\n"
+    @"  var url = '/anais/aideAnais.php?m_fonc=%@%@&m_champ=mail,uid,sn#mon_etiquette';\n"
+    @"  var anaisWindow = window.open(url, '%@', 'width=350, height=600, left=10, top=10, toolbar=no, dependent=yes, menubar=no, location=no, resizable=yes, scrollbars=yes, directories=no, status=no');\n"
+    @"  anaisWindow.focus();\n"
+    @"}";
+    static NSString *divFmt = @"&m_type=%@";
+    NSString *fmt;
+
+    if([self division])
+        fmt = [NSString stringWithFormat:divFmt, [self division]];
+    else
+        fmt = @"";
+
+    return [NSString stringWithFormat:codeFmt,
+        [self jsFunctionName],
+        [self callback],
+        fmt,
+        [self windowId]];
+}
+
 @end