diff options
Diffstat (limited to '')
-rw-r--r-- | library/Director/Web/Tabs/ImportsourceTabs.php | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/library/Director/Web/Tabs/ImportsourceTabs.php b/library/Director/Web/Tabs/ImportsourceTabs.php new file mode 100644 index 0000000..74dedb3 --- /dev/null +++ b/library/Director/Web/Tabs/ImportsourceTabs.php @@ -0,0 +1,58 @@ +<?php + +namespace Icinga\Module\Director\Web\Tabs; + +use gipfl\Translation\TranslationHelper; +use gipfl\IcingaWeb2\Widget\Tabs; + +class ImportsourceTabs extends Tabs +{ + use TranslationHelper; + + protected $id; + + public function __construct($id = null) + { + $this->id = $id; + $this->assemble(); + } + + public function activateMainWithPostfix($postfix) + { + $mainTab = 'index'; + $tab = $this->get($mainTab); + $tab->setLabel($tab->getLabel() . ": $postfix"); + $this->activate($mainTab); + + return $this; + } + + protected function assemble() + { + if ($id = $this->id) { + $params = ['id' => $id]; + $this->add('index', [ + 'url' => 'director/importsource', + 'urlParams' => $params, + 'label' => $this->translate('Import source'), + ])->add('modifier', [ + 'url' => 'director/importsource/modifier', + 'urlParams' => ['source_id' => $id], + 'label' => $this->translate('Modifiers'), + ])->add('history', [ + 'url' => 'director/importsource/history', + 'urlParams' => $params, + 'label' => $this->translate('History'), + ])->add('preview', [ + 'url' => 'director/importsource/preview', + 'urlParams' => $params, + 'label' => $this->translate('Preview'), + ]); + } else { + $this->add('add', [ + 'url' => 'director/importsource/add', + 'label' => $this->translate('New import source'), + ])->activate('add'); + } + } +} |