4 |
</head> |
</head> |
5 |
|
|
6 |
[% MACRO search(fld,text,link_text) BLOCK; %] |
[% MACRO search(fld,text,link_text) BLOCK; %] |
7 |
<a href="?search=[% fld %]:[% text %]">[% IF link_text ; link_text ; ELSE ; text ; END %]</a> |
<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 %] |
[% END %] |
9 |
|
|
10 |
[% MACRO option(var, value, text) BLOCK %] |
[% MACRO option(var, value, text) BLOCK %] |
11 |
<option value="[% value %]"[% IF value == param.search_fld %] selected[% END %]>[% text %]</option> |
<option value="[% value %]"[% IF value == param.search_fld %] selected[% END %]>[% text %]</option> |
12 |
[% END %] |
[% 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> |
<body> |
67 |
|
|
68 |
<table border="0" width="100%"> |
<table border="0" width="100%"> |
72 |
<form> |
<form> |
73 |
Search |
Search |
74 |
<select name="search_fld"> |
<select name="search_fld"> |
75 |
|
[% option("search_fld","message","anywhere") %] |
76 |
[% option("search_fld","subject","message subject") %] |
[% option("search_fld","subject","message subject") %] |
77 |
[% option("search_fld","body","message text") %] |
[% option("search_fld","body","message text") %] |
78 |
[% option("search_fld","from_phrase","sender name") %] |
[% option("search_fld","from_phrase","sender name") %] |
79 |
[% option("search_fld","from_address","sender address") %] |
[% option("search_fld","from_address","sender address") %] |
80 |
[% option("search_fld","to_phrase","sender name") %] |
[% option("search_fld","to_phrase","recipient name") %] |
81 |
[% option("search_fld","to_address","sender address") %] |
[% 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> |
</select> |
85 |
<input type="text" name="search_val" size=20 value="[% param.search_val %]"> |
<input type="text" name="search_val" size=20 value="[% param.search_val %]"> |
86 |
</select> |
</select> |
87 |
|
<input type="submit" name="submit" value="Go!"> |
88 |
</form> |
</form> |
89 |
|
|
90 |
</td> |
</td> |
91 |
</tr> |
</tr> |
92 |
|
|
93 |
<tr> |
<tr> |
94 |
<td valign="top"> |
<td valign="top" width="90%"> |
95 |
|
|
96 |
[% IF results %] |
[% IF results %] |
97 |
[% INCLUDE results.html %] |
[% INCLUDE results.html %] |
102 |
</td> |
</td> |
103 |
<td valign="top"> |
<td valign="top"> |
104 |
|
|
105 |
[% USE cal = Calendar.Simple %] |
[% 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"> |
<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 %] |
[% FOREACH row = cal.rows %] |
134 |
<tr> |
<tr> |
135 |
[% FOREACH col = row %] |
[% FOREACH col = row %] |
136 |
<td align="right">[% col || ' ' %]</td> |
<td align="right">[% get_cal(calendar,yyyy,mm,col,url_search) %]</td> |
137 |
[% END %] |
[% END %] |
138 |
</tr> |
</tr> |
139 |
[% END %] |
[% END %] |
142 |
<br> |
<br> |
143 |
Thread |
Thread |
144 |
|
|
145 |
<br> |
[% usage_list(counters.from,'from','From') %] |
|
Recipients |
|
146 |
|
|
147 |
<br> |
[% usage_list(counters.to,'to','To') %] |
148 |
Contributors |
|
149 |
|
[% usage_list(counters.cc,'cc','Cc') %] |
150 |
|
|
151 |
<br> |
<br> |
152 |
Lists |
Lists |
154 |
<br> |
<br> |
155 |
Links |
Links |
156 |
|
|
157 |
<br> |
<!-- |
158 |
|
[% USE dumper ; dumper.dump(calendar) %] |
159 |
|
--> |
160 |
|
|
161 |
</td> |
</td> |
162 |
|
|