#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
<?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>
+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.
--- /dev/null
+#include <Foundation/Foundation.h>
+#include <NGExtensions/NGExtensions.h>
+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
"Participants" = "Participants";
"Search resources" = "Search resources";
"Resources" = "Resources";
+"Search in Anais" = "Search in Anaïs";
/* calendar modes */
}
+/* 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 {
<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>
protectedBy = "View";
pageName = "UIxCalYearOverview";
};
- "yearprintview" = {
- protectedBy = "View";
- pageName = "UIxCalYearPrintview";
- };
"new" = {
protectedBy = "View";
pageName = "UIxAppointmentEditor";