]> code.citadel.org Git - citadel.git/blobdiff - webcit/messages.c
Allow multiple addresses to be selected.
[citadel.git] / webcit / messages.c
index 4c5a0b3e77c6d52ed8841b45148eb1c84be5d3a3..db930c7230b05f611aa25b94398e76b396d380ad 100644 (file)
@@ -649,6 +649,7 @@ struct attach_link {
 void read_message(long msgnum, int printable_view, char *section) {
        char buf[SIZ];
        char mime_partnum[256];
+       char mime_name[256];
        char mime_filename[256];
        char mime_content_type[256];
        char mime_charset[256];
@@ -721,7 +722,7 @@ void read_message(long msgnum, int printable_view, char *section) {
                if (!strcmp(buf, "000")) {
                        wprintf("<i>");
                        wprintf(_("unexpected end of message"));
-                       wprintf("</i><br /><br />\n");
+                       wprintf(" (1)</i><br /><br />\n");
                        wprintf("</span>\n");
                        return;
                }
@@ -800,12 +801,19 @@ void read_message(long msgnum, int printable_view, char *section) {
                }
 
                if (!strncasecmp(buf, "part=", 5)) {
+                       extract_token(mime_name, &buf[5], 0, '|', sizeof mime_filename);
                        extract_token(mime_filename, &buf[5], 1, '|', sizeof mime_filename);
                        extract_token(mime_partnum, &buf[5], 2, '|', sizeof mime_partnum);
                        extract_token(mime_disposition, &buf[5], 3, '|', sizeof mime_disposition);
                        extract_token(mime_content_type, &buf[5], 4, '|', sizeof mime_content_type);
                        mime_length = extract_int(&buf[5], 5);
 
+                       striplt(mime_name);
+                       striplt(mime_filename);
+                       if ( (strlen(mime_filename) == 0) && (strlen(mime_name) > 0) ) {
+                               strcpy(mime_filename, mime_name);
+                       }
+
                        if (!strcasecmp(mime_content_type, "message/rfc822")) {
                                if (strlen(mime_submessages) > 0) {
                                        strcat(mime_submessages, "|");
@@ -1013,7 +1021,7 @@ void read_message(long msgnum, int printable_view, char *section) {
                if (!strcmp(buf, "000")) {
                        wprintf("<i>");
                        wprintf(_("unexpected end of message"));
-                       wprintf("</i><br /><br />\n");
+                       wprintf(" (2)</i><br /><br />\n");
                        goto ENDBODY;
                }
                if (!strncasecmp(buf, "X-Citadel-MSG4-Partnum:", 23)) {
@@ -1330,7 +1338,7 @@ void pullquote_message(long msgnum, int forward_attachments, int include_headers
 
        while (serv_getln(buf, sizeof buf), strcasecmp(buf, "text")) {
                if (!strcmp(buf, "000")) {
-                       wprintf(_("unexpected end of message"));
+                       wprintf("%s (3)", _("unexpected end of message"));
                        return;
                }
                if (include_headers) {
@@ -1433,7 +1441,7 @@ void pullquote_message(long msgnum, int forward_attachments, int include_headers
        strcpy(mime_content_type, "text/plain");
        while (serv_getln(buf, sizeof buf), (strlen(buf) > 0)) {
                if (!strcmp(buf, "000")) {
-                       wprintf(_("unexpected end of message"));
+                       wprintf("%s (4)", _("unexpected end of message"));
                        goto ENDBODY;
                }
                if (!strncasecmp(buf, "Content-type: ", 14)) {
@@ -3009,13 +3017,11 @@ void display_enter(void)
                wprintf("<div class=\"auto_complete\" id=\"recp_name_choices\"></div>");
 
                /** Pop open an address book -- begin **/
-
                wprintf(
-                       "<a href=\"javascript:PopOpenAddressBook();\" title=\"%s\">"
-                       "<img border=0 width=16 height=16 src=\"static/viewcontacts_16x.gif\">"
+                       "&nbsp;<a href=\"javascript:PopOpenAddressBook('recp_id');\" title=\"%s\">"
+                       "<img align=middle border=0 width=16 height=16 src=\"static/viewcontacts_16x.gif\">"
                        "</a>", _("Contacts")
                );
-
                /** Pop open an address book -- end **/
 
                wprintf("</td><td></td></tr>\n");
@@ -3029,6 +3035,15 @@ void display_enter(void)
                escputs(bstr("cc"));
                wprintf("\" size=50 maxlength=1000 />");
                wprintf("<div class=\"auto_complete\" id=\"cc_name_choices\"></div>");
+
+               /** Pop open an address book -- begin **/
+               wprintf(
+                       "&nbsp;<a href=\"javascript:PopOpenAddressBook('cc_id');\" title=\"%s\">"
+                       "<img align=middle border=0 width=16 height=16 src=\"static/viewcontacts_16x.gif\">"
+                       "</a>", _("Contacts")
+               );
+               /** Pop open an address book -- end **/
+
                wprintf("</td><td></td></tr>\n");
 
                wprintf("<tr><td>");
@@ -3040,6 +3055,14 @@ void display_enter(void)
                escputs(bstr("bcc"));
                wprintf("\" size=50 maxlength=1000 />");
                wprintf("<div class=\"auto_complete\" id=\"bcc_name_choices\"></div>");
+
+               /** Pop open an address book -- begin **/
+               wprintf(
+                       "&nbsp;<a href=\"javascript:PopOpenAddressBook('bcc_id');\" title=\"%s\">"
+                       "<img align=middle border=0 width=16 height=16 src=\"static/viewcontacts_16x.gif\">"
+                       "</a>", _("Contacts")
+               );
+               /** Pop open an address book -- end **/
                wprintf("</td><td></td></tr>\n");
 
                /** Initialize the autocomplete ajax helpers (found in wclib.js) */
@@ -3051,7 +3074,12 @@ void display_enter(void)
 
        wprintf("<tr><td>");
        wprintf("<font size=-1>");
-       wprintf(_("Subject (optional):"));
+       if (recipient_required) {
+               wprintf(_("Subject:"));
+       }
+       else {
+               wprintf(_("Subject (optional):"));
+       }
        wprintf("</font>");
        wprintf("</td><td>"
                "<input type=\"text\" name=\"subject\" value=\"");
@@ -3195,26 +3223,10 @@ void display_enter(void)
        }
 
        wprintf("</form>\n");
-
        wprintf("</td></tr></table></div>\n");
 
-       /* Close the main div, now open a new one, hidden initially, for address book popups.
-        * Remember: the final div will be closed by wDumpContent, which will think it's merely
-        * closing the main div.  FIXME put this in its own function so we can use it from the
-        * calendar too.
-        */
-       wprintf("</div><div id=\"address_book_popup\" style=\"display:none;\">");
-       wprintf("<div id=\"address_book_popup_middle_div\">");
-       wprintf("<table border=0 width=100%%><tr valign=middle>");
-       wprintf("<td align=left><img src=\"static/viewcontacts_32x.gif\"></td>");
-       wprintf("<td align=center><span class=\"address_book_popup_title\">%s</span></td>", _("Contacts") );
-       wprintf("<td align=right "
-               "onclick=\"javascript:$('address_book_popup').style.display='none';\" "
-               "><img src=\"static/closewindow.gif\">");
-       wprintf("</td></tr></table>");
-       wprintf("<div id=\"address_book_inner_div\"></div>");
-       wprintf("</div>");
-DONE:  wDumpContent(1);
+DONE:  address_book_popup();
+       wDumpContent(1);
 }