]> code.citadel.org Git - citadel.git/blobdiff - webcit/event.c
Allow multiple addresses to be selected.
[citadel.git] / webcit / event.c
index 4bfcb0a8a5a73132b688c343227151bde3454d74..3ac9e474838bb6af9088b8ecea305cf172a7fab7 100644 (file)
@@ -3,7 +3,7 @@
  */
 /**
  * \defgroup EditCal Editing calendar events.
- *
+ * \ingroup Calendaring
  */
 /*@{*/
 #include "webcit.h"
@@ -71,7 +71,7 @@ void display_edit_individual_event(icalcomponent *supplied_vevent, long msgnum)
        /** Begin output */
        output_headers(1, 1, 2, 0, 0, 0);
        wprintf("<div id=\"banner\">\n"
-               "<TABLE WIDTH=100%% BORDER=0 BGCOLOR=\"#444455\"><TR><TD>"
+               "<TABLE class=\"event_banner\"><TR><TD>"
                "<SPAN CLASS=\"titlebar\">");
        wprintf(_("Add or edit an event"));
        wprintf("</SPAN>"
@@ -109,7 +109,7 @@ void display_edit_individual_event(icalcomponent *supplied_vevent, long msgnum)
 
 
        wprintf("<div class=\"fix_scrollbar_bug\">"
-               "<table border=0 width=100%% bgcolor=\"#ffffff\"><tr><td>\n");
+               "<table  class=\"event_background\"><tr><td>\n");
 
        /************************************************************
         * Uncomment this to see the UID in calendar events for debugging
@@ -254,7 +254,8 @@ void display_edit_individual_event(icalcomponent *supplied_vevent, long msgnum)
        }
        wprintf("</TEXTAREA></TD></TR>");
 
-       /* For a new event, the user creating the event should be the
+       /**
+        * For a new event, the user creating the event should be the
         * organizer.  Set this field accordingly.
         */
        if (icalcomponent_get_first_property(vevent, ICAL_ORGANIZER_PROPERTY)
@@ -269,17 +270,14 @@ void display_edit_individual_event(icalcomponent *supplied_vevent, long msgnum)
         * Determine who is the organizer of this event.
         * We need to determine "me" or "not me."
         */
-       organizer = icalcomponent_get_first_property(vevent,
-                                               ICAL_ORGANIZER_PROPERTY);
+       organizer = icalcomponent_get_first_property(vevent, ICAL_ORGANIZER_PROPERTY);
        if (organizer != NULL) {
                strcpy(organizer_string, icalproperty_get_organizer(organizer));
                if (!strncasecmp(organizer_string, "MAILTO:", 7)) {
                        strcpy(organizer_string, &organizer_string[7]);
                        striplt(organizer_string);
-                       lprintf(9, "ISME %s\n", organizer_string);
                        serv_printf("ISME %s", organizer_string);
                        serv_getln(buf, sizeof buf);
-                       lprintf(9, "%s\n", buf);
                        if (buf[0] == '2') {
                                organizer_is_me = 1;
                        }
@@ -350,7 +348,7 @@ void display_edit_individual_event(icalcomponent *supplied_vevent, long msgnum)
                "<FONT SIZE=-2>");
        wprintf(_("(One per line)"));
        wprintf("</FONT></TD><TD>"
-               "<TEXTAREA %s NAME=\"attendees\" wrap=soft "
+               "<TEXTAREA %s NAME=\"attendees\" id=\"attendees_box\" wrap=soft "
                "ROWS=3 COLS=80 WIDTH=80>\n",
                (organizer_is_me ? "" : "DISABLED ")
        );
@@ -461,25 +459,35 @@ void save_individual_event(icalcomponent *supplied_vevent, long msgnum) {
                        icalcomponent_remove_property(vevent, prop);
                        icalproperty_free(prop);
                }
-               icalcomponent_add_property(vevent,
-                       icalproperty_new_summary(bstr("summary")));
 
-               while (prop = icalcomponent_get_first_property(vevent,
-                     ICAL_LOCATION_PROPERTY), prop != NULL) {
-                       icalcomponent_remove_property(vevent, prop);
-                       icalproperty_free(prop);
-               }
-               icalcomponent_add_property(vevent,
-                       icalproperty_new_location(bstr("location")));
-               
-               while (prop = icalcomponent_get_first_property(vevent,
-                     ICAL_DESCRIPTION_PROPERTY), prop != NULL) {
-                       icalcomponent_remove_property(vevent, prop);
-                       icalproperty_free(prop);
-               }
-               icalcomponent_add_property(vevent,
-                       icalproperty_new_description(bstr("description")));
+               if (strlen(bstr("summary")) > 0) {
        
+                       icalcomponent_add_property(vevent,
+                                       icalproperty_new_summary(bstr("summary")));
+               } else {
+                       icalcomponent_add_property(vevent,
+                                       icalproperty_new_summary("Untitled Event"));
+               }
+       
+               while (prop = icalcomponent_get_first_property(vevent,
+                                       ICAL_LOCATION_PROPERTY), prop != NULL) {
+                       icalcomponent_remove_property(vevent, prop);
+                       icalproperty_free(prop);
+               }
+               if (strlen(bstr("location")) > 0) {
+                       icalcomponent_add_property(vevent,
+                                       icalproperty_new_location(bstr("location")));
+               }
+               while (prop = icalcomponent_get_first_property(vevent,
+                                 ICAL_DESCRIPTION_PROPERTY), prop != NULL) {
+                       icalcomponent_remove_property(vevent, prop);
+                       icalproperty_free(prop);
+               }
+               if (strlen(bstr("description")) > 0) {
+                       icalcomponent_add_property(vevent,
+                               icalproperty_new_description(bstr("description")));
+               }
+
                while (prop = icalcomponent_get_first_property(vevent,
                      ICAL_DTSTART_PROPERTY), prop != NULL) {
                        icalcomponent_remove_property(vevent, prop);
@@ -596,7 +604,7 @@ void save_individual_event(icalcomponent *supplied_vevent, long msgnum) {
                        /** set new organizer */
                        sprintf(organizer_string, "MAILTO:%s", buf);
                        icalcomponent_add_property(vevent,
-                               icalproperty_new_organizer(organizer_string)
+                               icalproperty_new_organizer(organizer_string)
                        );
 
                }
@@ -667,7 +675,10 @@ STARTOVER: lprintf(9, "Remove unlisted attendees\n");
                lprintf(9, "Encapsulating into full VCALENDAR component\n");
                encaps = ical_encapsulate_subcomponent(icalcomponent_new_clone(vevent));
 
-               /* If the user clicked 'Save' then save it to the server. */
+               /* Set the method to PUBLISH */
+               icalcomponent_set_method(encaps, ICAL_METHOD_PUBLISH);
+
+               /** If the user clicked 'Save' then save it to the server. */
                lprintf(9, "Serializing it for saving\n");
                if ( (encaps != NULL) && (strlen(bstr("save_button")) > 0) ) {
                        serv_puts("ENT0 1|||4|||1|");
@@ -678,8 +689,13 @@ STARTOVER: lprintf(9, "Remove unlisted attendees\n");
                                serv_puts(icalcomponent_as_ical_string(encaps));
                                serv_puts("000");
                        }
-                       while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
-                               lprintf(9, "ENT0 REPLY: %s\n", buf);
+                       if ( (buf[0] == '8') || (buf[0] == '4') ) {
+                               while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
+                                       lprintf(9, "ENT0 REPLY: %s\n", buf);
+                               }
+                       }
+                       if (buf[0] == '2') {
+                               strcpy(WC->ImportantMessage, &buf[4]);
                        }
                        icalcomponent_free(encaps);
                }
@@ -711,7 +727,7 @@ STARTOVER:  lprintf(9, "Remove unlisted attendees\n");
                icalcomponent_free(vevent);
        }
 
-       /** If this was a save or deelete, go back to the calendar view. */
+       /** If this was a save or delete, go back to the calendar view. */
        if (strlen(bstr("check_button")) == 0) {
                readloop("readfwd");
        }