* @copyright Copyright (C) 2026 Moko Consulting. All rights reserved. * @license GNU General Public License version 3 or later; see LICENSE */ namespace Joomla\Component\MokoSuiteBackup\Administrator\View\Dashboard; defined('_JEXEC') or die; use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView; use Joomla\CMS\Toolbar\ToolbarHelper; class HtmlView extends BaseHtmlView { public ?object $lastBackup = null; public ?object $nextScheduled = null; public object $stats; public array $systemHealth = []; public array $profiles = []; public bool $defaultDirWarning = false; public ?object $latestSnapshot = null; public int $snapshotCount = 0; public array $backupTrend = []; public array $storageByProfile = []; public function display($tpl = null): void { /** @var \Joomla\Component\MokoSuiteBackup\Administrator\Model\DashboardModel $model */ $model = $this->getModel(); $this->lastBackup = $model->getLastBackup(); $this->nextScheduled = $model->getNextScheduled(); $this->stats = $model->getStats(); $this->systemHealth = $model->getSystemHealth(); $this->profiles = $model->getProfiles(); $this->defaultDirWarning = $model->isUsingDefaultBackupDir(); $this->latestSnapshot = $model->getLatestSnapshot(); $this->snapshotCount = $model->getSnapshotCount(); $this->backupTrend = $model->getBackupTrend(); $this->storageByProfile = $model->getStorageByProfile(); $this->addToolbar(); parent::display($tpl); } protected function addToolbar(): void { ToolbarHelper::title(Text::_('COM_MOKOJOOMBACKUP_SHORT') . ': ' . Text::_('COM_MOKOJOOMBACKUP_DASHBOARD_TITLE'), 'archive'); ToolbarHelper::preferences('com_mokosuitebackup'); } }