X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit%2Ftasks.c;h=4ab7099977c08751b85f6a310e0838872e582682;hb=c6aec42f213ec284e34648f3d69bcf927dccddb1;hp=e0d5a55717bb97e2ef9689bf94caa00c21fef5cf;hpb=a15ba5c1ede7c86a85d62ed5b539dcfc9f415bc1;p=citadel.git diff --git a/webcit/tasks.c b/webcit/tasks.c index e0d5a5571..4ab709997 100644 --- a/webcit/tasks.c +++ b/webcit/tasks.c @@ -6,13 +6,14 @@ * qsort filter to move completed tasks to bottom of task list */ int task_completed_cmp(const void *vtask1, const void *vtask2) { - disp_cal * Task1 = (disp_cal *)GetSearchPayload(vtask1); + disp_cal *Task1 = (disp_cal *) GetSearchPayload(vtask1); + /* disp_cal * Task2 = (disp_cal *)GetSearchPayload(vtask2); */ icalproperty_status t1 = icalcomponent_get_status((Task1)->cal); /* icalproperty_status t2 = icalcomponent_get_status(((struct disp_cal *)task2)->cal); */ - - if (t1 == ICAL_STATUS_COMPLETED) + + if (t1 == ICAL_STATUS_COMPLETED) return 1; return 0; } @@ -21,11 +22,11 @@ int task_completed_cmp(const void *vtask1, const void *vtask2) { /* * Helper function for do_tasks_view(). Returns the due date/time of a vtodo. */ -time_t get_task_due_date(icalcomponent *vtodo, int *is_date) { +time_t get_task_due_date(icalcomponent * vtodo, int *is_date) { icalproperty *p; if (vtodo == NULL) { - return(0L); + return (0L); } /* @@ -34,11 +35,7 @@ time_t get_task_due_date(icalcomponent *vtodo, int *is_date) { * structure until we get a VTODO. */ if (icalcomponent_isa(vtodo) == ICAL_VCALENDAR_COMPONENT) { - return get_task_due_date( - icalcomponent_get_first_component( - vtodo, ICAL_VTODO_COMPONENT - ), is_date - ); + return get_task_due_date(icalcomponent_get_first_component(vtodo, ICAL_VTODO_COMPONENT), is_date); } p = icalcomponent_get_first_property(vtodo, ICAL_DUE_PROPERTY); @@ -47,10 +44,10 @@ time_t get_task_due_date(icalcomponent *vtodo, int *is_date) { if (is_date) *is_date = t.is_date; - return(icaltime_as_timet(t)); + return (icaltime_as_timet(t)); } else { - return(0L); + return (0L); } } @@ -58,26 +55,25 @@ time_t get_task_due_date(icalcomponent *vtodo, int *is_date) { * Compare the due dates of two tasks (this is for sorting) */ int task_due_cmp(const void *vtask1, const void *vtask2) { - disp_cal * Task1 = (disp_cal *)GetSearchPayload(vtask1); - disp_cal * Task2 = (disp_cal *)GetSearchPayload(vtask2); + disp_cal *Task1 = (disp_cal *) GetSearchPayload(vtask1); + disp_cal *Task2 = (disp_cal *) GetSearchPayload(vtask2); time_t t1; time_t t2; - t1 = get_task_due_date(Task1->cal, NULL); - t2 = get_task_due_date(Task2->cal, NULL); - if (t1 < t2) return(-1); - if (t1 > t2) return(1); - return(0); + t1 = get_task_due_date(Task1->cal, NULL); + t2 = get_task_due_date(Task2->cal, NULL); + if (t1 < t2) + return (-1); + if (t1 > t2) + return (1); + return (0); } /* * do the whole task view stuff */ -int tasks_RenderView_or_Tail(SharedMessageStatus *Stat, - void **ViewSpecific, - long oper) -{ +int tasks_RenderView_or_Tail(SharedMessageStatus * Stat, void **ViewSpecific, long oper) { long hklen; const char *HashKey; void *vCal; @@ -87,7 +83,6 @@ int tasks_RenderView_or_Tail(SharedMessageStatus *Stat, time_t due; char buf[SIZ]; icalproperty *p; - wcsession *WCC = WC; wc_printf("\n\n\n", - _("Show All")); + wc_printf(" ()\n", _("Show All")); nItems = GetCount(WC->disp_cal_items); /* Sort them if necessary - if (nItems > 1) { - SortByPayload(WC->disp_cal_items, task_due_cmp); - } - * this shouldn't be neccessary, since we sort by the start time. - */ + if (nItems > 1) { + SortByPayload(WC->disp_cal_items, task_due_cmp); + } + * this shouldn't be neccessary, since we sort by the start time. + */ /* And then again, by completed */ if (nItems > 1) { - SortByPayload(WC->disp_cal_items, - task_completed_cmp); + SortByPayload(WC->disp_cal_items, task_completed_cmp); } - Pos = GetNewHashPos(WCC->disp_cal_items, 0); - while (GetNextHashPos(WCC->disp_cal_items, Pos, &hklen, &HashKey, &vCal)) { + Pos = GetNewHashPos(WC->disp_cal_items, 0); + while (GetNextHashPos(WC->disp_cal_items, Pos, &hklen, &HashKey, &vCal)) { icalproperty_status todoStatus; int is_date; - Cal = (disp_cal*)vCal; + Cal = (disp_cal *) vCal; wc_printf("\n"); @@ -145,17 +137,16 @@ int tasks_RenderView_or_Tail(SharedMessageStatus *Stat, wc_printf(""); wc_printf(""); wc_printf(""); @@ -173,9 +164,7 @@ int tasks_RenderView_or_Tail(SharedMessageStatus *Stat, /* * Display a task by itself (for editing) */ -void display_edit_individual_task(icalcomponent *supplied_vtodo, long msgnum, char *from, - int unread, calview *calv) -{ +void display_edit_individual_task(icalcomponent * supplied_vtodo, long msgnum, char *from, int unread, calview * calv) { icalcomponent *vtodo; icalproperty *p; struct icaltimetype IcalTime; @@ -199,12 +188,8 @@ void display_edit_individual_task(icalcomponent *supplied_vtodo, long msgnum, ch * new one. */ if (icalcomponent_isa(vtodo) == ICAL_VCALENDAR_COMPONENT) { - display_edit_individual_task( - icalcomponent_get_first_component( - vtodo, ICAL_VTODO_COMPONENT - ), - msgnum, from, unread, calv - ); + display_edit_individual_task(icalcomponent_get_first_component(vtodo, ICAL_VTODO_COMPONENT), + msgnum, from, unread, calv); return; } } @@ -212,8 +197,8 @@ void display_edit_individual_task(icalcomponent *supplied_vtodo, long msgnum, ch vtodo = icalcomponent_new(ICAL_VTODO_COMPONENT); created_new_vtodo = 1; } - - /* TODO: Can we take all this and move it into a template? */ + + /* TODO: Can we take all this and move it into a template? */ output_headers(1, 1, 1, 0, 0, 0); wc_printf(""); p = icalcomponent_get_first_property(vtodo, ICAL_SUMMARY_PROPERTY); @@ -223,29 +208,31 @@ void display_edit_individual_task(icalcomponent *supplied_vtodo, long msgnum, ch wc_printf(_("Edit task")); wc_printf("- "); if (p != NULL) { - escputs((char *)icalproperty_get_comment(p)); + escputs((char *) icalproperty_get_comment(p)); } wc_printf(""); - + wc_printf("
\n"); wc_printf("
\n"); wc_printf("
\n "); + + wc_printf("WBuf, WC->CurRoom.name, NULL, 0, 0); + wc_printf("\">\n"); + wc_printf("\n", WC->nonce); wc_printf("\n", msgnum); - wc_printf("\n", - ibstr("return_to_summary")); + wc_printf("\n", ibstr("return_to_summary")); wc_printf("
"); wc_printf("
"); wc_printf(_("Completed?")); @@ -97,30 +92,28 @@ int tasks_RenderView_or_Tail(SharedMessageStatus *Stat, wc_printf(_("Date due")); wc_printf(""); wc_printf(_("Category")); - wc_printf(" ()
"); todoStatus = icalcomponent_get_status(Cal->cal); wc_printf("\n"); - p = icalcomponent_get_first_property(Cal->cal, - ICAL_SUMMARY_PROPERTY); + p = icalcomponent_get_first_property(Cal->cal, ICAL_SUMMARY_PROPERTY); wc_printf("cal_msgnum); urlescputs(ChrPtr(WC->CurRoom.name)); wc_printf("\">"); /* wc_printf(" "); */ + "src=\"static/taskmanag_16x.gif\" border=0> "); */ if (p != NULL) { - escputs((char *)icalproperty_get_comment(p)); + escputs((char *) icalproperty_get_comment(p)); } wc_printf("\n"); wc_printf(" 0) { webcit_fmt_date(buf, SIZ, due, is_date ? DATEFMT_RAWDATE : DATEFMT_FULL); - wc_printf(">%s",buf); + wc_printf(">%s", buf); } else { wc_printf(">"); } wc_printf(""); - p = icalcomponent_get_first_property(Cal->cal, - ICAL_CATEGORIES_PROPERTY); + p = icalcomponent_get_first_property(Cal->cal, ICAL_CATEGORIES_PROPERTY); if (p != NULL) { - escputs((char *)icalproperty_get_categories(p)); + escputs((char *) icalproperty_get_categories(p)); } wc_printf("
"); wc_printf("\n"); wc_printf("\n"); @@ -259,7 +246,7 @@ void display_edit_individual_task(icalcomponent *supplied_vtodo, long msgnum, ch } wc_printf(">"); wc_printf(_("No date")); - + wc_printf(" "); wc_printf(""); wc_printf(_("or")); @@ -314,7 +301,7 @@ void display_edit_individual_task(icalcomponent *supplied_vtodo, long msgnum, ch wc_printf(""); wc_printf(""); /* start category field */ @@ -324,7 +311,7 @@ void display_edit_individual_task(icalcomponent *supplied_vtodo, long msgnum, ch wc_printf("\n "); @@ -332,26 +319,20 @@ void display_edit_individual_task(icalcomponent *supplied_vtodo, long msgnum, ch wc_printf("
"); wc_printf(_("Summary:")); - wc_printf("" - "" "
"); wc_printf(""); wc_printf("
"); wc_printf(_("Description:")); wc_printf(""); - wc_printf("
\n"); wc_printf("" - "" - "  " - "\n" - "  " - "\n" - "\n", - _("Save"), - _("Delete"), - _("Cancel") - ); + "" + "  " + "\n" + "  " + "\n" "\n", _("Save"), _("Delete"), _("Cancel") + ); wc_printf("
"); wc_printf("\n"); wc_printf("\n"); @@ -369,9 +350,7 @@ void display_edit_individual_task(icalcomponent *supplied_vtodo, long msgnum, ch * supplied_vtodo the task to save * msgnum number of the mesage in our db */ -void save_individual_task(icalcomponent *supplied_vtodo, long msgnum, char* from, int unread, - calview *calv) -{ +void save_individual_task(icalcomponent * supplied_vtodo, long msgnum, char *from, int unread, calview * calv) { char buf[SIZ]; int delete_existing = 0; icalproperty *prop; @@ -383,6 +362,7 @@ void save_individual_task(icalcomponent *supplied_vtodo, long msgnum, char* from if (supplied_vtodo != NULL) { vtodo = supplied_vtodo; + /** * If we're looking at a fully encapsulated VCALENDAR * rather than a VTODO component, attempt to use the first @@ -392,11 +372,8 @@ void save_individual_task(icalcomponent *supplied_vtodo, long msgnum, char* from * new one. */ if (icalcomponent_isa(vtodo) == ICAL_VCALENDAR_COMPONENT) { - save_individual_task( - icalcomponent_get_first_component( - vtodo, ICAL_VTODO_COMPONENT), - msgnum, from, unread, calv - ); + save_individual_task(icalcomponent_get_first_component(vtodo, ICAL_VTODO_COMPONENT), + msgnum, from, unread, calv); return; } } @@ -409,32 +386,27 @@ void save_individual_task(icalcomponent *supplied_vtodo, long msgnum, char* from /** Replace values in the component with ones from the form */ - while (prop = icalcomponent_get_first_property(vtodo, - ICAL_SUMMARY_PROPERTY), prop != NULL) { + while (prop = icalcomponent_get_first_property(vtodo, ICAL_SUMMARY_PROPERTY), prop != NULL) { icalcomponent_remove_property(vtodo, prop); icalproperty_free(prop); } if (havebstr("summary")) { - icalcomponent_add_property(vtodo, - icalproperty_new_summary(bstr("summary"))); - } else { - icalcomponent_add_property(vtodo, - icalproperty_new_summary(_("Untitled Task"))); + icalcomponent_add_property(vtodo, icalproperty_new_summary(bstr("summary"))); } - - while (prop = icalcomponent_get_first_property(vtodo, - ICAL_DESCRIPTION_PROPERTY), prop != NULL) { + else { + icalcomponent_add_property(vtodo, icalproperty_new_summary(_("Untitled Task"))); + } + + while (prop = icalcomponent_get_first_property(vtodo, ICAL_DESCRIPTION_PROPERTY), prop != NULL) { icalcomponent_remove_property(vtodo, prop); icalproperty_free(prop); } if (havebstr("description")) { - icalcomponent_add_property(vtodo, - icalproperty_new_description(bstr("description"))); + icalcomponent_add_property(vtodo, icalproperty_new_description(bstr("description"))); } - - while (prop = icalcomponent_get_first_property(vtodo, - ICAL_DTSTART_PROPERTY), prop != NULL) { + + while (prop = icalcomponent_get_first_property(vtodo, ICAL_DTSTART_PROPERTY), prop != NULL) { icalcomponent_remove_property(vtodo, prop); icalproperty_free(prop); } @@ -445,18 +417,15 @@ void save_individual_task(icalcomponent *supplied_vtodo, long msgnum, char* from else { icaltime_from_webform_dateonly(&t, "dtstart"); } - icalcomponent_add_property(vtodo, - icalproperty_new_dtstart(t) - ); + icalcomponent_add_property(vtodo, icalproperty_new_dtstart(t) + ); } - while(prop = icalcomponent_get_first_property(vtodo, - ICAL_STATUS_PROPERTY), prop != NULL) { - icalcomponent_remove_property(vtodo,prop); + while (prop = icalcomponent_get_first_property(vtodo, ICAL_STATUS_PROPERTY), prop != NULL) { + icalcomponent_remove_property(vtodo, prop); icalproperty_free(prop); } - while(prop = icalcomponent_get_first_property(vtodo, - ICAL_PERCENTCOMPLETE_PROPERTY), prop != NULL) { - icalcomponent_remove_property(vtodo,prop); + while (prop = icalcomponent_get_first_property(vtodo, ICAL_PERCENTCOMPLETE_PROPERTY), prop != NULL) { + icalcomponent_remove_property(vtodo, prop); icalproperty_free(prop); } @@ -464,25 +433,23 @@ void save_individual_task(icalcomponent *supplied_vtodo, long msgnum, char* from icalproperty_status taskStatus = icalproperty_string_to_status(bstr("status")); icalcomponent_set_status(vtodo, taskStatus); icalcomponent_add_property(vtodo, - icalproperty_new_percentcomplete( - (strcasecmp(bstr("status"), "completed") ? 0 : 100) - ) - ); + icalproperty_new_percentcomplete((strcasecmp(bstr("status"), "completed") ? 0 : + 100) + ) + ); } else { icalcomponent_add_property(vtodo, icalproperty_new_percentcomplete(0)); } - while (prop = icalcomponent_get_first_property(vtodo, - ICAL_CATEGORIES_PROPERTY), prop != NULL) { - icalcomponent_remove_property(vtodo,prop); + while (prop = icalcomponent_get_first_property(vtodo, ICAL_CATEGORIES_PROPERTY), prop != NULL) { + icalcomponent_remove_property(vtodo, prop); icalproperty_free(prop); } if (!IsEmptyStr(bstr("category"))) { prop = icalproperty_new_categories(bstr("category")); - icalcomponent_add_property(vtodo,prop); + icalcomponent_add_property(vtodo, prop); } - while (prop = icalcomponent_get_first_property(vtodo, - ICAL_DUE_PROPERTY), prop != NULL) { + while (prop = icalcomponent_get_first_property(vtodo, ICAL_DUE_PROPERTY), prop != NULL) { icalcomponent_remove_property(vtodo, prop); icalproperty_free(prop); } @@ -493,35 +460,32 @@ void save_individual_task(icalcomponent *supplied_vtodo, long msgnum, char* from else { icaltime_from_webform_dateonly(&t, "due"); } - icalcomponent_add_property(vtodo, - icalproperty_new_due(t) - ); + icalcomponent_add_property(vtodo, icalproperty_new_due(t) + ); } + /** Give this task a UID if it doesn't have one. */ - syslog(9, "Give this task a UID if it doesn't have one.\n"); - if (icalcomponent_get_first_property(vtodo, - ICAL_UID_PROPERTY) == NULL) { + syslog(LOG_DEBUG, "Give this task a UID if it doesn't have one.\n"); + if (icalcomponent_get_first_property(vtodo, ICAL_UID_PROPERTY) == NULL) { generate_uuid(buf); - icalcomponent_add_property(vtodo, - icalproperty_new_uid(buf) - ); + icalcomponent_add_property(vtodo, icalproperty_new_uid(buf) + ); } /* Increment the sequence ID */ - syslog(9, "Increment the sequence ID\n"); - while (prop = icalcomponent_get_first_property(vtodo, - ICAL_SEQUENCE_PROPERTY), (prop != NULL) ) { + syslog(LOG_DEBUG, "Increment the sequence ID\n"); + while (prop = icalcomponent_get_first_property(vtodo, ICAL_SEQUENCE_PROPERTY), (prop != NULL)) { i = icalproperty_get_sequence(prop); - syslog(9, "Sequence was %d\n", i); - if (i > sequence) sequence = i; + syslog(LOG_DEBUG, "Sequence was %d\n", i); + if (i > sequence) + sequence = i; icalcomponent_remove_property(vtodo, prop); icalproperty_free(prop); } ++sequence; - syslog(9, "New sequence is %d. Adding...\n", sequence); - icalcomponent_add_property(vtodo, - icalproperty_new_sequence(sequence) - ); + syslog(LOG_DEBUG, "New sequence is %d. Adding...\n", sequence); + icalcomponent_add_property(vtodo, icalproperty_new_sequence(sequence) + ); /* * Encapsulate event into full VCALENDAR component. Clone it first, @@ -530,7 +494,7 @@ void save_individual_task(icalcomponent *supplied_vtodo, long msgnum, char* from * can't encapsulate something that may already be encapsulated * somewhere else. */ - syslog(9, "Encapsulating into a full VCALENDAR component\n"); + syslog(LOG_DEBUG, "Encapsulating into a full VCALENDAR component\n"); encaps = ical_encapsulate_subcomponent(icalcomponent_new_clone(vtodo)); /* Serialize it and save it to the message base */ @@ -559,7 +523,7 @@ void save_individual_task(icalcomponent *supplied_vtodo, long msgnum, char* from delete_existing = 1; } - if ( (delete_existing) && (msgnum > 0L) ) { + if ((delete_existing) && (msgnum > 0L)) { serv_printf("DELE %ld", lbstr("msgnum")); serv_getln(buf, sizeof buf); } @@ -570,7 +534,7 @@ void save_individual_task(icalcomponent *supplied_vtodo, long msgnum, char* from /* Go back to wherever we came from */ if (ibstr("return_to_summary") == 1) { - do_template("summary_page"); + display_summary_page(); } else { readloop(readfwd, eUseDefault); @@ -581,35 +545,32 @@ void save_individual_task(icalcomponent *supplied_vtodo, long msgnum, char* from /* * free memory allocated using libical */ -void delete_task(void *vCal) -{ - disp_cal *Cal = (disp_cal*) vCal; - icalcomponent_free(Cal->cal); - free(Cal->from); - free(Cal); +void delete_task(void *vCal) { + disp_cal *Cal = (disp_cal *) vCal; + icalcomponent_free(Cal->cal); + free(Cal->from); + free(Cal); } /* * Load a Task into a hash table for later display. */ -void load_task(icalcomponent *event, long msgnum, char *from, int unread, calview *calv) -{ +void load_task(icalcomponent * event, long msgnum, char *from, int unread, calview * calv) { icalproperty *ps = NULL; struct icaltimetype dtstart, dtend; - wcsession *WCC = WC; disp_cal *Cal; size_t len; icalcomponent *cptr = NULL; dtstart = icaltime_null_time(); dtend = icaltime_null_time(); - - if (WCC->disp_cal_items == NULL) { - WCC->disp_cal_items = NewHash(0, Flathash); + + if (WC->disp_cal_items == NULL) { + WC->disp_cal_items = NewHash(0, Flathash); } - Cal = (disp_cal*) malloc(sizeof(disp_cal)); + Cal = (disp_cal *) malloc(sizeof(disp_cal)); memset(Cal, 0, sizeof(disp_cal)); Cal->cal = icalcomponent_new_clone(event); @@ -626,7 +587,7 @@ void load_task(icalcomponent *event, long msgnum, char *from, int unread, calvie Cal->unread = unread; len = strlen(from); - Cal->from = (char*)malloc(len+ 1); + Cal->from = (char *) malloc(len + 1); memcpy(Cal->from, from, len + 1); Cal->cal_msgnum = msgnum; @@ -649,12 +610,7 @@ void load_task(icalcomponent *event, long msgnum, char *from, int unread, calvie /* Store it in the hash list. */ /* syslog(LOG_DEBUG, "INITIAL: %s", ctime(&Cal->event_start)); */ - Put(WCC->disp_cal_items, - (char*) &Cal->event_start, - sizeof(Cal->event_start), - Cal, - delete_task - ); + Put(WC->disp_cal_items, (char *) &Cal->event_start, sizeof(Cal->event_start), Cal, delete_task); } @@ -662,12 +618,7 @@ void load_task(icalcomponent *event, long msgnum, char *from, int unread, calvie /* * Display task view */ -int tasks_LoadMsgFromServer(SharedMessageStatus *Stat, - void **ViewSpecific, - message_summary* Msg, - int is_new, - int i) -{ +int tasks_LoadMsgFromServer(SharedMessageStatus * Stat, void **ViewSpecific, message_summary * Msg, int is_new, int i) { /* Not (yet?) needed here? calview *c = (calview *) *ViewSpecific; */ load_ical_object(Msg->msgnum, is_new, ICAL_VTODO_COMPONENT, load_task, NULL, 0); @@ -679,7 +630,7 @@ int tasks_LoadMsgFromServer(SharedMessageStatus *Stat, */ void display_edit_task(void) { long msgnum = 0L; - + /* Force change the room if we have to */ if (havebstr("taskrm")) { gotoroom(sbstr("taskrm")); @@ -688,11 +639,7 @@ void display_edit_task(void) { msgnum = lbstr("msgnum"); if (msgnum > 0L) { /* existing task */ - load_ical_object(msgnum, 0, - ICAL_VTODO_COMPONENT, - display_edit_individual_task, - NULL, 0 - ); + load_ical_object(msgnum, 0, ICAL_VTODO_COMPONENT, display_edit_individual_task, NULL, 0); } else { /* new task */ @@ -716,21 +663,17 @@ void save_task(void) { -int tasks_GetParamsGetServerCall(SharedMessageStatus *Stat, - void **ViewSpecific, - long oper, - char *cmd, - long len) -{ +int tasks_GetParamsGetServerCall(SharedMessageStatus * Stat, + void **ViewSpecific, long oper, char *cmd, long len, char *filter, long flen) { strcpy(cmd, "MSGS ALL"); Stat->maxmsgs = 32767; return 200; } -int tasks_Cleanup(void **ViewSpecific) -{ +int tasks_Cleanup(void **ViewSpecific) { wDumpContent(1); + /* Tasks doesn't need the calview struct... free (*ViewSpecific); *ViewSpecific = NULL; @@ -738,17 +681,9 @@ int tasks_Cleanup(void **ViewSpecific) return 0; } -void -InitModule_TASKS -(void) -{ - RegisterReadLoopHandlerset( - VIEW_TASKS, - tasks_GetParamsGetServerCall, - NULL, - NULL, - tasks_LoadMsgFromServer, - tasks_RenderView_or_Tail, - tasks_Cleanup); +void InitModule_TASKS(void) { + RegisterReadLoopHandlerset(VIEW_TASKS, + tasks_GetParamsGetServerCall, + NULL, NULL, NULL, tasks_LoadMsgFromServer, tasks_RenderView_or_Tail, tasks_Cleanup, NULL); WebcitAddUrlHandler(HKEY("save_task"), "", 0, save_task, 0); }