{"id":6394,"date":"2019-07-16T16:55:23","date_gmt":"2019-07-16T13:55:23","guid":{"rendered":"https:\/\/dhtmlx.com\/blog\/?p=6394"},"modified":"2026-09-15T15:52:41","modified_gmt":"2026-09-15T12:52:41","slug":"dhtmlxgantt-6-2-minor-update-boosting-gantt-chart-performance-zooming-mouse-wheel-much","status":"publish","type":"post","link":"https:\/\/dhtmlx.com\/blog\/dhtmlxgantt-6-2-minor-update-boosting-gantt-chart-performance-zooming-mouse-wheel-much\/","title":{"rendered":"dhtmlxGantt 6.2 Minor Update: Boosting Gantt Chart Performance, Zooming by Mouse Wheel, and Much More"},"content":{"rendered":"<p>Despite summer being traditionally the holiday season, the development of JavaScript components never stops at DHTMLX. Our dev team delivered an extensive update of the <a href=\"https:\/\/dhtmlx.com\/docs\/products\/dhtmlxGantt\/\" rel=\"noopener\" target=\"_blank\">JavaScript Gantt library<\/a> hugely boosting its performance and presenting new features. Now our Gantt together with its resource panel is much more rapid than ever before. We also added such new possibilities as zooming by mouse wheel, creating tasks by drag-n-drop right from the timeline, and expanding split tasks. On top of all, we improved the work of inline editors, cleaned up the API and fixed some smaller issues.<\/p>\n<p>Try out all the new features in a free <a href=\"https:\/\/dhtmlx.com\/docs\/products\/dhtmlxGantt\/download.shtml\" rel=\"noopener\" target=\"_blank\">30-day evaluation version ><\/a><\/p>\n<h5>Boosting Gantt Chart Performance<\/h5>\n<p>The smart rendering extension underwent a major update, which boosted Gantt chart performance, in resource panels in particular. Now the extension is included in the main component by default.<\/p>\n<p>In practice, it means that:<br \/>\n1) You should see a major performance improvement for large charts, especially if you use the resource panel.<br \/>\n2) We removed dhtmlxgantt_smart_rendering.js extension from the package, as it became redundant.<br \/>\n3) Using <strong>static_background<\/strong> config is no longer necessary. Now a default background is rendered with the ability to highlight individual columns and cells of the timeline.<\/p>\n<p>No specific settings are now needed to address the rendering performance. Everything should work blazingly fast out of the box.<\/p>\n<p>Surely, there is still room for further improvements, and we&#8217;re going to work on accelerating dhtmlxGantt in future updates.<\/p>\n<h5>New Module for Timeline Zooming<\/h5>\n<p>In v6.2 the zooming feature became much more intuitive and user-friendly both for developers and end users. We introduced a new <a href=\"https:\/\/docs.dhtmlx.com\/gantt\/desktop__zooming.html\" rel=\"noopener\" target=\"_blank\">zooming module<\/a>, which provides a simple API for managing zoom levels of the Gantt chart.<\/p>\n<p>Firstly, there is an ability to set up the available zoom levels and manage them using simple <strong>Zoom In<\/strong> and <strong>Zoom Out<\/strong> methods. To define the available zoom levels:<\/p>\n<div class=\"codecolorer-container javascript default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;height:600px;\"><div class=\"javascript codecolorer\"><span class=\"kw1\">const<\/span> zoomModule <span class=\"sy0\">=<\/span> gantt.<span class=\"me1\">ext<\/span>.<span class=\"me1\">zoom<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\nzoomModule.<span class=\"me1\">init<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; levels<span class=\"sy0\">:<\/span> <span class=\"br0\">&#91;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; name<span class=\"sy0\">:<\/span><span class=\"st0\">&quot;day&quot;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; scale_height<span class=\"sy0\">:<\/span> <span class=\"nu0\">27<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; min_column_width<span class=\"sy0\">:<\/span><span class=\"nu0\">80<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; scales<span class=\"sy0\">:<\/span><span class=\"br0\">&#91;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#123;<\/span>unit<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;day&quot;<\/span><span class=\"sy0\">,<\/span> step<span class=\"sy0\">:<\/span> <span class=\"nu0\">1<\/span><span class=\"sy0\">,<\/span> format<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;%d %M&quot;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#93;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;name<span class=\"sy0\">:<\/span><span class=\"st0\">&quot;week&quot;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;scale_height<span class=\"sy0\">:<\/span> <span class=\"nu0\">50<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;min_column_width<span class=\"sy0\">:<\/span><span class=\"nu0\">50<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;scales<span class=\"sy0\">:<\/span><span class=\"br0\">&#91;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#123;<\/span>unit<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;week&quot;<\/span><span class=\"sy0\">,<\/span> step<span class=\"sy0\">:<\/span> <span class=\"nu0\">1<\/span><span class=\"sy0\">,<\/span> format<span class=\"sy0\">:<\/span> <span class=\"kw1\">function<\/span> <span class=\"br0\">&#40;<\/span>date<span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"kw1\">var<\/span> dateToStr <span class=\"sy0\">=<\/span> gantt.<span class=\"me1\">date<\/span>.<span class=\"me1\">date_to_str<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;%d %M&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"kw1\">var<\/span> endDate <span class=\"sy0\">=<\/span> gantt.<span class=\"me1\">date<\/span>.<span class=\"me1\">add<\/span><span class=\"br0\">&#40;<\/span>date<span class=\"sy0\">,<\/span> <span class=\"sy0\">-<\/span><span class=\"nu0\">6<\/span><span class=\"sy0\">,<\/span> <span class=\"st0\">&quot;day&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"kw1\">var<\/span> weekNum <span class=\"sy0\">=<\/span> gantt.<span class=\"me1\">date<\/span>.<span class=\"me1\">date_to_str<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;%W&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#40;<\/span>date<span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"kw1\">return<\/span> <span class=\"st0\">&quot;#&quot;<\/span> <span class=\"sy0\">+<\/span> weekNum <span class=\"sy0\">+<\/span> <span class=\"st0\">&quot;, &quot;<\/span> <span class=\"sy0\">+<\/span> dateToStr<span class=\"br0\">&#40;<\/span>date<span class=\"br0\">&#41;<\/span> <span class=\"sy0\">+<\/span> <span class=\"st0\">&quot; - &quot;<\/span> <span class=\"sy0\">+<\/span> dateToStr<span class=\"br0\">&#40;<\/span>endDate<span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"br0\">&#125;<\/span><span class=\"br0\">&#125;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"br0\">&#123;<\/span>unit<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;day&quot;<\/span><span class=\"sy0\">,<\/span> step<span class=\"sy0\">:<\/span> <span class=\"nu0\">1<\/span><span class=\"sy0\">,<\/span> format<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;%j %D&quot;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"br0\">&#93;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"br0\">&#125;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;name<span class=\"sy0\">:<\/span><span class=\"st0\">&quot;month&quot;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;scale_height<span class=\"sy0\">:<\/span> <span class=\"nu0\">50<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;min_column_width<span class=\"sy0\">:<\/span><span class=\"nu0\">120<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;scales<span class=\"sy0\">:<\/span><span class=\"br0\">&#91;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#123;<\/span>unit<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;month&quot;<\/span><span class=\"sy0\">,<\/span> format<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;%F, %Y&quot;<\/span><span class=\"br0\">&#125;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#123;<\/span>unit<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;week&quot;<\/span><span class=\"sy0\">,<\/span> format<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;Week #%W&quot;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"br0\">&#93;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;name<span class=\"sy0\">:<\/span><span class=\"st0\">&quot;quarter&quot;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;height<span class=\"sy0\">:<\/span> <span class=\"nu0\">50<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;min_column_width<span class=\"sy0\">:<\/span><span class=\"nu0\">90<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;scales<span class=\"sy0\">:<\/span><span class=\"br0\">&#91;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#123;<\/span>unit<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;month&quot;<\/span><span class=\"sy0\">,<\/span> step<span class=\"sy0\">:<\/span> <span class=\"nu0\">1<\/span><span class=\"sy0\">,<\/span> format<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;%M&quot;<\/span><span class=\"br0\">&#125;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;unit<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;quarter&quot;<\/span><span class=\"sy0\">,<\/span> step<span class=\"sy0\">:<\/span> <span class=\"nu0\">1<\/span><span class=\"sy0\">,<\/span> format<span class=\"sy0\">:<\/span> <span class=\"kw1\">function<\/span> <span class=\"br0\">&#40;<\/span>date<span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">var<\/span> dateToStr <span class=\"sy0\">=<\/span> gantt.<span class=\"me1\">date<\/span>.<span class=\"me1\">date_to_str<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;%M&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">var<\/span> endDate <span class=\"sy0\">=<\/span> gantt.<span class=\"me1\">date<\/span>.<span class=\"me1\">add<\/span><span class=\"br0\">&#40;<\/span>gantt.<span class=\"me1\">date<\/span>.<span class=\"me1\">add<\/span><span class=\"br0\">&#40;<\/span>date<span class=\"sy0\">,<\/span> <span class=\"nu0\">3<\/span><span class=\"sy0\">,<\/span> <span class=\"st0\">&quot;month&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span> <span class=\"sy0\">-<\/span><span class=\"nu0\">1<\/span><span class=\"sy0\">,<\/span> <span class=\"st0\">&quot;day&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">return<\/span> dateToStr<span class=\"br0\">&#40;<\/span>date<span class=\"br0\">&#41;<\/span> <span class=\"sy0\">+<\/span> <span class=\"st0\">&quot; - &quot;<\/span> <span class=\"sy0\">+<\/span> dateToStr<span class=\"br0\">&#40;<\/span>endDate<span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#93;<\/span><span class=\"br0\">&#125;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; name<span class=\"sy0\">:<\/span><span class=\"st0\">&quot;year&quot;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; scale_height<span class=\"sy0\">:<\/span> <span class=\"nu0\">50<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; min_column_width<span class=\"sy0\">:<\/span> <span class=\"nu0\">30<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; scales<span class=\"sy0\">:<\/span><span class=\"br0\">&#91;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#123;<\/span>unit<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;year&quot;<\/span><span class=\"sy0\">,<\/span> step<span class=\"sy0\">:<\/span> <span class=\"nu0\">1<\/span><span class=\"sy0\">,<\/span> format<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;%Y&quot;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#93;<\/span><span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#93;<\/span><br \/>\n<span class=\"br0\">&#125;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><\/div><\/div>\n<p>And to manage zoom levels:<\/p>\n<div class=\"codecolorer-container javascript default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;\"><div class=\"javascript codecolorer\">zoomModule.<span class=\"me1\">setLevel<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;year&quot;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n<span class=\"co1\">\/\/ or<\/span><br \/>\nzoomModule.<span class=\"me1\">zoomIn<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<br \/>\n<span class=\"co1\">\/\/ or<\/span><br \/>\nzoomModule.<span class=\"me1\">zoomOut<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><\/div><\/div>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2019\/07\/zoom.gif\" alt=\"Gantt zoom levels\" width=\"900\" height=\"526\" class=\"aligncenter size-full wp-image-6413\" \/><a href=\"https:\/\/docs.dhtmlx.com\/gantt\/samples\/03_scales\/05_dynamic_scales.html\" rel=\"noopener\" target=\"_blank\">Check the sample ><\/a><\/p>\n<p>Secondly, and most importantly, end users can switch between Gantt chart scales just with the help of the mouse wheel:<br \/>\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2019\/07\/zoom_mouse2.gif\" alt=\"Gantt zoom by mouse wheel \" width=\"900\" height=\"526\" class=\"aligncenter size-full wp-image-6411\" \/><a href=\"https:\/\/docs.dhtmlx.com\/gantt\/samples\/03_scales\/14_scale_zoom_by_wheelmouse.html\" rel=\"noopener\" target=\"_blank\">Check the sample ><\/a><\/p>\n<h5>Expanding and Collapsing Split Tasks [PRO]<\/h5>\n<p>With v6.2 end users can <a href=\"https:\/\/docs.dhtmlx.com\/gantt\/desktop__split_tasks.html#expandingcollapsingsplittasks\" rel=\"noopener\" target=\"_blank\">expand and collapse<\/a> split tasks from the interface of the grid in order to view them as separate subtasks and manage them conveniently. This feature is turned on with the help of a new configuration option <strong>open_split_tasks<\/strong>:<\/p>\n<div class=\"codecolorer-container javascript default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;\"><div class=\"javascript codecolorer\">gantt.<span class=\"me1\">config<\/span>.<span class=\"me1\">open_split_tasks<\/span> <span class=\"sy0\">=<\/span> <span class=\"kw2\">true<\/span><span class=\"sy0\">;<\/span><\/div><\/div>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2019\/07\/Expanding-split-tasks-1.png\" alt=\"Expanding split tasks\" width=\"849\" height=\"456\" class=\"aligncenter size-full wp-image-6408\" srcset=\"https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2019\/07\/Expanding-split-tasks-1.png 849w, https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2019\/07\/Expanding-split-tasks-1-300x161.png 300w, https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2019\/07\/Expanding-split-tasks-1-768x412.png 768w\" sizes=\"auto, (max-width: 849px) 100vw, 849px\" \/><a href=\"https:\/\/docs.dhtmlx.com\/gantt\/samples\/04_customization\/21_open_split_task.html\" rel=\"noopener\" target=\"_blank\">Check the sample ><\/a> <\/p>\n<h5>Improved Drag-n-Drop<\/h5>\n<p>We are always looking for ways of improving the user experience of dhtmlxGantt. As a part of this endeavor, we introduced a module with an updated drag-n-drop feature. Using this module, you can create new tasks directly in the timeline area of the Gantt chart.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2019\/07\/creating-new-tasks.gif\" alt=\"Creating new Gantt tasks\" width=\"900\" height=\"493\" class=\"aligncenter size-full wp-image-6419\" \/><a href=\"https:\/\/docs.dhtmlx.com\/gantt\/samples\/02_extensions\/24_click_drag.html\" rel=\"noopener\" target=\"_blank\">Check the sample ><\/a><\/p>\n<p>Besides, the new module provides an API that you can use to bind drag-n-drop to any behavior you need like selecting multiple tasks in order to move them across the timeline, adding a note to the area in the timeline, creating split tasks, setting time of unscheduled tasks, etc.<\/p>\n<p>Selecting multiple tasks and moving them:<br \/>\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2019\/07\/multiple_selection.gif\" alt=\"Multiple selection of Gantt tasks\" width=\"900\" height=\"551\" class=\"aligncenter size-full wp-image-6434\" \/><a href=\"https:\/\/docs.dhtmlx.com\/gantt\/samples\/02_extensions\/25_click_drag_select_by_drag.html\" rel=\"noopener\" target=\"_blank\">Check the sample ><\/a><\/p>\n<p>Creating subtasks of split tasks using drag-n-drop in the timeline area:<br \/>\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2019\/07\/split_tasks_drag.gif\" alt=\"Split tasks with drag-n-drop in Gantt\" width=\"900\" height=\"351\" class=\"aligncenter size-full wp-image-6440\" \/><a href=\"https:\/\/docs.dhtmlx.com\/gantt\/samples\/02_extensions\/23_click_drag_splittask.html\" rel=\"noopener\" target=\"_blank\">Check the sample ><\/a><\/p>\n<h5>Inline Editors Update<\/h5>\n<p>Another UX improvement concerns the work of inline editors. We changed their default behavior following the patterns of popular apps like MS Project. Now changing the start date triggers a task to move, changing the end date modifies the duration of a task, and changing the duration modifies the end date. <a href=\"https:\/\/docs.dhtmlx.com\/gantt\/desktop__inline_editing.html\" rel=\"noopener\" target=\"_blank\">Learn more in our docs ><\/a><\/p>\n<p>However, you are free to stick to the old behavior of inline editors with the help of the following configuration option <strong>gantt.config.inline_editors_date_processing<\/strong>:<\/p>\n<div class=\"codecolorer-container javascript default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;\"><div class=\"javascript codecolorer\">gantt.<span class=\"me1\">config<\/span>.<span class=\"me1\">inline_editors_date_processing<\/span> <span class=\"sy0\">=<\/span> <span class=\"st0\">&quot;keepDuration&quot;<\/span><span class=\"sy0\">;<\/span><\/div><\/div>\n<h5>Enhanced Setup of the Timeline Scale<\/h5>\n<p>The update introduced an easier way to <a href=\"https:\/\/docs.dhtmlx.com\/gantt\/desktop__configuring_time_scale.html\" rel=\"noopener\" target=\"_blank\">set up scales of the timeline<\/a> by reducing the number of configuration options to one <strong>gantt.config.scales<\/strong>. Now developers can configure all the available scales using this configuration option alone:<\/p>\n<div class=\"codecolorer-container javascript default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;\"><div class=\"javascript codecolorer\">gantt.<span class=\"me1\">config<\/span>.<span class=\"me1\">scales<\/span> <span class=\"sy0\">=<\/span> <span class=\"br0\">&#91;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#123;<\/span>unit<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;month&quot;<\/span><span class=\"sy0\">,<\/span> step<span class=\"sy0\">:<\/span> <span class=\"nu0\">1<\/span><span class=\"sy0\">,<\/span> format<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;%F, %Y&quot;<\/span><span class=\"br0\">&#125;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#123;<\/span>unit<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;week&quot;<\/span><span class=\"sy0\">,<\/span> step<span class=\"sy0\">:<\/span> <span class=\"nu0\">1<\/span><span class=\"sy0\">,<\/span> format<span class=\"sy0\">:<\/span> weekScaleTemplate<span class=\"br0\">&#125;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#123;<\/span>unit<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;day&quot;<\/span><span class=\"sy0\">,<\/span> step<span class=\"sy0\">:<\/span> <span class=\"nu0\">1<\/span><span class=\"sy0\">,<\/span> format<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;%D&quot;<\/span><span class=\"sy0\">,<\/span> css<span class=\"sy0\">:<\/span>daysStyle <span class=\"br0\">&#125;<\/span><br \/>\n<span class=\"br0\">&#93;<\/span><span class=\"sy0\">;<\/span><\/div><\/div>\n<p>Old settings will be deprecated. However, you may still keep on using them in your current projects, although we recommend switching to the updated settings in new projects.<\/p>\n<h5>API Update and Other Improvements<\/h5>\n<p>Besides the changes in the API described above, we replaced several other configs and templates with more intuitive ones. Please check the details <a href=\"https:\/\/docs.dhtmlx.com\/gantt\/migrating.html#6162\" rel=\"noopener\" target=\"_blank\">in the migration guide ><\/a><\/p>\n<p>Other minor issues were fixed in v6.2:<\/p>\n<ul>\n<li>Multiple tasks highlighting resets after rendering<\/li>\n<li>Script error when destroying Gantt from data processor handler<\/li>\n<\/ul>\n<p>We hope that the update of dhtmlxGantt 6.2 will come in useful in your projects. You may get the latest <a href=\"https:\/\/dhtmlx.com\/docs\/products\/dhtmlxGantt\/download.shtml\" rel=\"noopener\" target=\"_blank\">trial version<\/a> on the download page. Current clients will receive the updated package in their <a href=\"https:\/\/dhtmlx.com\/clients\/\" rel=\"noopener\" target=\"_blank\">Client Area<\/a>. <\/p>\n<p>We&#8217;ll be looking forward to your feedback! Stay tuned!<\/p>\n<h5>Related Materials:<\/h5>\n<ul>\n<li><a href=\"https:\/\/docs.dhtmlx.com\/gantt\/whatsnew.html#62\" rel=\"noopener\" target=\"_blank\">Full &#8220;What&#8217;s New&#8221; list<\/a><\/li>\n<li><a href=\"https:\/\/docs.dhtmlx.com\/gantt\/demos\/\" rel=\"noopener\" target=\"_blank\">Gantt chart samples<\/a><\/li>\n<li><a href=\"https:\/\/dhtmlx.com\/docs\/products\/dhtmlxGantt\/download.shtml\" rel=\"noopener\" target=\"_blank\">Free 30-day trial version<\/a><\/li>\n<li><a href=\"https:\/\/trello.com\/b\/fhOySHPj\/gantt-roadmap\" rel=\"noopener\" target=\"_blank\">dhtmlxGantt roadmap<\/a><\/li>\n","protected":false},"excerpt":{"rendered":"<p>Despite summer being traditionally the holiday season, the development of JavaScript components never stops at DHTMLX. Our dev team delivered an extensive update of the JavaScript Gantt library hugely &#8230;<\/p>\n","protected":false},"author":101012,"featured_media":6439,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[70,1,38],"tags":[33,20,4],"class_list":["post-6394","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-releases","category-uncategorized","category-visible","tag-all-posts","tag-gantt","tag-dhtmlx-updates"],"_links":{"self":[{"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/posts\/6394","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/users\/101012"}],"replies":[{"embeddable":true,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/comments?post=6394"}],"version-history":[{"count":2,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/posts\/6394\/revisions"}],"predecessor-version":[{"id":15900,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/posts\/6394\/revisions\/15900"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/media\/6439"}],"wp:attachment":[{"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/media?parent=6394"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/categories?post=6394"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/tags?post=6394"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}