Allow multiple addresses to be selected.
[citadel.git] / webcit / addressbook_popup.c
1 /*
2  * $Id:  $
3  *//**
4  * \defgroup AjaxAutoCompletion ajax-powered autocompletion...
5  * \ingroup ClientPower
6  */
7
8 /*@{*/
9 #include "webcit.h"
10
11
12 /**
13  * \brief Call this right before wDumpContent() on any page which requires the address book popup
14  */
15 void address_book_popup(void) {
16         /* Open a new div, hidden initially, for address book popups. */
17         wprintf("</div>\n");    /* End of 'content' div */
18         wprintf("<div id=\"address_book_popup\" style=\"display:none;\">");
19         wprintf("<div id=\"address_book_popup_container_div\">");
20         wprintf("<div id=\"address_book_popup_middle_div\"></div>");
21         wprintf("<div id=\"address_book_inner_div\"></div>");
22         wprintf("</div>");
23         /* The 'address_book_popup' div will be closed by wDumpContent() */
24 }
25
26 /**
27  * \brief Address book popup window
28  */
29 void display_address_book_middle_div(void) {
30         char buf[256];
31         char ebuf[256];
32
33         begin_ajax_response();
34
35         wprintf("<table border=0 width=100%%><tr valign=middle>");
36         wprintf("<td align=left><img src=\"static/viewcontacts_32x.gif\"></td>");
37         wprintf("<td align=center>");
38
39         wprintf("<form>"
40                 "<select class=\"address_book_popup_title\" size=1 id=\"which_addr_book\" "
41                 " onChange=\"PopulateAddressBookInnerDiv($('which_addr_book').value,'%s')\">",
42                 bstr("target_input")
43         );
44
45         wprintf("<option value=\"__LOCAL_USERS__\">");
46         escputs(serv_info.serv_humannode);
47         wprintf("</option>\n");
48
49         serv_puts("LKRA");
50         serv_getln(buf, sizeof buf);
51         if (buf[0] == '1') while(serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
52                 if (extract_int(buf, 6) == VIEW_ADDRESSBOOK) {
53                         extract_token(ebuf, buf, 0, '|', sizeof ebuf);
54                         wprintf("<option value=\"");
55                         urlescputs(ebuf);
56                         wprintf("\">");
57                         escputs(ebuf);
58                         wprintf("</option>\n");
59                 }
60         }
61         wprintf("</select></form>");
62
63         wprintf("</td>");
64         wprintf("<td align=right "
65                 "onclick=\"javascript:$('address_book_popup').style.display='none';\" "
66                 "><img src=\"static/closewindow.gif\">");
67         wprintf("</td></tr></table>");
68
69         wprintf("<script type=\"text/javascript\">"
70                 "PopulateAddressBookInnerDiv($('which_addr_book').value,'%s');"
71                 "</script>\n",
72                 bstr("target_input")
73         );
74
75         end_ajax_response();
76 }
77
78
79
80 /**
81  * \brief Address book popup results
82  */
83 void display_address_book_inner_div() {
84         char buf[256];
85         char username[256];
86
87         begin_ajax_response();
88
89         wprintf("<div align=center><form onSubmit=\"return false;\">"
90                 "<select multiple name=\"whichaddr\" id=\"whichaddr\" size=\"15\">\n");
91
92         if (!strcasecmp(bstr("which_addr_book"), "__LOCAL_USERS__")) {
93                 serv_puts("LIST");
94                 serv_getln(buf, sizeof buf);
95                 if (buf[0] == '1') while(serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
96                         extract_token(username, buf, 0, '|', sizeof username);
97                         wprintf("<option value=\"");
98                         escputs(username);
99                         wprintf("\">");
100                         escputs(username);
101                         wprintf("</option>\n");
102                 }
103         }
104
105         else {
106                 serv_printf("GOTO %s", bstr("which_addr_book"));
107                 serv_getln(buf, sizeof buf);
108                 serv_puts("DVCA");
109                 serv_getln(buf, sizeof buf);
110                 if (buf[0] == '1') while(serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
111                         wprintf("<option value=\"");
112                         escputs(buf);
113                         wprintf("\">");
114                         escputs(buf);
115                         wprintf("</option>\n");
116                 }
117         }
118
119         wprintf("</select>\n");
120
121         wprintf("<INPUT TYPE=\"submit\" NAME=\"select_button\" VALUE=\"%s\" ", _("Select"));
122         wprintf("onClick=\"AddContactsToTarget($('%s'),$('whichaddr'));\">", bstr("target_input"));
123         wprintf("<INPUT TYPE=\"submit\" NAME=\"close_button\" VALUE=\"%s\" ", _("Close window"));
124         wprintf("onclick=\"javascript:$('address_book_popup').style.display='none';\">");
125
126         wprintf("</form></div>\n");
127
128         end_ajax_response();
129 }
130
131
132 /** @} */