Arcady Zherdev
13 October 2021

Inactive tasks feature

In recent months we received several requests for having inactive tasks in our Gantt chart. We are happy to report […]

In recent months we received several requests for having inactive tasks in our Gantt chart. We are happy to report that this feature is now available in Bryntum Gantt v4.3.0. The feature allows users to keep certain tasks in the project plan while disabling their effect on the scheduling. This is useful when using a common project pattern for multiple cases so tasks that are not needed in some individual project can be deactivated while maintaining the project’s general structure.

What are inactive tasks?

Unlike removing a task, inactivating a task provides more flexibility since it keeps the task record and allows users to activate it anytime later if circumstances change. So a project manager can easily deactivate certain tasks during the planning stage just to see what happens to the project schedule if they did not exist.

The Gantt displays the tasks using strike-out in the left grid section and renders a gray colored bar in the time axis section.

.b-gantt-body-wrap { font-size : 15px; }

Impact on project scheduling

Inactive tasks are excluded from the scheduling process so they do not affect regular active tasks. They do not push their active successors (but still push inactive ones) and do not roll up their attributes (startDate, endDate, percentDone and effort) to their active parents (but still do so for inactive ones).
Activating or deactivating a summary task also toggles the state of all its children. Activating a child task in turn activates its summary tasks and deactivating all child tasks also deactivates their summary task.

.b-gantt-body-wrap { font-size : 15px; }

Inactive tasks do not affect resource allocation and thus are not taken into account by the resource histogram.

Making a task inactive

To make a task inactive on the data level, set its inactive field:

// make the task inactive
task.inactive = true

Or use the setInactive method:

// make the task inactive and wait till rescheduling is done
await task.setInactive(true)

/* here rescheduling is done */

On the user interface level it can be done with the “Inactive” column demonstrated in the above examples.

or with the “Inactive” checkbox in the task editor “Advanced” tab:

Inactive checkbox in the task editor

Impact on critical paths

Inactive tasks naturally cannot be a part of any critical path so they are never highlighted by that feature.

.b-gantt-body-wrap { font-size : 15px; }

Rollups feature

Inactive task bars are not displayed on their active parent tasks when using the rollups feature. But inactive task bars are displayed on their inactive parent tasks.

.b-gantt-body-wrap { font-size : 15px; }

Progress line feature

The feature treats inactive tasks as not started and draws the progress line respectively (line is rendered at statusDate for not started tasks).

.b-gantt-body-wrap { font-size : 15px; }

MS Project feature difference

It is worth mentioning that the inactive tasks feature in MS Project behaves a bit different. Given the following data structure: T1->T2->T3 where T1,T2 and T3 are tasks linked sequentially with Finish-To-Start dependencies.
if we inactivate T2 task in MS Project T3 task will start treating T1 as its implicit predecessor and will shift to T1 end date.
In Bryntum Gantt the T3 task will not treat T1 as its predecessor and thus will shift to the project start instead.

We have decided to `await` user feedback before implementing this predecessor inheritance. So please let us know in forums or in this feature request if you need this or any other changes made to the feature.

Bryntum Gantt Product updates