Add configuration form for theming options

refs #10705
This commit is contained in:
Eric Lippmann 2015-11-26 15:52:15 +01:00
parent 74820de9ea
commit f9c10ab500
1 changed files with 72 additions and 0 deletions

View File

@ -0,0 +1,72 @@
<?php
/* Icinga Web 2 | (c) 2013-2015 Icinga Development Team | GPLv2+ */
namespace Icinga\Forms\Config\General;
use Icinga\Application\Icinga;
use Icinga\Application\Logger;
use Icinga\Web\Form;
/**
* Configuration form for theming options
*
* This form is not used directly but as subform for the {@link GeneralConfigForm}.
*/
class ThemingConfigForm extends Form
{
/**
* {@inheritdoc}
*/
public function init()
{
$this->setName('form_config_general_theming');
}
/**
* {@inheritdoc}
*
* @return $this
*/
public function createElements(array $formData)
{
$this->addElement(
'select',
'themes_default',
array(
'description' => $this->translate('The default theme', 'Form element description'),
'label' => $this->translate('Default Theme', 'Form element label'),
'multiOptions' => Icinga::app()->getThemes()
)
);
$this->addElement(
'checkbox',
'themes_disabled',
array(
'description' => $this->translate(
'Check this box for disallowing users to change the theme. If a default theme is set, it will be'
. ' used nonetheless',
'Form element description'
),
'label' => $this->translate('Disable Themes', 'Form element label')
)
);
return $this;
}
/**
* {@inheritdoc}
*/
public function getValues($suppressArrayNotation = false)
{
$values = parent::getValues($suppressArrayNotation);
if ($values['themes_default'] === 'Icinga') {
$values['themes_default'] = null;
}
if (! $values['themes_disabled']) {
$values['themes_disabled'] = null;
}
return $values;
}
}