jitsi-8.x-1.0-beta1/src/Form/Settings.php

src/Form/Settings.php
<?php

namespace Drupal\ek_jitsi\Form;

use Drupal\Core\Form\ConfigFormBase;
use Drupal\Core\Form\FormStateInterface;

/**
 * Configure ek_jitsi settings for this site.
 */
class Settings extends ConfigFormBase {

    /**
     * Settings.
     *
     * @var string Config settings
     */
    const SETTINGS = 'ek_jitsi.settings';

    /**
     * {@inheritdoc}
     */
    public function getFormId() {
        return 'ek_jitsi_settings';
    }

    /**
     * {@inheritdoc}
     */
    protected function getEditableConfigNames() {
        return [
            static::SETTINGS,
        ];
    }

    /**
     * {@inheritdoc}
     */
    public function buildForm(array $form, FormStateInterface $form_state) {
        $config = $this->config(static::SETTINGS);

        $form['ek_jitsi_domain'] = [
            '#type' => 'textfield',
            '#required' => TRUE,
            '#title' => $this->t('Signal server'),
            '#attributes' => ['placeholder' => $this->t('domain')],
            '#default_value' => $config->get('ek_jitsi_domain') ? $config->get('ek_jitsi_domain') : 'meet.jit.si',
            '#description' => $this->t('Server that manage video connections'),
        ];

        $form['ek_jitsi_library'] = [
            '#type' => 'radios',
            '#title' => $this->t('Script'),
            '#options' => ['default' => 'meet.jit.si', 'other' => $this->t('other')],
            '#default_value' => $config->get('ek_jitsi_library') ? $config->get('ek_jitsi_library') : 'default',
            '#description' => $this->t('Server that host Jisti script'),
        ];

        $form['ek_jitsi_library_url'] = array(
            '#type' => 'textfield',
            '#default_value' => $config->get('ek_jitsi_library_url') ? $config->get('ek_jitsi_library_url') : '',
            '#attributes' => array('placeholder' => 'sub-domain.domain'),
            '#description' => $this->t('i.e. "api.example.com"'),
            '#states' => array(
                'visible' => array(":input[name='ek_jitsi_library']" => ['value' => 'other']),
                'required' => array(":input[name='ek_jitsi_library']" => ['value' => 'other']),
            ),
        );

        $form['ek_jitsi_view'] = [
            '#type' => 'select',
            '#title' => $this->t('Jitsi view mode'),
            '#required' => TRUE,
            '#options' => [
                'full' => $this->t("Full screen"),
                'framed' => $this->t("Framed"),
            ],
            '#size' => 1,
            '#default_value' => $config->get('ek_jitsi_view') ? $config->get('ek_jitsi_view') : 'full',
            '#description' => $this->t('Display full screen or framed into your site layout'),
        ];

        $form['ek_jitsi_window_width'] = [
            '#type' => 'number',
            '#min' => 0,
            '#max' => 3000,
            '#title' => $this->t('Jitsi window width'),
            '#required' => TRUE,
            '#default_value' => $config->get('ek_jitsi_window_width') ? $config->get('ek_jitsi_window_width') : 800,
            '#description' => $this->t('size of popup window'),
        ];

        $form['ek_jitsi_jwt'] = [
            '#type' => 'textfield',
            '#title' => $this->t('Jitsi JWT Provider'),
            '#default_value' => $config->get('ek_jitsi_jwt') ? $config->get('ek_jitsi_jwt') : '',
            '#description' => $this->t('URL of the JWT provider end point.'),
        ];

        return parent::buildForm($form, $form_state);
    }

    /**
     * {@inheritdoc}
     */
    public function validateForm(array &$form, FormStateInterface $form_state) {
        
    }

    /**
     * {@inheritdoc}
     */
    public function submitForm(array &$form, FormStateInterface $form_state) {

        $this->configFactory->getEditable(static::SETTINGS)
                ->set('ek_jitsi_domain', $form_state->getValue('ek_jitsi_domain'))
                ->set('ek_jitsi_library', $form_state->getValue('ek_jitsi_library'))
                ->set('ek_jitsi_library_url', $form_state->getValue('ek_jitsi_library_url'))
                ->set('ek_jitsi_view', $form_state->getValue('ek_jitsi_view'))
                ->set('ek_jitsi_window_width', $form_state->getValue('ek_jitsi_window_width'))
                ->set('ek_jitsi_jwt', $form_state->getValue('ek_jitsi_jwt'))
                ->save();

        parent::submitForm($form, $form_state);
    }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc