]> code.citadel.org Git - citadel.git/blobdiff - webcit/event.c
* minor cleanup
[citadel.git] / webcit / event.c
index f79fff3af857001f15aeb535ed497e9285c64c02..1411b5e7cb5913bd2e91123e990e88a664d94c39 100644 (file)
@@ -58,20 +58,47 @@ void display_edit_individual_event(icalcomponent *supplied_vevent, long msgnum)
                "</FONT></TD></TR></TABLE><BR>\n"
        );
 
+       wprintf("UID == ");
+       p = icalcomponent_get_first_property(vevent, ICAL_UID_PROPERTY);
+       if (p != NULL) {
+               escputs((char *)icalproperty_get_comment(p));
+       }
+       wprintf(" (FIXME remove this when done)<BR>\n");
+
        wprintf("<FORM METHOD=\"POST\" ACTION=\"/save_event\">\n");
        wprintf("<INPUT TYPE=\"hidden\" NAME=\"msgnum\" VALUE=\"%ld\">\n",
                msgnum);
+       wprintf("<INPUT TYPE=\"hidden\" NAME=\"calview\" VALUE=\"%s\">\n",
+               bstr("calview"));
+       wprintf("<INPUT TYPE=\"hidden\" NAME=\"year\" VALUE=\"%s\">\n",
+               bstr("year"));
+       wprintf("<INPUT TYPE=\"hidden\" NAME=\"month\" VALUE=\"%s\">\n",
+               bstr("month"));
+       wprintf("<INPUT TYPE=\"hidden\" NAME=\"day\" VALUE=\"%s\">\n",
+               bstr("day"));
+
+       /* Put it in a borderless table so it lines up nicely */
+       wprintf("<TABLE border=0 width=100%%>\n");
 
-       wprintf("Summary: "
+       wprintf("<TR><TD><B>Summary</B></TD><TD>\n"
                "<INPUT TYPE=\"text\" NAME=\"summary\" "
                "MAXLENGTH=\"64\" SIZE=\"64\" VALUE=\"");
        p = icalcomponent_get_first_property(vevent, ICAL_SUMMARY_PROPERTY);
        if (p != NULL) {
                escputs((char *)icalproperty_get_comment(p));
        }
-       wprintf("\"><BR>\n");
+       wprintf("\"></TD></TR>\n");
+
+       wprintf("<TR><TD><B>Location</B></TD><TD>\n"
+               "<INPUT TYPE=\"text\" NAME=\"location\" "
+               "MAXLENGTH=\"64\" SIZE=\"64\" VALUE=\"");
+       p = icalcomponent_get_first_property(vevent, ICAL_LOCATION_PROPERTY);
+       if (p != NULL) {
+               escputs((char *)icalproperty_get_comment(p));
+       }
+       wprintf("\"></TD></TR>\n");
 
-       wprintf("Start date: ");
+       wprintf("<TR><TD><B>Start</B></TD><TD>\n");
        p = icalcomponent_get_first_property(vevent, ICAL_DTSTART_PROPERTY);
        if (p != NULL) {
                t = icalproperty_get_dtstart(p);
@@ -80,18 +107,31 @@ void display_edit_individual_event(icalcomponent *supplied_vevent, long msgnum)
                t = icaltime_from_timet(now, 0);
        }
        display_icaltimetype_as_webform(&t, "dtstart");
-       wprintf("<BR>\n");
+       wprintf("</TD></TR>\n");
 
-       wprintf("<CENTER><TEXTAREA NAME=\"description\" wrap=soft "
+       wprintf("<TR><TD><B>End</B></TD><TD>\n");
+       p = icalcomponent_get_first_property(vevent, ICAL_DTEND_PROPERTY);
+       if (p != NULL) {
+               t = icalproperty_get_dtend(p);
+       }
+       else {
+               t = icaltime_from_timet(now, 0);
+       }
+       display_icaltimetype_as_webform(&t, "dtend");
+       wprintf("</TD></TR>\n");
+
+       wprintf("<TR><TD><B>Notes</B></TD><TD>\n"
+               "<TEXTAREA NAME=\"description\" wrap=soft "
                "ROWS=10 COLS=80 WIDTH=80>\n"
        );
        p = icalcomponent_get_first_property(vevent, ICAL_DESCRIPTION_PROPERTY);
        if (p != NULL) {
                escputs((char *)icalproperty_get_comment(p));
        }
-       wprintf("</TEXTAREA><BR>\n");
+       wprintf("</TEXTAREA></TD></TR></TABLE>\n");
 
-       wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Save\">"
+       wprintf("<CENTER>"
+               "<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Save\">"
                "&nbsp;&nbsp;"
                "<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Delete\">\n"
                "&nbsp;&nbsp;"
@@ -137,6 +177,13 @@ void save_individual_event(icalcomponent *supplied_vevent, long msgnum) {
                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);
+               }
+               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);
@@ -163,6 +210,15 @@ void save_individual_event(icalcomponent *supplied_vevent, long msgnum) {
                                icaltime_from_webform("due")
                        )
                );
+
+               /* Give this event a UID if it doesn't have one. */
+               if (icalcomponent_get_first_property(vevent,
+                  ICAL_UID_PROPERTY) == NULL) {
+                       generate_new_uid(buf);
+                       icalcomponent_add_property(vevent,
+                               icalproperty_new_uid(buf)
+                       );
+               }
        
                /* Serialize it and save it to the message base */
                serv_puts("ENT0 1|||4");