class SettingsForm in BigBlueButton 8
Same name in this branch
- 8 src/Form/SettingsForm.php \Drupal\bbb\Form\SettingsForm
- 8 modules/bbb_node/src/Form/SettingsForm.php \Drupal\bbb_node\Form\SettingsForm
Provides an administration settings form.
Hierarchy
- class \Drupal\Core\Form\FormBase implements ContainerInjectionInterface, FormInterface uses DependencySerializationTrait, LoggerChannelTrait, MessengerTrait, LinkGeneratorTrait, RedirectDestinationTrait, UrlGeneratorTrait, StringTranslationTrait
- class \Drupal\Core\Form\ConfigFormBase uses ConfigFormBaseTrait
- class \Drupal\bbb\Form\SettingsForm
- class \Drupal\Core\Form\ConfigFormBase uses ConfigFormBaseTrait
Expanded class hierarchy of SettingsForm
1 string reference to 'SettingsForm'
File
- src/
Form/ SettingsForm.php, line 14
Namespace
Drupal\bbb\FormView source
class SettingsForm extends ConfigFormBase {
/**
* {@inheritdoc}
*/
protected function getEditableConfigNames() {
return [
'bbb.settings',
];
}
/**
* {@inheritdoc}
*/
public function getFormID() {
return 'bbb_settings';
}
/**
* {@inheritdoc}
*/
public function buildForm(array $form, FormStateInterface $form_state) {
// Get all settings.
$config = $this->configFactory
->get('bbb.settings');
$settings = $config
->get();
$form['bbb_server'] = [
'#title' => 'Server settings',
'#type' => 'fieldset',
'#tree' => TRUE,
'#description' => $this
->t('Run <em>bbb-conf --secret</em> at the server to get correct values. Read more about BigBlueButton on <a href="@home">@home_title</a>. See the documentation for <a href="@documentation">@documentation_title</a>', [
'@home' => 'http://bigbluebutton.org/',
'@home_title' => $this
->t('BigBlueButton.org'),
'@documentation' => 'http://code.google.com/p/bigbluebutton/',
'@documentation_title' => $this
->t('installation instructions'),
]),
'#attributes' => [
'id' => 'modal-command-area',
],
];
$form['bbb_server']['base_url'] = [
'#title' => $this
->t('Base URL'),
'#type' => 'textfield',
'#default_value' => $settings['base_url'],
];
$form['bbb_server']['security_salt'] = [
'#title' => $this
->t('Security Salt'),
'#type' => 'textfield',
'#default_value' => $settings['security_salt'],
'#description' => $this
->t('The predefined security salt. This is a server side configuration option. Please check the BigBlueButton <a href="@documentation">@documentation_title</a>.', [
'@documentation' => 'http://code.google.com/p/bigbluebutton/',
'@documentation_title' => $this
->t('installation instructions'),
]),
];
$form['actions']['connection'] = [
'#type' => 'button',
'#executes_submit_callback' => FALSE,
'#value' => $this
->t('Test Connection'),
'#attributes' => [
'class' => [
'use-ajax',
],
],
'#ajax' => [
'callback' => '::testConnection',
'wrapper' => 'modal-command-area',
],
'#attached' => [
'library' => [
'core/drupal.dialog.ajax',
],
],
'#weight' => 30,
];
return parent::buildForm($form, $form_state);
}
/**
* {@inheritdoc}
*/
public function submitForm(array &$form, FormStateInterface $form_state) {
// Get config factory.
$config = $this->configFactory
->getEditable('bbb.settings');
$form_values = $form_state
->getValues();
$config
->set('security_salt', $form_values['bbb_server']['security_salt'])
->set('base_url', $form_values['bbb_server']['base_url'])
->save();
parent::submitForm($form, $form_state);
}
/**
* {@inheritdoc}
*/
public function validateForm(array &$form, FormStateInterface $form_state) {
$url_key = [
'bbb_server',
'base_url',
];
$url = $form_state
->getValue($url_key);
if (empty($url)) {
$form_state
->setErrorByName(implode('][', $url_key), $this
->t('Base url should not be empty.'));
}
else {
if (strpos($url, 'http') !== 0) {
$form_state
->setErrorByName(implode('][', $url_key), $this
->t('Base url protocol is not defined. Use one of <em>http://</em> or <em>https://</em>.'));
}
if (substr($url, -1) !== '/') {
$form_state
->setErrorByName(implode('][', $url_key), $this
->t('Base url should end with <em>/</em> <em>(the slash symbol)</em>.'));
}
if (substr($url, -5) === '/api/') {
$form_state
->setErrorByName(implode('][', $url_key), $this
->t('Do not set <em>api/</em> suffix.'));
}
}
parent::validateForm($form, $form_state);
}
/**
* Test connection to Big Blue Button.
*/
public function testConnection($form, FormStateInterface $form_state) {
$response = simplexml_load_file($form_state
->getValue([
'bbb_server',
'base_url',
]) . 'api/');
if (!$response) {
$content = $this
->t('Bad connection');
}
else {
$link = Url::fromUri('https://mconf.github.io/api-mate/', [
'fragment' => http_build_query([
'server' => $form_state
->getValue([
'bbb_server',
'base_url',
]),
'sharedSecret' => $form_state
->getValue([
'bbb_server',
'security_salt',
]),
]),
])
->toString();
$content = $this
->t('Good connection.<br />Status: <em>@status</em><br />Version: <em>@version</em><br /><a href="@link" target="_blank">Link to the API-Mate</a>', [
'@status' => $response->returncode,
'@version' => $response->version,
'@link' => $link,
]);
$content .= '<br /><iframe src="' . $link . '" style="width: 100%; min-height: 50vh" frameborder="0"></iframe>';
}
$commands = new AjaxResponse();
$commands
->addCommand(new OpenModalDialogCommand($this
->t('Test connection'), $content, [
'width' => "90%",
]));
return $commands;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ConfigFormBase:: |
public static | function |
Instantiates a new instance of this class. Overrides FormBase:: |
13 |
ConfigFormBase:: |
public | function | Constructs a \Drupal\system\ConfigFormBase object. | 11 |
ConfigFormBaseTrait:: |
protected | function | Retrieves a configuration object. | |
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
FormBase:: |
protected | property | The config factory. | 1 |
FormBase:: |
protected | property | The request stack. | 1 |
FormBase:: |
protected | property | The route match. | |
FormBase:: |
protected | function | Gets the config factory for this form. | 1 |
FormBase:: |
private | function | Returns the service container. | |
FormBase:: |
protected | function | Gets the current user. | |
FormBase:: |
protected | function | Gets the request object. | |
FormBase:: |
protected | function | Gets the route match. | |
FormBase:: |
protected | function | Gets the logger for a specific channel. | |
FormBase:: |
protected | function |
Returns a redirect response object for the specified route. Overrides UrlGeneratorTrait:: |
|
FormBase:: |
public | function | Resets the configuration factory. | |
FormBase:: |
public | function | Sets the config factory for this form. | |
FormBase:: |
public | function | Sets the request stack object to use. | |
FormInterface:: |
public | function | Returns a unique string identifying the form. | 236 |
LinkGeneratorTrait:: |
protected | property | The link generator. | 1 |
LinkGeneratorTrait:: |
protected | function | Returns the link generator. | |
LinkGeneratorTrait:: |
protected | function | Renders a link to a route given a route name and its parameters. | |
LinkGeneratorTrait:: |
public | function | Sets the link generator service. | |
LoggerChannelTrait:: |
protected | property | The logger channel factory service. | |
LoggerChannelTrait:: |
protected | function | Gets the logger for a specific channel. | |
LoggerChannelTrait:: |
public | function | Injects the logger channel factory. | |
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
RedirectDestinationTrait:: |
protected | property | The redirect destination service. | 1 |
RedirectDestinationTrait:: |
protected | function | Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url. | |
RedirectDestinationTrait:: |
protected | function | Returns the redirect destination service. | |
RedirectDestinationTrait:: |
public | function | Sets the redirect destination service. | |
SettingsForm:: |
public | function |
Form constructor. Overrides ConfigFormBase:: |
|
SettingsForm:: |
protected | function |
Gets the configuration names that will be editable. Overrides ConfigFormBaseTrait:: |
|
SettingsForm:: |
public | function | ||
SettingsForm:: |
public | function |
Form submission handler. Overrides ConfigFormBase:: |
|
SettingsForm:: |
public | function | Test connection to Big Blue Button. | |
SettingsForm:: |
public | function |
Form validation handler. Overrides FormBase:: |
|
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. | |
UrlGeneratorTrait:: |
protected | property | The url generator. | |
UrlGeneratorTrait:: |
protected | function | Returns the URL generator service. | |
UrlGeneratorTrait:: |
public | function | Sets the URL generator service. | |
UrlGeneratorTrait:: |
protected | function | Generates a URL or path for a specific route based on the given parameters. |