| <?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 dirname ( __FILE__ ) . '/charts.inc'; |
| require_once dirname ( __FILE__ ) . '/../classes/database.inc'; |
| function renderQuarterlyTop10ContributorsChart() { |
| // TODO Use the ChartBuilder API. |
| global $App; |
| |
| list ( $quarter, $start, $end ) = getLastQuarter ( time () ); |
| |
| $sql = " |
| select |
| project, Authors-Committers as count |
| from ProjectQuarterlySummary |
| where quarter='$quarter' |
| and Authors-Committers >= ( |
| select Authors-Committers as count |
| from ProjectQuarterlySummary |
| where quarter='$quarter' |
| order by count desc limit 10, 1) |
| order by count desc"; |
| |
| $rows = array (); |
| query ( 'dashboard', $sql, array (), function ($row) use (&$rows) { |
| $project = Project::getProject ( $row ['project'] ); |
| |
| $count = $row ['count']; |
| |
| $rows [] = array ( |
| $project ? $project->getNickName () : $row ['project'], |
| $count |
| ); |
| } ); |
| |
| echo "<p>Based on commits between $start and $end.</p>"; |
| |
| $columns = array ( |
| array ( |
| 'label' => 'Project', |
| 'type' => 'string' |
| ), |
| array ( |
| 'label' => 'Commits', |
| 'type' => 'number' |
| ) |
| ); |
| drawPieChart ( 'Top10ContributorsQuarterly', "Top \"Ten\" Projects by Contributor Count ($quarter)", $columns, $rows ); |
| } |
| function renderFileTypesChart() { |
| // TODO Use the ChartBuilder API. |
| global $App; |
| |
| list ( $quarter, $start, $end ) = getLastQuarter ( time () ); |
| |
| $sql = "select extension, count from FileTypes order by count desc limit 15"; |
| |
| $rows = array (); |
| query ( 'dashboard', $sql, array (), function ($row) use (&$rows) { |
| $id = $row ['extension']; |
| $name = getExtensionName ( $id ); |
| |
| $count = $row ['count']; |
| |
| $rows [] = array ( |
| $name, |
| $count |
| ); |
| } ); |
| |
| $columns = array ( |
| array ( |
| 'label' => 'File Type', |
| 'type' => 'string' |
| ), |
| array ( |
| 'label' => 'Number of projects', |
| 'type' => 'number' |
| ) |
| ); |
| drawPieChart ( 'fileTypesChart', "File types by project use", $columns, $rows ); |
| } |
| function renderLicensesInUseChart() { |
| // TODO Use the ChartBuilder API. |
| global $App; |
| |
| $now = date ( 'Y-m' ); |
| $sql = " |
| SELECT |
| license, count(project) as count |
| from ( |
| SELECT |
| p.ProjectId as project, |
| group_concat( |
| if(LicenseId='EPL1.0','EPL-1.0', |
| if(LicenseId='EPL2.0','EPL-2.0', |
| if(LicenseId='EDL1.0','EDL-1.0', |
| if(LicenseId='ASL2.0','Apache-2.0', |
| if(LicenseId='CCBY3','CC-BY-3.0', |
| LicenseId))))) |
| ORDER BY LicenseId separator ' OR ') as license |
| FROM ProjectLicenses as pl |
| JOIN Projects as p on pl.ProjectId=p.ProjectId |
| AND p.IsActive group by p.ProjectId |
| ) as ProjectsAndLicenses |
| group by license |
| order by count desc"; |
| |
| $rows = array (); |
| query ( 'foundation', $sql, array (), function ($row) use (&$rows) { |
| $rows [] = array ( |
| $row ['license'], |
| $row ['count'] |
| ); |
| } ); |
| |
| $columns = array ( |
| array ( |
| 'label' => 'License', |
| 'type' => 'string' |
| ), |
| array ( |
| 'label' => 'Count', |
| 'type' => 'number' |
| ) |
| ); |
| drawPieChart ( 'LicenseUse', "Licenses in use by Eclipse Projects on $now", $columns, $rows ); |
| } |
| ?> |