Skip to content
This repository has been archived by the owner on Mar 30, 2024. It is now read-only.

Commit

Permalink
Graphs -- single category shows tasks
Browse files Browse the repository at this point in the history
  • Loading branch information
kimbtech committed Sep 27, 2020
1 parent f81be04 commit 173cd7b
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 15 deletions.
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
latest
0.3.1
0.3.2
0.3
0
18 changes: 15 additions & 3 deletions php/load/graphs/BarDailyWork.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ function createGraph(combiData, plainData, singleDayData, canvas){
var minDate = Number.MAX_SAFE_INTEGER;
var maxDate = Number.MIN_SAFE_INTEGER;
var allCategories = {}
var allNames = {}
plainData.forEach(data => {
if( data.begin < minDate ){
minDate = data.begin;
Expand All @@ -27,25 +28,36 @@ function createGraph(combiData, plainData, singleDayData, canvas){
if( !allCategories.hasOwnProperty(data.category)){
allCategories[data.category] = 0;
}
if( !allNames.hasOwnProperty(data.name)){
allNames[data.name] = 0;
}
});
if(Object.keys(allCategories).length === 1){
var catsColumn = 'name';
var allCats = allNames;
}
else{
var catsColumn = 'category';
var allCats = allCategories;
}

// fill (empty) categories in each day
let plotdata = {};
let plotdataLabels = [];
for( let timestamp = minDate; timestamp <= maxDate; timestamp += 86400){
let label = getLabelFromTimestamp(timestamp);
plotdata[label] = Object.assign({}, allCategories);
plotdata[label] = Object.assign({}, allCats);
plotdataLabels.push(label)
}
let lastLabel = getLabelFromTimestamp(maxDate);
if( !plotdata.hasOwnProperty(lastLabel)){
plotdata[lastLabel] = Object.assign({}, allCategories);
plotdata[lastLabel] = Object.assign({}, allCats);
plotdataLabels.push(lastLabel)
}

// fill with data
plainData.forEach(data => {
plotdata[getLabelFromTimestamp(data.begin)][data.category] += data.duration;
plotdata[getLabelFromTimestamp(data.begin)][data[catsColumn]] += data.duration;
});

// convert to hours
Expand Down
22 changes: 15 additions & 7 deletions php/load/graphs/BarDayTimes.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,14 @@ function createGraph(combiData, plainData, singleDayData, canvas){
* The function should return the ChartJS object.
*/

var allCategories = []
plainData.forEach(data => {
if( !allCategories.includes(data.category) ) {
allCategories.push(data.category)
}
});
var catsColumn = allCategories.length === 1 ? 'name' : 'category';

var plotdata = {}
plainData.forEach( (v) => {
var begin = new Date(v.begin*1000);
Expand All @@ -16,24 +24,24 @@ function createGraph(combiData, plainData, singleDayData, canvas){
var secondsEnd = end.getMinutes() * 60 + end.getSeconds();

for( var hour = hourBegin; hour <= hourEnd; hour++){
if( !plotdata.hasOwnProperty(v.category)){
plotdata[v.category] = []
if( !plotdata.hasOwnProperty(v[catsColumn])){
plotdata[v[catsColumn]] = []
for(var h = 0; h < 24; h++){
plotdata[v.category][h] = 0;
plotdata[v[catsColumn]][h] = 0;
}
}

if( hour !== hourEnd && hour !== hourBegin ){
plotdata[v.category][hour] += 3600;
plotdata[v[catsColumn]][hour] += 3600;
}
else if (hour === hourBegin && hour === hourEnd ){
plotdata[v.category][hour] += v.duration;
plotdata[v[catsColumn]][hour] += v.duration;
}
else if( hour === hourEnd ){
plotdata[v.category][hour] += secondsEnd;
plotdata[v[catsColumn]][hour] += secondsEnd;
}
else if( hour === hourBegin){
plotdata[v.category][hour] += 3600 - secondsBegin;
plotdata[v[catsColumn]][hour] += 3600 - secondsBegin;
}
}
});
Expand Down
16 changes: 12 additions & 4 deletions php/load/graphs/BarDays.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,24 @@ function createGraph(combiData, plainData, singleDayData, canvas){
* The function should return the ChartJS object.
*/

var allCategories = []
plainData.forEach(data => {
if( !allCategories.includes(data.category) ) {
allCategories.push(data.category)
}
});
var catsColumn = allCategories.length === 1 ? 'name' : 'category';

var plotdata = {}
plainData.forEach( (v) => {
var day = new Date(v.begin*1000).getDay();
if( !plotdata.hasOwnProperty(v.category)){
plotdata[v.category] = []
if( !plotdata.hasOwnProperty(v[catsColumn])){
plotdata[v[catsColumn]] = []
for(var d = 0; d < 7; d++){
plotdata[v.category][d] = 0;
plotdata[v[catsColumn]][d] = 0;
}
}
plotdata[v.category][day] += v.duration;
plotdata[v[catsColumn]][day] += v.duration;
});

Object.keys(plotdata).forEach(function(category) {
Expand Down

0 comments on commit 173cd7b

Please sign in to comment.