Skip to content

Commit 1dd7b26

Browse files
committed
fix #94
1 parent b9d4644 commit 1dd7b26

File tree

2 files changed

+76
-4
lines changed

2 files changed

+76
-4
lines changed

js/src/dashboard.js

Lines changed: 67 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,33 @@ require("jquery-migrate");
33
// var moment = require("moment");
44
require("jqueryui");
55
//require("jqueryui/jquery-ui.css");
6+
require("daterangepicker");
7+
var moment = require("moment");
8+
9+
require('daterangepicker/daterangepicker.css');
610
require('../../css/style.css');
711
var Chart = require("chart.js");
12+
13+
14+
Chart.plugins.register({
15+
afterDraw: function(chart) {
16+
if (chart.data.datasets.length === 0 || chart.data.datasets[0].data.length === 0) {
17+
// No data is present
18+
var ctx = chart.chart.ctx;
19+
var width = chart.chart.width;
20+
var height = chart.chart.height
21+
chart.clear();
22+
23+
ctx.save();
24+
ctx.textAlign = 'center';
25+
ctx.textBaseline = 'middle';
26+
ctx.font = "16px normal 'Helvetica Nueue'";
27+
ctx.fillText('No data to display', width / 2, height / 2);
28+
ctx.restore();
29+
}
30+
}
31+
});
32+
833
(function() {
934
$.ajaxSetup({
1035
headers: { 'RequestToken': OC.requestToken }
@@ -20,6 +45,40 @@ var Chart = require("chart.js");
2045
var group3 = '';
2146
var filterProjectId = '';
2247
var filterClientId = '';
48+
var myDoughnutChart = null;
49+
50+
51+
function cb(start, end) {
52+
$('#report-range span').html(start.format('DD/MM/YY') + ' - ' + end.format('DD/MM/YY'));
53+
}
54+
$("#report-range").daterangepicker({
55+
timePicker: false,
56+
startDate: start,
57+
endDate: end,
58+
showCustomRangeLabel: false,
59+
ranges: {
60+
'Today': [moment().startOf('day'), moment().endOf('day')],
61+
'Last 7 Days': [moment().startOf('day').subtract(6, 'days'), moment().endOf('day')],
62+
'Last 30 Days': [moment().startOf('day').subtract(29, 'days'), moment().endOf('day')],
63+
'Last 90 Days': [moment().startOf('day').subtract(89, 'days'), moment().endOf('day')],
64+
'Last 365 Days': [moment().startOf('day').subtract(364, 'days'), moment().endOf('day')],
65+
'This Month': [moment().startOf('month'), moment().endOf('day')],
66+
'This Year': [moment().startOf('year'), moment().endOf('day')],
67+
'Starting last year': [moment().startOf('year').subtract(1, 'year'), moment().endOf('day')],
68+
'Last 3 years': [moment().startOf('day').subtract(3, 'year'), moment().endOf('day')],
69+
'Last 5 years': [moment().startOf('day').subtract(5, 'year'), moment().endOf('day')],
70+
},
71+
locale: {
72+
format: 'DD/MM/YY'
73+
}
74+
},cb);
75+
$("#report-range").on('apply.daterangepicker', function(ev, picker) {
76+
//days = Math.round((picker.endDate.unix()-picker.startDate.unix()) / 86400);
77+
start = picker.startDate;
78+
getData();
79+
});
80+
cb(start, end);
81+
2382

2483
var chartData = {};
2584
getData();
@@ -147,9 +206,13 @@ var Chart = require("chart.js");
147206
}
148207
}
149208
};
209+
if (myDoughnutChart != null){
210+
myDoughnutChart.destroy();
211+
}
150212

151213
var ctx = document.getElementById("myChart").getContext("2d");
152-
var myDoughnutChart = new Chart(ctx, {
214+
215+
myDoughnutChart = new Chart(ctx, {
153216
type: 'doughnut',
154217
data: chartData,
155218
options: {
@@ -166,11 +229,12 @@ var Chart = require("chart.js");
166229
return (h+" hours "+m+" minutes")
167230
},
168231
afterLabel: function(tooltipItem, data) {
169-
170232
var dataset = data['datasets'][tooltipItem.datasetIndex];
233+
if (!(0 in dataset["_meta"]))
234+
return '';
171235
var percent = Math.round((dataset['data'][tooltipItem['index']] / dataset["_meta"][0]['total']) * 100)
172236
return '(' + percent + '%)';
173-
}
237+
},
174238
},
175239

176240
}

templates/content/dashboard.php

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,15 @@
66
<div class="clearfix"> </div>
77
<div id="dashboard">
88
<div>
9-
<h1>Time (in minutes) allocated to each client in the last 30 days</h1>
9+
<h1>Time (in minutes) allocated to each client in the last days</h1>
10+
<div class="clearfix"> </div>
11+
<br/>
12+
<div class="time-controls">
13+
<div id="report-range" style="cursor: pointer; padding: 5px 10px; border: 1px solid #ccc; width: 100%">
14+
<i class="fa fa-calendar"></i>&nbsp;
15+
<span></span> <i class="fa fa-caret-down"></i>
16+
</div>
17+
</div>
1018
<canvas id="myChart" width="400" height="400"></canvas>
1119
<div id='summary'></div>
1220
</div>

0 commit comments

Comments
 (0)