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");
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(" () |
\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("");
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(" | \n");
@@ -145,17 +137,16 @@ int tasks_RenderView_or_Tail(SharedMessageStatus *Stat,
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(" | ");
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("
");
@@ -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");
@@ -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);
}