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); */
}
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;
}
for (attendee = icalcomponent_get_first_property(vevent, ICAL_ATTENDEE_PROPERTY); attendee != NULL; attendee = icalcomponent_get_next_property(vevent, ICAL_ATTENDEE_PROPERTY)) {
strcpy(attendee_string, icalproperty_get_attendee(attendee));
if (!strncasecmp(attendee_string, "MAILTO:", 7)) {
+
+ /* screen name or email address */
strcpy(attendee_string, &attendee_string[7]);
striplt(attendee_string);
if (i++) wprintf(", ");
escputs(attendee_string);
+ wprintf(" ");
+
+ /* participant status */
+ partstat_as_string(buf, attendee);
+ escputs(buf);
}
}
wprintf("</TEXTAREA></TD></TR>\n");
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
*/
/*
* Add any new attendees listed in the web form
*/
+
+ /* First, strip out the parenthesized partstats. */
strcpy(form_attendees, bstr("attendees"));
+ stripout(form_attendees, '(', ')');
+
+ /* Now iterate! */
for (i=0; i<num_tokens(form_attendees, ','); ++i) {
extract_token(buf, form_attendees, i, ',');
striplt(buf);