Display handlers for message reading
[Calendaring background]


Functions

void display_individual_cal (icalcomponent *cal, long msgnum)
 get items, keep them. If we're reading calendar items, just store them for now. We have to sort and re-output them later when we draw the calendar.
void display_edit_individual_task (icalcomponent *supplied_vtodo, long msgnum)
void save_individual_task (icalcomponent *supplied_vtodo, long msgnum)
void display_using_handler (long msgnum, char *mimetype, icalcomponent_kind which_kind, void(*callback)(icalcomponent *, long))
 generic item handler Code common to all display handlers. Given a message number and a MIME type, we load the message and hunt for that MIME type. If found, we load the relevant part, deserialize it into a libical component, filter it for the requested object type, and feed it to the specified handler.
void display_calendar (long msgnum)
 display whole calendar
void display_task (long msgnum)
 display whole taksview
void display_edit_task (void)
 display the editor component for a task
void save_task (void)
 save an edited task
void display_edit_event (void)
 display the editor component for an event
void save_event (void)
 save an edited event
void do_freebusy (char *req)
 freebusy display (for client software)

Function Documentation

void display_individual_cal ( icalcomponent *  cal,
long  msgnum 
)

get items, keep them. If we're reading calendar items, just store them for now. We have to sort and re-output them later when we draw the calendar.

Parameters:
cal Our calendar to process
msgnum number of the mesage in our db

Definition at line 452 of file calendar.c.

Referenced by display_calendar(), and display_task().

void display_edit_individual_task ( icalcomponent *  supplied_vtodo,
long  msgnum 
)

If we're looking at a fully encapsulated VCALENDAR rather than a VTODO component, attempt to use the first relevant VTODO subcomponent. If there is none, the NULL returned by icalcomponent_get_first_component() will tell the next iteration of this function to create a new one.

Definition at line 471 of file calendar.c.

References display_icaltimetype_as_webform(), escputs(), output_headers(), wDumpContent(), and wprintf().

Referenced by display_edit_task().

void save_individual_task ( icalcomponent *  supplied_vtodo,
long  msgnum 
)

If we're looking at a fully encapsulated VCALENDAR rather than a VTODO component, attempt to use the first relevant VTODO subcomponent. If there is none, the NULL returned by icalcomponent_get_first_component() will tell the next iteration of this function to create a new one.

Replace values in the component with ones from the form

Give this task a UID if it doesn't have one.

Increment the sequence ID

Encapsulate event into full VCALENDAR component. Clone it first, for two reasons: one, it's easier to just free the whole thing when we're done instead of unbundling, but more importantly, we can't encapsulate something that may already be encapsulated somewhere else.

Probably not necessary; the server will see the UID of the object and delete the old one anyway, but just in case...

If the user clicked 'Delete' then explicitly delete the message.

Go back to the task list

Definition at line 600 of file calendar.c.

References bstr(), generate_uuid(), ical_encapsulate_subcomponent(), icaltime_from_webform(), lprintf(), readloop(), serv_getln(), serv_printf(), and serv_puts().

Referenced by save_task().

void display_using_handler ( long  msgnum,
char *  mimetype,
icalcomponent_kind  which_kind,
void(*)(icalcomponent *, long)  callback 
)

generic item handler Code common to all display handlers. Given a message number and a MIME type, we load the message and hunt for that MIME type. If found, we load the relevant part, deserialize it into a libical component, filter it for the requested object type, and feed it to the specified handler.

Parameters:
mimetype mimetyp of our object
which_kind sort of ical type
msgnum number of the mesage in our db
callback a funcion
Todo:

Simple components of desired type

Subcomponents of desired type

Definition at line 763 of file calendar.c.

References extract_int(), extract_token(), ical_dezonify(), load_mimepart(), serv_getln(), and serv_puts().

Referenced by display_calendar(), display_edit_event(), display_edit_task(), display_task(), save_event(), and save_task().

void display_calendar ( long  msgnum  ) 

display whole calendar

Parameters:
msgnum number of the mesage in our db

Definition at line 832 of file calendar.c.

References display_individual_cal(), and display_using_handler().

Referenced by calendar_section().

void display_task ( long  msgnum  ) 

display whole taksview

Parameters:
msgnum number of the mesage in our db

Definition at line 842 of file calendar.c.

References display_individual_cal(), and display_using_handler().

Referenced by tasks_section().

void display_edit_task ( void   ) 

display the editor component for a task

Force change the room if we have to

existing task

new task

Definition at line 851 of file calendar.c.

References bstr(), display_edit_individual_task(), display_using_handler(), and gotoroom().

Referenced by display_enter(), and session_loop().

void do_freebusy ( char *  req  ) 

freebusy display (for client software)

Parameters:
req dunno. ?????

Definition at line 934 of file calendar.c.

References extract_token(), http_transmit_thing(), lprintf(), output_headers(), read_server_text(), serv_getln(), serv_printf(), unescape_input(), who(), and wprintf().

Referenced by session_loop().


Generated on Wed Jun 20 23:13:12 2007 for webcit by  doxygen 1.5.2