]> err.no Git - scalable-opengroupware.org/commitdiff
better Anais integration
authorznek <znek@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Wed, 11 Aug 2004 14:13:40 +0000 (14:13 +0000)
committerznek <znek@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Wed, 11 Aug 2004 14:13:40 +0000 (14:13 +0000)
git-svn-id: http://svn.opengroupware.org/SOGo/trunk@180 d1b88da0-ebda-0310-925b-ed51d893ca5b

SOGo/UI/Anais/AnaisSelector.m
SOGo/UI/Anais/AnaisSelector.wox
SOGo/UI/Anais/ChangeLog
SOGo/UI/Anais/common.h [new file with mode: 0644]
SOGo/UI/Scheduler/ChangeLog
SOGo/UI/Scheduler/English.lproj/default.strings
SOGo/UI/Scheduler/UIxAppointmentEditor.m
SOGo/UI/Scheduler/UIxAppointmentEditor.wox
SOGo/UI/Scheduler/product.plist

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
index edf773ec230989b50235ee92d7766566f6f967d2..6e67a5e461efb03fa79eee4ef1c701c3427b4e1a 100644 (file)
@@ -1,20 +1,14 @@
 <?xml version='1.0' standalone='yes'?>
 
-<form xmlns="http://www.w3.org/1999/xhtml"
+<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"
-      name="anais">
-  <p>
-    <a href="javascript:openAnaisBrowserWindow()">show tree</a>
-  </p>
-  <p>
-    <text name="choice"
-          size="60"
-    /><br />
-    <var:multiselection const:name="list"
-                        const:style="width:380px"
-                        const:size="8"
-    />
-  </p>
-</form>
+>
+  <script language="JavaScript">
+    <var:string value="getCode" const:escapeHTML="NO" />
+  </script>
+  <a var:href="jsFunctionHref"
+     class="button_auto"
+  ><var:string value="title" /></a>
+</span>
index f9f61cec6d912975d05fa7109f1edcd3bd1ab50d..a3e53f0ae7244608fce4db619d2c804b005df471 100644 (file)
@@ -1,3 +1,10 @@
+2004-08-11  Marcus Mueller  <znek@mulle-kybernetik.com>
+
+       * AnaisSelector.[m|wox]: added several associations used for uniquing
+         the selector and one for preselecting a certain division (LDAP).
+
+       * common.h: added for convenience.
+
 2004-08-10  Marcus Mueller  <znek@mulle-kybernetik.com>
 
        * ChangeLog: created.
diff --git a/SOGo/UI/Anais/common.h b/SOGo/UI/Anais/common.h
new file mode 100644 (file)
index 0000000..cab9266
--- /dev/null
@@ -0,0 +1,2 @@
+#include <Foundation/Foundation.h>
+#include <NGExtensions/NGExtensions.h>
index eb79c468157a101a345b6924438ab747482f723c..e25b9d1c835a0f0070a27ac4972d3a61883f03a3 100644 (file)
@@ -1,3 +1,14 @@
+2004-08-11  Marcus Mueller  <znek@mulle-kybernetik.com>
+
+       * v0.9.17
+
+       * product.plist: removed "yearprintview" method - this doesn't exist.
+
+       * English.lproj/default.strings: more labels (these need to be added
+         to the French version!)
+
+       * UIxAppointmentEditor.[m|wox]: nice Anais integration showing up. ;-)
+
 2004-08-10  Marcus Mueller  <znek@mulle-kybernetik.com>
 
        * v0.9.16
index 396ab895d145eccaad6d51456ff3961fd29cf6d1..4082bcaf6661af80de8ffb1f937812e814a4cac6 100644 (file)
@@ -83,6 +83,7 @@
 "Participants"          = "Participants";
 "Search resources"      = "Search resources";
 "Resources"             = "Resources";
+"Search in Anais"       = "Search in Anaïs";
 
 
 /* calendar modes */
index 4cb48e19aba4b4d425e601d420ebae02346b6df2..7dff1c61950f9db705a8fcf6133b501668e1cca0 100644 (file)
 }
 
 
+/* JavaScript */
+
+- (NSString *)jsCode {
+    static NSString *script = \
+    @"function addToTable(tableId, type, cn, dn, email, uid, sn) {\n"
+    @"  var test = document.getElementById(email);"
+    @"  if(test)"
+    @"    return;"
+    @""
+    @"  var table = document.getElementById(tableId);"
+    @"  var tr = document.createElement('tr');"
+    @"  var td, checkbox, text;"
+    @""
+    @"  td = document.createElement('td');"
+    @"  checkbox = document.createElement('input');"
+    @"  checkbox.setAttribute('type', 'checkbox');"
+    @"  checkbox.setAttribute('checked', 'checked');"
+    @"  checkbox.setAttribute('value', '1');"
+    @"  checkbox.setAttribute('id', email);"
+    @"  checkbox.setAttribute('name', email);"
+    @"  td.appendChild(checkbox);"
+    @"  tr.appendChild(td);"
+    @"  td = document.createElement('td');"
+    @"  text = document.createTextNode(cn);"
+    @"  td.appendChild(text);"
+    @"  tr.appendChild(td);"
+    @"  table.appendChild(tr);"
+    @"}\n"
+    @"function addParticipant(type, cn, dn, email, uid, sn) {\n"
+    @"  addToTable('participants', type, cn, dn, email, uid, sn);\n"
+    @"}\n"
+    @"function addResource(type, cn, dn, email, uid, sn) {\n"
+    @"  addToTable('resources', type, cn, dn, email, uid, sn);\n"
+    @"}\n"
+    @"";
+    return script;
+}
+
 /* helper */
 
 - (NSString *)uriAsFormat {
index edf75198a1ebd30e1f1b0e1f6f0bac4d3e71ca02..3c04fdbe52f447c64f0b76b711737acfbc3b4c0e 100644 (file)
                   <var:string label:value="Participants" />:</span>
               </td>
               <td align="left" bgcolor="#FFFFF0">
-                <!--<var:component className="AnaisSelector"
-                               label:title="Search in Anais"
-                />
-                <br />
-                -->
+                <script language="JavaScript">
+                 <var:string value="jsCode" const:escapeHTML="NO" />
+                </script>
+               
                 <span class="aptview_text">
-                  <textarea name="participants"
-                            var:value="participants"
-                            cols="40"
-                            rows="5"
+                  <var:component className="AnaisSelector"
+                                 label:title="Search in Anais"
+                                 const:windowId="Participants"
+                                 const:callback="addParticipant"
+                                 const:division="CC"
                   />
+                  <hr />
+                  <table id="participants">
+                    <tr>
+                      <td><input type="checkbox"
+                                 checked="checked"
+                                 value="1"
+                          /></td>
+                      <td>TODO: Owner</td>
+                    </tr>
+                  </table>
                 </span>
               </td>
             </tr>
               </td>
               <td align="left" bgcolor="#FFFFF0">
                 <span class="aptview_text">
-                  <textarea name="resources"
-                            var:value="resources"
-                            cols="40"
-                            rows="5"
+                  <var:component className="AnaisSelector"
+                                 label:title="Search in Anais"
+                                 const:windowId="Resources"
+                                 const:callback="addResource"
                   />
+                  <hr />
+                  <table id="resources">
+                  </table>
                 </span>
               </td>
             </tr>
index ab62774ef195454410194b59f5ce94228f766d34..6af398008f97b42045baaf406fec7e8646f80166 100644 (file)
           protectedBy = "View";
           pageName    = "UIxCalYearOverview"; 
         };
-        "yearprintview" = { 
-          protectedBy = "View";
-          pageName    = "UIxCalYearPrintview"; 
-        };
         "new" = { 
           protectedBy = "View";
           pageName    = "UIxAppointmentEditor";