* some debugging to the day view, and the date calculating functions. Temporarily...
authorWilfried Göesgens <willi@citadel.org>
Tue, 23 Oct 2007 21:22:01 +0000 (21:22 +0000)
committerWilfried Göesgens <willi@citadel.org>
Tue, 23 Oct 2007 21:22:01 +0000 (21:22 +0000)
webcit/availability.c
webcit/calendar_view.c

index 0c1198a26fda2614abb0a58c62c8b00c977e170d..8676ab2cd5804fd79288c1fc19268aeb11b22b03 100644 (file)
@@ -48,6 +48,57 @@ icalcomponent *get_freebusy_for_user(char *who) {
 }
 
 
+/* TODO: temporary copy from libical, apply this patch to libical... */
+int webcit_icaltime_compare(const struct icaltimetype a_in, const struct icaltimetype b_in) 
+{
+    struct icaltimetype a, b;
+
+    a = icaltime_convert_to_zone(a_in, icaltimezone_get_utc_timezone());
+    b = icaltime_convert_to_zone(b_in, icaltimezone_get_utc_timezone());
+
+    if (a.year > b.year)
+       return 1;
+    else if (a.year < b.year)
+       return -1;
+
+    else if (a.month > b.month)
+       return 1;
+    else if (a.month < b.month)
+       return -1;
+
+    else if (a.day > b.day)
+       return 1;
+    else if (a.day < b.day)
+       return -1;
+
+    /* if both are dates, we are done */
+    if (a.is_date && b.is_date)
+       return 0;
+
+    /* else, if only one is a date (and we already know the date part is equal),
+       then the other is greater */
+    else if (b.is_date)
+       return 1;
+    else if (a.is_date)
+       return -1;
+
+    else if (a.hour > b.hour)
+       return 1;
+    else if (a.hour < b.hour)
+       return -1;
+
+    else if (a.minute > b.minute)
+       return 1;
+    else if (a.minute < b.minute)
+       return -1;
+
+    else if (a.second > b.second)
+       return 1;
+    else if (a.second < b.second)
+       return -1;
+
+    return 0;
+}
 
 
 /**
@@ -94,6 +145,8 @@ int ical_ctdl_is_overlap(
                }
        }
 
+       lprintf (2,"Comparing t1start %d:%d t1end %d:%d t2start %d:%d t2end %d:%d \n", t1start.hour, t1start.minute, t1end.hour, t1end.minute, t2start.hour, t2start.minute, t2end.hour, t2end.minute);// TODO: remove me.
+
        /** Now check for overlaps using date *and* time. */
 
        /** First, bail out if either event 1 or event 2 is missing end time. */
@@ -101,10 +154,11 @@ int ical_ctdl_is_overlap(
        if (icaltime_is_null_time(t2end)) return(0);
 
        /** If event 1 ends before event 2 starts, we're in the clear. */
-       if (icaltime_compare(t1end, t2start) <= 0) return(0);
-
+       if (webcit_icaltime_compare(t1end, t2start) <= 0) return(0);
+       lprintf(2,"first pased \n");
        /** If event 2 ends before event 1 starts, we're also ok. */
-       if (icaltime_compare(t2end, t1start) <= 0) return(0);
+       if (webcit_icaltime_compare(t2end, t1start) <= 0) return(0);
+       lprintf(2,"second pased \n");
 
        /** Otherwise, they overlap. */
        return(1);
index 52632d3ad9a814cb9595d1e13427990cd2449f9c..3151695775168466e262eddb947dec567006f81f 100644 (file)
@@ -813,6 +813,7 @@ void calendar_day_view_display_events(time_t thetime, int year, int month,
                return;
        }
 
+       lprintf (2, "printing %d\n", hour); /// TODO: remove me.
        event_start = thetime + 60 * 60 * hour;
        event_end = thetime + 60 * 60 * (hour + 1);
 
@@ -998,6 +999,7 @@ void calendar_day_view_display_events(time_t thetime, int year, int month,
                                                top = (dstart * 10) + ((dend - dstart) * 30) + ((event_tm.tm_hour - event_te.tm_hour) * 10) + startmin - 1;
                                                height = ((event_tm.tm_hour - event_te.tm_hour) * 10) + endmin - diffmin;
                                        }
+                               } // TODO: we seem to end up here for some reason if we're just a one hour event.  Thierry, please decide what to do then...
                                wprintf("<dd  class=\"event\" "
                                        "style=\"position: absolute; "
                                        "top:%dpx; left:%dpx; "
@@ -1032,7 +1034,7 @@ void calendar_day_view_display_events(time_t thetime, int year, int month,
 
                                escputs((char *) icalproperty_get_comment(p));
                                wprintf("</a></dd>\n");
-                               }
+                               
                                
                        }
                }