class GridStackListBuilder in GridStack 8
Same name and namespace in other branches
- 8.2 modules/gridstack_ui/src/Controller/GridStackListBuilder.php \Drupal\gridstack_ui\Controller\GridStackListBuilder
Provides a listing of GridStack optionsets.
Hierarchy
- class \Drupal\Core\Entity\EntityHandlerBase uses DependencySerializationTrait, StringTranslationTrait
- class \Drupal\Core\Entity\EntityListBuilder implements EntityHandlerInterface, EntityListBuilderInterface uses MessengerTrait, RedirectDestinationTrait
- class \Drupal\Core\Config\Entity\ConfigEntityListBuilder
- class \Drupal\Core\Config\Entity\DraggableListBuilder implements FormInterface
- class \Drupal\gridstack_ui\Controller\GridStackListBuilder
- class \Drupal\Core\Config\Entity\DraggableListBuilder implements FormInterface
- class \Drupal\Core\Config\Entity\ConfigEntityListBuilder
- class \Drupal\Core\Entity\EntityListBuilder implements EntityHandlerInterface, EntityListBuilderInterface uses MessengerTrait, RedirectDestinationTrait
Expanded class hierarchy of GridStackListBuilder
File
- modules/
gridstack_ui/ src/ Controller/ GridStackListBuilder.php, line 20
Namespace
Drupal\gridstack_ui\ControllerView source
class GridStackListBuilder extends DraggableListBuilder {
/**
* The gridstack manager.
*
* @var \Drupal\gridstack\GridStackManagerInterface
*/
protected $manager;
/**
* Constructs a new GridStackListBuilder object.
*
* @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
* The entity type definition.
* @param \Drupal\Core\Entity\EntityStorageInterface $storage
* The entity storage class.
* @param \Drupal\gridstack\GridStackManagerInterface $manager
* The gridstack manager.
*/
public function __construct(EntityTypeInterface $entity_type, EntityStorageInterface $storage, GridStackManagerInterface $manager) {
parent::__construct($entity_type, $storage);
$this->manager = $manager;
}
/**
* {@inheritdoc}
*/
public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) {
return new static($entity_type, $container
->get('entity_type.manager')
->getStorage($entity_type
->id()), $container
->get('gridstack.manager'));
}
/**
* {@inheritdoc}
*/
public function getFormId() {
return 'gridstack_list_form';
}
/**
* {@inheritdoc}
*/
public function buildHeader() {
$header = [
'label' => $this
->t('Optionset'),
'icon' => $this
->t('Icon'),
'framework' => $this
->t('Grid framework'),
'grids' => $this
->t('Grids : Nested'),
'provider' => $this
->t('Provider'),
];
return $header + parent::buildHeader();
}
/**
* {@inheritdoc}
*/
public function buildRow(EntityInterface $entity) {
$icon_uri = $entity
->getIconUri();
$manager = $this->manager;
$framework = $manager
->configLoad('framework', 'gridstack.settings');
$use_framework = $framework && $entity
->getOption('use_framework');
$row['label'] = Html::escape($entity
->label());
$row['icon'] = [];
$row['framework'] = [];
if (!empty($icon_uri)) {
$row['icon'] = [
'#theme' => 'blazy',
'#settings' => [
'uri' => $icon_uri,
'lazy' => 'blazy',
],
];
}
$row['framework']['#markup'] = $use_framework ? ucwords($framework) : 'GridStack JS';
$grids = $entity
->getEndBreakpointGrids();
$nested = $entity
->getEndBreakpointGrids('nested');
$nested = array_filter($nested);
$counts = [];
if (!empty($nested)) {
foreach ($nested as $grid) {
if (empty($grid)) {
continue;
}
if (is_string($grid)) {
$grid = Json::decode($grid);
}
$boxes = [];
foreach ($grid as $item) {
if (!isset($item['width'])) {
continue;
}
$boxes[] = $item['width'];
}
$counts = NestedArray::mergeDeep($counts, $boxes);
}
}
$nested_grids = empty($nested) ? '0' : count($counts);
$row['grids']['#markup'] = $this
->t('@grids : @nested', [
'@grids' => count($grids),
'@nested' => $nested_grids,
]);
$dependencies = $entity
->getDependencies();
$row['provider']['#markup'] = isset($dependencies['module'][0]) ? $dependencies['module'][0] : 'gridstack';
return $row + parent::buildRow($entity);
}
/**
* {@inheritdoc}
*/
public function getDefaultOperations(EntityInterface $entity) {
$operations = parent::getDefaultOperations($entity);
if (isset($operations['edit'])) {
$operations['edit']['title'] = $this
->t('Configure');
}
$operations['duplicate'] = [
'title' => $this
->t('Duplicate'),
'weight' => 15,
'url' => $entity
->toUrl('duplicate-form'),
];
if ($entity
->id() == 'default') {
unset($operations['delete'], $operations['edit']);
}
if ($entity
->id() == 'frontend') {
unset($operations['delete']);
}
return $operations;
}
/**
* Adds some descriptive text to the gridstack optionsets list.
*
* @return array
* Renderable array.
*
* @see admin/config/development/configuration/single/export
*/
public function render() {
$build['description'] = [
'#markup' => $this
->t("<p>Manage the GridStack optionsets. Optionsets are Config Entities.</p><p>By default, when this module is enabled, four optionsets are created from configuration: Default Admin, Default Frontend, Default Bootstrap/ Foundation. Install GridStack example module to speed up by cloning them. Use the Operations column to edit, clone and delete optionsets. GridStack supports both magazine layout (GridStack JS), and static float layout (Bootstrap/ Foundation). The main difference is no fixed height, no JS, just CSS, for static float layout. Visit <a href=':ui'>GridStack UI</a> page to enable its support. To generate icons, edit and save optionsets. Press <code>F5</code>, or <code>CTRL/CMD + R</code> to refresh cached icons whenever updated.<br><strong>Important!</strong><br>Avoid overriding Default Admin (hidden) optionset as it is meant for Default -- checking and cleaning the frontend. Use Duplicate Default Frontend (GridStack JS), or Default Bootstrap/ Foundation, accordingly instead. Otherwise possible messes.<br>Use <a href=':url'>config_update</a> module to revert to stored optionsets at <em>/admin/config/development/configuration/report/module/gridstack</em>, if needed.</p>", [
':ui' => Url::fromRoute('gridstack.settings')
->toString(),
':url' => '//drupal.org/project/config_update',
]),
];
$build[] = parent::render();
$build['#attached']['library'][] = 'blazy/load';
$build['#attached']['library'][] = 'gridstack/admin';
return $build;
}
/**
* {@inheritdoc}
*/
public function submitForm(array &$form, FormStateInterface $form_state) {
parent::submitForm($form, $form_state);
drupal_set_message($this
->t('The optionsets order has been updated.'));
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ConfigEntityListBuilder:: |
public | function |
Loads entities of this type from storage for listing. Overrides EntityListBuilder:: |
7 |
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 | |
DraggableListBuilder:: |
protected | property | The entities being listed. | 1 |
DraggableListBuilder:: |
protected | property | The key to use for the form element containing the entities. | 3 |
DraggableListBuilder:: |
protected | property | The form builder. | |
DraggableListBuilder:: |
protected | property |
The number of entities to list per page, or FALSE to list all entities. Overrides EntityListBuilder:: |
|
DraggableListBuilder:: |
protected | property | Name of the entity's weight field or FALSE if no field is provided. | |
DraggableListBuilder:: |
public | function |
Form constructor. Overrides FormInterface:: |
4 |
DraggableListBuilder:: |
protected | function | Returns the form builder. | |
DraggableListBuilder:: |
public | function |
Form validation handler. Overrides FormInterface:: |
2 |
EntityHandlerBase:: |
protected | property | The module handler to invoke hooks on. | 2 |
EntityHandlerBase:: |
protected | function | Gets the module handler. | 2 |
EntityHandlerBase:: |
public | function | Sets the module handler for this handler. | |
EntityListBuilder:: |
protected | property | Information about the entity type. | |
EntityListBuilder:: |
protected | property | The entity type ID. | |
EntityListBuilder:: |
protected | property | The entity storage class. | 1 |
EntityListBuilder:: |
public | function | Builds a renderable list of operation links for the entity. | 2 |
EntityListBuilder:: |
protected | function | Ensures that a destination is present on the given URL. | |
EntityListBuilder:: |
protected | function | Loads entity IDs using a pager sorted by the entity id. | 4 |
EntityListBuilder:: |
protected | function | Gets the label of an entity. | |
EntityListBuilder:: |
public | function |
Provides an array of information to build a list of operation links. Overrides EntityListBuilderInterface:: |
2 |
EntityListBuilder:: |
public | function |
Gets the entity storage. Overrides EntityListBuilderInterface:: |
|
EntityListBuilder:: |
protected | function | Gets the title of the page. | 1 |
GridStackListBuilder:: |
protected | property | The gridstack manager. | |
GridStackListBuilder:: |
public | function |
Builds the header row for the entity listing. Overrides DraggableListBuilder:: |
|
GridStackListBuilder:: |
public | function |
Builds a row for an entity in the entity listing. Overrides DraggableListBuilder:: |
|
GridStackListBuilder:: |
public static | function |
Instantiates a new instance of this entity handler. Overrides EntityListBuilder:: |
|
GridStackListBuilder:: |
public | function |
Gets this list's default operations. Overrides ConfigEntityListBuilder:: |
|
GridStackListBuilder:: |
public | function |
Returns a unique string identifying the form. Overrides FormInterface:: |
|
GridStackListBuilder:: |
public | function |
Adds some descriptive text to the gridstack optionsets list. Overrides DraggableListBuilder:: |
|
GridStackListBuilder:: |
public | function |
Form submission handler. Overrides DraggableListBuilder:: |
|
GridStackListBuilder:: |
public | function |
Constructs a new GridStackListBuilder object. Overrides DraggableListBuilder:: |
|
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. | |
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. |