You are here

public function GridStackSettingsForm::buildForm in GridStack 8

Same name and namespace in other branches
  1. 8.2 modules/gridstack_ui/src/Form/GridStackSettingsForm.php \Drupal\gridstack_ui\Form\GridStackSettingsForm::buildForm()

Implements \Drupal\Core\Form\FormInterface::buildForm().

Overrides ConfigFormBase::buildForm

File

modules/gridstack_ui/src/Form/GridStackSettingsForm.php, line 69

Class

GridStackSettingsForm
Defines the GridStack admin settings form.

Namespace

Drupal\gridstack_ui\Form

Code

public function buildForm(array $form, FormStateInterface $form_state) {
  $config = $this
    ->config('gridstack.settings');
  $form['customized'] = [
    '#type' => 'checkbox',
    '#title' => $this
      ->t('Use customized GridStack library'),
    '#description' => $this
      ->t('This is deprecated as per v0.3.0 which already decouples jQuery UI for its static grid. This is still useful to reduce JS size from 34KB to 20KB. <br><strong>Old warning!</strong> This _was a proof of concept that GridStack can work without jQuery UI for the static grid at frontend. Be sure to disable this when jQuery UI related issues are resolved. This customized library is meant temporary, and may not always stay updated! <br><strong>Until then, use at your own risk.</strong>'),
    '#default_value' => $config
      ->get('customized'),
  ];
  $form['framework'] = [
    '#type' => 'select',
    '#title' => $this
      ->t('Grid framework'),
    '#options' => [
      'bootstrap3' => 'Bootstrap 3',
      'bootstrap' => 'Bootstrap 4',
      'foundation' => 'Foundation',
    ],
    '#empty_option' => '- None -',
    '#description' => $this
      ->t("By default GridStack supports dynamic magazine layouts -- js-driven. Choose a grid framework to also support static grids -- css-driven.<br>This will be used as a replacement for GridStack JS whenever provided/ overriden <strong>per optionset</strong>. This means no GridStack JS/ CSS assets are loaded for the active optionset. Your Bootstrap/ Foundation grid framework will take over. GridStack acts more like a layout builder for those static grids. Yet still usable as original dynamic magazine layouts as well, <strong>per optionset</strong>. <br>GridStack doesn't load the Bootstrap/Foundation library for you. Have a theme, or module, which does it."),
    '#default_value' => $config
      ->get('framework'),
  ];
  $form['library'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('Grid library'),
    '#description' => $this
      ->t('Specify CSS grid library to load at admin pages such as for core layout builder pages, e.g.: <code>bootstrap_library/bootstrap, my_theme/bootstrap</code>, etc.'),
    '#default_value' => $config
      ->get('library'),
  ];
  return parent::buildForm($form, $form_state);
}