source: trunk/htdocs/coverager/coverager.tpl.php @ 1053

Last change on this file since 1053 was 1053, checked in by moo, 2 years ago

refactor: move htdocs, bin, lib for easier installation

  • Property svn:eol-style set to native
File size: 4.8 KB
Line 
1<?php include "../common/header.tpl.php"; ?>
2
3<?php
4function calc_percent($info, &$percent, &$class)
5{
6    if (!$info['total']) {
7        $percent = 0;
8    }
9    else {
10        $percent = (int) ($info['hits'] / $info['total'] * 100);
11    }
12    if ($percent < 15) {
13        $class = "Lo";
14    }
15    else if ($percent < 50) {
16        $class = "Med";
17    }
18    else {
19        $class = "Hi";
20    }
21}
22
23function bar($percent, $class)
24{
25    return <<<EOS
26    <div class="coverBarOutline">
27        <div class="coverBar{$class}" style="width:{$percent}%"></div>
28        <div class="coverPer{$class}">{$percent}</div>
29    </div>
30EOS;
31}
32
33function dir_head()
34{
35    global $cycle;
36    $cycle = new Cycle('class="col1"', 'class="col2"');
37    $l_dir = _("Directory");
38    $l_per = _("Percent");
39    $l_hit = _("Hits");
40    $l_lns = _("Lines");
41    $l_tds = _("TODO");
42    return <<<EOS
43<div class="table-center">
44    <table cellpadding="2" cellspacing="0" border="0" class="cycles center">
45    <tr>
46        <th>{$l_dir}</th><th>{$l_per}</th><th>{$l_hit}</th><th>{$l_lns}</th><th>{$l_tds}</th>
47    </tr>
48EOS;
49}
50
51function dir_row($info, $srcdir)
52{
53    global $cycle;
54    if ($info['files'] || $info['todos']) {
55        $srcdir .= DIRECTORY_SEPARATOR;
56        $c = $cycle->next();
57        $srcdir_html = htmlspecialchars($srcdir);
58        $todos = number_format($info['todos']);
59        if ($info['total']) {
60            $srcdir_url = urlencode($srcdir);
61            $hits  = number_format($info['hits']);
62            $total = number_format($info['total']);
63            calc_percent($info, $percent, $class);
64            $bar = bar($percent, $class);
65            return <<<EOS
66            <tr $c>
67                <td class="coverFile"><a href="?path={$srcdir_url}">{$srcdir_html}</a></td>
68                <td class="coverBar">$bar</td>
69                <td class="coverNum{$class}">{$hits}</td>
70                <td class="coverNum{$class}">{$total}</td>
71                <td class="coverNum{$class}">{$todos}</td>
72            </tr>
73EOS;
74        }
75        else {
76            return <<<EOS
77            <tr $c>
78                <td class="coverFile">{$srcdir_html}</td>
79                <td class="coverBar"></td>
80                <td class="coverNumLo"></td>
81                <td class="coverNumLo"></td>
82                <td class="coverNumLo">{$todos}</td>
83            </tr>
84EOS;
85        }
86    }
87}
88
89function dir_foot()
90{
91    return <<<EOS
92    </table>
93</div>
94EOS;
95}
96
97function file_head()
98{
99    global $cycle;
100    $cycle = new Cycle('class="col1"', 'class="col2"');
101    $l_fil = _("File");
102    $l_per = _("Percent");
103    $l_hit = _("Hits");
104    $l_lns = _("Lines");
105    return <<<EOS
106<div class="center-table">
107    <table cellpadding="2" cellspacing="0" border="0" class="cycles center">
108    <tr>
109        <th>{$l_fil}</th><th>{$l_per}</th><th>{$l_hit}</th><th>{$l_lns}</th>
110    </tr>
111EOS;
112}
113
114function file_row($info, $srcfile)
115{
116    global $cycle;
117
118    $c = $cycle->next();
119    $srcfile_html = htmlspecialchars($srcfile);
120    $total = number_format($info['total']);
121    if ($info['total']) {
122        $hits = number_format($info['hits']);
123        $srcfile_url = urlencode($srcfile);
124        calc_percent($info, $percent, $class);
125        $bar = bar($percent, $class);
126        return <<<EOS
127            <tr $c>
128                    <td class="coverFile"><a href="?path={$srcfile_url}">{$srcfile_html}</a></td>
129                    <td class="coverBar">$bar</td>
130                    <td class="coverNum{$class}">{$hits}</td>
131                    <td class="coverNum{$class}">{$total}</td>
132            </tr>
133EOS;
134    }
135    else {
136        return <<<EOS
137            <tr $c>
138                    <td class="coverFile">{$srcfile_html}</a></td>
139                    <td class="coverBar"></td>
140                    <td class="coverNumLo"></td>
141                    <td class="coverNumLo">{$total}</td>
142            </tr>
143EOS;
144    }
145}
146
147function file_foot()
148{
149    return <<<EOS
150    </table>
151</div>
152EOS;
153}
154
155$l_root = _("root");
156if ($action == 'dir') {
157    if (function_exists('ob_filter_path_nicer')) {
158        ob_start('ob_filter_path_nicer');
159    }
160    $path_html = htmlspecialchars($path);
161    echo <<<EOS
162    <div>
163        <a href="?">$l_root</a> $path<br />
164    </div>
165EOS;
166    echo dir_head($dirinfo);
167    echo dir_row($dirinfo, $path);
168    echo dir_foot($dirinfo);
169    if ($dirinfo['subdirs']) {
170        echo dir_head();
171        foreach ($dirinfo['subdirs'] as $srcdir => $info) {
172            echo dir_row($info, $srcdir);
173        }
174        echo dir_foot();
175    }
176    if ($dirinfo['files']) {
177        echo file_head();
178        foreach ($dirinfo['files'] as $srcfile => $info) {
179            echo file_row($info, $srcfile);
180        }
181        echo file_foot();
182    }
183}
184else if ($action == 'file') {
185    if (function_exists('ob_filter_path_nicer')) {
186        ob_start('ob_filter_path_nicer');
187    }
188    $dir_url = urlencode($dir);
189    $dir_html = htmlspecialchars($dir);
190    echo <<<EOS
191    <div>
192        <a href="?">$l_root</a> <a href="?path={$dir_url}">{$dir_html}</a>/<strong>{$filename}</strong><br />
193    </div>
194EOS;
195
196    echo file_head();
197    echo file_row($fileinfo, $path);
198    echo file_foot();
199
200    if ($tplfile) {
201        $tplfile_html = htmlspecialchars($tplfile);
202        echo <<<EOS
203        <div>
204            <a href="#tpl">{$tplfile_html}</a><br />
205        </div>
206EOS;
207    }
208    if (function_exists('ob_filter_path_nicer')) {
209        ob_end_flush();
210    }
211    echo <<<EOS
212    <div class="code">
213        <ol>{$filecov}</ol>
214    </div>
215EOS;
216    if ($tplfile) {
217        echo <<<EOS
218    <a name="tpl">{$tplfile}</a>
219    <div class="code">
220        <ol>{$tplcov}</ol>
221    </div>
222EOS;
223    }
224}
225else {
226    $error_html = htmlspecialchars($error);
227    echo <<<EOS
228    <span class="error">{$error_html}</span>
229EOS;
230}
231?>
232
233<?php include "../common/footer.tpl.php"; ?>
234
Note: See TracBrowser for help on using the repository browser.