diff --git a/CHANGELOG.md b/CHANGELOG.md index 8524a87..64c58e5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ### Added * add option `removeItemButton: true` when applying choices.js +* feat(builder): allow to define `allowed_widgets` in form options * feat(collection): add delete_attr, add_attr options * feat(builder): allow to add block between children * feat(builder): improve UI to add new block diff --git a/src/core/BuilderBlock/Block/Bootstrap/BootstrapBlock.php b/src/core/BuilderBlock/Block/Bootstrap/BootstrapBlock.php index 12fc12e..1f332ba 100644 --- a/src/core/BuilderBlock/Block/Bootstrap/BootstrapBlock.php +++ b/src/core/BuilderBlock/Block/Bootstrap/BootstrapBlock.php @@ -5,7 +5,7 @@ namespace App\Core\BuilderBlock\Block\Bootstrap; use App\Core\BuilderBlock\BuilderBlock; use Symfony\Component\DependencyInjection\Attribute\AutoconfigureTag; -class BootstrapBlock extends BuilderBlock +abstract class BootstrapBlock extends BuilderBlock { public function configure() { diff --git a/src/core/BuilderBlock/Block/Editor/EditorBlock.php b/src/core/BuilderBlock/Block/Editor/EditorBlock.php index e89296a..3172048 100644 --- a/src/core/BuilderBlock/Block/Editor/EditorBlock.php +++ b/src/core/BuilderBlock/Block/Editor/EditorBlock.php @@ -5,7 +5,7 @@ namespace App\Core\BuilderBlock\Block\Editor; use App\Core\BuilderBlock\BuilderBlock; use Symfony\Component\DependencyInjection\Attribute\AutoconfigureTag; -class EditorBlock extends BuilderBlock +abstract class EditorBlock extends BuilderBlock { public function configure() { diff --git a/src/core/Form/Type/BuilderType.php b/src/core/Form/Type/BuilderType.php index d1f32d5..1f2fd09 100644 --- a/src/core/Form/Type/BuilderType.php +++ b/src/core/Form/Type/BuilderType.php @@ -19,6 +19,7 @@ class BuilderType extends AbstractType parent::buildView($view, $form, $options); $view->vars = array_replace($view->vars, [ + 'allowed_widgets' => $options['allowed_widgets'], ]); } @@ -28,7 +29,10 @@ class BuilderType extends AbstractType $resolver->setDefaults([ 'compound' => false, + 'allowed_widgets' => [], ]); + + $resolver->setAllowedTypes('allowed_widgets', 'array'); } public function getBlockPrefix() diff --git a/src/core/Resources/assets/js/components/builder-block/BuilderBlock.vue b/src/core/Resources/assets/js/components/builder-block/BuilderBlock.vue index f7edb9b..b13233c 100644 --- a/src/core/Resources/assets/js/components/builder-block/BuilderBlock.vue +++ b/src/core/Resources/assets/js/components/builder-block/BuilderBlock.vue @@ -8,7 +8,7 @@ :container="value" :widgets="widgets" :openedBlocks="openedBlocks" - :allowedWidgets="[]" + :allowedWidgets="allowedWidgets" v-if="value.length > 0" position="top" /> @@ -40,7 +40,7 @@ :container="value" :widgets="widgets" :openedBlocks="openedBlocks" - :allowedWidgets="[]" + :allowedWidgets="allowedWidgets" :position="key" /> @@ -50,7 +50,7 @@ :container="value" :widgets="widgets" :openedBlocks="openedBlocks" - :allowedWidgets="[]" + :allowedWidgets="allowedWidgets" position="bottom" />