char buf[SIZ];
int i;
int organizer_is_me = 0;
+ int sequence = 0;
- now = time(NULL);
+ now = time(NULL) % 60; /* mod 60 to force :00 seconds */
strcpy(organizer_string, "");
strcpy(attendee_string, "");
created_new_vevent = 1;
}
+ /* Learn the sequence */
+ p = icalcomponent_get_first_property(vevent, ICAL_SEQUENCE_PROPERTY);
+ if (p != NULL) {
+ sequence = icalproperty_get_sequence(p);
+ }
+
+ /* Begin output */
output_headers(3);
wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=007700><TR><TD>"
"<IMG ALIGN=CENTER SRC=\"/static/vcalendar.gif\">"
if (p != NULL) {
escputs((char *)icalproperty_get_comment(p));
}
+ wprintf("<BR>\n");
+ wprintf("SEQUENCE == %d<BR>\n", sequence);
*************************************************************/
wprintf("<FORM NAME=\"EventForm\" METHOD=\"POST\" ACTION=\"/save_event\">\n");
if (strlen(bstr("hour")) > 0) {
t_start.hour = atoi(bstr("hour"));
t_start.minute = atoi(bstr("minute"));
+ t_start.second = 0;
}
else {
t_start.hour = 9;
t_start.minute = 0;
+ t_start.second = 0;
}
- /* t_start = icaltime_from_timet(now, 0); */
}
display_icaltimetype_as_webform(&t_start, "dtstart");
*/
t_end = t_start;
t_end.hour += 1;
+ t_end.second = 0;
t_end = icaltime_normalize(t_end);
/* t_end = icaltime_from_timet(now, 0); */
}
);
}
- /* Determine who is the organizer of this event. This is useless
- * for now, but we'll need to determine "me" or "not me" soon.
+ /* 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);
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_gets(buf);
+ lprintf(9, "%s\n", buf);
if (buf[0] == '2') {
organizer_is_me = 1;
}
*/
void save_individual_event(icalcomponent *supplied_vevent, long msgnum) {
char buf[SIZ];
- int delete_existing = 0;
icalproperty *prop;
icalcomponent *vevent;
int created_new_vevent = 0;
int foundit;
char form_attendees[SIZ];
char organizer_string[SIZ];
+ int sequence = 0;
if (supplied_vevent != NULL) {
vevent = supplied_vevent;
}
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);
);
}
+ /* Increment the sequence ID */
+ while (prop = icalcomponent_get_first_property(vevent,
+ ICAL_SEQUENCE_PROPERTY), (prop != NULL) ) {
+ i = icalproperty_get_sequence(prop);
+ if (i > sequence) sequence = i;
+ icalcomponent_remove_property(vevent, prop);
+ icalproperty_free(prop);
+ }
+ ++sequence;
+ icalcomponent_add_property(vevent,
+ icalproperty_new_sequence(sequence)
+ );
+
/* Set the organizer, only if one does not already exist *and*
* the form is supplying one
*/
serv_puts("");
serv_puts(icalcomponent_as_ical_string(vevent));
serv_puts("000");
- delete_existing = 1;
}
}
/*
- * If the user clicked 'Delete' then delete it, period.
+ * If the user clicked 'Delete' then delete it.
*/
- if (!strcasecmp(bstr("sc"), "Delete")) {
- delete_existing = 1;
- }
-
- if ( (delete_existing) && (msgnum > 0L) ) {
+ if ( (!strcasecmp(bstr("sc"), "Delete")) && (msgnum > 0L) ) {
serv_printf("DELE %ld", atol(bstr("msgnum")));
serv_gets(buf);
}