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