kanbanworkflowstimelinescrumrubyroadmapproject-planningproject-managementopenprojectangularissue-trackerifcgantt-chartganttbug-trackerboardsbcf
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
137 lines
4.2 KiB
137 lines
4.2 KiB
11 years ago
|
<%#-- copyright
|
||
|
OpenProject Backlogs Plugin
|
||
|
|
||
11 years ago
|
Copyright (C)2013-2014 the OpenProject Foundation (OPF)
|
||
11 years ago
|
Copyright (C)2011 Stephan Eckardt, Tim Felgentreff, Marnen Laibow-Koser, Sandro Munda
|
||
|
Copyright (C)2010-2011 friflaj
|
||
|
Copyright (C)2010 Maxime Guilbot, Andrew Vit, Joakim Kolsjö, ibussieres, Daniel Passos, Jason Vasquez, jpic, Emiliano Heyns
|
||
|
Copyright (C)2009-2010 Mark Maglana
|
||
|
Copyright (C)2009 Joe Heck, Nate Lowrie
|
||
|
|
||
|
This program is free software; you can redistribute it and/or modify it under
|
||
|
the terms of the GNU General Public License version 3.
|
||
|
|
||
|
OpenProject Backlogs is a derivative work based on ChiliProject Backlogs.
|
||
|
The copyright follows:
|
||
|
Copyright (C) 2010-2011 - Emiliano Heyns, Mark Maglana, friflaj
|
||
|
Copyright (C) 2011 - Jens Ulferts, Gregor Schmidt - Finn GmbH - Berlin, Germany
|
||
|
|
||
|
This program is free software; you can redistribute it and/or
|
||
|
modify it under the terms of the GNU General Public License
|
||
|
as published by the Free Software Foundation; either version 2
|
||
|
of the License, or (at your option) any later version.
|
||
|
|
||
|
This program is distributed in the hope that it will be useful,
|
||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
GNU General Public License for more details.
|
||
|
|
||
|
You should have received a copy of the GNU General Public License
|
||
|
along with this program; if not, write to the Free Software
|
||
|
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||
|
|
||
|
See doc/COPYRIGHT.rdoc for more details.
|
||
|
|
||
|
++#%>
|
||
11 years ago
|
<%= javascript_include_tag 'backlogs/jquery.flot/excanvas.js' %>
|
||
14 years ago
|
|
||
6 years ago
|
|
||
|
<%= nonced_javascript_tag do %>
|
||
14 years ago
|
jQuery(function ($) {
|
||
14 years ago
|
var Burndown = {
|
||
9 years ago
|
datasets: <%= dataseries(burndown).to_json.html_safe %> ,
|
||
14 years ago
|
previousPoint: null,
|
||
15 years ago
|
|
||
14 years ago
|
setDatasetColor: function () {
|
||
|
var i = 0;
|
||
14 years ago
|
|
||
14 years ago
|
$.each(Burndown.datasets, function (key, val) {
|
||
|
val.color = i;
|
||
9 years ago
|
val.points = {show: false, radius: 2};
|
||
14 years ago
|
val.lines = {show: true};
|
||
14 years ago
|
++i;
|
||
|
});
|
||
|
},
|
||
14 years ago
|
|
||
14 years ago
|
plotAccordingToChoices: function () {
|
||
|
var data = [];
|
||
14 years ago
|
|
||
14 years ago
|
$('.burndown_control').find("input:checked").each(function () {
|
||
|
var key = $(this).attr('value');
|
||
14 years ago
|
|
||
14 years ago
|
if (key && Burndown.datasets[key]) {
|
||
|
data.push(Burndown.datasets[key]);
|
||
|
}
|
||
|
});
|
||
14 years ago
|
|
||
14 years ago
|
if (data.length === 0) { //in order to render an empty graph if no data is selected
|
||
|
data.push({data : []});
|
||
15 years ago
|
}
|
||
14 years ago
|
|
||
14 years ago
|
Burndown.plot(data);
|
||
|
},
|
||
14 years ago
|
|
||
14 years ago
|
plot: function (data) {
|
||
|
if (data.length > 0) {
|
||
|
$.plot($(".burndown_chart"), data, {
|
||
|
yaxis: { min: 0,
|
||
14 years ago
|
ticks: [ <%= yaxis_labels(burndown) %> ] },
|
||
14 years ago
|
xaxis: {
|
||
9 years ago
|
ticks: [ <%= xaxis_labels(burndown) %> ],
|
||
14 years ago
|
tickDecimals: 0,
|
||
14 years ago
|
max: <%= burndown.days.length + 1 %>,
|
||
|
min: 1
|
||
14 years ago
|
},
|
||
|
grid: { hoverable: true, clickable: true }
|
||
14 years ago
|
});
|
||
|
}
|
||
|
},
|
||
|
|
||
14 years ago
|
showTooltip: function(x, y, contents) {
|
||
|
$('<div id="tooltip">' + contents + '</div>').css( {
|
||
|
position: 'absolute',
|
||
|
display: 'none',
|
||
|
top: y + 5,
|
||
|
left: x + 5,
|
||
|
border: '1px solid #fdd',
|
||
|
padding: '2px',
|
||
|
'background-color': '#fee',
|
||
|
opacity: 0.80
|
||
|
}).appendTo("body").css('z-index', 2000).fadeIn(200);
|
||
|
},
|
||
|
|
||
|
|
||
|
showTooltipOnHover: function (event, pos, item) {
|
||
|
|
||
|
if (item) {
|
||
|
if (Burndown.previousPoint != item.dataIndex) {
|
||
|
Burndown.previousPoint = item.dataIndex;
|
||
|
|
||
|
$("#tooltip").remove();
|
||
|
var x = item.datapoint[0].toFixed(0),
|
||
|
y = item.datapoint[1].toFixed(0);
|
||
|
|
||
|
Burndown.showTooltip(item.pageX, item.pageY,
|
||
|
item.series.label + ": " + y);
|
||
|
}
|
||
|
}
|
||
|
else {
|
||
|
$("#tooltip").remove();
|
||
|
Burndown.previousPoint = null;
|
||
|
}
|
||
|
},
|
||
|
|
||
14 years ago
|
init: function () {
|
||
|
Burndown.setDatasetColor();
|
||
14 years ago
|
|
||
14 years ago
|
$('.burndown_control input').click(Burndown.plotAccordingToChoices);
|
||
14 years ago
|
$(".burndown_chart").bind("plothover", Burndown.showTooltipOnHover);
|
||
15 years ago
|
|
||
14 years ago
|
Burndown.plotAccordingToChoices();
|
||
|
}
|
||
|
};
|
||
14 years ago
|
|
||
14 years ago
|
Burndown.init();
|
||
14 years ago
|
});
|
||
6 years ago
|
<% end %>
|