libical3 compatibility , patches submitted by Adrian Bunk
[citadel.git] / webcit / calendar_view.c
index 1bdcf608e26e3976c8b329dfd6e9079e4adb1da8..1b6e8681ebe2f9f3f2deeeb3ef7b5cf666f403c7 100644 (file)
@@ -1,21 +1,15 @@
 /*
  * Handles the HTML display of calendar items.
  *
- * Copyright (c) 1996-2011 by the citadel.org team
+ * Copyright (c) 1996-2012 by the citadel.org team
  *
  * This program is open source software.  You can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 3 of the
- * License, or (at your option) any later version.
+ * modify it under the terms of the GNU General Public License, version 3.
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
 #include "webcit.h"
@@ -23,8 +17,8 @@
 #include "calendar.h"
 
 /* These define how high the hour rows are in the day view */
-#define TIMELINE       30
-#define EXTRATIMELINE  (TIMELINE / 2)
+#define TIMELINE       22
+#define EXTRATIMELINE  22
 
 void embeddable_mini_calendar(int year, int month)
 {
@@ -143,7 +137,7 @@ void embeddable_mini_calendar(int year, int month)
        StrBufAppendPrintf(WC->trailing_javascript,
                "       function minical_change_month(year, month) {                                    \n"
                "               p = 'year=' + year + '&month=' + month                                  \n"
-               "                       + '&r=' + CtdlRandomString();                                   \n"
+               "                       + '&r=' + ctdlRandomString();                                   \n"
                "               new Ajax.Updater('%s', 'mini_calendar',                                 \n"
                "                       { method: 'get', parameters: p, evalScripts: true } );          \n"
                "       }                                                                               \n"
@@ -204,7 +198,6 @@ void calendar_month_view_display_events(int year, int month, int day)
        starting_tm.tm_hour = 0;
        starting_tm.tm_min = 0;
        today_start_t = icaltime_from_timet_with_zone(mktime(&starting_tm), 0, icaltimezone_get_utc_timezone());
-       today_start_t.is_utc = 1;
 
        memset(&ending_tm, 0, sizeof(struct tm));
        ending_tm.tm_year = year - 1900;
@@ -213,7 +206,6 @@ void calendar_month_view_display_events(int year, int month, int day)
        ending_tm.tm_hour = 23;
        ending_tm.tm_min = 59;
        today_end_t = icaltime_from_timet_with_zone(mktime(&ending_tm), 0, icaltimezone_get_utc_timezone());
-       today_end_t.is_utc = 1;
 
        /*
         * Create another one without caring about the timezone for all day events.
@@ -424,7 +416,6 @@ void calendar_month_view_brief_events(time_t thetime, const char *daycolor) {
        icalproperty *e;
        struct icaltimetype t;
        disp_cal *Cal;
-       int month, day, year;
        int all_day_event = 0;
        char *timeformat;
        int time_format;
@@ -435,9 +426,6 @@ void calendar_month_view_brief_events(time_t thetime, const char *daycolor) {
        else timeformat="%I:%M %p";
 
        localtime_r(&thetime, &today_tm);
-       month = today_tm.tm_mon + 1;
-       day = today_tm.tm_mday;
-       year = today_tm.tm_year + 1900;
 
        Pos = GetNewHashPos(WCC->disp_cal_items, 0);
        while (GetNextHashPos(WCC->disp_cal_items, Pos, &hklen, &HashKey, &vCal)) {
@@ -586,7 +574,7 @@ void calendar_month_view(int year, int month, int day) {
        localtime_r(&previous_month, &tm);
        wc_printf("<a href=\"readfwd?calview=month?year=%d?month=%d?day=1\">",
                (int)(tm.tm_year)+1900, tm.tm_mon + 1);
-       wc_printf("<img alt=\"%s\" align=\"middle\" src=\"static/icons/essen/32x32/back.png\" border=\"0\"></a>\n", _("previous"));
+       wc_printf("<img alt=\"%s\" align=\"middle\" src=\"static/webcit_icons/essen/32x32/back.png\" border=\"0\"></a>\n", _("previous"));
 
        wc_strftime(colheader_label, sizeof colheader_label, "%B", &starting_tm);
        wc_printf("&nbsp;&nbsp;"
@@ -598,7 +586,7 @@ void calendar_month_view(int year, int month, int day) {
        localtime_r(&next_month, &tm);
        wc_printf("<a href=\"readfwd?calview=month?year=%d?month=%d?day=1\">",
                (int)(tm.tm_year)+1900, tm.tm_mon + 1);
-       wc_printf("<img alt=\"%s\" align=\"middle\" src=\"static/icons/essen/32x32/forward.png\" border=\"0\"></A>\n", _("next"));
+       wc_printf("<img alt=\"%s\" align=\"middle\" src=\"static/webcit_icons/essen/32x32/forward.png\" border=\"0\"></A>\n", _("next"));
 
        wc_printf("</td></tr></table>\n");
 
@@ -722,7 +710,7 @@ void calendar_brief_month_view(int year, int month, int day) {
        localtime_r(&previous_month, &tm);
        wc_printf("<a href=\"readfwd?calview=month?year=%d?month=%d?day=1\">",
                (int)(tm.tm_year)+1900, tm.tm_mon + 1);
-       wc_printf("<img alt=\"%s\" align=\"middle\" src=\"static/icons/essen/32x32/back.png\" border=\"0\"></a>\n", _("previous"));
+       wc_printf("<img alt=\"%s\" align=\"middle\" src=\"static/webcit_icons/essen/32x32/back.png\" border=\"0\"></a>\n", _("previous"));
 
        wc_strftime(month_label, sizeof month_label, "%B", &tm);
        wc_printf("&nbsp;&nbsp;"
@@ -734,7 +722,7 @@ void calendar_brief_month_view(int year, int month, int day) {
        localtime_r(&next_month, &tm);
        wc_printf("<a href=\"readfwd?calview=month?year=%d?month=%d?day=1\">",
                (int)(tm.tm_year)+1900, tm.tm_mon + 1);
-       wc_printf("<img alt=\"%s\" align=\"middle\" src=\"static/icons/essen/32x32/forward.png\" border=\"0\"></a>\n", _("next"));
+       wc_printf("<img alt=\"%s\" align=\"middle\" src=\"static/webcit_icons/essen/32x32/forward.png\" border=\"0\"></a>\n", _("next"));
 
        wc_printf("</td></tr></table>\n");
 
@@ -864,7 +852,6 @@ void calendar_day_view_display_events(time_t thetime,
        starting_tm.tm_hour = 0;
        starting_tm.tm_min = 0;
        today_start_t = icaltime_from_timet_with_zone(mktime(&starting_tm), 0, icaltimezone_get_utc_timezone());
-       today_start_t.is_utc = 1;
 
        memset(&ending_tm, 0, sizeof(struct tm));
        ending_tm.tm_year = year - 1900;
@@ -873,7 +860,6 @@ void calendar_day_view_display_events(time_t thetime,
        ending_tm.tm_hour = 23;
        ending_tm.tm_min = 59;
        today_end_t = icaltime_from_timet_with_zone(mktime(&ending_tm), 0, icaltimezone_get_utc_timezone());
-       today_end_t.is_utc = 1;
 
        /*
         * Create another one without caring about the timezone for all day events.
@@ -1186,9 +1172,11 @@ void calendar_day_view(int year, int month, int day) {
                wc_printf("<dt class=\"extrahour\">"
                        "<a href=\"display_edit_event?msgnum=0"
                        "?calview=day?year=%d?month=%d?day=%d?hour=%d?minute=0\">",
+/* TODO: what have these been used for?
                        (hour * extratimeline ),
                        extratimeline,
                        extrahourlabel,
+*/
                        year, month, day, hour
                        );
 
@@ -1211,9 +1199,11 @@ void calendar_day_view(int year, int month, int day) {
                 wc_printf("<dt class=\"hour\">"
                         "<a href=\"display_edit_event?msgnum=0?calview=day"
                         "?year=%d?month=%d?day=%d?hour=%d?minute=0\">",
+/*TODO: what have these been used for?
                         gap + ((hour - daystart) * timeline ),
                        timeline,
                        hourlabel,
+*/
                         year, month, day, hour
                        );
 
@@ -1236,9 +1226,11 @@ void calendar_day_view(int year, int month, int day) {
                 wc_printf("<dt class=\"extrahour\">"
                         "<a href=\"display_edit_event?msgnum=0?calview=day"
                         "?year=%d?month=%d?day=%d?hour=%d?minute=0\">",
+/*TODO: what have these been used for?
                         gap + ((hour - dayend - 1) * extratimeline ),
                        extratimeline,
                        extrahourlabel,
+*/
                         year, month, day, hour
                 );
 
@@ -1284,7 +1276,7 @@ void calendar_day_view(int year, int month, int day) {
        wc_printf("<td align=\"center\">");
        wc_printf("<a href=\"readfwd?calview=day?year=%d?month=%d?day=%d\">",
                yesterday.year, yesterday.month, yesterday.day);
-       wc_printf("<img alt=\"previous\" align=\"middle\" src=\"static/icons/essen/32x32/back.png\" border=\"0\"></a>");
+       wc_printf("<img alt=\"previous\" align=\"middle\" src=\"static/webcit_icons/essen/32x32/back.png\" border=\"0\"></a>");
        wc_printf("</td>");
 
        wc_strftime(d_str, sizeof d_str,
@@ -1302,7 +1294,7 @@ void calendar_day_view(int year, int month, int day) {
        wc_printf("<td align=\"center\">");
        wc_printf("<a href=\"readfwd?calview=day?year=%d?month=%d?day=%d\">",
                tomorrow.year, tomorrow.month, tomorrow.day);
-       wc_printf("<img alt=\"%s\" align=\"middle\" src=\"static/icons/essen/32x32/forward.png\""
+       wc_printf("<img alt=\"%s\" align=\"middle\" src=\"static/webcit_icons/essen/32x32/forward.png\""
                " border=\"0\"></a>\n", _("next"));
        wc_printf("</td>");
 
@@ -1427,7 +1419,9 @@ int calendar_GetParamsGetServerCall(SharedMessageStatus *Stat,
                                    void **ViewSpecific,
                                    long oper,
                                    char *cmd,
-                                   long len)
+                                   long len,
+                                   char *filter,
+                                   long flen)
 {
        wcsession *WCC = WC;
        calview *c;
@@ -1535,3 +1529,10 @@ int calendar_RenderView_or_Tail(SharedMessageStatus *Stat,
        DeleteHash(&WC->disp_cal_items);
        return 0;
 }
+
+void 
+InitModule_CALENDAR_VIEW
+(void)
+{
+       WebcitAddUrlHandler(HKEY("mini_calendar"), "", 0, ajax_mini_calendar, AJAX);
+}