From cdd972c7e70ee50a6aa3a88bfe1a062b51033c6f Mon Sep 17 00:00:00 2001 From: danij Date: Sat, 31 Mar 2012 11:19:00 +0100 Subject: [PATCH] Homepage|Build Repository|Fixed: Events not covered by the repository should redirect to the index --- .../buildrepository/buildrepository.php | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/web/plugins/buildrepository/buildrepository.php b/web/plugins/buildrepository/buildrepository.php index 5172a255f2..60d49f4e32 100644 --- a/web/plugins/buildrepository/buildrepository.php +++ b/web/plugins/buildrepository/buildrepository.php @@ -779,8 +779,14 @@ public function InterpretRequest($request) { $this->initPackages(); - $buildNumber = intval(substr($tokens[0], 5)); - $FrontController->enqueueAction($this, array('build' => $buildNumber)); + $buildId = intval(substr($tokens[0], 5)); + + // Is this a known event? + $build = $this->buildByUniqueId($buildId); + if(!$build instanceof BuildEvent) + $buildId = 0; // Show the index. + + $FrontController->enqueueAction($this, array('build' => $buildId)); return true; // Eat the request. } @@ -819,15 +825,12 @@ private function outputBuildStreamNavigation(&$event) public function buildByUniqueId($uniqueId=0) { $uniqueId = intval($uniqueId); - $build = NULL; if($uniqueId > 0) + foreach($this->builds as &$build) { - foreach($this->builds as &$build) - { - if($uniqueId === $build->uniqueId()) break; - } + if($uniqueId === $build->uniqueId()) return $build; } - return $build; + return NULL; } private function outputEventList($maxEvents=10)