Link Here
|
|
|
1 |
--- webmail/folder.c.orig 2008-07-20 19:00:33.000000000 +0200 |
2 |
+++ webmail/folder.c 2009-06-04 08:32:54.000000000 +0200 |
3 |
@@ -247,6 +247,18 @@ |
4 |
return (maildir_msgmovefile(folder, file, cgi("moveto"), pos)); |
5 |
} |
6 |
|
7 |
+static int groupmark(const char *folder, const char *file, size_t pos) |
8 |
+{ |
9 |
+ maildir_msgmarkfile(folder, file, pos); |
10 |
+ return (0); |
11 |
+} |
12 |
+ |
13 |
+static int groupunmark(const char *folder, const char *file, size_t pos) |
14 |
+{ |
15 |
+ maildir_msgunmarkfile(folder, file, pos); |
16 |
+ return (0); |
17 |
+} |
18 |
+ |
19 |
void folder_delmsgs(const char *dir, size_t pos) |
20 |
{ |
21 |
int rc=0; |
22 |
@@ -317,6 +329,16 @@ |
23 |
rc=group_movedel( dir, &groupmove ); |
24 |
maildir_savefoldermsgs(dir); |
25 |
} |
26 |
+ else if (*cgi("cmdmark")) |
27 |
+ { |
28 |
+ rc=group_movedel( dir, &groupmark ); |
29 |
+ maildir_savefoldermsgs(dir); |
30 |
+ } |
31 |
+ else if (*cgi("cmdunmark")) |
32 |
+ { |
33 |
+ rc=group_movedel( dir, &groupunmark ); |
34 |
+ maildir_savefoldermsgs(dir); |
35 |
+ } |
36 |
|
37 |
maildir_cleanup(); |
38 |
|
39 |
@@ -441,7 +463,7 @@ |
40 |
|
41 |
folder_navigate(dir, pos, highend, morebefore, moreafter); |
42 |
|
43 |
- printf("<table width=\"100%%\" border=\"0\" cellspacing=\"0\" cellpadding=\"4\"><tr class=\"folder-index-header\"><th align=\"center\">%s</th><th> </th><th>%s</th><th>%s</th><th>%s</th><th>%s</th></tr>\n", |
44 |
+ printf("<table width=\"100%%\" border=\"0\" cellspacing=\"0\" cellpadding=\"4\"><tr class=\"folder-index-header\"><th align=\"center\">%s</th><th> </th><th> </th><th> </th><th>%s</th><th>%s</th><th>%s</th><th>%s</th></tr>\n", |
45 |
getarg("NUM"), |
46 |
getarg("DATE"), |
47 |
(strncmp(dir, INBOX "." SENT, sizeof(INBOX)+sizeof(SENT)-1) && |
48 |
@@ -486,12 +508,13 @@ |
49 |
if ((q=strrchr(p, '/')) != 0) |
50 |
p=q+1; |
51 |
|
52 |
- printf("<tr class=\"folder-index-bg-%d\" id=\"row%d\"><td align=\"right\" class=\"message-number\">%s%ld.%s</td><td class=\"message-status\"><input type=\"checkbox\" name=\"MOVE-%ld\" id=\"MOVE-%ld", |
53 |
+ printf("<tr class=\"folder-index-bg-%d\" id=\"row%d\"><td align=\"right\" class=\"message-number\">%s%ld.%s</td><td class=\"message-flag\">%s</td><td class=\"message-select\"><input type=\"checkbox\" name=\"MOVE-%ld\" id=\"MOVE-%ld", |
54 |
(i & 1)+1, |
55 |
i, |
56 |
folder_index_entry_start, |
57 |
(long)(i+pos+1), |
58 |
folder_index_entry_end, |
59 |
+ maildirfile_flag(MSGINFO_FILENAME(contents[i])) ? "<font color=\"red\">!</font>" : "", |
60 |
(long) (pos+i), |
61 |
(long) (pos+i)); |
62 |
printf("\" onchange=\"setsel('MOVE-%ld', 'row%d', 'folder-index-bg-%d');\"%s /><input type=\"hidden\" name=\"MOVEFILE-%ld\" value=\"", |
63 |
@@ -499,7 +522,7 @@ |
64 |
(type[0] == MSGTYPE_DELETED ? " disabled=\"disabled\"":""), |
65 |
(long)(pos+i)); |
66 |
output_attrencoded(p); |
67 |
- printf("\" /> %s%s%s</td><td class=\"message-date\">%s", |
68 |
+ printf("\" /></td><td class=\"message-status\">%s%s%s</td><td class=\"message-date\">%s", |
69 |
folder_index_entry_start, |
70 |
type, |
71 |
folder_index_entry_end, |
72 |
@@ -545,9 +568,9 @@ |
73 |
|
74 |
if (found) |
75 |
{ |
76 |
- puts("<tr class=\"folder-index-bg-1\"><td colspan=\"6\"><hr /></td></tr>"); |
77 |
- puts("<tr class=\"folder-index-bg-2\"><td> </td>"); |
78 |
- puts("<td colspan=\"5\">"); |
79 |
+ puts("<tr class=\"folder-index-bg-3\"><td colspan=\"8\"><hr /></td></tr>"); |
80 |
+ puts("<tr class=\"folder-index-bg-4\"><td> </td>"); |
81 |
+ puts("<td colspan=\"7\">"); |
82 |
|
83 |
puts("<script type=\"text/javascript\">"); |
84 |
puts("/* <![CDATA[ */"); |
85 |
@@ -578,7 +601,7 @@ |
86 |
} |
87 |
if (!found && nomsg) |
88 |
{ |
89 |
- puts("<tr class=\"folder-index-bg-1\"><td colspan=\"6\" align=\"left\"><p>"); |
90 |
+ puts("<tr class=\"folder-index-bg-1\"><td colspan=\"8\" align=\"left\"><p>"); |
91 |
puts(nomsg); |
92 |
puts("<br /></p></td></tr>"); |
93 |
printf("</table>\n"); |
94 |
@@ -3364,7 +3387,7 @@ |
95 |
if ((strcmp(sqwebmail_folder, INBOX "." TRASH) == 0) && (strlen(getarg("PURGEALL")))) |
96 |
printf("<input type=\"submit\" name=\"cmdpurgeall\" value=\"%s\" onclick=\"javascript: return deleteAll();\" />", |
97 |
getarg("PURGEALL")); |
98 |
- printf("<input type=\"submit\" name=\"cmddel\" value=\"%s\" />%s<select name=\"moveto\">", |
99 |
+ printf("<input type=\"submit\" name=\"cmddel\" value=\"%s\" />, <input type=\"submit\" name=\"cmdmark\" value=\"Mark\" />, <input type=\"submit\" name=\"cmdunmark\" value=\"Unmark\" />%s<select name=\"moveto\">", |
100 |
strcmp(sqwebmail_folder, INBOX "." TRASH) == 0 |
101 |
? purgelab:deletelab, |
102 |
movelab); |