Our state of the art Gantt chart


Post by sandippatel »

Hello

I am facing weird issue in my project. I have tasks and each has start date. But when render it on Gantt chart it shows wrong start date.

Please find the attached screenshot. I am using React Advance demo with following .json.

invalid start.PNG
invalid start.PNG (104.37 KiB) Viewed 76 times
loadjson.json
(8.22 KiB) Downloaded 13 times

Post by pmiklashevich »

Hello,

It works as expected. Project start date is required to be passed to perform calculations. We take it as the earliest SPECIFIED date in the data. Not calculated date. And then we never update the project start date automatically. So you can try to update the project start date when the calculation is done and data is ready. There are 'refresh' and 'dataready' events on the project. There is a ticket to make them public: https://github.com/bryntum/support/issues/2019

So you can try to do the following (just a concept to show the idea):

const calcStartDate = taskStore => {
    let startDate = taskStore.getTotalTimeSpan().endDate;

if (startDate) {
    taskStore.forEach(task => {
        if (task.startDate.getTime() <= startDate.getTime()) {
            startDate = task.startDate;
        }
    });
}

return startDate;
};

gantt.project.on({
    dataReady : () => {
        const startDate = calcStartDate(gantt.taskStore);

    if (startDate && (startDate.getTime() !== gantt.project.startDate?.getTime())) {
        console.log('Project start date is updated');
        gantt.project.startDate = new Date(startDate.getTime());
    }
}
});

I've opened a feature request to provide a config to track project changes and update its start date automatically. https://github.com/bryntum/support/issues/2274

Best,
Pavel

Pavel Miklashevich - Core Developer

Post Reply