added the commiter-dissect-per-month graph
This commit is contained in:
parent
fc1703d346
commit
d16c235cb9
@ -26,17 +26,33 @@
|
|||||||
<script type="text/javascript" src="<?=base_url_make('/js/jquery.flot.time.min.js')?>"></script>
|
<script type="text/javascript" src="<?=base_url_make('/js/jquery.flot.time.min.js')?>"></script>
|
||||||
<script type="text/javascript" src="<?=base_url_make('/js/jquery.flot.categories.min.js')?>"></script>
|
<script type="text/javascript" src="<?=base_url_make('/js/jquery.flot.categories.min.js')?>"></script>
|
||||||
<script type="text/javascript" src="<?=base_url_make('/js/jquery.flot.pie.min.js')?>"></script>
|
<script type="text/javascript" src="<?=base_url_make('/js/jquery.flot.pie.min.js')?>"></script>
|
||||||
<script type="text/javascript" src="<?=base_url_make('/js/jquery.flot.pie.min.js')?>"></script>
|
<script type="text/javascript" src="<?=base_url_make('/js/jquery.flot.stack.min.js')?>"></script>
|
||||||
<script type="text/javascript" src="<?=base_url_make('/js/jquery.flot.tickrotor.js')?>"></script>
|
<script type="text/javascript" src="<?=base_url_make('/js/jquery.flot.tickrotor.js')?>"></script>
|
||||||
|
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
function show_tooltip(id, x, y, contents) {
|
||||||
|
$('<div id="' + id + '">' + contents + '</div>').css( {
|
||||||
|
position: 'absolute',
|
||||||
|
display: 'none',
|
||||||
|
top: y + 5,
|
||||||
|
left: x + 5,
|
||||||
|
border: '1px solid #fdd',
|
||||||
|
padding: '2px',
|
||||||
|
'background-color': '#fee',
|
||||||
|
'font-size': '0.8em',
|
||||||
|
'font-family': 'inherit',
|
||||||
|
opacity: 0.80
|
||||||
|
}).appendTo("body").fadeIn(200);
|
||||||
|
}
|
||||||
|
|
||||||
function show_commits_per_month_graph(log)
|
function show_commits_per_month_graph(log)
|
||||||
{
|
{
|
||||||
var min_date = '9999-99', max_date = '0000-00';
|
var min_date = '9999-99', max_date = '0000-00';
|
||||||
var commits_per_month = [], commits_per_month_keys = [], commits_per_month_values = [];
|
var commits_per_month = [], commits_per_month_keys = [], commits_per_month_values = [];
|
||||||
var committers_per_month = [], committers_per_month_values = [], committer_list_per_month = [];
|
var committers_per_month = [], committers_per_month_values = [];
|
||||||
|
var committer_list_per_month = [], committer_table = [];
|
||||||
var commits_per_month_count = 0;
|
var commits_per_month_count = 0;
|
||||||
|
|
||||||
for (var i = 0; i < log.length; i++)
|
for (var i = 0; i < log.length; i++)
|
||||||
{
|
{
|
||||||
var date = log[i].date;
|
var date = log[i].date;
|
||||||
@ -46,10 +62,26 @@ function show_commits_per_month_graph(log)
|
|||||||
if (date in commits_per_month) commits_per_month[date]++;
|
if (date in commits_per_month) commits_per_month[date]++;
|
||||||
else commits_per_month[date] = 1;
|
else commits_per_month[date] = 1;
|
||||||
|
|
||||||
// TODO: calculate committers...
|
|
||||||
if (log[i].author)
|
if (log[i].author)
|
||||||
{
|
{
|
||||||
committer_list_per_month[date + '-' + log[i].author] = 1;
|
var date_author = date + '-' + log[i].author;
|
||||||
|
if (date_author in committer_list_per_month)
|
||||||
|
committer_list_per_month[date_author]++;
|
||||||
|
else
|
||||||
|
committer_list_per_month[date_author] = 1;
|
||||||
|
|
||||||
|
|
||||||
|
if (!(log[i].author in committer_table))
|
||||||
|
committer_table[log[i].author] = [];
|
||||||
|
|
||||||
|
if (date in committer_table[log[i].author])
|
||||||
|
{
|
||||||
|
committer_table[log[i].author][date]++;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
committer_table[log[i].author][date] = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (date < min_date) min_date = date;
|
if (date < min_date) min_date = date;
|
||||||
@ -122,6 +154,14 @@ function show_commits_per_month_graph(log)
|
|||||||
committers_per_month[date] = 0;
|
committers_per_month[date] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (var author in committer_table)
|
||||||
|
{
|
||||||
|
if (!(date in committer_table[author]))
|
||||||
|
{
|
||||||
|
committer_table[author][date] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
month++;
|
month++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -133,9 +173,8 @@ function show_commits_per_month_graph(log)
|
|||||||
}
|
}
|
||||||
|
|
||||||
commits_per_month_keys = commits_per_month_keys.sort();
|
commits_per_month_keys = commits_per_month_keys.sort();
|
||||||
orig_commits_per_month_keys = commits_per_month_keys.slice (0); // clone the array
|
|
||||||
|
|
||||||
for (i = 0; i < commits_per_month_keys.length; i++)
|
for (var i = 0; i < commits_per_month_keys.length; i++)
|
||||||
{
|
{
|
||||||
var commits = commits_per_month[commits_per_month_keys[i]];
|
var commits = commits_per_month[commits_per_month_keys[i]];
|
||||||
var committers = committers_per_month[commits_per_month_keys[i]];
|
var committers = committers_per_month[commits_per_month_keys[i]];
|
||||||
@ -143,20 +182,17 @@ function show_commits_per_month_graph(log)
|
|||||||
var time = (new Date(commits_per_month_keys[i] + "-01")).getTime();
|
var time = (new Date(commits_per_month_keys[i] + "-01")).getTime();
|
||||||
commits_per_month_values.push ([time, commits]);
|
commits_per_month_values.push ([time, commits]);
|
||||||
committers_per_month_values.push ([time, committers]);
|
committers_per_month_values.push ([time, committers]);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var dataset =
|
var dataset =
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
label: "Commits Per Month",
|
label: "Total Commits Per Month",
|
||||||
data: commits_per_month_values,
|
data: commits_per_month_values
|
||||||
//color: "#FF0000"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "Commiters Per Month",
|
label: "Total Committers Per Month",
|
||||||
data: committers_per_month_values,
|
data: committers_per_month_values
|
||||||
//color: "#00FF00"
|
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -171,8 +207,8 @@ function show_commits_per_month_graph(log)
|
|||||||
grid: { hoverable: true, clickable: true },
|
grid: { hoverable: true, clickable: true },
|
||||||
|
|
||||||
xaxes: [
|
xaxes: [
|
||||||
{ mode: "time" },
|
{ mode: "time", minTickSize: [1, "month"] },
|
||||||
{ mode: "time" }
|
{ mode: "time", minTickSize: [1, "month"] }
|
||||||
],
|
],
|
||||||
|
|
||||||
yaxes: { }
|
yaxes: { }
|
||||||
@ -180,38 +216,87 @@ function show_commits_per_month_graph(log)
|
|||||||
|
|
||||||
$.plot($("#graph_main_commits_per_month"), dataset, options);
|
$.plot($("#graph_main_commits_per_month"), dataset, options);
|
||||||
|
|
||||||
var previousPoint = null;
|
var graph_main_commits_per_month_previous_point = null;
|
||||||
$("#graph_main_commits_per_month").bind("plothover", function (event, pos, item) {
|
$("#graph_main_commits_per_month").bind("plothover", function (event, pos, item) {
|
||||||
function show_tooltip(x, y, contents) {
|
|
||||||
$('<div id="graph_main_commits_per_month_tooltip">' + contents + '</div>').css( {
|
|
||||||
position: 'absolute',
|
|
||||||
display: 'none',
|
|
||||||
top: y + 5,
|
|
||||||
left: x + 5,
|
|
||||||
border: '1px solid #fdd',
|
|
||||||
padding: '2px',
|
|
||||||
'background-color': '#fee',
|
|
||||||
'font-size': '0.8em',
|
|
||||||
'font-family': 'inherit',
|
|
||||||
opacity: 0.80
|
|
||||||
}).appendTo("body").fadeIn(200);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (item)
|
if (item)
|
||||||
{
|
{
|
||||||
if (previousPoint != item.datapoint)
|
if (graph_main_commits_per_month_previous_point != item.datapoint)
|
||||||
{
|
{
|
||||||
previousPoint = item.datapoint;
|
var datestr = (new Date(item.datapoint[0])).toISOString().substring(0, 7);
|
||||||
|
graph_main_commits_per_month_previous_point = item.datapoint;
|
||||||
$("#graph_main_commits_per_month_tooltip").remove();
|
$("#graph_main_commits_per_month_tooltip").remove();
|
||||||
|
|
||||||
//show_tooltip(item.pageX, item.pageY, '(' + item.datapoint[0] + ', ' + item.datapoint[1]+')');
|
//show_tooltip(item.pageX, item.pageY, '(' + item.datapoint[0] + ', ' + item.datapoint[1]+')');
|
||||||
//show_tooltip(item.pageX, item.pageY - 20, item.datapoint[1]);
|
show_tooltip ("graph_main_commits_per_month_tooltip",
|
||||||
show_tooltip(item.pageX, item.pageY - 20, '(' + (new Date(item.datapoint[0])).toISOString().substring(0, 7) + ', ' + item.datapoint[1]+')');
|
item.pageX, item.pageY - 20,
|
||||||
|
'(' + datestr + ',' + item.datapoint[1] + ')');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$("#graph_main_commits_per_month_tooltip").remove();
|
$("#graph_main_commits_per_month_tooltip").remove();
|
||||||
previousPoint = null;
|
graph_main_commits_per_month_previous_point = null;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
dataset = [];
|
||||||
|
for (var author in committer_table)
|
||||||
|
{
|
||||||
|
var committer_data = [];
|
||||||
|
for (var i = 0; i < commits_per_month_keys.length; i++)
|
||||||
|
{
|
||||||
|
var date = commits_per_month_keys[i];
|
||||||
|
var time = (new Date(date + "-01")).getTime();
|
||||||
|
committer_data.push ([time, committer_table[author][date]]);
|
||||||
|
}
|
||||||
|
dataset.push ({ label: author, data: committer_data });
|
||||||
|
}
|
||||||
|
options = {
|
||||||
|
series: {
|
||||||
|
stack: true,
|
||||||
|
shadowSize: 0,
|
||||||
|
bars: {
|
||||||
|
show: true,
|
||||||
|
fill: true,
|
||||||
|
align: "center",
|
||||||
|
barWidth: 1000 * 60 * 60 * 24 * 10
|
||||||
|
},
|
||||||
|
//lines: { show: true, fill: true /*, lineWidth: 2*/ },
|
||||||
|
//points: { show: false /*,lineWidth: 1*/ }
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
grid: { hoverable: true, clickable: true },
|
||||||
|
|
||||||
|
xaxes: [
|
||||||
|
{ mode: "time", minTickSize: [1, "month"] }
|
||||||
|
],
|
||||||
|
|
||||||
|
yaxes: { }
|
||||||
|
|
||||||
|
};
|
||||||
|
$.plot($("#graph_main_committer_dissect_per_month"), dataset, options);
|
||||||
|
|
||||||
|
var graph_main_committer_dissect_per_month_previous_point = null;
|
||||||
|
$("#graph_main_committer_dissect_per_month").bind("plothover", function (event, pos, item) {
|
||||||
|
if (item)
|
||||||
|
{
|
||||||
|
if (graph_main_committer_dissect_per_month_previous_point != item.datapoint)
|
||||||
|
{
|
||||||
|
var datestr = (new Date(item.datapoint[0])).toISOString().substring(0, 7);
|
||||||
|
graph_main_committer_dissect_per_month_previous_point = item.datapoint;
|
||||||
|
$("#graph_main_committer_dissect_per_month_tooltip").remove();
|
||||||
|
show_tooltip ("graph_main_committer_dissect_per_month_tooltip",
|
||||||
|
item.pageX, item.pageY - 20,
|
||||||
|
'(' + datestr + ',' + item.datapoint[1] + ')');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$("#graph_main_committer_dissect_per_month_tooltip").remove();
|
||||||
|
graph_main_committer_dissect_per_month_previous_point = null;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -248,7 +333,7 @@ function show_commits_per_user_graph(log)
|
|||||||
var dataset =
|
var dataset =
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
label: "Commits Per User",
|
label: "Total Commits Per User",
|
||||||
data: commits_per_user_data
|
data: commits_per_user_data
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
@ -387,14 +472,17 @@ $this->load->view (
|
|||||||
|
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
<div id="graph_main_commits_per_month" style="width:500px; height: 400px; margin-bottom: 1em; float: left; position: relative;">
|
<div id="graph_main_commits_per_month" style="width:550px; height: 400px; margin-bottom: 1em; float: left; position: relative;">
|
||||||
</div> <!-- graph_main_commits_per_month-->
|
</div>
|
||||||
|
|
||||||
<div id="graph_main_commits_per_user" style="width:500px; height: 400px; margin-bottom: 1em; float: left; position: relative;">
|
<div id="graph_main_committer_dissect_per_month" style="width:550px; height: 400px; margin-bottom: 1em; float: left; position: relative;">
|
||||||
</div> <!-- graph_main_commits_per_user-->
|
</div>
|
||||||
|
|
||||||
<div id="graph_main_commit_share_by_user" style="width:500px; height: 400px; margin-bottom: 1em; float: left; position: relative;">
|
<div id="graph_main_commits_per_user" style="width:550px; height: 400px; margin-bottom: 1em; float: left; position: relative;">
|
||||||
</div> <!-- graph_main_commits_per_user-->
|
</div>
|
||||||
|
|
||||||
|
<div id="graph_main_commit_share_by_user" style="width:550px; height: 400px; margin-bottom: 1em; float: left; position: relative;">
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user