From 546567ae876f5bcc9aab55ec907c8872d602095b Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Wed, 17 Apr 2024 17:45:07 +0000 Subject: [PATCH] fix templates --- Admin/Routes/Web/Backend.php | 2 +- Controller/BackendController.php | 78 ++++++++++++++- Theme/Backend/Lang/de.lang.php | 3 + Theme/Backend/Lang/en.lang.php | 3 + Theme/Backend/kanban-board-create.tpl.php | 112 ++++++++++++++++++++-- Theme/Backend/kanban-board.tpl.php | 12 +-- Theme/Backend/kanban-card-create.tpl.php | 0 Theme/Backend/kanban-card.tpl.php | 57 +++++++++-- 8 files changed, 244 insertions(+), 23 deletions(-) delete mode 100755 Theme/Backend/kanban-card-create.tpl.php diff --git a/Admin/Routes/Web/Backend.php b/Admin/Routes/Web/Backend.php index eb4593e..40caf07 100755 --- a/Admin/Routes/Web/Backend.php +++ b/Admin/Routes/Web/Backend.php @@ -80,7 +80,7 @@ return [ ], '^/kanban/card/create(\?.*$|$)' => [ [ - 'dest' => '\Modules\Kanban\Controller\BackendController:viewKanbanCard', + 'dest' => '\Modules\Kanban\Controller\BackendController:viewKanbanCardCreate', 'verb' => RouteVerb::GET, 'active' => true, 'permission' => [ diff --git a/Controller/BackendController.php b/Controller/BackendController.php index df19f98..75ad42d 100755 --- a/Controller/BackendController.php +++ b/Controller/BackendController.php @@ -106,6 +106,12 @@ final class BackendController extends Controller public function viewKanbanBoard(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); + if (!$request->hasData('id')) { + $response->header->status = RequestStatusCode::R_404; + $view->setTemplate('/Web/Backend/Error/404'); + + return $view; + } /** @var \Modules\Kanban\Models\KanbanBoard $board */ $board = KanbanBoardMapper::get() @@ -117,6 +123,7 @@ final class BackendController extends Controller ->with('columns/cards/tags/title') ->where('id', (int) $request->getData('id')) ->where('columns/cards/tags/title/language', $request->header->l11n->language) + ->sort('columns/order', OrderType::ASC) ->execute(); $accountId = $request->header->account; @@ -138,6 +145,39 @@ final class BackendController extends Controller return $view; } + /** + * Routing end-point for application behavior. + * + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param array $data Generic data + * + * @return RenderableInterface + * + * @since 1.0.0 + * @codeCoverageIgnore + */ + public function viewKanbanBoardEdit(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface + { + $view = new View($this->app->l11nManager, $request, $response); + if (!$request->hasData('id')) { + $response->header->status = RequestStatusCode::R_404; + $view->setTemplate('/Web/Backend/Error/404'); + + return $view; + } + + $view->setTemplate('/Modules/Kanban/Theme/Backend/kanban-board-create'); + $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1005801001, $request, $response); + + $view->data['board'] = KanbanBoardMapper::get() + ->with('columns') + ->where('id', (int) $request->getData('id')) + ->execute(); + + return $view; + } + /** * Routing end-point for application behavior. * @@ -185,9 +225,7 @@ final class BackendController extends Controller { $view = new View($this->app->l11nManager, $request, $response); - $accountId = $request->header->account; - - if (!$this->app->accountManager->get($accountId)->hasPermission( + if (!$this->app->accountManager->get($request->header->account)->hasPermission( PermissionType::CREATE, $this->app->unitId, $this->app->appId, self::NAME, PermissionCategory::BOARD) ) { $view->setTemplate('/Web/Backend/Error/403_inline'); @@ -219,6 +257,12 @@ final class BackendController extends Controller public function viewKanbanCard(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); + if (!$request->hasData('id')) { + $response->header->status = RequestStatusCode::R_404; + $view->setTemplate('/Web/Backend/Error/404'); + + return $view; + } /** @var \Modules\Kanban\Models\KanbanCard $card */ $card = KanbanCardMapper::get() @@ -279,4 +323,32 @@ final class BackendController extends Controller return $view; } + + /** + * Routing end-point for application behavior. + * + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param array $data Generic data + * + * @return RenderableInterface + * + * @since 1.0.0 + * @codeCoverageIgnore + */ + public function viewKanbanCardCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface + { + $view = new View($this->app->l11nManager, $request, $response); + if (!$request->hasData('column')) { + $response->header->status = RequestStatusCode::R_404; + $view->setTemplate('/Web/Backend/Error/404'); + + return $view; + } + + $view->setTemplate('/Modules/Kanban/Theme/Backend/kanban-card'); + $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1005801001, $request, $response); + + return $view; + } } diff --git a/Theme/Backend/Lang/de.lang.php b/Theme/Backend/Lang/de.lang.php index 303ff21..1f7598c 100755 --- a/Theme/Backend/Lang/de.lang.php +++ b/Theme/Backend/Lang/de.lang.php @@ -20,6 +20,9 @@ return ['Kanban' => [ 'Back' => 'Zurück', 'Date' => 'Datum', 'Description' => 'Beschreibung', + 'Columns' => 'Spalten', + 'Column' => 'Spalte', + 'Order' => 'Order', 'Board' => 'Board', 'Name' => 'Name', 'Status' => 'Status', diff --git a/Theme/Backend/Lang/en.lang.php b/Theme/Backend/Lang/en.lang.php index c072d95..e458af8 100755 --- a/Theme/Backend/Lang/en.lang.php +++ b/Theme/Backend/Lang/en.lang.php @@ -20,6 +20,9 @@ return ['Kanban' => [ 'Back' => 'Back', 'Date' => 'Date', 'Description' => 'Description', + 'Order' => 'Order', + 'Columns' => 'Columns', + 'Column' => 'Column', 'Board' => 'Board', 'Name' => 'Name', 'Status' => 'Status', diff --git a/Theme/Backend/kanban-board-create.tpl.php b/Theme/Backend/kanban-board-create.tpl.php index ced9a82..2ebd178 100755 --- a/Theme/Backend/kanban-board-create.tpl.php +++ b/Theme/Backend/kanban-board-create.tpl.php @@ -11,33 +11,133 @@ * @link https://jingga.app */ declare(strict_types=1); + +use Modules\Kanban\Models\NullKanbanBoard; +use phpOMS\Uri\UriFactory; + +$board = $this->data['board'] ?? new NullKanbanBoard(); +$isNew = $board->id === 0; + echo $this->data['nav']->render(); ?>
-
+
getHtml('Board'); ?>
- +
- +
- + + + + +
+ +
+
+
+
+
getHtml('Column'); ?>
+
+
+ + +
+ +
+ + +
+ +
+ + +
+
+
+ + + +
+
+
+
+ +
+
+
getHtml('Columns',); ?>download
+
+ + + + + + columns as $column) : ++$c; ?> + +
+ getHtml('ID', '0', '0'); ?> + getHtml('Order'); ?> + getHtml('Name'); ?> +
+ settings + + + + + + + id; ?> + order; ?> + printHtml($column->name); ?> + + +
getHtml('Empty', '0', '0'); ?> + +
+
+
+
+
+ \ No newline at end of file diff --git a/Theme/Backend/kanban-board.tpl.php b/Theme/Backend/kanban-board.tpl.php index e7e8a4c..994f3f6 100755 --- a/Theme/Backend/kanban-board.tpl.php +++ b/Theme/Backend/kanban-board.tpl.php @@ -12,25 +12,23 @@ */ declare(strict_types=1); +use Modules\Kanban\Models\NullKanbanBoard; use phpOMS\Uri\UriFactory; /** @var \Modules\Kanban\Models\KanbanBoard $board */ -$board = $this->data['board']; - -/** @var \Modules\Kanban\Models\KanbanColumn[] $columns */ -$columns = $board->getColumns(); +$board = $this->data['board'] ?? new NullKanbanBoard(); ?>
- getCards(); ?> + columns as $column) : $i++; $cards = $column->getCards(); ?>
printHtml($column->name); ?> - add_circle + add_circle
id); diff --git a/Theme/Backend/kanban-card-create.tpl.php b/Theme/Backend/kanban-card-create.tpl.php deleted file mode 100755 index e69de29..0000000 diff --git a/Theme/Backend/kanban-card.tpl.php b/Theme/Backend/kanban-card.tpl.php index 2ec2b5d..79d0838 100755 --- a/Theme/Backend/kanban-card.tpl.php +++ b/Theme/Backend/kanban-card.tpl.php @@ -17,6 +17,9 @@ use phpOMS\Uri\UriFactory; /** @var \Modules\Kanban\Models\KanbanCard $card */ $card = $this->data['card']; +$isNew = $card->id === 0; + +$editPossible = $card->createdBy->id === $this->request->header->account; ?>
@@ -27,23 +30,65 @@ $card = $this->data['card'];
+ +
+ + +
+
printHtml($card->name); ?>
+
+
+ data-tpl-value="/description" + data-value="printHtml($card->descriptionRaw))); ?>">description; ?>
+
+ files; foreach ($files as $file) : ?> + name; ?> + +
+
+ +
+ +
+
commentList; -if ($this->data['commentPermissions']['write'] && $commentList?->status === CommentListStatus::ACTIVE) : +if ($this->data['commentPermissions']['write'] + && $commentList?->status === CommentListStatus::ACTIVE +) : echo $this->getData('commentCreate')->render(1); endif;