class GridStackSettingsForm in GridStack 8
Same name and namespace in other branches
- 8.2 modules/gridstack_ui/src/Form/GridStackSettingsForm.php \Drupal\gridstack_ui\Form\GridStackSettingsForm
Defines the GridStack admin 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\gridstack_ui\Form\GridStackSettingsForm
- class \Drupal\Core\Form\ConfigFormBase uses ConfigFormBaseTrait
Expanded class hierarchy of GridStackSettingsForm
1 file declares its use of GridStackSettingsForm
- GridStackSettingsFormTest.php in tests/
src/ Kernel/ Form/ GridStackSettingsFormTest.php
1 string reference to 'GridStackSettingsForm'
- gridstack_ui.routing.yml in modules/
gridstack_ui/ gridstack_ui.routing.yml - modules/gridstack_ui/gridstack_ui.routing.yml
File
- modules/
gridstack_ui/ src/ Form/ GridStackSettingsForm.php, line 16
Namespace
Drupal\gridstack_ui\FormView source
class GridStackSettingsForm extends ConfigFormBase {
/**
* Drupal\Core\Asset\LibraryDiscoveryInterface definition.
*
* @var Drupal\Core\Asset\LibraryDiscoveryInterface
*/
protected $libraryDiscovery;
/**
* The messenger service.
*
* @var \Drupal\Core\Messenger\Messenger
*/
protected $messenger;
/**
* Class constructor.
*/
public function __construct(ConfigFactoryInterface $config_factory, LibraryDiscoveryInterface $library_discovery, Messenger $messenger) {
parent::__construct($config_factory);
$this->libraryDiscovery = $library_discovery;
$this->messenger = $messenger;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container) {
return new static($container
->get('config.factory'), $container
->get('library.discovery'), $container
->get('messenger'));
}
/**
* {@inheritdoc}
*/
public function getFormId() {
return 'gridstack_settings_form';
}
/**
* {@inheritdoc}
*/
protected function getEditableConfigNames() {
return [
'gridstack.settings',
];
}
/**
* Implements \Drupal\Core\Form\FormInterface::buildForm().
*/
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);
}
/**
* Implements \Drupal\Core\Form\FormInterface::submitForm().
*/
public function submitForm(array &$form, FormStateInterface $form_state) {
$config = $this->configFactory
->getEditable('gridstack.settings');
foreach ([
'customized',
'framework',
'library',
] as $key) {
$config
->set($key, $form_state
->getValue($key));
}
$config
->save();
// Invalidate the library discovery cache to update new assets.
$this->libraryDiscovery
->clearCachedDefinitions();
// If anything fails, notice to clear the cache.
$this->messenger
->addMessage($this
->t('Be sure to <a href=":clear_cache">clear the cache</a> <strong>ONLY IF</strong> trouble to see the updated libraries.', [
':clear_cache' => Url::fromRoute('system.performance_settings')
->toString(),
]));
parent::submitForm($form, $form_state);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
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. | |
FormBase:: |
public | function |
Form validation handler. Overrides FormInterface:: |
62 |
GridStackSettingsForm:: |
protected | property | Drupal\Core\Asset\LibraryDiscoveryInterface definition. | |
GridStackSettingsForm:: |
protected | property |
The messenger service. Overrides MessengerTrait:: |
|
GridStackSettingsForm:: |
public | function |
Implements \Drupal\Core\Form\FormInterface::buildForm(). Overrides ConfigFormBase:: |
|
GridStackSettingsForm:: |
public static | function |
Instantiates a new instance of this class. Overrides ConfigFormBase:: |
|
GridStackSettingsForm:: |
protected | function |
Gets the configuration names that will be editable. Overrides ConfigFormBaseTrait:: |
|
GridStackSettingsForm:: |
public | function |
Returns a unique string identifying the form. Overrides FormInterface:: |
|
GridStackSettingsForm:: |
public | function |
Implements \Drupal\Core\Form\FormInterface::submitForm(). Overrides ConfigFormBase:: |
|
GridStackSettingsForm:: |
public | function |
Class constructor. Overrides ConfigFormBase:: |
|
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:: |
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. | |
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. |