Add stack sorting functionality

Signed-off-by: Julius Härtl <jus@bitgrid.net>
This commit is contained in:
Julius Härtl
2017-05-23 18:09:42 +02:00
parent fbc12ae8f7
commit b6d94ec9ff
9 changed files with 141 additions and 9 deletions

View File

@@ -102,4 +102,29 @@ class StackService {
$stack->setOrder($order);
return $this->stackMapper->update($stack);
}
public function reorder($id, $order) {
$this->permissionService->checkPermission($this->stackMapper, $id, Acl::PERMISSION_EDIT);
$stackToSort = $this->stackMapper->find($id);
$stacks = $this->stackMapper->findAll($stackToSort->getBoardId());
$result = [];
$i = 0;
foreach ($stacks as $stack) {
if ($stack->id === $id) {
$stack->setOrder($order);
}
if ($i === $order) {
$i++;
}
if ($stack->id !== $id) {
$stack->setOrder($i++);
}
$this->stackMapper->update($stack);
$result[$stack->getOrder()] = $stack;
}
return $result;
}
}