]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blame - html/cgi-bin/logs.cgi/calamaris.dat
Added faad2 to build, this enables mp4a playback for vlc.
[people/pmueller/ipfire-2.x.git] / html / cgi-bin / logs.cgi / calamaris.dat
CommitLineData
069ae085
MT
1#!/usr/bin/perl
2#
3# This code is distributed under the terms of the GPL
4#
5# (c) 2005,2006 marco.s
6#
7# $Id: calamaris.dat,v 2.1 2006/03/12 00:00:00 marco.s Exp $
8#
9
10use strict;
11
12# enable only the following on debugging purpose
13#use warnings;
14#use CGI::Carp 'fatalsToBrowser';
15
16use Time::Local;
17use IO::Socket;
18
19require '/var/ipfire/general-functions.pl';
20require "${General::swroot}/lang.pl";
21require "${General::swroot}/header.pl";
22
23my $unique=time;
24
25my $squidlogdir = "/var/log/squid";
26my $reportdir = "${General::swroot}/proxy/calamaris/reports";
27
28unless (-e $reportdir) { mkdir($reportdir) }
29
30my %cgiparams=();
31my %reportsettings=();
32my %selected=();
33my %checked=();
34
35my $errormessage='';
36
37my $hintcolour='#FFFFCC';
38
39my $commandline='';
40
41my %monthidx = (qw(Jan 0 Feb 1 Mar 2 Apr 3 May 4 Jun 5 Jul 6 Aug 7 Sep 8 Oct 9 Nov 10 Dec 11));
42
43my @longmonths = ( $Lang::tr{'january'}, $Lang::tr{'february'}, $Lang::tr{'march'},
44 $Lang::tr{'april'}, $Lang::tr{'may'}, $Lang::tr{'june'}, $Lang::tr{'july'},
45 $Lang::tr{'august'}, $Lang::tr{'september'}, $Lang::tr{'october'},
46 $Lang::tr{'november'}, $Lang::tr{'december'} );
47
48my @now = localtime(time);
49my $year = $now[5]+1900;
50
51my $day_begin=0;
52my $month_begin=0;
53my $year_begin=0;
54my $day_end=0;
55my $month_end=0;
56my $year_end=0;
57
58$reportsettings{'ACTION'} = '';
59
60$reportsettings{'DAY_BEGIN'} = $now[3];
61$reportsettings{'MONTH_BEGIN'} = $now[4];
62$reportsettings{'YEAR_BEGIN'} = $now[5]+1900;
63$reportsettings{'DAY_END'} = $now[3];
64$reportsettings{'MONTH_END'} = $now[4];
65$reportsettings{'YEAR_END'} = $now[5]+1900;
66
67$reportsettings{'ENABLE_DOMAIN'} = 'off';
68$reportsettings{'NUM_DOMAINS'} = '10';
69$reportsettings{'ENABLE_PERFORMANCE'} = 'off';
70$reportsettings{'PERF_INTERVAL'} = '60';
71$reportsettings{'ENABLE_CONTENT'} = 'off';
72$reportsettings{'NUM_CONTENT'} = '10';
73$reportsettings{'ENABLE_REQUESTER'} = 'off';
74$reportsettings{'ENABLE_USERNAME'} = 'off';
75$reportsettings{'NUM_HOSTS'} = '10';
76$reportsettings{'NUM_URLS'} = '0';
77$reportsettings{'ENABLE_HISTOGRAM'} = 'off';
78$reportsettings{'HIST_LEVEL'} = '10';
79$reportsettings{'ENABLE_VERBOSE'} = 'off';
80$reportsettings{'BYTE_UNIT'} = 'B';
81$reportsettings{'SKIP_GZLOGS'} = 'off';
82$reportsettings{'RUN_BACKGROUND'} = 'off';
83
84&Header::getcgihash(\%reportsettings);
85
86if ($reportsettings{'ACTION'} eq $Lang::tr{'calamaris create report'})
87{
88 $cgiparams{'DAY_BEGIN'} = $reportsettings{'DAY_BEGIN'};
89 $cgiparams{'MONTH_BEGIN'} = $reportsettings{'MONTH_BEGIN'};
90 $cgiparams{'YEAR_BEGIN'} = $reportsettings{'YEAR_BEGIN'};
91 $cgiparams{'DAY_END'} = $reportsettings{'DAY_END'};
92 $cgiparams{'MONTH_END'} = $reportsettings{'MONTH_END'};
93 $cgiparams{'YEAR_END'} = $reportsettings{'YEAR_END'};
94
95 delete $reportsettings{'DAY_BEGIN'};
96 delete $reportsettings{'MONTH_BEGIN'};
97 delete $reportsettings{'YEAR_BEGIN'};
98 delete $reportsettings{'DAY_END'};
99 delete $reportsettings{'MONTH_END'};
100 delete $reportsettings{'YEAR_END'};
101
102 &General::writehash("${General::swroot}/proxy/calamaris/settings", \%reportsettings);
103
104 $reportsettings{'DAY_BEGIN'} = $cgiparams{'DAY_BEGIN'};
105 $reportsettings{'MONTH_BEGIN'} = $cgiparams{'MONTH_BEGIN'};
106 $reportsettings{'YEAR_BEGIN'} = $cgiparams{'YEAR_BEGIN'};
107 $reportsettings{'DAY_END'} = $cgiparams{'DAY_END'};
108 $reportsettings{'MONTH_END'} = $cgiparams{'MONTH_END'};
109 $reportsettings{'YEAR_END'} = $cgiparams{'YEAR_END'};
110
111 $day_begin = $reportsettings{'DAY_BEGIN'};
112 $month_begin = $reportsettings{'MONTH_BEGIN'};
113 $year_begin = $reportsettings{'YEAR_BEGIN'};
114 $day_end = $reportsettings{'DAY_END'};
115 $month_end = $reportsettings{'MONTH_END'};
116 $year_end = $reportsettings{'YEAR_END'};
117
118 if ($reportsettings{'SKIP_GZLOGS'} eq 'on') { $commandline.='nogz '; }
119
120 $commandline.="$day_begin $month_begin $year_begin $day_end $month_end $year_end";
121
122 if ($reportsettings{'ENABLE_DOMAIN'} eq 'on')
123 {
124 $commandline.=' -d ';
125 $commandline.=$reportsettings{'NUM_DOMAINS'};
126 }
127 if ($reportsettings{'ENABLE_PERFORMANCE'} eq 'on')
128 {
129 $commandline.=' -P ';
130 $commandline.=$reportsettings{'PERF_INTERVAL'};
131 }
132 if ($reportsettings{'ENABLE_CONTENT'} eq 'on')
133 {
134 $commandline.=' -t ';
135 $commandline.=$reportsettings{'NUM_CONTENT'};
136 }
137 if ($reportsettings{'ENABLE_HISTOGRAM'} eq 'on')
138 {
139 $commandline.=' -D ';
140 $commandline.=$reportsettings{'HIST_LEVEL'};
141 }
142 if ($reportsettings{'ENABLE_REQUESTER'} eq 'on')
143 {
144 if ($reportsettings{'ENABLE_USERNAME'} eq 'on')
145 {
146 $commandline.=' -u';
147 }
148 $commandline.=' -r ';
149 $commandline.=$reportsettings{'NUM_HOSTS'};
150
151 unless ($reportsettings{'NUM_URLS'} eq '0')
152 {
153 $commandline.=' -R ';
154 $commandline.=$reportsettings{'NUM_URLS'};
155 }
156 }
157 unless ($reportsettings{'BYTE_UNIT'} eq 'B')
158 {
159 $commandline.=' -U ';
160 $commandline.=$reportsettings{'BYTE_UNIT'};
161 }
162 if ($reportsettings{'ENABLE_VERBOSE'} eq 'on')
163 {
164 $commandline.=' -s';
165 }
166
167 $commandline.=' < /dev/null > /dev/null 2>&1';
168
169 if ($reportsettings{'RUN_BACKGROUND'} eq 'on') { $commandline.=" &"; }
170
171 system("${General::swroot}/proxy/calamaris/bin/mkreport $commandline")
172}
173
174if ($reportsettings{'ACTION'} eq $Lang::tr{'export'})
175{
176 print "Content-type: application/octet-stream\n";
177 print "Content-length: ";
178 print (-s "$reportdir/$reportsettings{'REPORT'}");
179 print "\n";
180 print "Content-disposition: attachment; filename=$reportsettings{'REPORT'}\n\n";
181
182 open (FILE, "$reportdir/$reportsettings{'REPORT'}");
183 while (<FILE>) { print; }
184 close (FILE);
185
186 exit;
187}
188
189if ($reportsettings{'ACTION'} eq $Lang::tr{'delete'}) { unlink("$reportdir/$reportsettings{'REPORT'}"); }
190
191if (-e "${General::swroot}/proxy/calamaris/settings")
192{
193 &General::readhash("${General::swroot}/proxy/calamaris/settings", \%reportsettings);
194}
195
196&Header::showhttpheaders();
197
198$checked{'ENABLE_DOMAIN'}{'off'} = '';
199$checked{'ENABLE_DOMAIN'}{'on'} = '';
200$checked{'ENABLE_DOMAIN'}{$reportsettings{'ENABLE_DOMAIN'}} = "checked='checked'";
201$selected{'NUM_DOMAINS'}{$reportsettings{'NUM_DOMAINS'}} = "selected='selected'";
202$checked{'ENABLE_PERFORMANCE'}{'off'} = '';
203$checked{'ENABLE_PERFORMANCE'}{'on'} = '';
204$checked{'ENABLE_PERFORMANCE'}{$reportsettings{'ENABLE_PERFORMANCE'}} = "checked='checked'";
205$selected{'PERF_INTERVAL'}{$reportsettings{'PERF_INTERVAL'}} = "selected='selected'";
206$checked{'ENABLE_CONTENT'}{'off'} = '';
207$checked{'ENABLE_CONTENT'}{'on'} = '';
208$checked{'ENABLE_CONTENT'}{$reportsettings{'ENABLE_CONTENT'}} = "checked='checked'";
209$selected{'NUM_CONTENT'}{$reportsettings{'NUM_CONTENT'}} = "selected='selected'";
210$checked{'ENABLE_REQUESTER'}{'off'} = '';
211$checked{'ENABLE_REQUESTER'}{'on'} = '';
212$checked{'ENABLE_REQUESTER'}{$reportsettings{'ENABLE_REQUESTER'}} = "checked='checked'";
213$checked{'ENABLE_USERNAME'}{'off'} = '';
214$checked{'ENABLE_USERNAME'}{'on'} = '';
215$checked{'ENABLE_USERNAME'}{$reportsettings{'ENABLE_USERNAME'}} = "checked='checked'";
216$selected{'NUM_HOSTS'}{$reportsettings{'NUM_HOSTS'}} = "selected='selected'";
217$selected{'NUM_URLS'}{$reportsettings{'NUM_URLS'}} = "selected='selected'";
218$checked{'ENABLE_HISTOGRAM'}{'off'} = '';
219$checked{'ENABLE_HISTOGRAM'}{'on'} = '';
220$checked{'ENABLE_HISTOGRAM'}{$reportsettings{'ENABLE_HISTOGRAM'}} = "checked='checked'";
221$selected{'HIST_LEVEL'}{$reportsettings{'HIST_LEVEL'}} = "selected='selected'";
222$checked{'ENABLE_VERBOSE'}{'off'} = '';
223$checked{'ENABLE_VERBOSE'}{'on'} = '';
224$checked{'ENABLE_VERBOSE'}{$reportsettings{'ENABLE_VERBOSE'}} = "checked='checked'";
225$selected{'BYTE_UNIT'}{$reportsettings{'BYTE_UNIT'}} = "selected='selected'";
226$checked{'SKIP_GZLOGS'}{'off'} = '';
227$checked{'SKIP_GZLOGS'}{'on'} = '';
228$checked{'SKIP_GZLOGS'}{$reportsettings{'SKIP_GZLOGS'}} = "checked='checked'";
229$checked{'RUN_BACKGROUND'}{'off'} = '';
230$checked{'RUN_BACKGROUND'}{'on'} = '';
231$checked{'RUN_BACKGROUND'}{$reportsettings{'RUN_BACKGROUND'}} = "checked='checked'";
232
233&Header::openpage($Lang::tr{'calamaris proxy reports'}, 1, '');
234
235&Header::openbigbox('100%', 'left', '', $errormessage);
236
237if ($errormessage) {
238 &Header::openbox('100%', 'left', $Lang::tr{'error messages'});
239 print "<font class='base'>$errormessage&nbsp;</font>\n";
240 &Header::closebox();
241}
242
243&Header::openbox('100%', 'left', "$Lang::tr{'settings'}:");
244
245print <<END
246<form method='post' action='$ENV{'SCRIPT_NAME'}'>
247<table width='100%' border='0'>
248<tr>
249 <td colspan='8' class='base'><b>$Lang::tr{'calamaris report period'}</b></td>
250</tr>
251<tr>
252 <td width='9%' class='base'>$Lang::tr{'from'}:</td>
253 <td width='15%'>
254 <select name='MONTH_BEGIN'>
255END
256;
257for ($month_begin = 0; $month_begin < 12; $month_begin++)
258{
259 print "\t<option ";
260 if ($month_begin == $reportsettings{'MONTH_BEGIN'}) {
261 print 'selected="selected" '; }
262 print "value='$month_begin'>$longmonths[$month_begin]</option>\n";
263}
264print <<END
265 </select>
266 </td>
267 <td width='9%'>
268 <select name='DAY_BEGIN'>
269END
270;
271for ($day_begin = 1; $day_begin <= 31; $day_begin++)
272{
273 print "\t<option ";
274 if ($day_begin == $reportsettings{'DAY_BEGIN'}) {
275 print 'selected="selected" '; }
276 print "value='$day_begin'>$day_begin</option>\n";
277}
278print <<END
279 </select>
280 </td>
281 <td width='12%'>
282 <select name='YEAR_BEGIN'>
283END
284;
285for ($year_begin = $year-2; $year_begin <= $year+1; $year_begin++)
286{
287 print "\t<option ";
288 if ($year_begin == $reportsettings{'YEAR_BEGIN'}) {
289 print 'selected="selected" '; }
290 print "value='$year_begin'>$year_begin</option>\n";
291}
292print <<END
293 </select>
294 </td>
295 <td width='9%' class='base'>$Lang::tr{'to'}:</td>
296 <td width='15%'>
297 <select name='MONTH_END'>
298END
299;
300for ($month_end = 0; $month_end < 12; $month_end++)
301{
302 print "\t<option ";
303 if ($month_end == $reportsettings{'MONTH_END'}) {
304 print 'selected="selected" '; }
305 print "value='$month_end'>$longmonths[$month_end]</option>\n";
306}
307print <<END
308 </select>
309 </td>
310 <td width='9%'>
311 <select name='DAY_END'>
312END
313;
314for ($day_end = 1; $day_end <= 31; $day_end++)
315{
316 print "\t<option ";
317 if ($day_end == $reportsettings{'DAY_END'}) {
318 print 'selected="selected" '; }
319 print "value='$day_end'>$day_end</option>\n";
320}
321print <<END
322 </select>
323 </td>
324 <td width='22%'>
325 <select name='YEAR_END'>
326END
327;
328for ($year_end = $year-2; $year_end <= $year+1; $year_end++)
329{
330 print "\t<option ";
331 if ($year_end == $reportsettings{'YEAR_END'}) {
332 print 'selected="selected" '; }
333 print "value='$year_end'>$year_end</option>\n";
334}
335print <<END
336 </select>
337 </td>
338</tr>
339</table>
340
341<hr size='1'>
342
343<table width='100%' border='0'>
344<tr>
345 <td colspan='4' class='base'><b>$Lang::tr{'calamaris report options'}</b></td>
346</tr>
347<tr>
348 <td width='30%' class='base'>$Lang::tr{'calamaris enable domain report'}:</td>
349 <td width='15%'><input type='checkbox' name='ENABLE_DOMAIN' $checked{'ENABLE_DOMAIN'}{'on'} /> [-d]</td>
350 <td width='30%' class='base'>$Lang::tr{'calamaris number of domains'}:</td>
351 <td width='25%'><select name='NUM_DOMAINS'>
352 <option value='10' $selected{'NUM_DOMAINS'}{'10'}>10</option>
353 <option value='25' $selected{'NUM_DOMAINS'}{'25'}>25</option>
354 <option value='100' $selected{'NUM_DOMAINS'}{'100'}>100</option>
355 <option value='-1' $selected{'NUM_DOMAINS'}{'-1'}>$Lang::tr{'calamaris unlimited'}</option>
356 </select></td>
357</tr>
358<tr>
359 <td class='base'>$Lang::tr{'calamaris enable performance report'}:</td>
360 <td><input type='checkbox' name='ENABLE_PERFORMANCE' $checked{'ENABLE_PERFORMANCE'}{'on'} /> [-P]</td>
361 <td class='base'>$Lang::tr{'calamaris report interval (in minutes)'}:</td>
362 <td><select name='PERF_INTERVAL'>
363 <option value='30' $selected{'PERF_INTERVAL'}{'30'}>30</option>
364 <option value='60' $selected{'PERF_INTERVAL'}{'60'}>60</option>
365 <option value='120' $selected{'PERF_INTERVAL'}{'120'}>120</option>
366 <option value='240' $selected{'PERF_INTERVAL'}{'240'}>240</option>
367 <option value='480' $selected{'PERF_INTERVAL'}{'480'}>480</option>
368 <option value='720' $selected{'PERF_INTERVAL'}{'720'}>720</option>
369 <option value='1440' $selected{'PERF_INTERVAL'}{'1440'}>1440</option>
370 </select></td>
371</tr>
372<tr>
373 <td class='base'>$Lang::tr{'calamaris enable content report'}:</td>
374 <td><input type='checkbox' name='ENABLE_CONTENT' $checked{'ENABLE_CONTENT'}{'on'} /> [-t]</td>
375 <td class='base'>$Lang::tr{'calamaris number of content types'}:</td>
376 <td><select name='NUM_CONTENT'>
377 <option value='10' $selected{'NUM_CONTENT'}{'10'}>10</option>
378 <option value='25' $selected{'NUM_CONTENT'}{'25'}>25</option>
379 <option value='100' $selected{'NUM_CONTENT'}{'100'}>100</option>
380 <option value='-1' $selected{'NUM_CONTENT'}{'-1'}>$Lang::tr{'calamaris unlimited'}</option>
381 </select></td>
382</tr>
383<tr>
384 <td class='base'>$Lang::tr{'calamaris enable requester report'}:</td>
385 <td><input type='checkbox' name='ENABLE_REQUESTER' $checked{'ENABLE_REQUESTER'}{'on'} /> [-r/-R]</td>
386 <td class='base'>$Lang::tr{'calamaris number of requesting hosts'}:</td>
387 <td><select name='NUM_HOSTS'>
388 <option value='10' $selected{'NUM_HOSTS'}{'10'}>10</option>
389 <option value='25' $selected{'NUM_HOSTS'}{'25'}>25</option>
390 <option value='100' $selected{'NUM_HOSTS'}{'100'}>100</option>
391 <option value='-1' $selected{'NUM_HOSTS'}{'-1'}>$Lang::tr{'calamaris unlimited'}</option>
392</tr>
393<tr>
394 <td class='base'>$Lang::tr{'calamaris show usernames'}:</td>
395 <td><input type='checkbox' name='ENABLE_USERNAME' $checked{'ENABLE_USERNAME'}{'on'} /> [-u]</td>
396 <td class='base'>$Lang::tr{'calamaris number of requested urls'}:</td>
397 <td><select name='NUM_URLS'>
398 <option value='0' $selected{'NUM_URLS'}{'0'}>$Lang::tr{'calamaris none'}</option>
399 <option value='10' $selected{'NUM_URLS'}{'10'}>10</option>
400 <option value='25' $selected{'NUM_URLS'}{'25'}>25</option>
401 <option value='100' $selected{'NUM_URLS'}{'100'}>100</option>
402 <option value='-1' $selected{'NUM_URLS'}{'-1'}>$Lang::tr{'calamaris unlimited'}</option>
403 </select></td>
404</tr>
405<tr>
406 <td class='base'>$Lang::tr{'calamaris enable distribution histogram'}:</td>
407 <td><input type='checkbox' name='ENABLE_HISTOGRAM' $checked{'ENABLE_HISTOGRAM'}{'on'} /> [-D]</td>
408 <td class='base'>$Lang::tr{'calamaris histogram resolution'}:</td>
409 <td><select name='HIST_LEVEL'>
410 <option value='1000' $selected{'HIST_LEVEL'}{'1000'}>$Lang::tr{'calamaris low'}</option>
411 <option value='10' $selected{'HIST_LEVEL'}{'10'}>$Lang::tr{'calamaris medium'}</option>
412 <option value='2' $selected{'HIST_LEVEL'}{'2'}>$Lang::tr{'calamaris high'}</option>
413</tr>
414<tr>
415 <td class='base'>$Lang::tr{'calamaris enable verbose reporting'}:</td>
416 <td><input type='checkbox' name='ENABLE_VERBOSE' $checked{'ENABLE_VERBOSE'}{'on'} /> [-s]</td>
417 <td class='base'>$Lang::tr{'calamaris byte unit'}:</td>
418 <td><select name='BYTE_UNIT'>
419 <option value='B' $selected{'BYTE_UNIT'}{'B'}>Byte</option>
420 <option value='K' $selected{'BYTE_UNIT'}{'K'}>KByte</option>
421 <option value='M' $selected{'BYTE_UNIT'}{'M'}>MByte</option>
422 <option value='G' $selected{'BYTE_UNIT'}{'G'}>GByte</option>
423</tr>
424</table>
425
426<hr size='1'>
427
428<table width='100%' border='0'>
429<tr>
430 <td colspan='4' class='base'><b>$Lang::tr{'calamaris performance options'}</b></td>
431</tr>
432<tr>
433 <td width='30%' class='base'>$Lang::tr{'calamaris skip archived logfiles'}:</td>
434 <td width='15%'><input type='checkbox' name='SKIP_GZLOGS' $checked{'SKIP_GZLOGS'}{'on'} /></td>
435 <td width='30%'class='base'>$Lang::tr{'calamaris run as background task'}:</td>
436 <td width='25%'><input type='checkbox' name='RUN_BACKGROUND' $checked{'RUN_BACKGROUND'}{'on'} /></td>
437</tr>
438</table>
439
440<hr size='1'>
441
442<table width='100%' border='0'>
443<tr>
444<td align='left'>&nbsp;</td>
445<td width='33%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'calamaris create report'}' /></td>
446<td width='33%' align='right'>&nbsp;</td>
447</tr>
448
449</table>
450
451END
452;
453
454&Header::closebox();
455
456&Header::openbox('100%', 'left', "$Lang::tr{'calamaris available reports'}:");
457
458my @content=();
459my @reports=();
460my @reportdata=();
461my $description;
462
463undef @reports;
464
465foreach (<$reportdir/*>)
466{
467 open (FILE, "$_");
468 @content=<FILE>;
469 if ($content[3] =~ /^Report\speriod/)
470 {
471 $description = timelocal(
472 substr($content[4],31,2),
473 substr($content[4],28,2),
474 substr($content[4],25,2),
475 substr($content[4],15,2),
476 $monthidx{substr($content[4],18,3)},
477 "20".substr($content[4],22,2));
478 push(@reports,join("#",$description,substr($_,rindex($_,"/")+1),$content[3],$content[4]));
479 }
480 close FILE;
481}
482
483@reports=reverse(sort(@reports));
484
485
486print <<END
487
488<table width='100%' border='0'>
489<tr>
490END
491;
492
493if (@reports)
494{
495 print "<td><select name='REPORT' size='5'>\n";
496 my $n=0;
497 foreach (@reports)
498 {
499 @reportdata=split(/#/);
500 print "\t<option ";
501 if ($n eq '0') { print "selected "; $reportsettings{'REPORT'}=$reportdata[1]; $n++}
502 print "value='$reportdata[1]'>$reportdata[2] &nbsp;-&nbsp; $reportdata[3]</option>\n";
503 }
504 print "</select></td>\n";
505} else { print "<td><i>$Lang::tr{'calamaris no reports available'}</i></td>\n"; }
506
507print <<END
508</tr>
509</table>
510<hr size='1'>
511<table width='100%' cellpadding='5' border='0'>
512<tr>
513<td><input type='submit' name='ACTION' value='$Lang::tr{'calamaris refresh list'}' /></td>
514END
515;
516
517if (@reports)
518{
519print <<END
520<td>&nbsp;</td>
521<td>&nbsp;</td>
522<td><input type='submit' name='ACTION' value='$Lang::tr{'calamaris view'}' /></td>
523<td><input type='submit' name='ACTION' value='$Lang::tr{'export'}' /></td>
524<td><input type='submit' name='ACTION' value='$Lang::tr{'delete'}' /></td>
525<td width='95%'></td>
526END
527;
528}
529
530print <<END
531</tr>
532</table>
533</form>
534END
535;
536
537if (($reportsettings{'ACTION'} eq $Lang::tr{'calamaris view'}) && (!($reportsettings{'REPORT'} eq '')))
538{
539 &Header::closebox();
540 &Header::openbox('100%', 'left', "$Lang::tr{'calamaris view report'}:");
541 print "<pre>\n";
542 open (FILE, "$reportdir/$reportsettings{'REPORT'}");
543 @content=<FILE>;
544 close FILE;
545 foreach (@content)
546 {
547 s/</\&lt;/;
548 s/>/\&gt;/;
549 print;
550 }
551 print "</pre>\n";
552}
553
554&Header::closebox();
555
556&Header::closebigbox();
557
558&Header::closepage();