summaryrefslogtreecommitdiffstats
path: root/library/Reporting/Web/Widget/Template.php
diff options
context:
space:
mode:
Diffstat (limited to 'library/Reporting/Web/Widget/Template.php')
-rw-r--r--library/Reporting/Web/Widget/Template.php44
1 files changed, 19 insertions, 25 deletions
diff --git a/library/Reporting/Web/Widget/Template.php b/library/Reporting/Web/Widget/Template.php
index e780a3d..0f07703 100644
--- a/library/Reporting/Web/Widget/Template.php
+++ b/library/Reporting/Web/Widget/Template.php
@@ -1,17 +1,15 @@
<?php
+
// Icinga Reporting | (c) 2018 Icinga GmbH | GPLv2
namespace Icinga\Module\Reporting\Web\Widget;
use Icinga\Module\Reporting\Common\Macros;
-use Icinga\Module\Reporting\Database;
+use Icinga\Module\Reporting\Model;
use ipl\Html\BaseHtmlElement;
-use ipl\Html\Html;
-use ipl\Sql\Select;
class Template extends BaseHtmlElement
{
- use Database;
use Macros;
protected $tag = 'div';
@@ -38,39 +36,35 @@ class Template extends BaseHtmlElement
return sprintf('data:%s;base64,%s', $image['mime_type'], $image['content']);
}
- public static function fromDb($id)
+ /**
+ * Create template from the given model
+ *
+ * @param Model\Template $templateModel
+ *
+ * @return static
+ */
+ public static function fromModel(Model\Template $templateModel): self
{
$template = new static();
- $select = (new Select())
- ->from('template')
- ->columns('*')
- ->where(['id = ?' => $id]);
-
- $row = $template->getDb()->select($select)->fetch();
-
- if ($row === false) {
- return null;
- }
-
- $row->settings = json_decode($row->settings, true);
+ $templateModel->settings = json_decode($templateModel->settings, true);
$coverPage = (new CoverPage())
- ->setColor($row->settings['color'])
- ->setTitle($row->settings['title']);
+ ->setColor($templateModel->settings['color'])
+ ->setTitle($templateModel->settings['title']);
- if (isset($row->settings['cover_page_background_image'])) {
- $coverPage->setBackgroundImage($row->settings['cover_page_background_image']);
+ if (isset($templateModel->settings['cover_page_background_image'])) {
+ $coverPage->setBackgroundImage($templateModel->settings['cover_page_background_image']);
}
- if (isset($row->settings['cover_page_logo'])) {
- $coverPage->setLogo($row->settings['cover_page_logo']);
+ if (isset($templateModel->settings['cover_page_logo'])) {
+ $coverPage->setLogo($templateModel->settings['cover_page_logo']);
}
$template
->setCoverPage($coverPage)
- ->setHeader(new HeaderOrFooter(HeaderOrFooter::HEADER, $row->settings))
- ->setFooter(new HeaderOrFooter(HeaderOrFooter::FOOTER, $row->settings));
+ ->setHeader(new HeaderOrFooter(HeaderOrFooter::HEADER, $templateModel->settings))
+ ->setFooter(new HeaderOrFooter(HeaderOrFooter::FOOTER, $templateModel->settings));
return $template;
}