diff --git a/application/forms/Dashboard/WelcomeForm.php b/application/forms/Dashboard/WelcomeForm.php new file mode 100644 index 000000000..37173c1e7 --- /dev/null +++ b/application/forms/Dashboard/WelcomeForm.php @@ -0,0 +1,58 @@ +dashboard = $dashboard; + $this->setRedirectUrl(Url::fromPath(Dashboard::BASE_ROUTE)); + } + + public function hasBeenSubmitted() + { + return parent::hasBeenSubmitted() || $this->getPressedSubmitElement(); + } + + protected function assemble() + { + $element = $this->createElement('submit', 'btn_use_defaults', ['label' => t('Use System Defaults')]); + $this->registerElement($element)->decorate($element); + + $this->addElement('submit', 'btn_customize_dashlets', [ + 'label' => t('Add Dashlets Now'), + 'href' => Url::fromPath(Dashboard::BASE_ROUTE . '/setup-dashboard'), + 'data-icinga-modal' => true, + 'data-no-icinga-ajax' => true + ]); + + $this->getElement('btn_customize_dashlets')->setWrapper($element->getWrapper()); + } + + protected function onSuccess() + { + if ($this->getPopulatedValue('btn_use_defaults')) { + $order = 0; + $home = $this->dashboard->getHome(DashboardHome::DEFAULT_HOME); + foreach ($this->dashboard->getSystemDefaults() as $pane) { + $pane->setPriority($order++); + $home->managePanes($pane); + + $dashlets = $pane->getDashlets(); + $pane->setDashlets([]); + $pane->manageDashlets($dashlets); + } + } + } +}