diff --git a/Controller/ApiController.php b/Controller/ApiController.php index 0ceb387..d12cb4d 100755 --- a/Controller/ApiController.php +++ b/Controller/ApiController.php @@ -24,6 +24,7 @@ use phpOMS\Message\NotificationLevel; use phpOMS\Message\RequestAbstract; use phpOMS\Message\ResponseAbstract; use phpOMS\Model\Message\FormValidation; +use Modules\Admin\Models\NullAccount; /** * Api controller for the dashboard module. @@ -94,7 +95,7 @@ final class ApiController extends Controller { $board = new DashboardBoard(); $board->title = (string) ($request->getData('title') ?? ''); - $board->account = $request->header->account; + $board->account = new NullAccount($request->header->account); $board->setStatus(DashboardBoardStatus::ACTIVE); return $board; diff --git a/Models/DashboardBoard.php b/Models/DashboardBoard.php index c8bda1e..336ecc8 100755 --- a/Models/DashboardBoard.php +++ b/Models/DashboardBoard.php @@ -14,6 +14,8 @@ declare(strict_types=1); namespace Modules\Dashboard\Models; +use Modules\Admin\Models\Account; +use Modules\Admin\Models\NullAccount; use phpOMS\Stdlib\Base\Exception\InvalidEnumValue; /** @@ -45,10 +47,10 @@ class DashboardBoard implements \JsonSerializable /** * Account. * - * @var null|int + * @var Account * @since 1.0.0 */ - public ?int $account = null; + public Account $account; /** * Status. @@ -66,6 +68,16 @@ class DashboardBoard implements \JsonSerializable */ protected array $components = []; + /** + * Cosntructor. + * + * @since 1.0.0 + */ + public function __construct() + { + $this->account = new NullAccount(); + } + /** * Get id * diff --git a/Theme/Backend/dashboard.tpl.php b/Theme/Backend/dashboard.tpl.php index bc53579..ffe1a81 100755 --- a/Theme/Backend/dashboard.tpl.php +++ b/Theme/Backend/dashboard.tpl.php @@ -1,6 +1,9 @@
-getData('panels'); ?> - - render(); ?> - + getData('panels'); + if (empty($panels)) : ?> +
+ + render(); ?> +
\ No newline at end of file diff --git a/tests/Models/DashboardBoardTest.php b/tests/Models/DashboardBoardTest.php index 50b8660..80238be 100644 --- a/tests/Models/DashboardBoardTest.php +++ b/tests/Models/DashboardBoardTest.php @@ -10,6 +10,7 @@ * @version 1.0.0 * @link https://orange-management.org */ + declare(strict_types=1); namespace Modules\Dashboard\tests\Models; @@ -17,6 +18,7 @@ namespace Modules\Dashboard\tests\Models; use Modules\Dashboard\Models\DashboardBoard; use Modules\Dashboard\Models\DashboardBoardStatus; use Modules\Dashboard\Models\DashboardComponent; +use Modules\Admin\Models\NullAccount; /** * @internal @@ -28,7 +30,7 @@ final class DashboardBoardTest extends \PHPUnit\Framework\TestCase /** * {@inheritdoc} */ - protected function setUp() : void + protected function setUp(): void { $this->board = new DashboardBoard(); } @@ -37,13 +39,13 @@ final class DashboardBoardTest extends \PHPUnit\Framework\TestCase * @covers Modules\Dashboard\Models\DashboardBoard * @group module */ - public function testDefault() : void + public function testDefault(): void { self::assertEquals(0, $this->board->getId()); self::assertEquals('', $this->board->title); - self::assertNull($this->board->account); self::assertEquals([], $this->board->getComponents()); self::assertEquals(DashboardBoardStatus::ACTIVE, $this->board->getStatus()); + self::assertInstanceOf('\Modules\Admin\Models\NullAccount', $this->board->account); self::assertInstanceOf('\Modules\Dashboard\Models\NullDashboardComponent', $this->board->getComponent(0)); } @@ -51,7 +53,7 @@ final class DashboardBoardTest extends \PHPUnit\Framework\TestCase * @covers Modules\Dashboard\Models\DashboardBoard * @group module */ - public function testStatusInputOutput() : void + public function testStatusInputOutput(): void { $this->board->setStatus(DashboardBoardStatus::INACTIVE); self::assertEquals(DashboardBoardStatus::INACTIVE, $this->board->getStatus()); @@ -61,7 +63,7 @@ final class DashboardBoardTest extends \PHPUnit\Framework\TestCase * @covers Modules\Dashboard\Models\DashboardBoard * @group module */ - public function testInvalidStatus() : void + public function testInvalidStatus(): void { $this->expectException(\phpOMS\Stdlib\Base\Exception\InvalidEnumValue::class); $this->board->setStatus(999); @@ -71,7 +73,7 @@ final class DashboardBoardTest extends \PHPUnit\Framework\TestCase * @covers Modules\Dashboard\Models\DashboardBoard * @group module */ - public function testComponentInputOutput() : void + public function testComponentInputOutput(): void { $id = $this->board->addComponent($temp = new DashboardComponent()); self::assertEquals($temp, $this->board->getComponent($id)); @@ -84,16 +86,16 @@ final class DashboardBoardTest extends \PHPUnit\Framework\TestCase * @covers Modules\Dashboard\Models\DashboardBoard * @group module */ - public function testSerialize() : void + public function testSerialize(): void { $this->board->title = 'Title'; - $this->board->account = 2; + $this->board->account = new NullAccount(2); $this->board->setStatus(DashboardBoardStatus::INACTIVE); self::assertEquals( [ 'id' => 0, - 'account' => 2, + 'account' => $this->board->account, 'title' => 'Title', 'status' => DashboardBoardStatus::INACTIVE, 'components' => [],