update
This commit is contained in:
@@ -196,6 +196,14 @@
|
|||||||
.tasks_main_view ._left_column ._projects ._project .project_delete_inline i {
|
.tasks_main_view ._left_column ._projects ._project .project_delete_inline i {
|
||||||
font-size: 10px;
|
font-size: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.gantt-target .gantt-container.gantt-draggable {
|
||||||
|
cursor: grab;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gantt-target .gantt-container.gantt-dragging {
|
||||||
|
cursor: grabbing;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
let isProgrammaticUpdate = false;
|
let isProgrammaticUpdate = false;
|
||||||
@@ -349,6 +357,64 @@
|
|||||||
});
|
});
|
||||||
console.log(gantt_chart);
|
console.log(gantt_chart);
|
||||||
|
|
||||||
|
function setupGanttDragScroll( ganttChart )
|
||||||
|
{
|
||||||
|
if ( !ganttChart || !ganttChart.$container )
|
||||||
|
return;
|
||||||
|
|
||||||
|
var ganttContainer = ganttChart.$container;
|
||||||
|
if ( ganttContainer.dataset.dragScrollBound === '1' )
|
||||||
|
return;
|
||||||
|
|
||||||
|
var dragState = {
|
||||||
|
isDragging: false,
|
||||||
|
startX: 0,
|
||||||
|
startScrollLeft: 0
|
||||||
|
};
|
||||||
|
var ignoredSelector = '.bar-wrapper, .handle, .popup-wrapper, .arrow, .bar-label, .title, .subtitle, .tools, .date, .upper-text, .lower-text, #add, #edit, #valid, #more';
|
||||||
|
|
||||||
|
ganttContainer.dataset.dragScrollBound = '1';
|
||||||
|
ganttContainer.classList.add( 'gantt-draggable' );
|
||||||
|
|
||||||
|
ganttContainer.addEventListener( 'mousedown', function( event ) {
|
||||||
|
if ( event.button !== 0 )
|
||||||
|
return;
|
||||||
|
|
||||||
|
var eventTarget = event.target;
|
||||||
|
if ( !eventTarget || typeof eventTarget.closest !== 'function' )
|
||||||
|
return;
|
||||||
|
|
||||||
|
if ( eventTarget.closest( ignoredSelector ) )
|
||||||
|
return;
|
||||||
|
|
||||||
|
dragState.isDragging = true;
|
||||||
|
dragState.startX = event.pageX;
|
||||||
|
dragState.startScrollLeft = ganttContainer.scrollLeft;
|
||||||
|
ganttContainer.classList.add( 'gantt-dragging' );
|
||||||
|
document.body.style.userSelect = 'none';
|
||||||
|
event.preventDefault();
|
||||||
|
} );
|
||||||
|
|
||||||
|
document.addEventListener( 'mousemove', function( event ) {
|
||||||
|
if ( !dragState.isDragging )
|
||||||
|
return;
|
||||||
|
|
||||||
|
var horizontalOffset = event.pageX - dragState.startX;
|
||||||
|
ganttContainer.scrollLeft = dragState.startScrollLeft - horizontalOffset;
|
||||||
|
} );
|
||||||
|
|
||||||
|
document.addEventListener( 'mouseup', function() {
|
||||||
|
if ( !dragState.isDragging )
|
||||||
|
return;
|
||||||
|
|
||||||
|
dragState.isDragging = false;
|
||||||
|
ganttContainer.classList.remove( 'gantt-dragging' );
|
||||||
|
document.body.style.userSelect = '';
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
|
||||||
|
setupGanttDragScroll( gantt_chart );
|
||||||
|
|
||||||
function reload_tasks( projects, users )
|
function reload_tasks( projects, users )
|
||||||
{
|
{
|
||||||
//load tasks by ajax
|
//load tasks by ajax
|
||||||
|
|||||||
Reference in New Issue
Block a user