cloud-8.x-2.0-beta1/modules/cloud_service_providers/k8s/src/Form/Config/K8sAdminSettings.php
modules/cloud_service_providers/k8s/src/Form/Config/K8sAdminSettings.php
<?php
namespace Drupal\k8s\Form\Config;
use Drupal\Core\Form\ConfigFormBase;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Config\ConfigFactoryInterface;
use Drupal\Core\File\FileSystemInterface;
use Drupal\cloud\Plugin\cloud\config\CloudConfigPluginManagerInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
/**
* Class Kubernetes Admin Settings.
*/
class K8sAdminSettings extends ConfigFormBase {
/**
* The file system service.
*
* @var \Drupal\Core\File\FileSystemInterface
*/
private $fileSystem;
/**
* The cloud service provider plugin manager.
*
* @var \Drupal\cloud\Plugin\cloud\config\CloudConfigPluginManagerInterface
*/
private $cloudConfigPluginManager;
/**
* Constructs a K8sAdminSettings object.
*
* @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
* The factory for configuration objects.
* @param \Drupal\Core\File\FileSystemInterface $file_system
* The file system service.
* @param \Drupal\cloud\Plugin\cloud\config\CloudConfigPluginManagerInterface $cloud_config_plugin_manager
* The cloud service provider plugin manager.
*/
public function __construct(
ConfigFactoryInterface $config_factory,
FileSystemInterface $file_system,
CloudConfigPluginManagerInterface $cloud_config_plugin_manager
) {
parent::__construct($config_factory);
$this->fileSystem = $file_system;
$this->cloudConfigPluginManager = $cloud_config_plugin_manager;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container) {
return new static(
$container->get('config.factory'),
$container->get('file_system'),
$container->get('plugin.manager.cloud_config_plugin')
);
}
/**
* {@inheritdoc}
*/
public function getFormId() {
return 'k8s_admin_settings';
}
/**
* {@inheritdoc}
*/
protected function getEditableConfigNames() {
return ['k8s.settings'];
}
/**
* {@inheritdoc}
*/
public function buildForm(array $form, FormStateInterface $form_state) {
$config = $this->config('k8s.settings');
$form['k8s_js_refresh_interval'] = [
'#type' => 'number',
'#title' => 'UI Refresh Interval',
'#description' => $this->t('Refresh UI (Charts and etc) at periodical intervals.'),
'#default_value' => $config->get('k8s_js_refresh_interval'),
'#min' => 1,
'#max' => 9999,
'#field_suffix' => 'seconds',
];
return parent::buildForm($form, $form_state);
}
/**
* {@inheritdoc}
*/
public function submitForm(array &$form, FormStateInterface $form_state) {
$config = $this->configFactory()->getEditable('k8s.settings');
$config->set('k8s_js_refresh_interval', $form_state->getValue('k8s_js_refresh_interval'));
$config->save();
parent::submitForm($form, $form_state);
}
}
