Change column move restriction behavior
This commit is contained in:
parent
c328bcf840
commit
91c1109b05
|
|
@ -36,7 +36,7 @@ class ProjectRoleHelper extends Base
|
|||
public function isDraggable(array &$task)
|
||||
{
|
||||
if ($task['is_active'] == 1 && $this->helper->user->hasProjectAccess('BoardViewController', 'save', $task['project_id'])) {
|
||||
return $this->isSortableColumn($task['project_id'], $task['column_id'], 'src_column_id');
|
||||
return $this->isSortableColumn($task['project_id'], $task['column_id']);
|
||||
}
|
||||
|
||||
return false;
|
||||
|
|
@ -47,10 +47,9 @@ class ProjectRoleHelper extends Base
|
|||
*
|
||||
* @param int $project_id
|
||||
* @param int $column_id
|
||||
* @param string $field
|
||||
* @return bool
|
||||
*/
|
||||
public function isSortableColumn($project_id, $column_id, $field)
|
||||
public function isSortableColumn($project_id, $column_id)
|
||||
{
|
||||
$role = $this->getProjectUserRole($project_id);
|
||||
|
||||
|
|
@ -58,7 +57,7 @@ class ProjectRoleHelper extends Base
|
|||
$sortableColumns = $this->columnMoveRestrictionCacheDecorator->getSortableColumns($project_id, $role);
|
||||
|
||||
foreach ($sortableColumns as $column) {
|
||||
if ($column[$field] == $column_id) {
|
||||
if ($column['src_column_id'] == $column_id || $column['dst_column_id'] == $column_id) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -92,6 +91,10 @@ class ProjectRoleHelper extends Base
|
|||
if ($column['src_column_id'] == $src_column_id && $column['dst_column_id'] == $dst_column_id) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($column['dst_column_id'] == $src_column_id && $column['src_column_id'] == $dst_column_id) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return empty($sortableColumns);
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
<!-- tasks list -->
|
||||
<div
|
||||
class="board-task-list board-column-expanded <?= $this->projectRole->isSortableColumn($column['project_id'], $column['id'], 'dst_column_id') ? 'sortable-column' : '' ?>"
|
||||
class="board-task-list board-column-expanded <?= $this->projectRole->isSortableColumn($column['project_id'], $column['id']) ? 'sortable-column' : '' ?>"
|
||||
data-column-id="<?= $column['id'] ?>"
|
||||
data-swimlane-id="<?= $swimlane['id'] ?>"
|
||||
data-task-limit="<?= $column['task_limit'] ?>">
|
||||
|
|
|
|||
|
|
@ -265,13 +265,21 @@ class ProjectRoleHelperTest extends Base
|
|||
$this->assertEquals(1, $columnMoveRestrictionModel->create(1, 1, 2, 3));
|
||||
|
||||
$this->assertTrue($projectUserRole->addUser(1, 2, 'Custom Role'));
|
||||
$this->assertEquals(1, $taskCreationModel->create(array('project_id' => 1, 'title' => 'test', 'column_id' => 2)));
|
||||
$this->assertEquals(2, $taskCreationModel->create(array('project_id' => 1, 'title' => 'test', 'column_id' => 3)));
|
||||
$this->assertEquals(1, $taskCreationModel->create(array('project_id' => 1, 'title' => 'test', 'column_id' => 1)));
|
||||
$this->assertEquals(2, $taskCreationModel->create(array('project_id' => 1, 'title' => 'test', 'column_id' => 2)));
|
||||
$this->assertEquals(3, $taskCreationModel->create(array('project_id' => 1, 'title' => 'test', 'column_id' => 3)));
|
||||
$this->assertEquals(4, $taskCreationModel->create(array('project_id' => 1, 'title' => 'test', 'column_id' => 4)));
|
||||
|
||||
$task = $taskFinderModel->getById(1);
|
||||
$this->assertTrue($projectRoleHelper->isDraggable($task));
|
||||
$this->assertFalse($projectRoleHelper->isDraggable($task));
|
||||
|
||||
$task = $taskFinderModel->getById(2);
|
||||
$this->assertTrue($projectRoleHelper->isDraggable($task));
|
||||
|
||||
$task = $taskFinderModel->getById(3);
|
||||
$this->assertTrue($projectRoleHelper->isDraggable($task));
|
||||
|
||||
$task = $taskFinderModel->getById(4);
|
||||
$this->assertFalse($projectRoleHelper->isDraggable($task));
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue