]> code.citadel.org Git - citadel.git/blobdiff - webcit/calendar.c
HUGE PATCH. This moves all of mime_parser.c and all
[citadel.git] / webcit / calendar.c
index ed5bb6dca02382d2e8f457fb0cfffba53d64340e..3ced19b1d177605966ae6a6630a3836d18bcb918 100644 (file)
@@ -170,7 +170,7 @@ void cal_process_object(icalcomponent *cal,
                        }
                        else {
                                tt = icaltime_as_timet(t);
-                               fmt_date(buf, tt, 0);
+                               webcit_fmt_date(buf, tt, 0);
                                wprintf("<dt>");
                                wprintf(_("Starting date/time:"));
                                wprintf("</dt><dd>%s</dd>", buf);
@@ -181,7 +181,7 @@ void cal_process_object(icalcomponent *cal,
                if (p != NULL) {
                        t = icalproperty_get_dtend(p);
                        tt = icaltime_as_timet(t);
-                       fmt_date(buf, tt, 0);
+                       webcit_fmt_date(buf, tt, 0);
                        wprintf("<dt>");
                        wprintf(_("Ending date/time:"));
                        wprintf("</dt><dd>%s</dd>", buf);
@@ -264,14 +264,15 @@ void cal_process_object(icalcomponent *cal,
                wprintf("</dl>");
 
                /** Display the Accept/Decline buttons */
-               wprintf("<p id=\"%s_question\" class=\"buttons\">"
+               wprintf("<p id=\"%s_question\">"
                        "%s "
+                       "&nbsp;&nbsp;&nbsp;<span class=\"button_link\"> "
                        "<a href=\"javascript:RespondToInvitation('%s_question','%s_title','%ld','%s','Accept');\">%s</a>"
-                       "<span> | </span>"
+                       "</span>&nbsp;&nbsp;&nbsp;<span class=\"button_link\">"
                        "<a href=\"javascript:RespondToInvitation('%s_question','%s_title','%ld','%s','Tentative');\">%s</a>"
-                       "<span> | </span>"
+                       "</span>&nbsp;&nbsp;&nbsp;<span class=\"button_link\">"
                        "<a href=\"javascript:RespondToInvitation('%s_question','%s_title','%ld','%s','Decline');\">%s</a>"
-                       "</p>\n",
+                       "</span></p>\n",
                        divname,
                        _("How would you like to respond to this invitation?"),
                        divname, divname, msgnum, cal_partnum, _("Accept"),
@@ -292,12 +293,13 @@ void cal_process_object(icalcomponent *cal,
                 ***********/
 
                /** Display the update buttons */
-               wprintf("<p id=\"%s_question\" class=\"buttons\">"
-                       "%s"
+               wprintf("<p id=\"%s_question\" >"
+                       "%s "
+                       "&nbsp;&nbsp;&nbsp;<span class=\"button_link\"> "
                        "<a href=\"javascript:HandleRSVP('%s_question','%s_title','%ld','%s','Update');\">%s</a>"
-                       "<span> | </span>"
+                       "</span>&nbsp;&nbsp;&nbsp;<span class=\"button_link\">"
                        "<a href=\"javascript:HandleRSVP('%s_question','%s_title','%ld','%s','Ignore');\">%s</a>"
-                       "</p>\n",
+                       "</span></p>\n",
                        divname,
                        _("Click <i>Update</i> to accept this reply and update your calendar."),
                        divname, divname, msgnum, cal_partnum, _("Update"),
@@ -444,15 +446,15 @@ void handle_rsvp(void) {
  * \param cal Our calendar to process
  * \param msgnum number of the mesage in our db
  */
-void display_individual_cal(icalcomponent *cal, long msgnum) {
-
-       WC->num_cal += 1;
-
-       WC->disp_cal = realloc(WC->disp_cal,
-                       (sizeof(struct disp_cal) * WC->num_cal) );
-       WC->disp_cal[WC->num_cal - 1].cal = icalcomponent_new_clone(cal);
-
-       WC->disp_cal[WC->num_cal - 1].cal_msgnum = msgnum;
+void display_individual_cal(icalcomponent *cal, long msgnum)
+{
+       struct wcsession *WCC = WC;     /* stack this for faster access (WC is a function) */
+
+       WCC->num_cal += 1;
+       WCC->disp_cal = realloc(WC->disp_cal, (sizeof(struct disp_cal) * WCC->num_cal) );
+       WCC->disp_cal[WCC->num_cal - 1].cal = icalcomponent_new_clone(cal);
+       ical_dezonify(WCC->disp_cal[WCC->num_cal - 1].cal);
+       WCC->disp_cal[WCC->num_cal - 1].cal_msgnum = msgnum;
 }
 
 
@@ -635,9 +637,15 @@ void save_individual_task(icalcomponent *supplied_vtodo, long msgnum) {
                        icalcomponent_remove_property(vtodo, prop);
                        icalproperty_free(prop);
                }
-               icalcomponent_add_property(vtodo,
-                       icalproperty_new_summary(bstr("summary")));
-               
+               if (!IsEmptyStr(bstr("summary"))) {
+       
+                       icalcomponent_add_property(vtodo,
+                                       icalproperty_new_summary(bstr("summary")));
+               } else {
+                       icalcomponent_add_property(vtodo,
+                                       icalproperty_new_summary("Untitled Task"));
+               }
+       
                while (prop = icalcomponent_get_first_property(vtodo,
                      ICAL_DESCRIPTION_PROPERTY), prop != NULL) {
                        icalcomponent_remove_property(vtodo, prop);
@@ -770,7 +778,8 @@ void display_using_handler(long msgnum,
        char *relevant_source = NULL;
        icalcomponent *cal, *c;
 
-       sprintf(buf, "MSG0 %ld|0", msgnum);     /* unfortunately we need the mime headers */
+       relevant_partnum[0] = '\0';
+       sprintf(buf, "MSG4 %ld", msgnum);       /* we need the mime headers */
        serv_puts(buf);
        serv_getln(buf, sizeof buf);
        if (buf[0] != '1') return;
@@ -786,6 +795,9 @@ void display_using_handler(long msgnum,
                        if (!strcasecmp(mime_content_type, "text/calendar")) {
                                strcpy(relevant_partnum, mime_partnum);
                        }
+                       else if (!strcasecmp(mime_content_type, "text/vtodo")) {
+                               strcpy(relevant_partnum, mime_partnum);
+                       }
 
                }
        }