1<?php
2/*=========================================================================
3
4  Program:   CDash - Cross-Platform Dashboard System
5  Module:    $Id$
6  Language:  PHP
7  Date:      $Date$
8  Version:   $Revision$
9
10  Copyright (c) 2002 Kitware, Inc.  All rights reserved.
11  See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
12
13     This software is distributed WITHOUT ANY WARRANTY; without even
14     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15     PURPOSE.  See the above copyright notices for more information.
16
17=========================================================================*/
18$noforcelogin = 1;
19include("cdash/config.php");
20require_once("cdash/pdo.php");
21include('login.php');
22include_once("cdash/common.php");
23include("cdash/version.php");
24
25@$buildid = $_GET["buildid"];
26if ($buildid != NULL)
27  {
28  $buildid = pdo_real_escape_numeric($buildid);
29  }
30
31@$date = $_GET["date"];
32if ($date != NULL)
33  {
34  $date = htmlspecialchars(pdo_real_escape_string($date));
35  }
36
37// Checks
38if(!isset($buildid) || !is_numeric($buildid))
39  {
40  echo "Not a valid buildid!";
41  return;
42  }
43
44$db = pdo_connect("$CDASH_DB_HOST", "$CDASH_DB_LOGIN","$CDASH_DB_PASS");
45pdo_select_db("$CDASH_DB_NAME",$db);
46
47$build_array = pdo_fetch_array(pdo_query("SELECT starttime,projectid,siteid,type,name FROM build WHERE id='$buildid'"));
48$projectid = $build_array["projectid"];
49if(!isset($projectid) || $projectid==0)
50  {
51  echo "This build doesn't exist. Maybe it has been deleted.";
52  exit();
53  }
54
55checkUserPolicy(@$_SESSION['cdash']['loginid'],$projectid);
56
57$project = pdo_query("SELECT * FROM project WHERE id='$projectid'");
58if(pdo_num_rows($project)>0)
59  {
60  $project_array = pdo_fetch_array($project);
61  $projectname = $project_array["name"];
62  }
63
64$xml = begin_XML_for_XSLT();
65$xml .= "<title>CDash : ".$projectname."</title>";
66
67$xml .= get_cdash_dashboard_xml_by_name($projectname,$date);
68
69$siteid = $build_array["siteid"];
70$buildtype = $build_array["type"];
71$buildname = $build_array["name"];
72$starttime = $build_array["starttime"];
73
74$xml .= "<menu>";
75$xml .= add_XML_value("back","index.php?project=".urlencode($projectname)."&date=".get_dashboard_date_from_build_starttime($build_array["starttime"],$project_array["nightlytime"]));
76$previousbuildid = get_previous_buildid_dynamicanalysis($projectid,$siteid,$buildtype,$buildname,$starttime);
77if($previousbuildid>0)
78  {
79  $xml .= add_XML_value("previous","viewDynamicAnalysis.php?buildid=".$previousbuildid);
80  }
81else
82  {
83  $xml .= add_XML_value("noprevious","1");
84  }
85$xml .= add_XML_value("current","viewDynamicAnalysis.php?buildid=".get_last_buildid_dynamicanalysis($projectid,$siteid,$buildtype,$buildname,$starttime));
86$nextbuildid = get_next_buildid_dynamicanalysis($projectid,$siteid,$buildtype,$buildname,$starttime);
87if($nextbuildid>0)
88  {
89  $xml .= add_XML_value("next","viewDynamicAnalysis.php?buildid=".$nextbuildid);
90  }
91else
92  {
93  $xml .= add_XML_value("nonext","1");
94  }
95$xml .= "</menu>";
96
97  // Build
98  $xml .= "<build>";
99  $site_array = pdo_fetch_array(pdo_query("SELECT name FROM site WHERE id='$siteid'"));
100  $xml .= add_XML_value("site",$site_array["name"]);
101  $xml .= add_XML_value("buildname",$build_array["name"]);
102  $xml .= add_XML_value("buildid",$buildid);
103  $xml .= add_XML_value("buildtime",$build_array["starttime"]);
104  $xml .= "</build>";
105
106  // dynamic analysis
107  $i=0;
108  $dynamicanalysis = pdo_query("SELECT * FROM dynamicanalysis WHERE buildid='$buildid' ORDER BY status DESC");
109  while($dynamicanalysis_array = pdo_fetch_array($dynamicanalysis))
110    {
111    $xml .= "<dynamicanalysis>";
112    if($i%2==0)
113      {
114      $xml .= add_XML_value("bgcolor","#b0c4de");
115      }
116    $i++;
117    $xml .= add_XML_value("status",ucfirst($dynamicanalysis_array["status"]));
118    $xml .= add_XML_value("name",$dynamicanalysis_array["name"]);
119    $xml .= add_XML_value("id",$dynamicanalysis_array["id"]);
120
121    $dynid = $dynamicanalysis_array["id"];
122    $defects = pdo_query("SELECT * FROM dynamicanalysisdefect WHERE dynamicanalysisid='$dynid'");
123    while($defects_array = pdo_fetch_array($defects))
124      {
125      $xml .= add_XML_value(str_replace(" ","_",$defects_array["type"]),$defects_array["value"]);
126      }
127
128    $xml .= get_labels_xml_from_query_results(
129      "SELECT text FROM label, label2dynamicanalysis WHERE ".
130      "label.id=label2dynamicanalysis.labelid AND ".
131      "label2dynamicanalysis.dynamicanalysisid='$dynid' ".
132      "ORDER BY text ASC"
133      );
134
135    $xml .= "</dynamicanalysis>";
136    }
137
138  $xml .= "</cdash>";
139
140// Now doing the xslt transition
141generate_XSLT($xml,"viewDynamicAnalysis");
142?>
143