/** Generate the index table */ function generate_index_table() { $noforcelogin = 1; include 'config/config.php'; require_once 'include/pdo.php'; include 'public/login.php'; include_once 'models/banner.php'; $xml = begin_XML_for_XSLT(); $xml .= add_XML_value('title', 'CDash - Continuous Integration Made Easy'); $Banner = new Banner(); $Banner->SetProjectId(0); $text = $Banner->GetText(); if ($text !== false) { $xml .= '<banner>'; $xml .= add_XML_value('text', $text); $xml .= '</banner>'; } $xml .= '<hostname>' . $_SERVER['SERVER_NAME'] . '</hostname>'; $xml .= '<date>' . date('r') . '</date>'; // Check if the database is up to date $query = "SELECT * FROM information_schema.COLUMNS\n WHERE TABLE_SCHEMA = '{$CDASH_DB_NAME}'\n AND TABLE_NAME = 'buildfailuredetails'\n AND COLUMN_NAME = 'id'"; $dbTest = pdo_single_row_query($query); if (empty($dbTest)) { $xml .= '<upgradewarning>1</upgradewarning>'; } $xml .= '<dashboard> <title>' . $CDASH_MAININDEX_TITLE . '</title> <subtitle>' . $CDASH_MAININDEX_SUBTITLE . '</subtitle> <googletracker>' . $CDASH_DEFAULT_GOOGLE_ANALYTICS . '</googletracker>'; if (isset($CDASH_NO_REGISTRATION) && $CDASH_NO_REGISTRATION == 1) { $xml .= add_XML_value('noregister', '1'); } $xml .= '</dashboard> '; // User $userid = 0; if (isset($_SESSION['cdash']) && isset($_SESSION['cdash']['loginid'])) { $xml .= '<user>'; $userid = $_SESSION['cdash']['loginid']; $user = pdo_query('SELECT admin FROM ' . qid('user') . " WHERE id='{$userid}'"); $user_array = pdo_fetch_array($user); $xml .= add_XML_value('id', $userid); $xml .= add_XML_value('admin', $user_array['admin']); $xml .= '</user>'; } $showallprojects = 0; if (isset($_GET['allprojects']) && $_GET['allprojects'] == 1) { $showallprojects = 1; } $projects = get_projects(!$showallprojects); $row = 0; foreach ($projects as $project) { $xml .= '<project>'; $xml .= add_XML_value('name', $project['name']); $xml .= add_XML_value('name_encoded', urlencode($project['name'])); $xml .= add_XML_value('description', $project['description']); if ($project['last_build'] == 'NA') { $xml .= '<lastbuild>NA</lastbuild>'; $xml .= '<activitylevel>none</activitylevel>'; } else { $lastbuild = strtotime($project['last_build'] . 'UTC'); $xml .= '<lastbuild>' . date(FMT_DATETIMEDISPLAY, $lastbuild) . '</lastbuild>'; $xml .= '<lastbuilddate>' . date(FMT_DATE, $lastbuild) . '</lastbuilddate>'; $xml .= '<lastbuild_elapsed>' . time_difference(time() - $lastbuild, false, 'ago') . '</lastbuild_elapsed>'; $xml .= '<lastbuilddatefull>' . $lastbuild . '</lastbuilddatefull>'; $xml .= '<activitylevel>high</activitylevel>'; } $xml .= '<activity>'; if (!isset($project['nbuilds']) || $project['nbuilds'] == 0) { $xml .= 'none'; } elseif ($project['nbuilds'] < 20) { // 2 builds day $xml .= 'low'; } elseif ($project['nbuilds'] < 70) { // 10 builds a day $xml .= 'medium'; } elseif ($project['nbuilds'] >= 70) { $xml .= 'high'; } $xml .= '</activity>'; //$uploadsizeGB = round($project['uploadsize'] / (1024.0*1024.0*1024.0), 2); //$xml .= '<uploadsize>'.$uploadsizeGB.'</uploadsize>'; $xml .= '<row>' . $row . '</row>'; $xml .= '</project>'; if ($row == 0) { $row = 1; } else { $row = 0; } } $xml .= '<allprojects>' . $showallprojects . '</allprojects>'; $xml .= '<nprojects>' . get_number_public_projects() . '</nprojects>'; $xml .= '</cdash>'; return $xml; }
/** Generate the index table */ function generate_index_table() { $noforcelogin = 1; include "cdash/config.php"; require_once "cdash/pdo.php"; include 'login.php'; include_once 'models/banner.php'; $xml = begin_XML_for_XSLT(); $xml .= add_XML_value("title", "CDash - Continuous Integration Made Easy"); $Banner = new Banner(); $Banner->SetProjectId(0); $text = $Banner->GetText(); if ($text !== false) { $xml .= "<banner>"; $xml .= add_XML_value("text", $text); $xml .= "</banner>"; } $xml .= "<hostname>" . $_SERVER['SERVER_NAME'] . "</hostname>"; $xml .= "<date>" . date("r") . "</date>"; // Check if the database is up to date $dbField = "TABLE_SCHEMA"; if ($CDASH_DB_TYPE == 'pgsql') { $dbField = "TABLE_CATALOG"; } $query = "SELECT is_nullable FROM INFORMATION_SCHEMA.COLUMNS\n WHERE table_name = 'build' AND column_name = 'command' AND\n {$dbField}='{$CDASH_DB_NAME}'"; $dbTest = pdo_single_row_query($query); if ($dbTest['is_nullable'] != "NO") { $xml .= "<upgradewarning>1</upgradewarning>"; } $xml .= "<dashboard>\n <title>" . $CDASH_MAININDEX_TITLE . "</title>\n <subtitle>" . $CDASH_MAININDEX_SUBTITLE . "</subtitle>\n <googletracker>" . $CDASH_DEFAULT_GOOGLE_ANALYTICS . "</googletracker>"; if (isset($CDASH_NO_REGISTRATION) && $CDASH_NO_REGISTRATION == 1) { $xml .= add_XML_value("noregister", "1"); } $xml .= "</dashboard> "; // User $userid = 0; if (isset($_SESSION['cdash']) && isset($_SESSION['cdash']['loginid'])) { $xml .= "<user>"; $userid = $_SESSION['cdash']['loginid']; $user = pdo_query("SELECT admin FROM " . qid("user") . " WHERE id='{$userid}'"); $user_array = pdo_fetch_array($user); $xml .= add_XML_value("id", $userid); $xml .= add_XML_value("admin", $user_array["admin"]); $xml .= "</user>"; } $showallprojects = 0; if (isset($_GET['allprojects']) && $_GET['allprojects'] == 1) { $showallprojects = 1; } $projects = get_projects(!$showallprojects); $row = 0; foreach ($projects as $project) { $xml .= "<project>"; $xml .= add_XML_value("name", $project['name']); $xml .= add_XML_value("name_encoded", urlencode($project['name'])); $xml .= add_XML_value("description", $project['description']); if ($project['last_build'] == "NA") { $xml .= "<lastbuild>NA</lastbuild>"; $xml .= "<activitylevel>none</activitylevel>"; } else { $lastbuild = strtotime($project['last_build'] . "UTC"); $xml .= "<lastbuild>" . date(FMT_DATETIMEDISPLAY, $lastbuild) . "</lastbuild>"; $xml .= "<lastbuilddate>" . date(FMT_DATE, $lastbuild) . "</lastbuilddate>"; $xml .= "<lastbuild_elapsed>" . time_difference(time() - $lastbuild, false, 'ago') . "</lastbuild_elapsed>"; $xml .= "<lastbuilddatefull>" . $lastbuild . "</lastbuilddatefull>"; $xml .= "<activitylevel>high</activitylevel>"; } $xml .= "<activity>"; if (!isset($project['nbuilds']) || $project['nbuilds'] == 0) { $xml .= "none"; } else { if ($project['nbuilds'] < 20) { $xml .= "low"; } else { if ($project['nbuilds'] < 70) { $xml .= "medium"; } else { if ($project['nbuilds'] >= 70) { $xml .= "high"; } } } } $xml .= "</activity>"; //$uploadsizeGB = round($project['uploadsize'] / (1024.0*1024.0*1024.0), 2); //$xml .= '<uploadsize>'.$uploadsizeGB.'</uploadsize>'; $xml .= "<row>" . $row . "</row>"; $xml .= "</project>"; if ($row == 0) { $row = 1; } else { $row = 0; } } $xml .= '<allprojects>' . $showallprojects . '</allprojects>'; $xml .= '<nprojects>' . get_number_public_projects() . '</nprojects>'; $xml .= "</cdash>"; return $xml; }
if ($dbTest === false) { $response['upgradewarning'] = 1; } $response['title'] = $CDASH_MAININDEX_TITLE; $response['subtitle'] = $CDASH_MAININDEX_SUBTITLE; $response['googletracker'] = $CDASH_DEFAULT_GOOGLE_ANALYTICS; if (isset($CDASH_NO_REGISTRATION) && $CDASH_NO_REGISTRATION == 1) { $response['noregister'] = 1; } if (isset($_GET['allprojects']) && $_GET['allprojects'] == 1) { $response['allprojects'] = 1; } else { $response['allprojects'] = 0; } $showallprojects = $response['allprojects']; $response['nprojects'] = get_number_public_projects(); $projects = get_projects(!$showallprojects); $projects_response = array(); foreach ($projects as $project) { $project_response = array(); $project_response['name'] = $project['name']; $name_encoded = urlencode($project['name']); $project_response['name_encoded'] = $name_encoded; $project_response['description'] = $project['description']; if ($project['numsubprojects'] == 0) { $project_response['link'] = "index.php?project={$name_encoded}"; } else { $project_response['link'] = "viewSubProjects.php?project={$name_encoded}"; } if ($project['last_build'] == 'NA') { $project_response['lastbuild'] = 'NA';