Example #1
0
/** 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;
}
Example #2
0
/** 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;
}
Example #3
0
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';