| <?php | |
| /******************************************************************************** | |
| * Copyright (c) 2016 The Eclipse Foundation | |
| * | |
| * This program and the accompanying materials are made available under the | |
| * terms of the Eclipse Public License v. 2.0 which is available at | |
| * http://www.eclipse.org/legal/epl-2.0. | |
| * | |
| * SPDX-License-Identifier: EPL-2.0 | |
| ********************************************************************************/ | |
| require_once ($_SERVER ['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); | |
| require_once ($_SERVER ['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); | |
| require_once ($_SERVER ['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); | |
| $App = new App (); | |
| $Nav = new Nav (); | |
| $Menu = new Menu (); | |
| include ($App->getProjectCommon ()); | |
| require_once $_SERVER ['DOCUMENT_ROOT'] . '/projects/classes/Project.class.php'; | |
| require_once $_SERVER ['DOCUMENT_ROOT'] . '/projects/classes/common.php'; | |
| require_once $_SERVER ['DOCUMENT_ROOT'] . '/projects/classes/debug.php'; | |
| require_once dirname ( __FILE__ ) . '/kpi.inc'; | |
| require_once dirname ( __FILE__ ) . '/charts.inc'; | |
| // Let's keep this restricted to Eclipse Foundation employees | |
| // for now. | |
| mustBeFoundationEmployee(); | |
| $pageTitle = "Eclipse Project KPIs"; | |
| $pageKeywords = ""; | |
| $pageAuthor = "Wayne Beaton"; | |
| $App->AddExtraHtmlHeader(" | |
| <style> | |
| img.company-logo {margin: 1em; width: 64px} | |
| </style>"); | |
| ob_start (); | |
| function getProjectNickName($id) { | |
| return ($project = Project::getProject($id)) ? $project->getNickName() : $id; | |
| } | |
| ?> | |
| <div id="maincontent"> | |
| <div id="midcolumn"> | |
| <h1><?=$pageTitle?></h1> | |
| <?php | |
| $age = isset($_GET['age']) ? (int)$_GET['age'] : (5 * 12); | |
| $context = new ChartContext($age); | |
| $filter = isset($_GET['filter']) ? $_GET['filter'] : '.'; | |
| foreach(scandir(dirname(__FILE__) . '/kpis') as $file) { | |
| if ($file == '.') continue; | |
| if ($file == '..') continue; | |
| // TODO Confirm that an injection attack is not possible. | |
| if (!preg_match("/$filter/", $file)) continue; | |
| require "kpis/$file"; | |
| if (preg_match('/^(.*)\.inc/', $file, $matches)) { | |
| $callback = 'chart_' . $matches[1]; | |
| $chart = call_user_func($callback, $context); | |
| $chart->render(); | |
| } | |
| } | |
| ?> | |
| </div> | |
| </div> | |
| <?php | |
| $html = ob_get_contents (); | |
| ob_end_clean (); | |
| $App->generatePage ( $theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html ); | |
| ?> |