diff --git a/Admin/Install/Navigation.install.json b/Admin/Install/Navigation.install.json index 0fc3aca..ed84363 100755 --- a/Admin/Install/Navigation.install.json +++ b/Admin/Install/Navigation.install.json @@ -94,7 +94,7 @@ "type": 3, "subtype": 1, "name": "Templates", - "uri": "{/base}/messages/templates?{?}", + "uri": "{/base}/messages/template/list?{?}", "target": "self", "icon": null, "order": 30, diff --git a/Admin/Routes/Web/Backend.php b/Admin/Routes/Web/Backend.php index 83de403..e562fb4 100755 --- a/Admin/Routes/Web/Backend.php +++ b/Admin/Routes/Web/Backend.php @@ -73,7 +73,7 @@ return [ ], ], ], - '^.*/messages/templates.*$' => [ + '^.*/messages/template/list.*$' => [ [ 'dest' => '\Modules\Messages\Controller\BackendController:viewMessageTemplates', 'verb' => RouteVerb::GET, @@ -84,6 +84,17 @@ return [ ], ], ], + '^.*/messages/template/single.*$' => [ + [ + 'dest' => '\Modules\Messages\Controller\BackendController:viewMessageTemplate', + 'verb' => RouteVerb::GET, + 'permission' => [ + 'module' => BackendController::NAME, + 'type' => PermissionType::READ, + 'state' => PermissionCategory::MESSAGE, + ], + ], + ], '^.*/messages/mail/create.*$' => [ [ 'dest' => '\Modules\Messages\Controller\BackendController:viewMessageCreate', diff --git a/Controller/BackendController.php b/Controller/BackendController.php index c36471f..7855f08 100755 --- a/Controller/BackendController.php +++ b/Controller/BackendController.php @@ -82,6 +82,36 @@ final class BackendController extends Controller return $view; } + /** + * Routing end-point for application behaviour. + * + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return RenderableInterface + * + * @since 1.0.0 + * @codeCoverageIgnore + */ + public function viewMessageTemplate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface + { + $view = new View($this->app->l11nManager, $request, $response); + $view->setTemplate('/Modules/Messages/Theme/Backend/mail-template'); + $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1001201001, $request, $response); + + $template = EmailMapper::get() + ->with('l11n') + ->where('isTemplate', true) + ->where('account', $request->header->account) + ->where('id', $request->getDataInt('id')) + ->execute(); + + $view->data['template'] = $template; + + return $view; + } + /** * Routing end-point for application behaviour. * diff --git a/Theme/Backend/Lang/en.lang.php b/Theme/Backend/Lang/en.lang.php index b80cdbb..23b122d 100755 --- a/Theme/Backend/Lang/en.lang.php +++ b/Theme/Backend/Lang/en.lang.php @@ -28,6 +28,7 @@ return ['Messages' => [ 'Interval' => 'Interval', 'Mailboxes' => 'Mailboxes', 'Messages' => 'Messages', + 'Templates' => 'Templates', 'Month' => 'Month', 'New' => 'New', 'Outbox' => 'Outbox', diff --git a/Theme/Backend/mail-template.tpl.php b/Theme/Backend/mail-template.tpl.php new file mode 100644 index 0000000..d0fc2d9 --- /dev/null +++ b/Theme/Backend/mail-template.tpl.php @@ -0,0 +1,79 @@ +data['template']; + +echo $this->data['nav']->render(); ?> + +
+
+ +
+
+ l11n as $idx => $l11n) : ?> + +
+
+
+
+
+ +
+
+
+
+ +
+
+
+
+
printHtml(HtmlFormatter::format($l11n->body)); ?>
+
+
+
+
+ + + +
+
+
+
+
bodyAlt; ?>
+
+
+
+
+
+ +
+
\ No newline at end of file diff --git a/Theme/Backend/mail-templates.tpl.php b/Theme/Backend/mail-templates.tpl.php index 32a7ced..3df292e 100755 --- a/Theme/Backend/mail-templates.tpl.php +++ b/Theme/Backend/mail-templates.tpl.php @@ -43,7 +43,7 @@ echo $this->data['nav']->render(); ?> $value) : ++$count; $url = UriFactory::build('{/base}/messages/template/single?{?}&id=' . $value->id); ?> - + printHtml(empty($value->subject) ? $value->getL11nByLanguage($this->response->header->l11n->language)->subject : $value->subject); ?> printHtml($value->createdAt->format('Y-m-d')); ?>