$Log$
+Revision 621.34 2005/09/09 04:43:22 ajc
+* Checked in a copy of the "script.aculo.us" library by Thomas Fuchs.
+ NOTE: I had to search-and-replace "Effect" to "ScriptaculousEffect" in
+ all of their files, to avoid a conflict with the name "Effect" in Rico.
+* Implemented recipient autocompletion when composing mail, using the
+ script.aculo.us drop-down box and an ajax fetch. Cool!!
+Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
+
Revision 621.33 2005/09/06 14:44:28 ajc
* Altered the logic which determines whether to display a "Post message"
or "Send message" button on the message entry screen.
1998-12-03 Nathan Bryant <bryant@cs.usm.maine.edu>
* webserver.c: warning fix
-
calendar.o calendar_tools.o calendar_view.o event.o \
availability.o iconbar.o crypto.o inetconf.o notes.o \
groupdav_main.o groupdav_get.o groupdav_propfind.o fmt_date.o \
- groupdav_options.o \
+ groupdav_options.o autocompletion.o \
groupdav_delete.o groupdav_put.o http_datestring.o setup_wizard.o \
$(LIBOBJS)
$(CC) webserver.o context_loop.o tools.o cookie_conversion.o \
summary.o calendar.o calendar_tools.o calendar_view.o event.o \
availability.o ical_dezonify.o iconbar.o crypto.o inetconf.o notes.o \
groupdav_main.o groupdav_get.o groupdav_propfind.o groupdav_delete.o \
- groupdav_options.o \
+ groupdav_options.o autocompletion.o \
groupdav_put.o http_datestring.o setup_wizard.o fmt_date.o \
$(LIBOBJS) $(LIBS) $(LDFLAGS) -o webserver
Stephenson [http://prototype.conio.net]. These components are licensed to
you under the terms of an MIT-style license.
+ WebCit bundles the script.aculo.us JavaScript library, written by
+ Thomas Fuchs [http://script.aculo.us, http://mir.aculo.us]. These
+ components are licensed to you under the terms of an MIT-style license.
+
+
The Citadel logo was designed by Lisa Aurigemma.
INTRODUCTION
/* begin message entry screen */
+
+ wprintf(
+ "<style> div.auto_complete { width: 350px; background: #fff; } div.auto_complete ul { border:1px solid #888; margin:0; padding:0; width:100%; list-style-type:none; } div.auto_complete ul li { margin:0; padding:3px; } div.auto_complete ul li.selected { background-color: #ffb; } div.auto_complete ul strong.highlight { color: #800; margin:0; padding:0; } </style> \n "
+ );
+
wprintf("<form enctype=\"multipart/form-data\" "
"method=\"POST\" action=\"/post\" "
"name=\"enterform\""
wprintf(_("To:"));
wprintf("</font>");
wprintf("</td><td>"
- "<input type=\"text\" name=\"recp\" value=\"");
+ "<input autocomplete=\"off\" type=\"text\" name=\"recp\" id=\"recp_name\" value=\"");
escputs(bstr("recp"));
- wprintf("\" size=50 maxlength=70></td><td></td></tr>\n");
+ wprintf("\" size=50 maxlength=70>");
+
+ wprintf("<div class=\"auto_complete\" id=\"recp_name_choices\"></div>");
+
+ wprintf("<script type=\"text/javascript\"> "
+ " new Ajax.Autocompleter('recp_name', 'recp_name_choices', "
+ " '/recp_autocomplete', {} ); "
+ "</script>\n "
+ );
+
+ wprintf("</td><td></td></tr>\n");
}
wprintf("<tr><td>");
display_preferences();
} else if (!strcasecmp(action, "set_preferences")) {
set_preferences();
+ } else if (!strcasecmp(action, "recp_autocomplete")) {
+ recp_autocomplete();
} else if (!strcasecmp(action, "diagnostics")) {
output_headers(1, 1, 1, 0, 0, 0, 0);
wprintf("Session: %d<hr />\n", WC->wc_session);
wprintf("</PRE><hr />\n");
wDumpContent(1);
}
+
/* When all else fais, display the main menu. */
else {
display_main_menu();
void generate_uuid(char *);
void display_preferences(void);
void set_preferences(void);
+void recp_autocomplete(void);
#ifdef WEBCIT_WITH_CALENDAR_SERVICE
void display_edit_task(void);