You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Documentation for the DHTMLX Gantt library lives here.
4
+
5
+
Always read/write files as UTF-8 without BOM.
6
+
7
+
Do not run `docusaurus build` to verify docs unless directly asked or unless it is clearly necessary. The build process may take up to 10-15 minutes. You can build a specific locale using the `--locale` parameter with a language code, e.g. `docusaurus build --locale en`.
8
+
9
+
For cross-article links in docs, use markdown file paths relative to the `docs` folder, not URL paths or paths relative to the current article, e.g. `[copyright](guides/copyright.md)`. These links are transformed to URL path links during build (`local_modules/dhx-md-data-parser/index.js`). For pages stored as `index.md`, do not include `/index.md`; use the generated article path format expected by the parser - e.g. bad: `[react](integrations/react/index.md)`, good: `[react](integrations/react.md)`.
10
+
11
+
If a page is deleted or its slug changes, add redirects from the old URL to `docker/redirects.conf` for the English version and all translations.
12
+
13
+
When editing docs/specs/prose, preserve the existing structure and wording unless the requested change requires otherwise. Prefer small targeted patches over full rewrites.
14
+
15
+
`llms.txt` and the markdown version of the documentation are generated from the content of `docs` during build and are located in the `static` folder. Do not modify `static/llms-md` and `static/llms.txt` directly. To modify `llms.txt` or the markdown version of docs, refer to the `gantt-docs\plugins\dhx-llms-plugin\index.js` plugin.
16
+
17
+
Translations live in the `i18n` folder. They are updated on a semi-regular basis and can be modified directly; direct changes are not expected to be lost during re-translation.
Controls whether a task landing on its own non-working time is reported as a conflict.
272
+
273
+
~~~jsx
274
+
gantt.config.auto_scheduling= {
275
+
enabled:true,
276
+
strict_calendar:true
277
+
};
278
+
~~~
279
+
280
+
When set to `true`, the [onAutoScheduleConflict](api/event/onautoscheduleconflict.md) event fires (with `kind: "calendar-non-working"`) whenever scheduling moves a task onto its own non-working time. The task date is applied in both modes - this option only controls whether the situation is reported, so you can surface it in the UI.
Note that you should specify the configuration of layout before Gantt initialization. If you make changes in the layout, you need to refresh it using [resetLayout](api/method/resetlayout.md).
39
+
Note that you should specify the layout configuration before Gantt initialization. If you make changes to the layout, you need to refresh it using [`resetLayout()`](api/method/resetlayout.md).
40
40
:::
41
41
42
42
### Related API
@@ -46,4 +46,3 @@ Note that you should specify the configuration of layout before Gantt initializa
46
46
-[Gantt Layout](guides/layout-config.md)
47
47
-[How-tos](guides/how-to.md#how-to-toggle-gridchart) (read how to toggle grid/chart)
48
48
-[How-tos](guides/how-to.md#how-to-toggle-the-resource-view) (read how to toggle the resource view)
Copy file name to clipboardExpand all lines: docs/api/config/start_date.md
+18-22Lines changed: 18 additions & 22 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,40 +15,37 @@ description: "sets the start value of the time scale"
15
15
### Example
16
16
17
17
~~~jsx
18
-
gantt.config.start_date=newDate(2018, 08, 10);
19
-
gantt.config.end_date=newDate(2018, 08, 20);
20
-
18
+
gantt.config.start_date=newDate(2027, 8, 10);
19
+
gantt.config.end_date=newDate(2027, 8, 20);
20
+
21
21
gantt.init("gantt_here");
22
22
~~~
23
23
24
24
### Details
25
25
26
26
:::note
27
-
To apply the **start_date** option, you must use it in pair with the [end_date](api/config/end_date.md) one.
27
+
To apply the `start_date` option, you must use it together with [end_date](api/config/end_date.md).
28
28
:::
29
29
30
-
- If both the **start_date** and **end_date** options are specified and you create a task that is outside the range, the task will disappear from the chart.
31
-
- Optional parameters of the [init](api/method/init.md) method can be used as initial values of [start_date](api/config/start_date.md) and [end_date](api/config/end_date.md).
30
+
- If both the [start_date](api/config/start_date.md) and [end_date](api/config/end_date.md) options are specified and you create a task outside that range, the task will disappear from the chart.
31
+
- Optional parameters of [`init()`](api/method/init.md) can be used as initial values of [start_date](api/config/start_date.md) and [end_date](api/config/end_date.md).
32
32
-[start_date](api/config/start_date.md) and [end_date](api/config/end_date.md) overwrite [fit_tasks](api/config/fit_tasks.md). If you want to use these settings together, you'll need to [manage the time scale from code](guides/configuring-time-scale.md#range).
This event is defined in the **auto_scheduling** extension, so you need to activate the [auto_scheduling](guides/extensions-list.md#autoscheduling) plugin. Read the details in the [Auto Scheduling](guides/auto-scheduling.md) article.
38
+
:::
39
+
40
+
The event fires once for every conflict that auto scheduling runs into. Auto scheduling still produces a result - the event lets you surface the conflicts in the UI or react to them.
41
+
42
+
The `conflict.kind` field defines the type of the conflict and the available fields:
43
+
44
+
|`kind`| Description | Fields |
45
+
|---|---|---|
46
+
|`"constraint-violation"`| A task's constraint could not be satisfied at its scheduled position. |`taskId`, `constraintType`, `required`*(Date)*, `actual`*(Date)*|
47
+
|`"calendar-non-working"`| A task landed on its own non-working time. Reported only when [strict_calendar](api/config/auto_scheduling.md#strict_calendar) is enabled. |`taskId`, `proposedDate`*(Date)*, `snappedDate`*(Date)*|
48
+
|`"unscheduled-dependency"`| A task depends on a task that is not scheduled. |`taskId`, `blockedBy`|
49
+
50
+
Dependency loops are reported through the separate [onAutoScheduleCircularLink](api/event/onautoschedulecircularlink.md) event, not here.
This event is defined in the **auto_scheduling** extension, so you need to activate the [auto_scheduling](guides/extensions-list.md#autoscheduling) plugin. Read the details in the [Auto Scheduling](guides/auto-scheduling.md) article.
36
+
:::
37
+
38
+
Auto scheduling places tasks in repeated passes until the result stops changing. This event fires when the result keeps changing and the engine stops after a number of passes without reaching a stable state. In practice this points to an over-constrained project - for example, a set of constraints and dependencies that cannot all be satisfied at the same time.
39
+
40
+
The `result` parameter contains the details of the run:
41
+
42
+
-`iterations` - *number* - how many passes were performed.
43
+
-`converged` - *boolean* - `false` in this event.
44
+
-`conflicts` - *array* - the conflicts collected during scheduling (see [onAutoScheduleConflict](api/event/onautoscheduleconflict.md) for the conflict fields).
0 commit comments