Compare commits
1 Commits
backport/4
...
bug/clone-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0dbb278a98 |
@@ -47,9 +47,11 @@ use OCP\EventDispatcher\IEventDispatcher;
|
|||||||
use OCP\IConfig;
|
use OCP\IConfig;
|
||||||
use OCP\IGroupManager;
|
use OCP\IGroupManager;
|
||||||
use OCP\IL10N;
|
use OCP\IL10N;
|
||||||
|
use OCA\Deck\Db\Card;
|
||||||
use OCA\Deck\Db\Board;
|
use OCA\Deck\Db\Board;
|
||||||
use OCA\Deck\Db\BoardMapper;
|
use OCA\Deck\Db\BoardMapper;
|
||||||
use OCA\Deck\Db\LabelMapper;
|
use OCA\Deck\Db\LabelMapper;
|
||||||
|
use OCA\Deck\Event\CardCreatedEvent;
|
||||||
use OCP\IUserManager;
|
use OCP\IUserManager;
|
||||||
use OCA\Deck\BadRequestException;
|
use OCA\Deck\BadRequestException;
|
||||||
use OCP\IURLGenerator;
|
use OCP\IURLGenerator;
|
||||||
@@ -673,15 +675,39 @@ class BoardService {
|
|||||||
|
|
||||||
$stacks = $this->stackMapper->findAll($id);
|
$stacks = $this->stackMapper->findAll($id);
|
||||||
foreach ($stacks as $stack) {
|
foreach ($stacks as $stack) {
|
||||||
$newStack = new Stack();
|
$this->cloneStack($stack, $newBoard->getId());
|
||||||
$newStack->setTitle($stack->getTitle());
|
|
||||||
$newStack->setBoardId($newBoard->getId());
|
|
||||||
$this->stackMapper->insert($newStack);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $newBoard;
|
return $newBoard;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function cloneStack($stack, $newBoardId)
|
||||||
|
{
|
||||||
|
$newStack = new Stack();
|
||||||
|
$newStack->setTitle($stack->getTitle());
|
||||||
|
$newStack->setBoardId($newBoardId);
|
||||||
|
$insertedStack = $this->stackMapper->insert($newStack);
|
||||||
|
$cards = $this->cardMapper->findAll($stack->getId());
|
||||||
|
|
||||||
|
foreach ($cards as $card) {
|
||||||
|
$newCard = new Card();
|
||||||
|
$newCard->setTitle($card->getTitle());
|
||||||
|
$newCard->setStackId($insertedStack->getId());
|
||||||
|
$newCard->setType($card->getType());
|
||||||
|
$newCard->setOrder($card->getOrder());
|
||||||
|
$newCard->setOwner($card->getOwner());
|
||||||
|
$newCard->setDescription($card->getDescription());
|
||||||
|
$newCard->setDuedate($card->getDuedate());
|
||||||
|
$newCard = $this->cardMapper->insert($newCard);
|
||||||
|
|
||||||
|
$this->activityManager->triggerEvent(ActivityManager::DECK_OBJECT_CARD, $newCard, ActivityManager::SUBJECT_CARD_CREATE);
|
||||||
|
$this->changeHelper->cardChanged($newCard->getId(), false);
|
||||||
|
$this->eventDispatcher->dispatchTyped(new CardCreatedEvent($newCard));
|
||||||
|
}
|
||||||
|
|
||||||
|
return $stack;
|
||||||
|
}
|
||||||
|
|
||||||
public function transferBoardOwnership(int $boardId, string $newOwner, bool $changeContent = false): Board {
|
public function transferBoardOwnership(int $boardId, string $newOwner, bool $changeContent = false): Board {
|
||||||
\OC::$server->getDatabaseConnection()->beginTransaction();
|
\OC::$server->getDatabaseConnection()->beginTransaction();
|
||||||
try {
|
try {
|
||||||
|
|||||||
Reference in New Issue
Block a user