phpci/PHPCI/View/SummaryTable.phtml

149 lines
4.5 KiB
PHTML
Raw Normal View History

2013-06-05 07:23:47 +02:00
<?php
2013-10-08 14:52:05 +02:00
foreach($projects as $project):
$statuses = array();
$successes = 0;
$failures = 0;
$health = '';
$subcls = '';
$cls = '';
2013-06-05 07:23:47 +02:00
2013-10-08 14:52:05 +02:00
$success = null;
$failure = null;
2013-06-05 07:23:47 +02:00
2013-10-08 14:52:05 +02:00
if (count($builds[$project->getId()])) {
2013-06-05 07:23:47 +02:00
2013-10-08 14:52:05 +02:00
// Use the latest build information to determine current status:
$latestBuild = $builds[$project->getId()][0];
2013-06-05 07:45:04 +02:00
2013-10-08 14:52:05 +02:00
switch ($latestBuild->getStatus()) {
case 0:
$cls = 'active';
$status = 'Pending';
break;
2013-06-05 07:45:04 +02:00
2013-10-08 14:52:05 +02:00
case 1:
$cls = 'warning';
$status = 'Running';
break;
2013-06-05 07:45:04 +02:00
2013-10-08 14:52:05 +02:00
case 2:
$cls = 'success';
$status = 'Success';
break;
2013-06-05 07:23:47 +02:00
2013-10-08 14:52:05 +02:00
case 3:
$cls = 'danger';
$status = 'Failed';
break;
}
2013-06-09 21:29:49 +02:00
2013-10-08 14:52:05 +02:00
// Use the last 5 builds to determine project health:
$successes = 0;
$failures = 0;
2013-10-08 14:52:05 +02:00
foreach ($builds[$project->getId()] as $build) {
switch ($build->getStatus()) {
case 0:
$statuses[] = 'pending';
break;
case 1:
$statuses[] = 'running';
break;
case 2:
$successes++;
$statuses[] = 'ok';
$success = is_null($success) && !is_null($build->getFinished()) ? $build->getFinished()->format('M j Y g:ia') : $success;
2013-10-08 14:52:05 +02:00
break;
case 3:
$failures++;
$statuses[] = 'failed';
$failure = is_null($failure) && !is_null($build->getFinished()) ? $build->getFinished()->format('M j Y g:ia') : $failure;
2013-10-08 14:52:05 +02:00
break;
}
}
}
2013-10-08 14:52:05 +02:00
if ($failures == 0) {
$health = 'Good';
$subcls = 'green';
} elseif ($successes == 0) {
2013-10-08 14:52:05 +02:00
$health = 'Bad';
$subcls = 'red';
2013-10-08 14:52:05 +02:00
} else {
$health = 'Warning';
$subcls = 'yellow';
2013-06-09 21:29:49 +02:00
}
$buildCount = count($builds[$project->getId()]);
$lastSuccess = $successful[$project->getId()];
$lastFailure = $failed[$project->getId()];
$message = 'No builds yet!';
$shortMessage = 'No builds yet!';
if ($buildCount > 0) {
if ($failures > 0) {
$shortMessage = $failures . ' / ' . $buildCount . ' failed.';
$message = $failures . ' out of the last ' . $buildCount . ' builds failed.';
if (!is_null($lastSuccess) && !is_null($lastSuccess->getFinished())) {
$message .= ' The last successful build was ' . $lastSuccess->getFinished()->format('M j Y') . '.';
} else {
$message .= ' This project has never built successfully.';
}
} else {
$shortMessage = $buildCount . ' / ' . $buildCount . ' passed.';
$message = 'All of the last ' . $buildCount . ' builds passed.';
if (!is_null($lastFailure) && !is_null($lastFailure->getFinished())) {
$message .= ' The last failed build was ' . $lastFailure->getFinished()->format('M j Y') . '.';
} else {
$message .= ' This project has never failed to build.';
}
}
}
2013-06-05 07:23:47 +02:00
?>
<?php if (count($projects) > 10): ?>
<div class="small-box bg-<?php print $subcls; ?>">
<div class="inner">
<h4>
<strong>
<a href="<?php print PHPCI_URL; ?>project/view/<?php print $project->getId(); ?>">
<?php print $project->getTitle(); ?>
</a>
</strong> -
<?php print $shortMessage; ?>
</h4>
</div>
</div>
<?php else: ?>
<div class="small-box bg-<?php print $subcls; ?>">
<div class="inner">
<h3>
<a href="<?php print PHPCI_URL; ?>project/view/<?php print $project->getId(); ?>">
<?php print $project->getTitle(); ?>
</a>
</h3>
<p>
<?php print $message; ?>
</p>
</div>
<div class="icon">
<i class="fa fa-<?php print $project->getIcon(); ?>"></i>
</div>
<a href="<?php print PHPCI_URL; ?>project/view/<?php print $project->getId(); ?>" class="small-box-footer">
View Project <i class="fa fa-arrow-circle-right"></i>
</a>
</div>
<?php endif; ?>
<?php endforeach; ?>