File: reports.php

package info (click to toggle)
ggcov 0.9-6
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 4,356 kB
  • ctags: 3,998
  • sloc: cpp: 17,068; sh: 12,380; ansic: 7,743; php: 1,644; perl: 1,509; makefile: 259; yacc: 23
file content (92 lines) | stat: -rw-r--r-- 2,444 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<?php
//
// ggcov - A GTK frontend for exploring gcov coverage data
// Copyright (c) 2005 Greg Banks <gnb@users.sourceforge.net>
// 
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
// 
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
// 
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
// 
// $Id: reports.php,v 1.4 2010-05-09 05:37:14 gnb Exp $
//

require_once 'ggcov/lib/cov.php';

class cov_reports_page extends cov_page
{
    var $name_ = null;
    var $id_ = null;
    var $label_ = null;

    function cov_reports_page($e)
    {
	$this->env_ = $e;
    }

    function parse_args($get)
    {
	$cb = $this->env_->cb_;

	if (array_key_exists('report', $get))
	{
	    $this->name_ = $get['report'];

	    if (!cov_valid::report($this->name_))
		$cb->fatal("Invalid report name");

	    $report_index = $this->env_->report_index();

	    if (!array_key_exists($this->name_, $report_index))
		$cb->fatal("Unknown report");

	    $report_data = $report_index[$this->name_];
	    $this->id_ = $report_data[0];
	    $this->label_ = $report_data[1];
	}
    }

    function title()
    {
	if ($this->id_ === null)
	    return 'Reports: choose a report';
	else
	    return "Reports: $this->label_";
    }

    function render()
    {
	$cb = $this->env_->cb_;
	$report_index = $this->env_->report_index();

	if ($this->id_ === null)
	{
	    // No report, list all the reports and let the user choose one
	    echo "<table border=\"0\" cellpadding=\"5\" cellspacing=\"0\">\n";
	    foreach ($report_index as $report_name => $report_data)
	    {
		$label = $report_data[1];
		$url = $this->env_->url('reports.php', 'report', $report_name);

		echo "  <tr><td><a href=\"$url\">$label</a></td></tr>\n";
	    }
	    echo "</table>\n";
	}
	else
	{
	    // A report was specified, fetch and display its data
	    echo "<pre>\n" . $this->env_->fetch("R$this->id_") . "\n</pre>\n";
	}
    }
}

?>