public function MediaDirectoriesLibraryUiBuilder::buildUi in Media Directories 3.x
Build the media library UI.
Parameters
\Drupal\media_library\MediaLibraryState $state: (optional) The current state of the media library, derived from the current request.
Return value
array The render array for the media library.
Overrides MediaLibraryUiBuilder::buildUi
File
- modules/
media_directories_ui/ src/ MediaDirectoriesLibraryUiBuilder.php, line 23
Class
- MediaDirectoriesLibraryUiBuilder
- Service which builds the media library.
Namespace
Drupal\media_directories_uiCode
public function buildUi(MediaLibraryState $state = NULL) {
if (!$state) {
$state = MediaDirectoriesLibraryState::fromRequest($this->request);
}
// When navigating to a media type through the vertical tabs, we only want
// to load the changed library content. This is not only more efficient, but
// also provides a more accessible user experience for screen readers.
if ($state
->get('media_library_content') === '1') {
return $this
->buildLibraryContent($state);
}
else {
return [
'#type' => 'html_tag',
'#tag' => 'div',
'#attributes' => [
'id' => 'media-library-wrapper',
'class' => [
'media-library-wrapper',
'media-directories-library-wrapper',
],
],
'tree' => $this
->buildMediaDirectoryTree($state),
'content' => $this
->buildLibraryContent($state),
// Attach the JavaScript for the media library UI. The number of
// available slots needs to be added to make sure users can't select
// more items than allowed.
'#attached' => [
'library' => [
'media_library/ui',
'media_directories_ui/media-ui',
],
'drupalSettings' => [
'media_library' => [
'selection_remaining' => $state
->getAvailableSlots(),
],
'media_directories' => [
'cardinality' => $state
->getAvailableSlots(),
// TODO migrate js code.
'remaining' => $state
->getAvailableSlots(),
'target_bundles' => $state
->getAllowedTypeIds(),
'url' => [
'directory.tree' => Url::fromRoute('media_directories_ui.directory.tree')
->toString(),
'directory.add' => Url::fromRoute('media_directories_ui.directory.add')
->toString(),
'directory.rename' => Url::fromRoute('media_directories_ui.directory.rename')
->toString(),
'directory.delete' => Url::fromRoute('media_directories_ui.directory.delete')
->toString(),
'directory.move' => Url::fromRoute('media_directories_ui.directory.move')
->toString(),
'media.add' => Url::fromRoute('media_directories_ui.media.add')
->toString(),
'media.edit' => Url::fromRoute('media_directories_ui.media.edit')
->toString(),
'media.move' => Url::fromRoute('media_directories_ui.media.move')
->toString(),
'media.delete' => Url::fromRoute('media_directories_ui.media.delete')
->toString(),
],
],
],
],
];
}
}