mirror of
https://gitea.psi.ch/ELOG/elog.git
synced 2026-09-08 17:13:56 +00:00
Implemented "Collapse to last"
SVN revision: 2224
This commit is contained in:
parent
5fb386bf62
commit
5651a351f1
29
src/elogd.c
29
src/elogd.c
@ -16713,7 +16713,7 @@ void synchronize(LOGBOOK * lbs, int mode)
|
||||
|
||||
void display_line(LOGBOOK * lbs, int message_id, int number, char *mode, int expand, int level,
|
||||
BOOL printable, int n_line, int show_attachments, int show_att_column,
|
||||
char *date, char *reply_to, int n_attr_disp, char disp_attr[MAX_N_ATTR + 4][NAME_LENGTH],
|
||||
char *date, char *in_reply_to, char *reply_to, int n_attr_disp, char disp_attr[MAX_N_ATTR + 4][NAME_LENGTH],
|
||||
BOOL disp_attr_link[MAX_N_ATTR + 4], char attrib[MAX_N_ATTR][NAME_LENGTH], int n_attr,
|
||||
char *text, BOOL show_text, char attachment[MAX_ATTACHMENTS][MAX_PATH_LENGTH],
|
||||
char *encoding, BOOL select, int *n_display, char *locked_by, int highlight,
|
||||
@ -16766,7 +16766,7 @@ void display_line(LOGBOOK * lbs, int message_id, int number, char *mode, int exp
|
||||
if (level == 0)
|
||||
strcpy(sclass, "threadh");
|
||||
else
|
||||
strcpy(sclass, "threadreplyh");
|
||||
strcpy(sclass, "threadreply");
|
||||
} else {
|
||||
if (level == 0)
|
||||
strcpy(sclass, "thread");
|
||||
@ -16805,7 +16805,7 @@ void display_line(LOGBOOK * lbs, int message_id, int number, char *mode, int exp
|
||||
rsprintf(" ");
|
||||
|
||||
/* display "+" if expandable */
|
||||
if (expand == 0 && reply_to[0])
|
||||
if (expand == 0 && (reply_to[0] || in_reply_to[0]))
|
||||
rsprintf("+ ");
|
||||
}
|
||||
|
||||
@ -17567,7 +17567,7 @@ void display_reply(LOGBOOK * lbs, int message_id, int printable, int expand, int
|
||||
return;
|
||||
}
|
||||
|
||||
display_line(lbs, message_id, 0, "threaded", expand, level, printable, n_line, FALSE, FALSE, date, reply_to,
|
||||
display_line(lbs, message_id, 0, "threaded", expand, level, printable, n_line, FALSE, FALSE, date, in_reply_to, reply_to,
|
||||
n_attr_disp, disp_attr, NULL, (void *) attrib, lbs->n_attr, text, show_text,
|
||||
NULL, encoding, 0, NULL, locked_by, highlight, &re_buf[0], highlight_mid, absolute_link);
|
||||
|
||||
@ -18944,7 +18944,7 @@ void show_elog_list(LOGBOOK * lbs, int past_n, int last_n, int page_n, BOOL defa
|
||||
{
|
||||
int i, j, n, index, size, status, d1, m1, y1, d2, m2, y2, n_line, flags, current_year, current_month,
|
||||
current_day, printable, n_logbook, n_display, reverse, numeric, n_attr_disp, total_n_msg, n_msg,
|
||||
search_all, message_id, n_page, i_start, i_stop, in_reply_to_id, page_mid, page_mid_head;
|
||||
search_all, message_id, n_page, i_start, i_stop, in_reply_to_id, page_mid, page_mid_head, level;
|
||||
char date[80], attrib[MAX_N_ATTR][NAME_LENGTH], disp_attr[MAX_N_ATTR + 4][NAME_LENGTH], *list, *text,
|
||||
*text1, in_reply_to[80], reply_to[MAX_REPLY_TO * 10], attachment[MAX_ATTACHMENTS][MAX_PATH_LENGTH],
|
||||
encoding[80], locked_by[256], str[NAME_LENGTH], ref[256], img[80], comment[NAME_LENGTH], mode[80],
|
||||
@ -20669,8 +20669,21 @@ void show_elog_list(LOGBOOK * lbs, int past_n, int last_n, int page_n, BOOL defa
|
||||
expand = atoi(getparam("expand"));
|
||||
}
|
||||
|
||||
display_line(msg_list[index].lbs, message_id, index, mode, expand, 0, printable, n_line,
|
||||
show_attachments, show_att_column, date, reply_to, n_attr_disp, disp_attr, disp_attr_link, attrib,
|
||||
level = 0;
|
||||
if (expand == 0 && (!getcfg(lbs->name, "Collapse to last", str, sizeof(str)) || atoi(str) == 1)) {
|
||||
/* search last entry in this thread */
|
||||
while (reply_to[0]) {
|
||||
message_id = atoi(reply_to);
|
||||
size = TEXT_SIZE;
|
||||
status = el_retrieve(msg_list[index].lbs, message_id, date, attr_list, attrib, lbs->n_attr, text,
|
||||
&size, in_reply_to, reply_to, attachment, encoding, locked_by);
|
||||
if (status == SUCCESS)
|
||||
level = 1;
|
||||
}
|
||||
}
|
||||
|
||||
display_line(msg_list[index].lbs, message_id, index, mode, expand, level, printable, n_line,
|
||||
show_attachments, show_att_column, date, in_reply_to, reply_to, n_attr_disp, disp_attr, disp_attr_link, attrib,
|
||||
lbs->n_attr, text, show_text, attachment, encoding,
|
||||
isparam("select") ? atoi(getparam("select")) : 0, &n_display, locked_by, 0, re_buf,
|
||||
page_mid, FALSE);
|
||||
@ -20781,7 +20794,7 @@ void show_elog_thread(LOGBOOK * lbs, int message_id, int absolute_links, int hig
|
||||
rsprintf("<tr><td><table width=\"100%%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n");
|
||||
|
||||
display_line(lbs, head_id, 0, "Threaded", 1, 0, FALSE, 0,
|
||||
FALSE, FALSE, date, reply_to, n_attr_disp, disp_attr, NULL, attrib, lbs->n_attr, text, FALSE,
|
||||
FALSE, FALSE, date, in_reply_to, reply_to, n_attr_disp, disp_attr, NULL, attrib, lbs->n_attr, text, FALSE,
|
||||
attachment, encoding, 0, &n_display, locked_by, message_id, NULL, highlight_mid,
|
||||
absolute_links);
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user