Mail list index now uses a lightbar similar to mystic
This commit is contained in:
parent
2aac742174
commit
7340e7c254
@ -124,9 +124,9 @@ Read message [1-%d] or N for New:
|
||||
\r\nMailing to %d:%d/%d.%d\r\n
|
||||
\r\nMailing to @%d\r\n
|
||||
Start at message [1-%d] or N for New?
|
||||
\e[2J\e[1;37;44m[MSG#] Subject From To Date \r\n\e[0m
|
||||
\e[1;30m[\e[1;34m%4d\e[1;30m]\e[1;32m*\e[1;37m%-25.25s \e[1;32m%-15.15s \e[1;33m%-15.15s \e[1;35m%02d:%02d %02d-%02d-%02d\e[0m\r\n
|
||||
\e[1;30m[\e[1;34m%4d\e[1;30m] \e[1;37m%-25.25s \e[1;32m%-15.15s \e[1;33m%-15.15s \e[1;35m%02d:%02d %02d-%02d-%02d\e[0m\r\n
|
||||
\e[2J\e[1;1H\e[1;37;44m[MSG#] Subject From To Date \r\n\e[0m
|
||||
\e[1;30m[\e[1;34m%4d\e[1;30m]\e[1;32m*\e[1;37m%-25.25s \e[1;32m%-15.15s \e[1;33m%-15.15s \e[1;35m%02d:%02d %02d-%02d-%02d\e[K\e[0m\r\n
|
||||
\e[1;30m[\e[1;34m%4d\e[1;30m] \e[1;37m%-25.25s \e[1;32m%-15.15s \e[1;33m%-15.15s \e[1;35m%02d:%02d %02d-%02d-%02d\e[K\e[0m\r\n
|
||||
(#) Read Message # (Q) Quit (ENTER) Continue\r\n
|
||||
\r\nThere is no mail in this area\r\n
|
||||
\r\n\r\nMail Conferences:\r\n\r\n
|
||||
@ -186,3 +186,6 @@ Is this Correct? (Y/N)
|
||||
\e[1;37mPress any key to continue...\e[0m
|
||||
\e[24;1H\e[1;32mUp / Down \e[1;37mto Scroll, \e[1;32mLeft / Right \e[1;37mChange Message, \e[1;32mR \e[1;37mreply, \e[1;32mQ \e[1;37mquit\e[K\e[0m
|
||||
\e[23;1H\e[1;30m-------------------------------------------------------------------------------\e[0m\r\n
|
||||
\e[1;30m[\e[1;34;44m%4d\e[1;30;40m]\e[1;32m*\e[1;37m%-25.25s \e[1;32m%-15.15s \e[1;33m%-15.15s \e[1;35m%02d:%02d %02d-%02d-%02d\e[K\e[0m\r\n
|
||||
\e[1;30m[\e[1;34;44m%4d\e[1;30;40m] \e[1;37m%-25.25s \e[1;32m%-15.15s \e[1;33m%-15.15s \e[1;35m%02d:%02d %02d-%02d-%02d\e[K\e[0m\r\n
|
||||
\e[24;1H\e[1;37;44mUp/Down to Scroll, Enter to read, Q to quit\e[K\e[0m
|
||||
|
109
mail_menu.c
109
mail_menu.c
@ -1302,6 +1302,8 @@ int mail_menu(struct user_record *user) {
|
||||
int result;
|
||||
int sem_fd;
|
||||
int all_unread = 0;
|
||||
int redraw;
|
||||
int start;
|
||||
|
||||
if (conf.script_path != NULL) {
|
||||
sprintf(buffer, "%s/mailmenu.lua", conf.script_path);
|
||||
@ -1703,43 +1705,104 @@ int mail_menu(struct user_record *user) {
|
||||
}
|
||||
}
|
||||
closed = 0;
|
||||
s_printf(get_string(126));
|
||||
|
||||
for (j=i-1;j<msghs->msg_count;j++) {
|
||||
|
||||
redraw = 1;
|
||||
start = i-1;
|
||||
while (!closed) {
|
||||
if (redraw) {
|
||||
s_printf(get_string(126));
|
||||
for (j=start;j<start + 22 && j<msghs->msg_count;j++) {
|
||||
localtime_r((time_t *)&msghs->msgs[j]->msg_h->DateWritten, &msg_date);
|
||||
if (j == i -1) {
|
||||
if (msghs->msgs[j]->msg_h->MsgNum > jlr.HighReadMsg || all_unread) {
|
||||
s_printf(get_string(188), j + 1, msghs->msgs[j]->subject, msghs->msgs[j]->from, msghs->msgs[j]->to, msg_date.tm_hour, msg_date.tm_min, msg_date.tm_mday, msg_date.tm_mon + 1, msg_date.tm_year - 100);
|
||||
} else {
|
||||
s_printf(get_string(189), j + 1, msghs->msgs[j]->subject, msghs->msgs[j]->from, msghs->msgs[j]->to, msg_date.tm_hour, msg_date.tm_min, msg_date.tm_mday, msg_date.tm_mon + 1, msg_date.tm_year - 100);
|
||||
}
|
||||
} else {
|
||||
if (msghs->msgs[j]->msg_h->MsgNum > jlr.HighReadMsg || all_unread) {
|
||||
s_printf(get_string(127), j + 1, msghs->msgs[j]->subject, msghs->msgs[j]->from, msghs->msgs[j]->to, msg_date.tm_hour, msg_date.tm_min, msg_date.tm_mday, msg_date.tm_mon + 1, msg_date.tm_year - 100);
|
||||
} else {
|
||||
s_printf(get_string(128), j + 1, msghs->msgs[j]->subject, msghs->msgs[j]->from, msghs->msgs[j]->to, msg_date.tm_hour, msg_date.tm_min, msg_date.tm_mday, msg_date.tm_mon + 1, msg_date.tm_year - 100);
|
||||
}
|
||||
|
||||
if ((j - (i - 1)) != 0 && (j - (i - 1)) % 20 == 0) {
|
||||
s_printf(get_string(129));
|
||||
s_readstring(buffer, 6);
|
||||
|
||||
if (tolower(buffer[0]) == 'q') {
|
||||
}
|
||||
}
|
||||
s_printf(get_string(190));
|
||||
redraw = 0;
|
||||
}
|
||||
c = s_getc();
|
||||
if (tolower(c) == 'q') {
|
||||
closed = 1;
|
||||
break;
|
||||
} else if (strlen(buffer) > 0) {
|
||||
z = atoi(buffer);
|
||||
if (z > 0 && z <= msghs->msg_count) {
|
||||
closed = 1;
|
||||
read_message(user, msghs, z - 1);
|
||||
break;
|
||||
} else if (c == 27) {
|
||||
c = s_getc();
|
||||
if (c == 91) {
|
||||
c = s_getc();
|
||||
if (c == 66) {
|
||||
// down
|
||||
i++;
|
||||
if (i > start + 22) {
|
||||
start += 22;
|
||||
if (start > msghs->msg_count) {
|
||||
start = msghs->msg_count - 22;
|
||||
}
|
||||
redraw = 1;
|
||||
}
|
||||
s_printf(get_string(126));
|
||||
if (i-1 == msghs->msg_count) {
|
||||
i--;
|
||||
} else if (!redraw) {
|
||||
s_printf("\e[%d;1H", i - start);
|
||||
localtime_r((time_t *)&msghs->msgs[i-2]->msg_h->DateWritten, &msg_date);
|
||||
if (msghs->msgs[i-2]->msg_h->MsgNum > jlr.HighReadMsg || all_unread) {
|
||||
s_printf(get_string(127), i - 1, msghs->msgs[i-2]->subject, msghs->msgs[i-2]->from, msghs->msgs[i-2]->to, msg_date.tm_hour, msg_date.tm_min, msg_date.tm_mday, msg_date.tm_mon + 1, msg_date.tm_year - 100);
|
||||
} else {
|
||||
s_printf(get_string(128), i - 1, msghs->msgs[i-2]->subject, msghs->msgs[i-2]->from, msghs->msgs[i-2]->to, msg_date.tm_hour, msg_date.tm_min, msg_date.tm_mday, msg_date.tm_mon + 1, msg_date.tm_year - 100);
|
||||
}
|
||||
s_printf("\e[%d;1H", i - start + 1);
|
||||
localtime_r((time_t *)&msghs->msgs[i-1]->msg_h->DateWritten, &msg_date);
|
||||
if (msghs->msgs[i-1]->msg_h->MsgNum > jlr.HighReadMsg || all_unread) {
|
||||
s_printf(get_string(188), i, msghs->msgs[i-1]->subject, msghs->msgs[i-1]->from, msghs->msgs[i-1]->to, msg_date.tm_hour, msg_date.tm_min, msg_date.tm_mday, msg_date.tm_mon + 1, msg_date.tm_year - 100);
|
||||
} else {
|
||||
s_printf(get_string(189), i, msghs->msgs[i-1]->subject, msghs->msgs[i-1]->from, msghs->msgs[i-1]->to, msg_date.tm_hour, msg_date.tm_min, msg_date.tm_mday, msg_date.tm_mon + 1, msg_date.tm_year - 100);
|
||||
}
|
||||
|
||||
}
|
||||
if (closed == 0) {
|
||||
s_printf(get_string(129));
|
||||
s_readstring(buffer, 6);
|
||||
if (strlen(buffer) > 0) {
|
||||
z = atoi(buffer);
|
||||
if (z > 0 && z <= msghs->msg_count) {
|
||||
read_message(user, msghs, z - 1);
|
||||
} else if (c == 65) {
|
||||
// up
|
||||
i--;
|
||||
if (i - 1 < start) {
|
||||
start -=22;
|
||||
if (start < 0) {
|
||||
start = 0;
|
||||
}
|
||||
redraw = 1;
|
||||
}
|
||||
if (i <= 1) {
|
||||
start = 0;
|
||||
i = 1;
|
||||
redraw = 1;
|
||||
} else if (!redraw) {
|
||||
s_printf("\e[%d;1H", i - start + 2);
|
||||
localtime_r((time_t *)&msghs->msgs[i]->msg_h->DateWritten, &msg_date);
|
||||
if (msghs->msgs[i]->msg_h->MsgNum > jlr.HighReadMsg || all_unread) {
|
||||
s_printf(get_string(127), i + 1, msghs->msgs[i]->subject, msghs->msgs[i]->from, msghs->msgs[i]->to, msg_date.tm_hour, msg_date.tm_min, msg_date.tm_mday, msg_date.tm_mon + 1, msg_date.tm_year - 100);
|
||||
} else {
|
||||
s_printf(get_string(128), i + 1, msghs->msgs[i]->subject, msghs->msgs[i]->from, msghs->msgs[i]->to, msg_date.tm_hour, msg_date.tm_min, msg_date.tm_mday, msg_date.tm_mon + 1, msg_date.tm_year - 100);
|
||||
}
|
||||
s_printf("\e[%d;1H", i - start + 1);
|
||||
localtime_r((time_t *)&msghs->msgs[i-1]->msg_h->DateWritten, &msg_date);
|
||||
if (msghs->msgs[i-1]->msg_h->MsgNum > jlr.HighReadMsg || all_unread) {
|
||||
s_printf(get_string(188), i, msghs->msgs[i-1]->subject, msghs->msgs[i-1]->from, msghs->msgs[i-1]->to, msg_date.tm_hour, msg_date.tm_min, msg_date.tm_mday, msg_date.tm_mon + 1, msg_date.tm_year - 100);
|
||||
} else {
|
||||
s_printf(get_string(189), i, msghs->msgs[i-1]->subject, msghs->msgs[i-1]->from, msghs->msgs[i-1]->to, msg_date.tm_hour, msg_date.tm_min, msg_date.tm_mday, msg_date.tm_mon + 1, msg_date.tm_year - 100);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (c == 13) {
|
||||
closed = 1;
|
||||
read_message(user, msghs, i - 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user