Fix task ordering when using drag/drop
This commit is contained in:
parent
5d5af55cdd
commit
18d245958d
@ -181,10 +181,16 @@ class Tasks extends BaseController {
|
||||
return $column->board_id;
|
||||
}
|
||||
|
||||
private function sortTasks($a, $b) {
|
||||
return strcmp($a->position, $b->position);
|
||||
}
|
||||
|
||||
private function updateTaskOrder($task, $user, $isNew) {
|
||||
$column = R::load('column', $task->column_id);
|
||||
$user_opts = R::load('useroption', $user->user_option_id);
|
||||
|
||||
usort($column->xownTaskList, array($this, 'sortTasks'));
|
||||
|
||||
$counter = 1;
|
||||
foreach ($column->xownTaskList as $task) {
|
||||
$task->position = $counter;
|
||||
@ -330,7 +336,7 @@ class Tasks extends BaseController {
|
||||
}
|
||||
}
|
||||
|
||||
function updateTaskColor($taskId, $beforePoints, $afterPoints) {
|
||||
private function updateTaskColor($taskId, $beforePoints, $afterPoints) {
|
||||
$task = R::load('task', $taskId);
|
||||
$diff = (float)$beforePoints - (float)$afterPoints;
|
||||
|
||||
|
@ -115,11 +115,24 @@ export class BoardDisplay implements OnInit {
|
||||
}
|
||||
});
|
||||
|
||||
let lastTaskId: number,
|
||||
lastToColumnId: number,
|
||||
lastFromColumnId: number;
|
||||
|
||||
this.dragula.dropModel.subscribe((value: any) => {
|
||||
let taskId = +value[1].id,
|
||||
toColumnId = +value[2].parentNode.id,
|
||||
fromColumnId = +value[3].parentNode.id;
|
||||
|
||||
if (lastTaskId === taskId && lastToColumnId === toColumnId &&
|
||||
lastFromColumnId === fromColumnId) {
|
||||
return;
|
||||
}
|
||||
|
||||
lastTaskId = taskId;
|
||||
lastToColumnId = toColumnId;
|
||||
lastFromColumnId = fromColumnId;
|
||||
|
||||
this.activeBoard.columns.forEach(column => {
|
||||
if (column.id === toColumnId || column.id === fromColumnId) {
|
||||
let position = 1,
|
||||
|
@ -126,24 +126,24 @@ export class ColumnDisplay implements OnInit {
|
||||
}
|
||||
|
||||
sortTasks() {
|
||||
switch (this.sortOption) {
|
||||
case 'pos':
|
||||
this.columnData.tasks.sort((a, b) => {
|
||||
return a.position - b.position;
|
||||
});
|
||||
break;
|
||||
case 'due':
|
||||
this.columnData.tasks.sort((a, b) => {
|
||||
return new Date(a.due_date).getTime() -
|
||||
new Date(b.due_date).getTime();
|
||||
});
|
||||
break;
|
||||
case 'pnt':
|
||||
this.columnData.tasks.sort((a, b) => {
|
||||
return b.points - a.points;
|
||||
});
|
||||
break;
|
||||
}
|
||||
switch (this.sortOption) {
|
||||
case 'pos':
|
||||
this.columnData.tasks.sort((a, b) => {
|
||||
return a.position - b.position;
|
||||
});
|
||||
break;
|
||||
case 'due':
|
||||
this.columnData.tasks.sort((a, b) => {
|
||||
return new Date(a.due_date).getTime() -
|
||||
new Date(b.due_date).getTime();
|
||||
});
|
||||
break;
|
||||
case 'pnt':
|
||||
this.columnData.tasks.sort((a, b) => {
|
||||
return b.points - a.points;
|
||||
});
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
toggleCollapsed() {
|
||||
|
@ -171,7 +171,6 @@ export class TaskDisplay implements OnInit {
|
||||
'" target="tb_external" rel="noreferrer">' +
|
||||
result[0] + '</a>';
|
||||
|
||||
// text = text.replace(result[0], link);
|
||||
replacements.push({
|
||||
str: result[0],
|
||||
link
|
||||
|
@ -2,7 +2,7 @@
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>TaskBoard - Kanban App</title>
|
||||
<base href="/dist/">
|
||||
<base href="/web/TaskBoard/dist/">
|
||||
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
|
Reference in New Issue
Block a user