echo "\ t" . '<script type = "text / javascript" src = " www.google.com/jsapi "> </ script>' . "\ n" ;
function built_Visualizations ($ data_of_projects) {:
// die (print_r ($ data_of_projects));
?>
<tr>
<td colspan = "5" >
<div id = "chart_div" style = "border: 1px solid # c00" > </ div>
</ td>
</ tr>
<script type = "text / javascript" >
google.load ( "visualization" , "1" , {packages: [ "barchart" ]});
google.setOnLoadCallback (drawChart); // Set callback to run when API is loaded
function drawChart () {
var data = new google.visualization.DataTable ();
data.addColumn ( 'string' , 'Project' );
data.addColumn ( 'number' , 'resolved' );
data.addColumn ( 'number' , 'closed' );
data.addColumn ( 'number' , 'open' );
data.addRows (<? = count ($ data_of_projects)?>);
<?
$ a = 0;
foreach ($ data_of_projects as $ project => $ data) {
?>
data.setValue (<? = ( int ) $ a?>, 0, '<? = $ project?>' );
data.setValue (<? = ( int ) $ a?>, 1, <? = ( int ) $ data_of_projects [$ project] [ 't_pdata' ] [ 'resolved' ]?>);
data.setValue (<? = ( int ) $ a?>, 2, <? = ( int ) $ data_of_projects [$ project] [ 't_pdata' ] [ 'closed' ]?>);
data.setValue (<? = ( int ) $ a?>, 3, <? = ( int ) $ data_of_projects [$ project] [ 't_pdata' ] [ 'open' ]?>);
<?
$ a ++;
}
?>
var chart = new google.visualization.BarChart (document.getElementById ( 'chart_div' ));
chart.draw (data, {width: 700, height: 500, is3D: false , title: 'Report of bugs' , isStacked: true , legend: 'top' , legendBackgroundColor: '#ccc' });
}
</ script>
<?
}
function summary_print_by_project ($ p_projects = null , $ p_level = 0, $ p_cache = null ) {...}
function summary_print_by_project ($ p_projects = null , $ p_level = 0, $ p_cache = null ) {
$ t_mantis_bug_table = config_get ( 'mantis_bug_table' );
$ t_mantis_project_table = config_get ( 'mantis_project_table' );
$ t_project_id = helper_get_current_project ();
if ( null == $ p_projects) {
if (ALL_PROJECTS == $ t_project_id) {
$ p_projects = current_user_get_accessible_projects ();
} else {
$ p_projects = Array ($ t_project_id);
}
}
# Retrieve statistics one time to improve performance.
if ( null === $ p_cache) {
$ query = "SELECT project_id, status, COUNT (status) AS bugcount
FROM $ t_mantis_bug_table
GROUP BY project_id, status " ;
$ result = db_query ($ query);
$ p_cache = Array ();
$ t_resolved_val = RESOLVED;
$ t_closed_val = CLOSED;
while ($ row = db_fetch_array ($ result)) {
extract ($ row, EXTR_PREFIX_ALL, 'v' );
if ($ t_closed_val <= $ v_status) {
if (isset ($ p_cache [$ v_project_id] [ 'closed' ])) {
$ p_cache [$ v_project_id] [ 'closed' ] + = $ v_bugcount;
} else {
$ p_cache [$ v_project_id] [ 'closed' ] = $ v_bugcount;
}
} else if ($ t_resolved_val <= $ v_status) {
if (isset ($ p_cache [$ v_project_id] [ 'resolved' ])) {
$ p_cache [$ v_project_id] [ 'resolved' ] + = $ v_bugcount;
} else {
$ p_cache [$ v_project_id] [ 'resolved' ] = $ v_bugcount;
}
} else {
if (isset ($ p_cache [$ v_project_id] [ 'open' ])) {
$ p_cache [$ v_project_id] [ 'open' ] + = $ v_bugcount;
} else {
$ p_cache [$ v_project_id] [ 'open' ] = $ v_bugcount;
}
}
}
}
$ data_of_projects = array ();
foreach ($ p_projects as $ t_project) {
$ t_name = str_repeat ( "" " , $ p_level). project_get_name ($ t_project);
$ t_pdata = isset ($ p_cache [$ t_project])? $ p_cache [$ t_project]
: array ( 'open' => 0, 'resolved' => 0, 'closed' => 0);
$ t_bugs_open = isset ($ t_pdata [ 'open' ])? $ t_pdata [ 'open' ]: 0;
$ t_bugs_resolved = isset ($ t_pdata [ 'resolved' ])? $ t_pdata [ 'resolved' ]: 0;
$ t_bugs_closed = isset ($ t_pdata [ 'closed' ])? $ t_pdata [ 'closed' ]: 0;
$ t_bugs_total = $ t_bugs_open + $ t_bugs_resolved + $ t_bugs_closed;
// added Abbasov Alexander
$ data_of_projects [$ t_name] [ 't_pdata' ] = $ t_pdata;
$ data_of_projects [$ t_name] [ 't_bugs_resolved' ] = $ t_bugs_resolved;
$ data_of_projects [$ t_name] [ 't_bugs_closed' ] = $ t_bugs_closed;
$ data_of_projects [$ t_name] [ 't_bugs_total' ] = $ t_bugs_total;
summary_helper_print_row ($ t_name, $ t_bugs_open, $ t_bugs_resolved, $ t_bugs_closed, $ t_bugs_total);
$ t_subprojects = current_user_get_accessible_subprojects ($ t_project);
if (count ($ t_subprojects)> 0) {
summary_print_by_project ($ t_subprojects, $ p_level + 1, $ p_cache);
}
}
// added Abbasov Alexander
built_Visualizations ($ data_of_projects);
}
Source: https://habr.com/ru/post/39762/
All Articles