1 |
<html> |
2 |
<head> |
3 |
<title>[% IF title %][% title %] -- [% END %]Mail::Box Web Search</title> |
4 |
</head> |
5 |
|
6 |
[% MACRO search(fld,text,link_text) BLOCK; %] |
7 |
<a href="?search=[% fld %]:[% IF fld == "subject" %][% FILTER subject_search ; text ; END %][% ELSE ; text ; END %]">[% IF link_text ; link_text ; ELSE ; text ; END %]</a> |
8 |
[% END %] |
9 |
|
10 |
[% MACRO option(var, value, text) BLOCK %] |
11 |
<option value="[% value %]"[% IF value == param.search_fld %] selected[% END %]>[% text %]</option> |
12 |
[% END %] |
13 |
|
14 |
[% MACRO from(message) BLOCK %] |
15 |
<span class="from"> |
16 |
[% FOREACH f IN message.from %] |
17 |
[% search('from_phrase',f) %][% IF !loop.last %],[% END %] |
18 |
[% END %] |
19 |
</span> |
20 |
[% END %] |
21 |
|
22 |
[% MACRO to(message) BLOCK %] |
23 |
[% IF message.to.size %] |
24 |
<span class="to">To: |
25 |
[% FOREACH f IN message.to %] |
26 |
[% search('to_phrase',f) %][% IF !loop.last %], [% END %] |
27 |
[% END %] |
28 |
</span> |
29 |
[% END %] |
30 |
[% IF message.cc.size %] |
31 |
<span class="cc">Cc: |
32 |
[% FOREACH f IN message.cc %] |
33 |
[% search('cc_phrase',f) %][% IF !loop.last %], [% END %] |
34 |
[% END %] |
35 |
</span> |
36 |
[% END %] |
37 |
[% IF message.bcc.size %] |
38 |
<span class="bcc">Bcc: |
39 |
[% FOREACH f IN message.bcc %] |
40 |
[% IF loop.fist %]Bcc [% END %] |
41 |
[% search('bcc_phrase',f) %][% IF !loop.last %], [% END %] |
42 |
[% END %] |
43 |
</span> |
44 |
[% END %] |
45 |
[% END %] |
46 |
|
47 |
[% MACRO date(msg) BLOCK %] |
48 |
<span class="date">[% msg.date %]</span> |
49 |
[% END %] |
50 |
|
51 |
[% MACRO usage_list(list,key,description) BLOCK %] |
52 |
[% IF list %] |
53 |
<div class="[% key %]"> |
54 |
[% description %] |
55 |
[% FOREACH l IN list %] |
56 |
<br><a href="?search=from_phrase:[% l.name %]">[% l.name %]</a> <span class="counter">[% l.usage %]</span> |
57 |
[% END %] |
58 |
</div> |
59 |
[% END %] |
60 |
[% END %] |
61 |
|
62 |
[% MACRO url_search BLOCK %] |
63 |
[% IF param.search ; "?search=" ; param.search ; END %] |
64 |
[% END %] |
65 |
|
66 |
<body> |
67 |
|
68 |
<table border="0" width="100%"> |
69 |
<tr> |
70 |
<td colspan="2"> |
71 |
|
72 |
<form> |
73 |
Search |
74 |
<select name="search_fld"> |
75 |
[% option("search_fld","message","anywhere") %] |
76 |
[% option("search_fld","subject","message subject") %] |
77 |
[% option("search_fld","body","message text") %] |
78 |
[% option("search_fld","from_phrase","sender name") %] |
79 |
[% option("search_fld","from_address","sender address") %] |
80 |
[% option("search_fld","to_phrase","recipient name") %] |
81 |
[% option("search_fld","to_address","recipient address") %] |
82 |
[% option("search_fld","cc_phrase","also to name") %] |
83 |
[% option("search_fld","bcc_phrase","sneek to name") %] |
84 |
</select> |
85 |
<input type="text" name="search_val" size=20 value="[% param.search_val %]"> |
86 |
</select> |
87 |
<input type="submit" name="submit" value="Go!"> |
88 |
</form> |
89 |
|
90 |
</td> |
91 |
</tr> |
92 |
|
93 |
<tr> |
94 |
<td valign="top" width="90%"> |
95 |
|
96 |
[% IF results %] |
97 |
[% INCLUDE results.html %] |
98 |
[% ELSIF message %] |
99 |
[% INCLUDE message.html %] |
100 |
[% END %] |
101 |
|
102 |
</td> |
103 |
<td valign="top"> |
104 |
|
105 |
[% USE cal = Calendar.Simple(mm,yyyy) %] |
106 |
|
107 |
[% PERL %] |
108 |
$stash->set( get_cal => sub { |
109 |
my $cal = shift; |
110 |
my $yyyy = shift || return "BUG2"; |
111 |
my $mm = shift || return "BUG3"; |
112 |
my $day = shift || return " "; |
113 |
|
114 |
my $url = shift || ""; |
115 |
|
116 |
return $day if (! $cal); # no calendar entries |
117 |
|
118 |
my $yyyymm = sprintf("%04d-%02d",$yyyy,$mm); |
119 |
my $dd = sprintf("%02d",$day); |
120 |
|
121 |
if ($cal->{$yyyymm}->{$dd}) { |
122 |
return "<a href=\"/$yyyy/$mm/$dd/$url\" title=\"".$cal->{$yyyymm}->{$dd}."\">$day</a>"; |
123 |
} else { |
124 |
return $day; |
125 |
} |
126 |
} ); |
127 |
[% END %] |
128 |
|
129 |
<table border="0"> |
130 |
<tr><th colspan="7"> |
131 |
<a href="/[% yyyy ; "/" %]/[% url_search %]">[% yyyy %]</a>-<a href="/[% yyyy ; "/" ; mm %]/[% url_search %]">[% mm %]</a> |
132 |
</th></tr> |
133 |
[% FOREACH row = cal.rows %] |
134 |
<tr> |
135 |
[% FOREACH col = row %] |
136 |
<td align="right">[% get_cal(calendar,yyyy,mm,col,url_search) %]</td> |
137 |
[% END %] |
138 |
</tr> |
139 |
[% END %] |
140 |
</table> |
141 |
|
142 |
<br> |
143 |
Thread |
144 |
|
145 |
[% usage_list(counters.from,'from','From') %] |
146 |
|
147 |
[% usage_list(counters.to,'to','To') %] |
148 |
|
149 |
[% usage_list(counters.cc,'cc','Cc') %] |
150 |
|
151 |
<br> |
152 |
Lists |
153 |
|
154 |
<br> |
155 |
Links |
156 |
|
157 |
<!-- |
158 |
[% USE dumper ; dumper.dump(calendar) %] |
159 |
--> |
160 |
|
161 |
</td> |
162 |
|
163 |
</tr> |
164 |
|
165 |
|
166 |
</table> |
167 |
|
168 |
</body> |