fixed hold and drag

This commit is contained in:
Faris Ansari 2016-12-19 23:09:16 +05:30
parent 77af1bb8fb
commit 6169f11053
6 changed files with 31 additions and 59 deletions

View File

@ -34,11 +34,11 @@
start: "2016-10-0"+i,
end: "2016-10-2"+i,
name: "Task "+i,
id: i,
id: "Task"+i,
progress: i*10
}
});
tasks[0].dependencies = '2, 3';
tasks[0].dependencies = 'Task2, Task3';
var gantt_chart = gantt("#gantt", tasks, {
date_format: "YYYY-MM-DD",

View File

@ -615,6 +615,7 @@ return /******/ (function(modules) { // webpackBootstrap
}
function make_arrows() {
self._arrows = [];
var _iteratorNormalCompletion8 = true;
var _didIteratorError8 = false;
var _iteratorError8 = undefined;
@ -623,7 +624,8 @@ return /******/ (function(modules) { // webpackBootstrap
var _loop = function _loop() {
var task = _step8.value;
self._arrows = task.dependencies.map(function (dep) {
var arrows = [];
arrows = task.dependencies.map(function (dep) {
var dependency = get_task(dep);
if (!dependency) return;
@ -634,6 +636,7 @@ return /******/ (function(modules) { // webpackBootstrap
self.element_groups.arrow.add(arrow.element);
return arrow; // eslint-disable-line
});
self._arrows = self._arrows.concat(arrows);
};
for (var _iterator8 = self.tasks[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) {
@ -748,13 +751,13 @@ return /******/ (function(modules) { // webpackBootstrap
self.view_is = view_is;
function get_task(id) {
self.tasks.find(function (task) {
return self.tasks.find(function (task) {
return task.id === id;
});
}
function get_bar(id) {
self._bars.find(function (bar) {
return self._bars.find(function (bar) {
return bar.task.id === id;
});
}
@ -1321,12 +1324,6 @@ return /******/ (function(modules) { // webpackBootstrap
left.drag(onmove_left, onstart, onstop_left);
right.drag(onmove_right, onstart, onstop_right);
function onstart() {
onstart();
this.ox = this.getX();
this.oy = this.getY();
}
function onmove_right(dx, dy) {
onmove_handle_right(dx, dy);
}
@ -1351,25 +1348,15 @@ return /******/ (function(modules) { // webpackBootstrap
function bind_drag() {
self.bar_group.drag(onmove, onstart, onstop);
function onmove(dx, dy) {
onmove(dx, dy);
}
function onstop() {
onstop();
}
function onstart() {
onstart();
}
}
function bind_resize_progress() {
var bar = self.$bar,
bar_progress = self.$bar_progress,
handle = self.group.select('.handle.progress');
handle && handle.drag(onmove, onstart, onstop);
handle && handle.drag(on_move, on_start, on_stop);
function onmove(dx, dy) {
function on_move(dx, dy) {
if (dx > bar_progress.max_dx) {
dx = bar_progress.max_dx;
}
@ -1381,12 +1368,12 @@ return /******/ (function(modules) { // webpackBootstrap
handle.transform('t{dx},0');
bar_progress.finaldx = dx;
}
function onstop() {
function on_stop() {
if (!bar_progress.finaldx) return;
progress_changed();
set_action_completed();
}
function onstart() {
function on_start() {
bar_progress.finaldx = 0;
bar_progress.owidth = bar_progress.getWidth();
bar_progress.min_dx = -bar_progress.getWidth();
@ -1728,7 +1715,7 @@ return /******/ (function(modules) { // webpackBootstrap
end_x: self.end_x,
end_y: self.end_y,
down_1: gt.config.padding / 2 - self.curve,
down_2: to_task.$bar.getY() + to_task.$bar.get('height') / 2 - self.curve_y,
down_2: to_task.$bar.getY() + to_task.$bar.getHeight() / 2 - self.curve_y,
left: to_task.$bar.getX() - gt.config.padding,
offset: self.offset,
curve: self.curve,
@ -1739,12 +1726,12 @@ return /******/ (function(modules) { // webpackBootstrap
}
function draw() {
self.element = self.gantt.canvas.path(self.path).attr('data-from', self.from_task.task.id).attr('data-to', self.to_task.task.id);
self.element = gt.canvas.path(self.path).attr('data-from', self.from_task.task.id).attr('data-to', self.to_task.task.id);
}
function update() {
// eslint-disable-line
self.prepare();
prepare();
self.element.attr('d', self.path);
}
self.update = update;

File diff suppressed because one or more lines are too long

View File

@ -77,7 +77,7 @@ export default function Arrow(gt, from_task, to_task) {
end_x: self.end_x,
end_y: self.end_y,
down_1: gt.config.padding / 2 - self.curve,
down_2: to_task.$bar.getY() + to_task.$bar.get('height') / 2 - self.curve_y,
down_2: to_task.$bar.getY() + to_task.$bar.getHeight() / 2 - self.curve_y,
left: to_task.$bar.getX() - gt.config.padding,
offset: self.offset,
curve: self.curve,
@ -88,13 +88,13 @@ export default function Arrow(gt, from_task, to_task) {
}
function draw() {
self.element = self.gantt.canvas.path(self.path)
self.element = gt.canvas.path(self.path)
.attr('data-from', self.from_task.task.id)
.attr('data-to', self.to_task.task.id);
}
function update() { // eslint-disable-line
self.prepare();
prepare();
self.element.attr('d', self.path);
}
self.update = update;

View File

@ -225,12 +225,6 @@ export default function Bar(gt, task) {
left.drag(onmove_left, onstart, onstop_left);
right.drag(onmove_right, onstart, onstop_right);
function onstart() {
onstart();
this.ox = this.getX();
this.oy = this.getY();
}
function onmove_right(dx, dy) {
onmove_handle_right(dx, dy);
}
@ -255,25 +249,15 @@ export default function Bar(gt, task) {
function bind_drag() {
self.bar_group.drag(onmove, onstart, onstop);
function onmove(dx, dy) {
onmove(dx, dy);
}
function onstop() {
onstop();
}
function onstart() {
onstart();
}
}
function bind_resize_progress() {
const bar = self.$bar,
bar_progress = self.$bar_progress,
handle = self.group.select('.handle.progress');
handle && handle.drag(onmove, onstart, onstop);
handle && handle.drag(on_move, on_start, on_stop);
function onmove(dx, dy) {
function on_move(dx, dy) {
if (dx > bar_progress.max_dx) {
dx = bar_progress.max_dx;
}
@ -285,12 +269,12 @@ export default function Bar(gt, task) {
handle.transform(`t{dx},0`);
bar_progress.finaldx = dx;
}
function onstop() {
function on_stop() {
if (!bar_progress.finaldx) return;
progress_changed();
set_action_completed();
}
function onstart() {
function on_start() {
bar_progress.finaldx = 0;
bar_progress.owidth = bar_progress.getWidth();
bar_progress.min_dx = -bar_progress.getWidth();

View File

@ -433,9 +433,10 @@ export default function Gantt(element, tasks, config) {
}
function make_arrows() {
self._arrows = [];
for(let task of self.tasks) {
self._arrows = task.dependencies.map(dep => {
let arrows = [];
arrows = task.dependencies.map(dep => {
const dependency = get_task(dep);
if(!dependency) return;
@ -447,6 +448,7 @@ export default function Gantt(element, tasks, config) {
self.element_groups.arrow.add(arrow.element);
return arrow; // eslint-disable-line
});
self._arrows = self._arrows.concat(arrows);
}
}
@ -460,11 +462,10 @@ export default function Gantt(element, tasks, config) {
}
function map_arrows_on_bars() {
for(let bar of self._bars) {
bar.arrows = self._arrows.filter(arrow => {
return arrow.from_task.task.id === bar.task.id ||
arrow.to_task.task.id === bar.task.id;
return (arrow.from_task.task.id === bar.task.id) ||
(arrow.to_task.task.id === bar.task.id);
});
}
}
@ -498,13 +499,13 @@ export default function Gantt(element, tasks, config) {
self.view_is = view_is;
function get_task(id) {
self.tasks.find((task) => {
return self.tasks.find((task) => {
return task.id === id;
});
}
function get_bar(id) {
self._bars.find((bar) => {
return self._bars.find((bar) => {
return bar.task.id === id;
});
}