fix: Adapt URLs generated in the backend to new routes
Signed-off-by: Julius Knorr <jus@bitgrid.net>
This commit is contained in:
@@ -131,7 +131,7 @@ class DeckProvider implements IProvider {
|
||||
];
|
||||
|
||||
if (array_key_exists('board', $subjectParams)) {
|
||||
$card['link'] = $this->cardService->getRedirectUrlForCard($event->getObjectId());
|
||||
$card['link'] = $this->cardService->getCardUrl($event->getObjectId());
|
||||
$event->setLink($card['link']);
|
||||
}
|
||||
$params['card'] = $card;
|
||||
@@ -365,6 +365,6 @@ class DeckProvider implements IProvider {
|
||||
}
|
||||
|
||||
public function deckUrl($endpoint) {
|
||||
return $this->urlGenerator->linkToRouteAbsolute('deck.page.index') . '#' . $endpoint;
|
||||
return $this->urlGenerator->linkToRouteAbsolute('deck.page.index') . trim($endpoint, '/');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ class ResourceProvider implements IProvider {
|
||||
*/
|
||||
public function getResourceRichObject(IResource $resource): array {
|
||||
$board = $this->getBoard($resource);
|
||||
$link = $this->urlGenerator->linkToRoute('deck.page.index') . '#/board/' . $resource->getId();
|
||||
$link = $this->urlGenerator->linkToRoute('deck.page.indexBoard', ['boardId' => $resource->getId()]);
|
||||
|
||||
return [
|
||||
'type' => self::RESOURCE_TYPE,
|
||||
|
||||
@@ -66,7 +66,10 @@ class ResourceProviderCard implements IProvider {
|
||||
throw new ResourceException('No unique card found for resource, this should never happen');
|
||||
}
|
||||
|
||||
$link = $this->urlGenerator->linkToRoute('deck.page.index') . '#/board/' . $board->getId() . '/card/' . $resource->getId();
|
||||
$link = $this->urlGenerator->linkToRoute('deck.page.indexCard', [
|
||||
'boardId' => $board->getId(),
|
||||
'cardId' => $card->getId()
|
||||
]);
|
||||
|
||||
return [
|
||||
'type' => self::RESOURCE_TYPE,
|
||||
|
||||
@@ -85,9 +85,9 @@ class Notifier implements INotifier {
|
||||
|
||||
switch ($notification->getSubject()) {
|
||||
case 'card-assigned':
|
||||
$cardId = $notification->getObjectId();
|
||||
$cardId = (int)$notification->getObjectId();
|
||||
$stack = $this->stackMapper->findStackFromCardId($cardId);
|
||||
$boardId = $stack ? $stack->getBoardId() : null;
|
||||
$boardId = $stack ? (int)$stack->getBoardId() : null;
|
||||
if (!$boardId) {
|
||||
throw new AlreadyProcessedException();
|
||||
}
|
||||
@@ -110,13 +110,13 @@ class Notifier implements INotifier {
|
||||
'name' => $params[0],
|
||||
'boardname' => $params[1],
|
||||
'stackname' => $stack->getTitle(),
|
||||
'link' => $this->url->linkToRouteAbsolute('deck.page.index') . '#/board/' . $boardId . '/card/' . $cardId . '',
|
||||
'link' => $this->getCardUrl($boardId, $cardId),
|
||||
],
|
||||
'deck-board' => [
|
||||
'type' => 'deck-board',
|
||||
'id' => $boardId,
|
||||
'name' => $params[1],
|
||||
'link' => $this->url->linkToRouteAbsolute('deck.page.index') . '#/board/' . $boardId,
|
||||
'link' => $this->getBoardUrl($boardId),
|
||||
],
|
||||
'user' => [
|
||||
'type' => 'user',
|
||||
@@ -125,12 +125,12 @@ class Notifier implements INotifier {
|
||||
]
|
||||
]
|
||||
);
|
||||
$notification->setLink($this->url->linkToRouteAbsolute('deck.page.index') . '#/board/' . $boardId . '/card/' . $cardId . '');
|
||||
$notification->setLink($this->getCardUrl($boardId, $cardId));
|
||||
break;
|
||||
case 'card-overdue':
|
||||
$cardId = $notification->getObjectId();
|
||||
$cardId = (int)$notification->getObjectId();
|
||||
$stack = $this->stackMapper->findStackFromCardId($cardId);
|
||||
$boardId = $stack ? $stack->getBoardId() : null;
|
||||
$boardId = $stack ? (int)$stack->getBoardId() : null;
|
||||
if (!$boardId) {
|
||||
throw new AlreadyProcessedException();
|
||||
}
|
||||
@@ -147,22 +147,22 @@ class Notifier implements INotifier {
|
||||
'name' => $params[0],
|
||||
'boardname' => $params[1],
|
||||
'stackname' => $stack->getTitle(),
|
||||
'link' => $this->url->linkToRouteAbsolute('deck.page.index') . '#/board/' . $boardId . '/card/' . $cardId . '',
|
||||
'link' => $this->getCardUrl($boardId, $cardId),
|
||||
],
|
||||
'deck-board' => [
|
||||
'type' => 'deck-board',
|
||||
'id' => $boardId,
|
||||
'name' => $params[1],
|
||||
'link' => $this->url->linkToRouteAbsolute('deck.page.index') . '#/board/' . $boardId,
|
||||
'link' => $this->getBoardUrl($boardId),
|
||||
],
|
||||
]
|
||||
);
|
||||
$notification->setLink($this->url->linkToRouteAbsolute('deck.page.index') . '#/board/' . $boardId . '/card/' . $cardId . '');
|
||||
$notification->setLink($this->getCardUrl($boardId, $cardId));
|
||||
break;
|
||||
case 'card-comment-mentioned':
|
||||
$cardId = $notification->getObjectId();
|
||||
$cardId = (int)$notification->getObjectId();
|
||||
$stack = $this->stackMapper->findStackFromCardId($cardId);
|
||||
$boardId = $stack ? $stack->getBoardId() : null;
|
||||
$boardId = $stack ? (int)$stack->getBoardId() : null;
|
||||
if (!$boardId) {
|
||||
throw new AlreadyProcessedException();
|
||||
}
|
||||
@@ -185,7 +185,7 @@ class Notifier implements INotifier {
|
||||
'name' => $params[0],
|
||||
'boardname' => $params[1],
|
||||
'stackname' => $stack->getTitle(),
|
||||
'link' => $this->url->linkToRouteAbsolute('deck.page.index') . '#/board/' . $boardId . '/card/' . $cardId . '',
|
||||
'link' => $this->getCardUrl($boardId, $cardId),
|
||||
],
|
||||
'user' => [
|
||||
'type' => 'user',
|
||||
@@ -197,10 +197,10 @@ class Notifier implements INotifier {
|
||||
if ($notification->getMessage() === '{message}') {
|
||||
$notification->setParsedMessage($notification->getMessageParameters()['message']);
|
||||
}
|
||||
$notification->setLink($this->url->linkToRouteAbsolute('deck.page.index') . '#/board/' . $boardId . '/card/' . $cardId . '');
|
||||
$notification->setLink($this->getCardUrl($boardId, $cardId));
|
||||
break;
|
||||
case 'board-shared':
|
||||
$boardId = $notification->getObjectId();
|
||||
$boardId = (int)$notification->getObjectId();
|
||||
if (!$boardId) {
|
||||
throw new AlreadyProcessedException();
|
||||
}
|
||||
@@ -220,7 +220,7 @@ class Notifier implements INotifier {
|
||||
'type' => 'deck-board',
|
||||
'id' => $boardId,
|
||||
'name' => $params[0],
|
||||
'link' => $this->url->linkToRouteAbsolute('deck.page.index') . '#/board/' . $boardId,
|
||||
'link' => $this->getBoardUrl($boardId),
|
||||
],
|
||||
'user' => [
|
||||
'type' => 'user',
|
||||
@@ -229,9 +229,17 @@ class Notifier implements INotifier {
|
||||
]
|
||||
]
|
||||
);
|
||||
$notification->setLink($this->url->linkToRouteAbsolute('deck.page.index') . '#/board/' . $boardId . '/');
|
||||
$notification->setLink($this->getBoardUrl($boardId));
|
||||
break;
|
||||
}
|
||||
return $notification;
|
||||
}
|
||||
|
||||
private function getBoardUrl(int $boardId): string {
|
||||
return $this->url->linkToRouteAbsolute('deck.page.indexBoard', ['boardId' => $boardId]);
|
||||
}
|
||||
|
||||
private function getCardUrl(int $boardId, int $cardId): string {
|
||||
return $this->url->linkToRouteAbsolute('deck.page.indexCard', ['boardId' => $boardId, 'cardId' => $cardId]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -219,7 +219,7 @@ class DeckProvider implements IFullTextSearchProvider {
|
||||
try {
|
||||
$board =
|
||||
$this->fullTextSearchService->getBoardFromCardId((int)$document->getId());
|
||||
$path = '#/board/' . $board->getId() . '/card/' . $document->getId();
|
||||
$path = '/board/' . $board->getId() . '/card/' . $document->getId();
|
||||
$document->setLink($this->urlGenerator->linkToRoute('deck.page.index') . $path);
|
||||
} catch (DoesNotExistException $e) {
|
||||
} catch (MultipleObjectsReturnedException $e) {
|
||||
|
||||
@@ -22,7 +22,7 @@ class BoardSearchResultEntry extends SearchResultEntry {
|
||||
),
|
||||
$board->getTitle(),
|
||||
'',
|
||||
$urlGenerator->linkToRouteAbsolute('deck.page.index') . '#/board/' . $board->getId(),
|
||||
$urlGenerator->linkToRouteAbsolute('deck.page.indexBoard', ['boardId' => $board->getId()]),
|
||||
'icon-deck');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -746,10 +746,6 @@ class BoardService {
|
||||
$board->setUsers(array_values($boardUsers));
|
||||
}
|
||||
|
||||
public function getBoardUrl($endpoint) {
|
||||
return $this->urlGenerator->linkToRouteAbsolute('deck.page.index') . '#' . $endpoint;
|
||||
}
|
||||
|
||||
/**
|
||||
* Clean a given board data from the Cache
|
||||
*/
|
||||
|
||||
@@ -655,13 +655,13 @@ class CardService {
|
||||
$this->eventDispatcher->dispatchTyped(new CardUpdatedEvent($card));
|
||||
}
|
||||
|
||||
public function getCardUrl($cardId) {
|
||||
public function getCardUrl(int $cardId): string {
|
||||
$boardId = $this->cardMapper->findBoardId($cardId);
|
||||
|
||||
return $this->urlGenerator->linkToRouteAbsolute('deck.page.index') . "#/board/$boardId/card/$cardId";
|
||||
return $this->urlGenerator->linkToRouteAbsolute('deck.page.indexCard', ['boardId' => $boardId, 'cardId' => $cardId]);
|
||||
}
|
||||
|
||||
public function getRedirectUrlForCard($cardId) {
|
||||
return $this->urlGenerator->linkToRouteAbsolute('deck.page.index') . "card/$cardId";
|
||||
public function getRedirectUrlForCard(int $cardId): string {
|
||||
return $this->urlGenerator->linkToRouteAbsolute('deck.page.redirectToCard', ['cardId' => $cardId]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ class ShareAPIHelper {
|
||||
$boardId = $this->cardMapper->findBoardId($card->getId());
|
||||
$result['share_with'] = $share->getSharedWith();
|
||||
$result['share_with_displayname'] = $card->getTitle();
|
||||
$result['share_with_link'] = $this->urlGenerator->linkToRouteAbsolute('deck.page.index') . '#/board/' . $boardId . '/card/' . $card->getId();
|
||||
$result['share_with_link'] = $this->urlGenerator->linkToRouteAbsolute('deck.page.indexCard', ['boardId' => $boardId, 'cardId' => $card->getId()]);
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ class DeckTeamResourceProvider implements \OCP\Teams\ITeamResourceProvider {
|
||||
$this,
|
||||
(string)$board->getId(),
|
||||
$board->getTitle(),
|
||||
$this->urlGenerator->linkToRouteAbsolute('deck.page.index') . '#/board/' . $board->getId(),
|
||||
$this->urlGenerator->linkToRouteAbsolute('deck.page.indexBoard', ['boardId' => $board->getId()]),
|
||||
$this->getBoardBulletIcon($board),
|
||||
$this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('deck', 'deck-current.svg')),
|
||||
);
|
||||
|
||||
@@ -144,8 +144,8 @@ const router = new Router({
|
||||
|
||||
router.beforeEach((to, from, next) => {
|
||||
// Redirect if fullPath begins with a hash (ignore hashes later in path)
|
||||
if (to.fullPath.substring(0, 2) === '/#') {
|
||||
const path = to.fullPath.substring(2)
|
||||
if (to.hash.substring(0, 2) === '#/') {
|
||||
const path = to.fullPath.replace('/apps/deck/#/', '/apps/deck/')
|
||||
next(path)
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user