blob: 52dab1e05926366ca64d332f871f6db7894cc145 [file] [log] [blame]
<?php
require_once 'component.class.php';
require_once 'dependency.class.php';
require_once 'detail.class.php';
class Build {
private $label;
private $tstamp;
private $components = array();
private $type;
private $stream;
private $dependencies = array();
private $details = array();
function __construct($label, $tstamp, $type, $stream) {
$this->label = $label;
$this->tstamp = $tstamp;
$this->type = $type;
$this->stream = $stream;
}
function getLabel() {
return $this->label;
}
function getTStamp() {
return $this->tstamp;
}
function getType() {
return $this->type;
}
function addComponent($component) {
$this->components[] = $component;
}
function getComponents() {
return $this->components;
}
function getDependencies() {
return $this->dependencies;
}
function addDependency($dependency) {
$this->dependencies[] = $dependency;
}
function getDetails() {
return $this->details;
}
function addDetail($detail) {
$this->details[] = $detail;
}
function render() {
global $latestBuild;
$isLatest = false;
if ( $this->getTStamp() == $latestBuild->getTStamp()) {
$isLatest = true;
}
$year = substr($this->tstamp, 0, 4);
$month = substr($this->tstamp, 4, 2);
$day = substr($this->tstamp, 6, 2);
$hour = substr($this->tstamp,8,2);
$minute = substr($this->tstamp,10,2);
$timeStamp = mktime($hour, $minute, 0, $month, $day, $year);
$date = date("D, j M Y -- H:i (O)", $timeStamp);
$result = "<a href=\"javascript:toggle('" . $this->label . "')\"><h4>" . $this->label. " (" . $date . ")</h4></a>";
if ( $isLatest ) {
$result = "<a name=\"latest\">" . $result . "</a>";
$result = $result . "<ul id='" . $this->label . "' style='display:block'>";
} else {
$result = $result . "<ul id='" . $this->label . "' style='display:none'>";
}
foreach( $this->getComponents() as $component ) {
$result = $result . "<li>" . $component->render() . "</li>";
}
# Show dependencies
$result = $result . "<li><h4><img src=\"/tigerstripe/images/dl-deps.gif\"/> Build Dependencies</h4>";
if ( count($this->dependencies) == 0 ) {
$result = $result . "<p><small><i>None specified</i></small></p>";
} else {
$result = $result . "<ul><li>";
$isFirstDep = true;
foreach( $this->dependencies as $dependency ) {
if ( !$isFirstDep ) {
$result = $result . ", ";
}
$result = $result . $dependency->render();
$isFirstDep = false;
}
$result = $result . "</li></ul>";
}
$result = $result . "</li>";
# show the rest of the details
$result = $result . "<li><h4><img src=\"/tigerstripe/images/dl-more.gif\"/> Build Details</h4>";
if ( count($this->details) == 0 ) {
$result = $result . "<p><small><i>None available</i></small></p>";
} else {
$result = $result . "<ul><li>";
$isFirstDet = true;
foreach( $this->details as $detail ) {
if ( !$isFirstDet ) {
$result = $result . ", ";
}
$result = $result . $detail->render();
$isFirstDet = false;
}
$result = $result . "</li></ul>";
}
$result = $result . "</li>";
$result = $result . "</ul>";
return $result;
}
}
?>