diff --git a/PHPCI/Controller/IndexController.php b/PHPCI/Controller/IndexController.php index c185d2f3..2404a047 100644 --- a/PHPCI/Controller/IndexController.php +++ b/PHPCI/Controller/IndexController.php @@ -33,7 +33,7 @@ class IndexController extends \PHPCI\Controller $projects = $this->_projectStore->getWhere(array(), 50, 0, array(), array('title' => 'ASC')); $summary = $this->_buildStore->getBuildSummary(); - $summaryView = new b8\View('BuildsTable'); + $summaryView = new b8\View('SummaryTable'); $summaryView->builds = $summary['items']; $this->view->builds = $this->getLatestBuildsHtml(); diff --git a/PHPCI/Store/BuildStore.php b/PHPCI/Store/BuildStore.php index 6b26c3c7..fca490f2 100644 --- a/PHPCI/Store/BuildStore.php +++ b/PHPCI/Store/BuildStore.php @@ -31,7 +31,7 @@ class BuildStore extends BuildStoreBase $count = 0; } - $query = 'SELECT b.* FROM build b LEFT JOIN project p on p.id = b.project_id GROUP BY b.project_id ORDER BY p.title ASC, b.id DESC'; + $query = 'SELECT b.* FROM build b LEFT JOIN project p on p.id = b.project_id ORDER BY p.title ASC, b.id DESC'; $stmt = \b8\Database::getConnection('read')->prepare($query); if ($stmt->execute()) { diff --git a/PHPCI/View/Index/index.phtml b/PHPCI/View/Index/index.phtml index 887b46d3..8ffa4b56 100644 --- a/PHPCI/View/Index/index.phtml +++ b/PHPCI/View/Index/index.phtml @@ -44,10 +44,10 @@ - + - - + + diff --git a/PHPCI/View/SummaryTable.phtml b/PHPCI/View/SummaryTable.phtml new file mode 100644 index 00000000..cacfd204 --- /dev/null +++ b/PHPCI/View/SummaryTable.phtml @@ -0,0 +1,61 @@ +"; +// var_dump($builds); +// echo ""; + +$maxbuildcount = 5; +$projects = array(); +$prevBuild = null; +$health = false; + +foreach($builds as $build): + + if ( is_null($prevBuild) || $build->getProjectId() !== $prevBuild->getProjectId() ) { + $health = false; + $projects[$build->getProjectId()]['count'] = 0; + $projects[$build->getProjectId()]['health'] = 0; + } + + if ( + $build->getStatus() < 2 || + ( + !is_null($prevBuild) && + $projects[$build->getProjectId()]['count'] >= $maxbuildcount && + $build->getProjectId() === $prevBuild->getProjectId() + ) + ) { + continue; + } + switch ((int)$build->getStatus()) { + case 2: + $projects[$build->getProjectId()]['health']++; + if ( empty($projects[$build->getProjectId()]['lastsuccess']) ) { + $projects[$build->getProjectId()]['lastsuccess'] = $build->getStarted(); + } + break; + case 3: + $projects[$build->getProjectId()]['health']--; + if ( empty($projects[$build->getProjectId()]['lastfailure']) ) { + $projects[$build->getProjectId()]['lastfailure'] = $build->getStarted(); + } + break; + } + $projects[$build->getProjectId()]['count']++; + $prevBuild = $build; +endforeach; + +// echo "
";
+// var_dump($projects);
+// echo "
"; + +foreach($projects as $projectId => $project): +?> + + + + + + + + + \ No newline at end of file
IDHealth ProjectCommitBranchLast SuccessLast Failure Status
format("d-m-Y H:i:s" ) ?>format("d-m-Y H:i:s" ) ?>