Skip to content
Snippets Groups Projects
Commit 4458b379 authored by Michael Lander's avatar Michael Lander
Browse files

Issue #3370770 by michaellander: Remove layout builder fullscreen mode

parent 70773fdb
No related branches found
No related tags found
No related merge requests found
body div .glb-toolbar {
opacity: 1;
top: 0 !important;
/*top: inherit !important;*/
}
a.glb-actions-exit {
align-self: center;
margin-right: auto;
margin-left: 1rem;
padding: 1rem 1.25rem 1rem 2.25rem;
border-radius: 48px;
background: url(../misc/icons/000000/ex.svg) #fff left .75rem center / 16px 16px no-repeat;
color: var(--colorGinTextLight);
text-decoration: none;
font-size: .889em !important;
font-weight: bold;
}
.glb-toolbar--extended .glb-actions-exit {
position: fixed;
left: 0;
top: 0;
background-color: #fff;
margin-top: .5rem;
display: block;
filter: drop-shadow(0 2px 2px #e3e3e5);
}
.glb-toolbar--small .glb-actions-exit {
align-self: center;
margin-right: auto;
}
a.glb-actions-exit:hover {
color: var(--colorGinPrimary);
background-color: var(--colorGinItemHover);
}
a.glb-actions-exit:focus {
box-shadow: inset 0 0 0 1px var(--colorGinFocusBorder), inset 0 0 0 4px var(--colorGinFocus);
}
......@@ -12,8 +12,8 @@
margin-right: 0;
}
.is-horizontal .tabs .tab-moderation-group {
border-top: solid 1px var(--colorGinSecondaryBorder);
border-bottom: solid 1px var(--colorGinSecondaryBorder);
border-top: solid 1px var(--gin-border-color-layer);
border-bottom: solid 1px var(--gin-border-color-layer);
}
.is-horizontal .tabs .tabs__content-moderation-draft-label {
......@@ -27,14 +27,14 @@
margin-left: .5rem;
border-top-left-radius: 48px;
border-bottom-left-radius: 48px;
border-left: solid 1px var(--colorGinSecondaryBorder);
border-left: solid 1px var(--gin-border-color-layer);
}
.is-horizontal .tabs li.tab-moderation-group-last {
border-top-right-radius: 48px;
border-bottom-right-radius: 48px;
margin-right: .5rem;
border-right: solid 1px var(--colorGinSecondaryBorder);
border-right: solid 1px var(--gin-border-color-layer);
}
.is-horizontal .tabs li.tab-moderation-group-last a.tabs__link {
......
# Custom module library for general purposes.
layout_builder:
css:
theme:
css/layout_builder.css: {}
js:
js/layout_builder.js: { minified: false, preprocess: true }
dependencies:
- gin_lb/gin_lb_init
tabs:
css:
theme:
......
......@@ -50,12 +50,3 @@ function paragon_gin_preprocess_menu_local_tasks(&$variables) {
->getInstanceFromDefinition(Preprocess::class)
->menuLocalTasks($variables);
}
/**
* Implements hook_form_alter().
*/
function paragon_gin_form_alter(&$form, FormStateInterface $form_state, $form_id) {
\Drupal::service('class_resolver')
->getInstanceFromDefinition(FormAlter::class)
->formAlter($form, $form_state, $form_id);
}
<?php
namespace Drupal\paragon_gin;
use Drupal\content_moderation\ModerationInformationInterface;
use Drupal\Core\DependencyInjection\ContainerInjectionInterface;
use Drupal\Core\Form\FormStateInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
class FormAlter implements ContainerInjectionInterface {
/**
* @var \Drupal\content_moderation\ModerationInformationInterface
*/
protected ModerationInformationInterface $moderationInformation;
/**
* EntityTypeInfo constructor.
*
* @param \Drupal\content_moderation\ModerationInformationInterface $moderation_information
* Moderation information service.
*/
public function __construct(ModerationInformationInterface $moderation_information) {
$this->moderationInformation = $moderation_information;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container) {
return new static(
$container->get('content_moderation.moderation_information'),
);
}
public function formAlter(&$form, FormStateInterface $form_state, $form_id) {
if (gin_lb_is_layout_builder_form_id($form_id, $form) && $entity = $form_state->getFormObject() instanceof \Drupal\layout_builder\Form\OverridesEntityForm) {
$entity = $form_state->getFormObject()->getEntity();
if ($this->moderationInformation->isModeratedEntity($entity) && $this->moderationInformation->hasPendingRevision($entity) && $entity->getEntityType()->hasLinkTemplate('latest-version')) {
// todo: Check if there's a scenario where user is unable to access this but can still access layout.
$form['actions']['exit'] = $entity->toLink('Exit Layout Builder', 'latest-version')
->toRenderable();
}
else {
$form['actions']['exit'] = $entity->toLink('Exit Layout Builder')
->toRenderable();
}
$form['actions']['exit']['#weight'] = 1000;
$form['actions']['exit']['#attributes']['class'][] = 'glb-actions-exit';
$form['#attached']['library'][] = 'paragon_gin/layout_builder';
}
}
}
......@@ -90,7 +90,6 @@ class Preprocess implements ContainerInjectionInterface {
public function toolbar(&$variables) {
$variables['is_admin_route'] = (bool) $this->adminContext->isAdminRoute();
$variables['is_layout_builder'] = (bool) $this->routeMatch->getRouteObject()->getOption('_layout_builder');
// Hide 'edit' toggle.
unset($variables['tabs']['contextual']);
......@@ -125,92 +124,6 @@ class Preprocess implements ContainerInjectionInterface {
if (empty($tabs['#primary']) && empty($tabs['#secondary'])) {
return $build;
}
$x = 1;
return $build + $tabs;
// if (!empty($local_tasks['tabs'])) {
// $local_task_default_route = '<none>';
// $local_task_default_route_params = [];
// $items = [];
// // Workaround for admin toolbar links filter.
// $dummy_original_link = FALSE;
// $first_item = reset($build['administration_menu']['#items']);
// if (!empty($first_item['original_link'])) {
// $dummy_original_link = $first_item['original_link'];
// }
//
// // Sort by weight.
// uasort($local_tasks['tabs'], [
// 'Drupal\Component\Utility\SortArray',
// 'sortByWeightProperty',
// ]);
// foreach ($local_tasks['tabs'] as $key => $local_task) {
// if($local_task['#access']->isAllowed()){
// // Merge additional attributes for styling.
// $local_task['#link']['url'] = $local_task['#link']['url']->mergeOptions([
// 'attributes' => [
// 'class' => [
// 'toolbar-icon',
// 'toolbar-icon-local-tasks',
// ],
// ],
// ]);
//
// // Generate menu item with necessary properties.
// $items[] = $local_task['#link']
// + ['original_link' => $dummy_original_link]
// + [
// 'attributes' => new Attribute(
// [
// 'class' => [
// 'menu-item',
// ],
// ]),
// ];
// // Let's search for edit link if it exists.
// if (strpos($key, 'edit_form') !== FALSE) {
// $local_task_default_route = $local_task['#link']['url']->getRouteName();
// $local_task_default_route_params = $local_task['#link']['url']->getRouteParameters();
// }
// }
// }
// $new_items = [];
// if (!empty($build['administration_menu']['#items']['admin_toolbar_tools.help'])) {
// // If there is admin_toolbar_tools module installed, make its menu on top.
// $new_items = ['admin_toolbar_tools.help' => $build['administration_menu']['#items']['admin_toolbar_tools.help']];
// unset($build['administration_menu']['#items']['admin_toolbar_tools.help']);
// }
// $build['administration_menu']['#items'] = $new_items + [
// 'local_tasks' => [
// 'is_expanded' => TRUE,
// 'title' => t('Local Tasks'),
// 'url' => Url::fromRoute($local_task_default_route, $local_task_default_route_params, [
// 'attributes' => [
// 'class' => [
// 'toolbar-icon',
// 'toolbar-icon-local-tasks',
// ],
// ],
// ]
// ),
// 'attributes' => new Attribute(
// [
// 'class' => [
// 'menu-item',
// 'menu-item--expanded',
// ],
// ]),
// 'below' => $items,
// 'original_link' => $dummy_original_link,
// ],
// ] + $build['administration_menu']['#items'];
// // Add local tasks cacheable metadata to result build.
// $metadata = CacheableMetadata::createFromRenderArray($build['administration_menu']);
// $local_tasks['cacheability']->merge($metadata);
// $local_tasks['cacheability']->applyTo($build['administration_menu']);
// }
return $build;
}
}
......@@ -5,19 +5,17 @@
*/
#}
{% if not is_layout_builder %}
{% include '@gin/navigation/toolbar--gin.html.twig' ignore missing %}
{% if secondary_toolbar_frontend and toolbar_variant != 'classic' %}
{% include '@gin/navigation/toolbar--gin.html.twig' ignore missing %}
{% if secondary_toolbar_frontend and toolbar_variant != 'classic' %}
<div class="gin-secondary-toolbar gin-secondary-toolbar--frontend">
<div class="gin-secondary-toolbar__layout-container">
<div class="gin-breadcrumb-wrapper">
{% if local_tasks %}
{{ local_tasks }}
{% endif %}
</div>
{% include '@gin/navigation/toolbar--gin--secondary.html.twig' ignore missing %}
</div>
<div class="gin-secondary-toolbar gin-secondary-toolbar--frontend">
<div class="gin-secondary-toolbar__layout-container">
<div class="gin-breadcrumb-wrapper">
{% if local_tasks %}
{{ local_tasks }}
{% endif %}
</div>
{% endif %}
{% include '@gin/navigation/toolbar--gin--secondary.html.twig' ignore missing %}
</div>
</div>
{% endif %}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment