Browse Source

Fix s curve date range

pull/1/head
Wahyu Ramadhan 1 year ago
parent
commit
5c218bb399
  1. 46
      view-mode/function/overlaySCurve.js

46
view-mode/function/overlaySCurve.js

@ -118,28 +118,30 @@ function getProgressLine(){
return {planned: cumulativePlannedDurations, real: cumulativeRealDurations, dates: dates}; return {planned: cumulativePlannedDurations, real: cumulativeRealDurations, dates: dates};
} }
function getScalePaddings(){ function getScalePaddings(values){
var scale = gantt.getScale(); var scale = gantt.getScale();
var dataRange = gantt.getSubtaskDates(); var dataRange = gantt.getSubtaskDates();
let minDate = new Date(); // let minDate = new Date();
let maxDate = new Date(); // let maxDate = new Date();
let minValueDate = new Date(values.dates[0]);
let maxValueDate = new Date(values.dates[values.dates.length -1]);
gantt.eachTask(function(task){ // gantt.eachTask(function(task){
let plannedEarlier = task.planned_start < task.start_date; // let plannedEarlier = task.planned_start < task.start_date;
let plannedLater = task.planned_end > task.end_date; // let plannedLater = task.planned_end > task.end_date;
if (plannedEarlier) { // if (plannedEarlier) {
minDate = new Date(Math.min(minDate.getTime(), task.planned_start.getTime())); // minDate = new Date(Math.min(minDate.getTime(), task.planned_start.getTime()));
} else { // } else {
minDate = new Date(Math.min(minDate.getTime(), task.start_date.getTime())); // minDate = new Date(Math.min(minDate.getTime(), task.start_date.getTime()));
} // }
if (plannedLater) { // if (plannedLater) {
maxDate = new Date(Math.max(maxDate.getTime(), task.planned_end.getTime())); // maxDate = new Date(Math.max(maxDate.getTime(), task.planned_end.getTime()));
} else { // } else {
maxDate = new Date(Math.max(maxDate.getTime(), task.end_date.getTime())); // maxDate = new Date(Math.max(maxDate.getTime(), task.end_date.getTime()));
} // }
}) // })
var padding = { var padding = {
left:0, left:0,
@ -147,10 +149,10 @@ function getScalePaddings(){
}; };
if(dataRange.start_date){ if(dataRange.start_date){
var yScaleLabelsWidth = 48; // var yScaleLabelsWidth = 48;
// fine tune values in order to align chart with the scale range // fine tune values in order to align chart with the scale range
padding.left = gantt.posFromDate(minDate) - yScaleLabelsWidth; padding.left = gantt.posFromDate(minValueDate);
padding.right = scale.full_width - gantt.posFromDate(maxDate) - yScaleLabelsWidth; padding.right = scale.full_width - gantt.posFromDate(maxValueDate);
padding.top = gantt.config.row_height - 12; padding.top = gantt.config.row_height - 12;
padding.bottom = gantt.config.row_height - 12; padding.bottom = gantt.config.row_height - 12;
} }
@ -213,13 +215,13 @@ var lineOverlay = overlayControl.addOverlay(function(container) {
responsive: true, responsive: true,
maintainAspectRatio: false, maintainAspectRatio: false,
layout: { layout: {
padding: getScalePaddings() padding: getScalePaddings(values)
}, },
onResize: function(chart, newSize) { onResize: function(chart, newSize) {
var dataRange = gantt.getSubtaskDates(); var dataRange = gantt.getSubtaskDates();
if(dataRange.start_date){ if(dataRange.start_date){
// align chart with the scale range // align chart with the scale range
chart.options.layout.padding = getScalePaddings(); chart.options.layout.padding = getScalePaddings(values);
} }
}, },
legend: { legend: {

Loading…
Cancel
Save