Commit badf0645 authored by Jérome Perrin's avatar Jérome Perrin

new output widget capacity_utilisation_graph

parent d2c72827
......@@ -264,6 +264,16 @@ path, ._jsPlumb_endpoint {
margin-top:0px;
}
.capacity_graph {
width: 70%;
height: 250px;
text-align: center;
margin-left:auto;
margin-right:auto;
padding-top:2px;
margin-top:0px;
}
#queue_stat_graph {
width: 70%;
height: 250px;
......
......@@ -82,6 +82,7 @@
<div id="reports" style="display:none;">
<ul>
<li><a href="#station_utilisation_graph">Stations Utilization</a></li>
<li><a href="#capacity_utilisation_graph">Capacity Utilization</a></li>
<li><a href="#exit_stat">Exit Statistics</a></li>
<li><a href="#queue_stat">Queue Statistics</a></li>
<li><a href="#job_gantt">Job Gantt</a></li>
......@@ -93,6 +94,11 @@
<div id="graph"></div>
</div>
<div id="capacity_utilisation_graph">
<h1>Capacity Utilization</h1>
<div id="capacity_graphs"></div>
</div>
<div id="exit_stat">
<h1>Exit Statistics</h1>
<div></div>
......
......@@ -132,6 +132,72 @@
$.plot("#graph", series, options);
};
function capacity_utilisation_graph_widget(input_data, output_data) {
var available_capacity_by_station = {},
capacity_usage_by_station = {};
$("#capacity_graphs").empty();
// Compute availability by station
$.each(input_data.nodes, function(idx, obj){
var available_capacity = [];
if (obj.intervalCapacity !== undefined) {
$.each(obj.intervalCapacity, function(i, capacity){
available_capacity.push([i, capacity]);
});
available_capacity_by_station[obj.id] = available_capacity;
}
});
// Compute used capacity by station
$.each(output_data.elementList.sort(
function(a,b) {return a.id < b.id ? -1 : 1}),
function (idx, obj) {
if (obj.results !== undefined && obj.results.capacityUsed !== undefined) {
var capacity_usage = [];
$.each(obj.results.capacityUsed, function(i, step){
var period = 0, usage = 0;
$.each(step, function(k, v){
if (k === 'period') {
period = v;
}
if (k !== 'utilization'){
usage += v;
}
});
capacity_usage.push([period, usage])
});
capacity_usage_by_station[obj.id] = capacity_usage;
}
});
for (var station_id in available_capacity_by_station) {
var series = [{
label: "Capacity",
data: available_capacity_by_station[station_id],
color: "green",
}, {
label: "Utilisation",
data: capacity_usage_by_station[station_id],
color: "red",
}];
var options = {
series: {
lines: {
show: true,
fill: true
}
}
};
var h2 = $("<h2>").html(input_data.nodes[station_id].name || station_id);
var graph = $("<div class='capacity_graph'></div>");
$("#capacity_graphs").append(h2).append(graph);
$.plot(graph, series, options);
}
};
function queue_stat_widget(input_data, output_data) {
/* FIXME: does not support more than one replic.
* + see george email to integrate without the need of an EG
......@@ -821,6 +887,7 @@
var available_widget_list = [
'debug_json',
'station_utilisation_graph',
'capacity_utilisation_graph',
'job_schedule_spreadsheet',
'job_gantt',
'exit_stat',
......@@ -843,6 +910,9 @@
if (configuration['Dream-Configuration'].gui.station_utilisation_graph){
station_utilisation_graph_widget(input, result);
}
if (configuration['Dream-Configuration'].gui.capacity_utilisation_graph){
capacity_utilisation_graph_widget(input, result);
}
if (configuration['Dream-Configuration'].gui.queue_stat){
queue_stat_widget(input, result);
}
......
......@@ -24,6 +24,8 @@ class Simulation(DefaultSimulation):
conf["Dream-Configuration"]["gui"]["capacity_by_project_spreadsheet"] = 1
conf["Dream-Configuration"]["gui"]["capacity_by_station_spreadsheet"] = 1
conf["Dream-Configuration"]["gui"]["station_utilisation_graph"] = 0
conf["Dream-Configuration"]["gui"]["capacity_utilisation_graph"] = 1
conf["Dream-Configuration"]["gui"]["job_schedule_spreadsheet"] = 1
conf["Dream-Configuration"]["gui"]["job_gantt"] = 0 # XXX does not work
conf["Dream-Configuration"]["gui"]["queue_stat"] = 0
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment