Skip to content
Snippets Groups Projects
Commit 8da8e500 authored by Florent Torregrosa's avatar Florent Torregrosa
Browse files

Issue #3515034 by grimreaper: Layout Builder Reorder support

parent 937534a2
No related branches found
No related tags found
1 merge request!281Issue #3515034 by grimreaper: Layout Builder Reorder support
Pipeline #456239 passed
......@@ -17,7 +17,32 @@ class ElementPreRenderLayoutBuilder implements TrustedCallbackInterface {
/**
* Weight to ensure the section label is placed first.
*/
public const SECTION_LABEL_WEIGHT = -1;
public const SECTION_LABEL_WEIGHT = -50;
/**
* Weight to ensure the remove link is placed second.
*/
public const REMOVE_WEIGHT = -45;
/**
* Weight to ensure the configure link is placed third.
*/
public const CONFIGURE_WEIGHT = -40;
/**
* Weight to ensure the Section Library add to library link is placed fourth.
*/
public const SECTION_LIBRARY_ADD_WEIGHT = -35;
/**
* Weight to ensure the Layout Builder Reorder up link is placed fifth.
*/
public const LAYOUT_BUILDER_REORDER_UP_WEIGHT = -30;
/**
* Weight to ensure the Layout Builder Reorder down link is placed sixth.
*/
public const LAYOUT_BUILDER_REORDER_DOWN_WEIGHT = -25;
/**
* Handle styling for layout builder element.
......@@ -76,6 +101,7 @@ class ElementPreRenderLayoutBuilder implements TrustedCallbackInterface {
$layoutBuilderArea->remove->addClass('mx-1');
$layoutBuilderArea->remove->setIcon(Bootstrap::icon('trash'));
$layoutBuilderArea->remove->setProperty('icon_position', 'icon_only');
$layoutBuilderArea->remove->setProperty('weight', static::REMOVE_WEIGHT);
}
}
......@@ -86,6 +112,7 @@ class ElementPreRenderLayoutBuilder implements TrustedCallbackInterface {
$layoutBuilderArea->configure->addClass('mx-1');
$layoutBuilderArea->configure->setIcon(Bootstrap::icon('pencil-fill'));
$layoutBuilderArea->configure->setProperty('icon_position', 'icon_only');
$layoutBuilderArea->configure->setProperty('weight', static::CONFIGURE_WEIGHT);
}
}
......@@ -169,6 +196,29 @@ class ElementPreRenderLayoutBuilder implements TrustedCallbackInterface {
$layoutBuilderArea->add_to_library->addClass('mx-1');
$layoutBuilderArea->add_to_library->setIcon(Bootstrap::icon('folder-plus'));
$layoutBuilderArea->add_to_library->setProperty('icon_position', 'icon_only');
$layoutBuilderArea->add_to_library->setProperty('weight', static::SECTION_LIBRARY_ADD_WEIGHT);
}
}
// Layout Builder Reorder: Move section up.
if (isset($layoutBuilderArea->rearrange_up) && $layoutBuilderArea->rearrange_up->isType('link')) {
$url = $layoutBuilderArea->rearrange_up->getProperty('url');
if ($url instanceof Url) {
$layoutBuilderArea->rearrange_up->addClass('mx-1');
$layoutBuilderArea->rearrange_up->setIcon(Bootstrap::icon('arrow-up'));
$layoutBuilderArea->rearrange_up->setProperty('icon_position', 'icon_only');
$layoutBuilderArea->rearrange_up->setProperty('weight', static::LAYOUT_BUILDER_REORDER_UP_WEIGHT);
}
}
// Layout Builder Reorder: Move section down.
if (isset($layoutBuilderArea->rearrange_down) && $layoutBuilderArea->rearrange_down->isType('link')) {
$url = $layoutBuilderArea->rearrange_down->getProperty('url');
if ($url instanceof Url) {
$layoutBuilderArea->rearrange_down->addClass('mx-1');
$layoutBuilderArea->rearrange_down->setIcon(Bootstrap::icon('arrow-down'));
$layoutBuilderArea->rearrange_down->setProperty('icon_position', 'icon_only');
$layoutBuilderArea->rearrange_down->setProperty('weight', static::LAYOUT_BUILDER_REORDER_DOWN_WEIGHT);
}
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment