diff --git a/modules/button/config.yaml b/modules/button/config.yaml
index ba926ba..400bf7d 100644
--- a/modules/button/config.yaml
+++ b/modules/button/config.yaml
@@ -9,9 +9,13 @@ module:
id:
type: 'id'
+ button_classes:
+ type: 'class'
+
button_style:
type: 'choice'
type_options:
+ default_value: 'btn btn-primary'
choices:
"button.form.button_style.values.primary": 'btn btn-primary'
"button.form.button_style.values.secondary": 'btn btn-secondary'
@@ -23,10 +27,6 @@ module:
"button.form.button_style.values.outline_success": 'btn btn-outline-success'
"button.form.button_style.values.outline_danger": 'btn btn-outline-danger'
"button.form.button_style.values.none": ''
- choice_translation_domain: false
-
- button_classes:
- type: 'class'
button_text:
type: 'translatable'
diff --git a/modules/button/form.html.twig b/modules/button/form.html.twig
index 15b8bdb..6f1e1e8 100644
--- a/modules/button/form.html.twig
+++ b/modules/button/form.html.twig
@@ -1,18 +1,19 @@
-
-
- {{ form_row(form.id) }}
-
-
- {{ form_row(form.button_style) }}
-
-
- {{ form_row(form.button_classes) }}
-
-
- {{ form_row(form.button_text) }}
-
-
- {{ form_widget(form.button_link) }}
-
-
-{{ form_rest(form) }}
+{% embed '@SfsCms/forms/modules_form_block.html.twig' with { 'name': 'button', 'accordion': accordion, 'open': true } %}
+ {% block form %}
+
+ {{ form_widget(form.id) }}
+
+
+ {{ form_row(form.button_classes) }}
+
+
+ {{ form_row(form.button_style) }}
+
+
+ {{ form_row(form.button_text) }}
+
+
+ {{ form_widget(form.button_link) }}
+
+ {% endblock %}
+{% endembed %}
\ No newline at end of file
diff --git a/modules/button/translations/sfs_cms_modules.en.yaml b/modules/button/translations/sfs_cms_modules.en.yaml
index b30ef51..74f89d3 100644
--- a/modules/button/translations/sfs_cms_modules.en.yaml
+++ b/modules/button/translations/sfs_cms_modules.en.yaml
@@ -3,16 +3,20 @@ button:
prototype_button: "Button"
prototype_button_icon: ''
form:
+ _group:
+ filters: "Filters"
+ others: "Others"
+ button: "Button"
locale_filter.label: "Locales"
site_filter.label: "Sites"
id.label: "Id"
class.label: "Classes"
button_text:
- label: "Button text"
+ label: "Text"
placeholder: "Button"
- button_classes.label: "Button classes"
+ button_classes.label: "Classes"
button_link:
- type.label: "Button link type"
+ type.label: "Link type"
route_name.label: "Route"
route_params.label: "Route parameters"
anchor.label: "Anchor"
@@ -20,7 +24,7 @@ button:
custom_target.label: "Target id"
url.label: "Direct URL"
button_style:
- label: "Button style"
+ label: "Style"
values:
primary: "Primary"
secondary: "Secondary"
diff --git a/modules/button/translations/sfs_cms_modules.es.yaml b/modules/button/translations/sfs_cms_modules.es.yaml
index c069440..d9f70ad 100644
--- a/modules/button/translations/sfs_cms_modules.es.yaml
+++ b/modules/button/translations/sfs_cms_modules.es.yaml
@@ -3,16 +3,20 @@ button:
prototype_button: "Botón"
prototype_button_icon: ''
form:
+ _group:
+ filters: "Filtros"
+ others: "Otros"
+ button: "Botón"
locale_filter.label: "Idiomas"
site_filter.label: "Sites"
id.label: "Id"
class.label: "Clases"
button_text:
- label: "Texto del botón"
+ label: "Texto"
placeholder: "Botón"
- button_classes.label: "Clases del botón"
+ button_classes.label: "Clases"
button_link:
- type.label: "Tipo de link del botón"
+ type.label: "Tipo de link"
route_name.label: "Ruta"
route_params.label: "Parámetros de la ruta"
anchor.label: "Anchor"
@@ -20,7 +24,7 @@ button:
custom_target.label: "Identificador de target"
url.label: "URL directa"
button_style:
- label: "Estilo del botón"
+ label: "Estilo"
values:
primary: "Primario"
secondary: "Secundario"
@@ -33,4 +37,4 @@ button:
outline_danger: "Error hueco"
none: "Ninguno"
button_classes:
- label: "Estilo del botón personalizado (clases CSS)"
+ label: "Estilo personalizado (clases CSS)"
diff --git a/modules/card/form.html.twig b/modules/card/form.html.twig
index 66aef8b..a0ed2a8 100644
--- a/modules/card/form.html.twig
+++ b/modules/card/form.html.twig
@@ -1,45 +1,61 @@
-
-
- {{ form_row(form.id) }}
-
-
- {{ form_row(form.class) }}
-
+{% embed '@SfsCms/forms/modules_form_block.html.twig' with { 'name': 'attributes', 'accordion': accordion } %}
+ {% block form %}
+
+ {{ form_widget(form.id) }}
+
+
+ {{ form_widget(form.class) }}
+
+
+ {{ form_row(form.content_position) }}
+
+ {% endblock %}
+{% endembed %}
-
- {{ form_row(form.content_position) }}
-
+{% embed '@SfsCms/forms/modules_form_block.html.twig' with { 'name': 'background', 'accordion': accordion } %}
+ {% block form %}
+
+ {{ form_row(form.background) }}
+
+
+ {{ form_row(form.bg_color) }}
+
+ {% endblock %}
+{% endembed %}
-
- {{ form_row(form.title) }}
-
-
- {{ form_row(form.title_type) }}
-
-
- {{ form_row(form.title_class) }}
-
-
- {{ form_row(form.media) }}
-
+{% embed '@SfsCms/forms/modules_form_block.html.twig' with { 'name': 'title', 'accordion': accordion } %}
+ {% block form %}
+
+ {{ form_widget(form.title_type) }}
+
+
+ {{ form_widget(form.title_class) }}
+
+
+ {{ form_widget(form.title) }}
+
+ {% endblock %}
+{% endembed %}
-
- {{ form_row(form.primary_button_text) }}
-
-
- {{ form_widget(form.primary_button_link) }}
-
-
- {{ form_row(form.primary_button_class) }}
-
+{% embed '@SfsCms/forms/modules_form_block.html.twig' with { 'name': 'image', 'accordion': accordion } %}
+ {% block title %}Image{% endblock %}
+ {% block form %}
+
+ {{ form_widget(form.media) }}
+
+ {% endblock %}
+{% endembed %}
-
-
- {{ form_row(form.background) }}
-
-
-
- {{ form_row(form.bg_color) }}
-
-
-{{ form_rest(form) }}
+{% embed '@SfsCms/forms/modules_form_block.html.twig' with { 'name': 'primary_button', 'accordion': accordion } %}
+ {% block form %}
+
+ {{ form_widget(form.primary_button_class) }}
+
+
+ {{ form_widget(form.primary_button_text) }}
+
+
+ {{ form_widget(form.primary_button_link) }}
+
+ {% endblock %}
+{% endembed %}
\ No newline at end of file
diff --git a/modules/card/translations/sfs_cms_modules.en.yaml b/modules/card/translations/sfs_cms_modules.en.yaml
index 8c8eeeb..87c6af8 100644
--- a/modules/card/translations/sfs_cms_modules.en.yaml
+++ b/modules/card/translations/sfs_cms_modules.en.yaml
@@ -3,6 +3,13 @@ card:
prototype_button: "Card"
prototype_button_icon: ''
form:
+ _group:
+ filters: "Filters"
+ others: "Others"
+ attributes: "Attributes"
+ background: "Background"
+ title: "Title"
+ primary_button: "Button"
locale_filter.label: "Locales"
site_filter.label: "Sites"
background.label: "Background image"
@@ -24,9 +31,9 @@ card:
description:
label: "Description"
placeholder: "Card description"
- primary_button_text.label: "Primary button text"
+ primary_button_text.label: "Text"
primary_button_link:
- type.label: "Primary button link type"
+ type.label: "Link type"
route_name.label: "Route"
route_params.label: "Route parameters"
anchor.label: "Anchor"
@@ -34,7 +41,7 @@ card:
custom_target.label: "Target id"
url.label: "Direct URL"
bg_color.label: "Background color"
- primary_button_class.label: "Primary button classes"
+ primary_button_class.label: "Classes"
content_position.label: "Content position"
content_position.values:
left: "Left"
diff --git a/modules/card/translations/sfs_cms_modules.es.yaml b/modules/card/translations/sfs_cms_modules.es.yaml
index 1abf576..cd8c00b 100644
--- a/modules/card/translations/sfs_cms_modules.es.yaml
+++ b/modules/card/translations/sfs_cms_modules.es.yaml
@@ -3,6 +3,13 @@ card:
prototype_button: "Card"
prototype_button_icon: ''
form:
+ _group:
+ filters: "Filtros"
+ others: "Otros"
+ attributes: "Atributos"
+ background: "Fondo"
+ title: "Título"
+ primary_button: "Botón"
locale_filter.label: "Idiomas"
site_filter.label: "Sites"
background.label: "Imagen de fondo"
@@ -24,9 +31,9 @@ card:
description:
label: "Descripción"
placeholder: "Descripción de la tarjeta"
- primary_button_text.label: "Texto del botón primario"
+ primary_button_text.label: "Texto"
primary_button_link:
- type.label: "Tipo de enlace del botón primario"
+ type.label: "Tipo de enlace"
route_name.label: "Ruta"
route_params.label: "Parámetros de la ruta"
anchor.label: "Ancla"
@@ -34,7 +41,7 @@ card:
custom_target.label: "Identificador de target"
url.label: "URL directa"
bg_color.label: "Color de fondo"
- primary_button_class.label: "Classes del botón primario"
+ primary_button_class.label: "Classes"
content_position.label: "Posición del contenido"
content_position.values:
left: "Izquierda"
diff --git a/modules/carousel/config.yaml b/modules/carousel/config.yaml
index a6bd7b7..7c58754 100644
--- a/modules/carousel/config.yaml
+++ b/modules/carousel/config.yaml
@@ -2,6 +2,7 @@ module:
revision: 1
group: 'container'
edit_template: '@module/carousel/edit.html.twig'
+ form_template: '@module/carousel/form.html.twig'
module_type: 'Softspring\CmsBundle\Form\Module\ContainerModuleType'
module_options:
module_collection_class: 'row'
diff --git a/modules/carousel/form.html.twig b/modules/carousel/form.html.twig
new file mode 100644
index 0000000..c044534
--- /dev/null
+++ b/modules/carousel/form.html.twig
@@ -0,0 +1,39 @@
+{% embed '@SfsCms/forms/modules_form_block.html.twig' with { 'name': 'attributes', 'accordion': accordion } %}
+ {% block form %}
+
+ {{ form_widget(form.id) }}
+
+
+ {{ form_widget(form.class) }}
+
+ {% endblock %}
+{% endembed %}
+
+{% embed '@SfsCms/forms/modules_form_block.html.twig' with { 'name': 'background', 'accordion': accordion } %}
+ {% block form %}
+
+ {{ form_widget(form.bg_color) }}
+
+ {% endblock %}
+{% endembed %}
+
+{% embed '@SfsCms/forms/modules_form_block.html.twig' with { 'name': 'properties', 'accordion': accordion, 'open': true } %}
+ {% block form %}
+
+ {{ form_row(form.items_per_slide) }}
+
+
+ {{ form_row(form.infinite_loop) }}
+
+
+ {{ form_row(form.auto_play) }}
+
+
+ {{ form_row(form.navigation) }}
+
+
+ {{ form_row(form.pagination) }}
+
+ {% endblock %}
+{% endembed %}
+
diff --git a/modules/carousel/translations/sfs_cms_modules.en.yaml b/modules/carousel/translations/sfs_cms_modules.en.yaml
index e299fcd..c46a450 100644
--- a/modules/carousel/translations/sfs_cms_modules.en.yaml
+++ b/modules/carousel/translations/sfs_cms_modules.en.yaml
@@ -3,6 +3,12 @@ carousel:
prototype_button: "Carousel"
prototype_button_icon: ''
form:
+ _group:
+ filters: "Filters"
+ others: "Others"
+ attributes: "Attributes"
+ background: "Background"
+ properties: "Properties"
locale_filter.label: "Locales"
site_filter.label: "Sites"
modules.label: "Modules"
diff --git a/modules/carousel/translations/sfs_cms_modules.es.yaml b/modules/carousel/translations/sfs_cms_modules.es.yaml
index 8bad924..2f03de5 100644
--- a/modules/carousel/translations/sfs_cms_modules.es.yaml
+++ b/modules/carousel/translations/sfs_cms_modules.es.yaml
@@ -3,6 +3,12 @@ carousel:
prototype_button: "Carrusel"
prototype_button_icon: ''
form:
+ _group:
+ filters: "Filtros"
+ others: "Otros"
+ attributes: "Atributos"
+ background: "Fondo"
+ properties: "Propiedades"
locale_filter.label: "Idiomas"
site_filter.label: "Sites"
modules.label: "Módulos"
diff --git a/modules/code/config.yaml b/modules/code/config.yaml
index 79a0342..7fd3fcf 100644
--- a/modules/code/config.yaml
+++ b/modules/code/config.yaml
@@ -7,19 +7,11 @@ module:
form_fields:
id:
type: 'id'
- type_options:
- attr:
- data-edit-id-input: 'code'
class:
type: 'class'
- type_options:
- attr:
- data-edit-class-input: 'code'
code:
- type: 'text'
+ type: 'textarea'
type_options:
constraints: [ 'notBlank' ]
- attr:
- data-edit-content-input: 'code'
diff --git a/modules/code/edit.html.twig b/modules/code/edit.html.twig
index 103065b..2461af5 100644
--- a/modules/code/edit.html.twig
+++ b/modules/code/edit.html.twig
@@ -1,12 +1,10 @@
{% trans_default_domain 'sfs_cms_modules' %}
+{% import '@SfsCms/macros/modules_edit.html.twig' as module %}
-{{ form.code.vars.data|default|raw }}
+{{ form.code.vars.data|default }}
diff --git a/modules/code/form.html.twig b/modules/code/form.html.twig
index 4d372e1..1708bbd 100644
--- a/modules/code/form.html.twig
+++ b/modules/code/form.html.twig
@@ -1,6 +1,17 @@
-
-
{{ form_row(form.id) }}
-
{{ form_row(form.class) }}
-
{{ form_row(form.code, {'attr': {'data-content-edit-preview': 'code'}}) }}
-
{{ form_rest(form) }}
-
+{% embed '@SfsCms/forms/modules_form_block.html.twig' with { 'name': 'attributes', 'accordion': accordion } %}
+ {% block form %}
+
+ {{ form_row(form.id) }}
+
+
+ {{ form_row(form.class) }}
+
+ {% endblock %}
+{% endembed %}
+{% embed '@SfsCms/forms/modules_form_block.html.twig' with { 'name': 'code', 'accordion': accordion, 'open': true } %}
+ {% block form %}
+
+ {{ form_widget(form.code, {'attr': {'style': 'min-height: 300px'}}) }}
+
+ {% endblock %}
+{% endembed %}
diff --git a/modules/code/render.html.twig b/modules/code/render.html.twig
index 916dfd1..c2a945c 100644
--- a/modules/code/render.html.twig
+++ b/modules/code/render.html.twig
@@ -1 +1 @@
-{{ code|raw }}
+{{ code|raw }}
diff --git a/modules/code/translations/sfs_cms_modules.en.yaml b/modules/code/translations/sfs_cms_modules.en.yaml
index dba4388..29eecf5 100644
--- a/modules/code/translations/sfs_cms_modules.en.yaml
+++ b/modules/code/translations/sfs_cms_modules.en.yaml
@@ -3,6 +3,11 @@ code:
prototype_button: "Source code"
prototype_button_icon: ''
form:
+ _group:
+ filters: "Filters"
+ others: "Others"
+ attributes: "Attributes"
+ code: "Code"
locale_filter.label: "Locales"
site_filter.label: "Sites"
id.label: "HTML id"
diff --git a/modules/code/translations/sfs_cms_modules.es.yaml b/modules/code/translations/sfs_cms_modules.es.yaml
index 32a4edb..e4146a1 100644
--- a/modules/code/translations/sfs_cms_modules.es.yaml
+++ b/modules/code/translations/sfs_cms_modules.es.yaml
@@ -3,6 +3,11 @@ code:
prototype_button: "Código fuente"
prototype_button_icon: ''
form:
+ _group:
+ filters: "Filtros"
+ others: "Otros"
+ attributes: "Atributos"
+ code: "Código"
locale_filter.label: "Idiomas"
site_filter.label: "Sites"
id.label: "HTML id"
diff --git a/modules/hero/form.html.twig b/modules/hero/form.html.twig
index 7251f78..e1cb064 100644
--- a/modules/hero/form.html.twig
+++ b/modules/hero/form.html.twig
@@ -1,36 +1,68 @@
-
-
- {{ form_row(form.background) }}
-
-
- {{ form_row(form.media) }}
-
-
- {{ form_row(form.id) }}
-
-
- {{ form_row(form.class) }}
-
-
- {{ form_row(form.title) }}
-
-
- {{ form_row(form.title_type) }}
-
-
- {{ form_row(form.title_class) }}
-
-
- {{ form_row(form.primary_button_text) }}
-
-
- {{ form_widget(form.primary_button_link) }}
-
-
- {{ form_row(form.secondary_button_text) }}
-
-
- {{ form_widget(form.secondary_button_link) }}
-
-
-{{ form_rest(form) }}
+{% embed '@SfsCms/forms/modules_form_block.html.twig' with { 'name': 'attributes', 'accordion': accordion } %}
+ {% block form %}
+
+ {{ form_row(form.id) }}
+
+
+ {{ form_row(form.class) }}
+
+
+ {{ form_row(form.fullpage) }}
+
+ {% endblock %}
+{% endembed %}
+
+{% embed '@SfsCms/forms/modules_form_block.html.twig' with { 'name': 'background', 'accordion': accordion } %}
+ {% block form %}
+
+ {{ form_row(form.background) }}
+
+
+ {{ form_row(form.bg_color) }}
+
+ {% endblock %}
+{% endembed %}
+
+{% embed '@SfsCms/forms/modules_form_block.html.twig' with { 'name': 'title', 'accordion': accordion } %}
+ {% block form %}
+
+ {{ form_row(form.title) }}
+
+
+ {{ form_row(form.title_type) }}
+
+
+ {{ form_row(form.title_class) }}
+
+ {% endblock %}
+{% endembed %}
+
+{% embed '@SfsCms/forms/modules_form_block.html.twig' with { 'name': 'image', 'accordion': accordion } %}
+ {% block form %}
+
+ {{ form_row(form.media) }}
+
+ {% endblock %}
+{% endembed %}
+
+{% embed '@SfsCms/forms/modules_form_block.html.twig' with { 'name': 'primary_button', 'accordion': accordion } %}
+ {% block form %}
+
+ {{ form_row(form.primary_button_text) }}
+
+
+ {{ form_widget(form.primary_button_link) }}
+
+ {% endblock %}
+{% endembed %}
+
+{% embed '@SfsCms/forms/modules_form_block.html.twig' with { 'name': 'secondary_button', 'accordion': accordion } %}
+ {% block form %}
+
+ {{ form_row(form.secondary_button_text) }}
+
+
+ {{ form_widget(form.secondary_button_link) }}
+
+ {% endblock %}
+{% endembed %}
diff --git a/modules/hero/translations/sfs_cms_modules.en.yaml b/modules/hero/translations/sfs_cms_modules.en.yaml
index 2de2996..323fab2 100644
--- a/modules/hero/translations/sfs_cms_modules.en.yaml
+++ b/modules/hero/translations/sfs_cms_modules.en.yaml
@@ -3,6 +3,15 @@ hero:
prototype_button: "Hero"
prototype_button_icon: ''
form:
+ _group:
+ filters: "Filters"
+ others: "Others"
+ attributes: "Attributes"
+ background: "Background"
+ title: "Title"
+ image: "Main image"
+ primary_button: "Primary button"
+ secondary_button: "Secondary button"
locale_filter.label: "Locales"
site_filter.label: "Sites"
background.label: "Background image"
diff --git a/modules/hero/translations/sfs_cms_modules.es.yaml b/modules/hero/translations/sfs_cms_modules.es.yaml
index fcf452a..8004fa4 100644
--- a/modules/hero/translations/sfs_cms_modules.es.yaml
+++ b/modules/hero/translations/sfs_cms_modules.es.yaml
@@ -3,6 +3,15 @@ hero:
prototype_button: "Hero"
prototype_button_icon: ''
form:
+ _group:
+ filters: "Filtros"
+ others: "Otros"
+ attributes: "Atributos"
+ background: "Fondo"
+ title: "Título"
+ image: "Imagen principal"
+ primary_button: "Botón principal"
+ secondary_button: "Botón secundario"
locale_filter.label: "Idiomas"
site_filter.label: "Sites"
background.label: "Imagen de fondo"
diff --git a/modules/media/form.html.twig b/modules/media/form.html.twig
index 149d105..8f613e9 100644
--- a/modules/media/form.html.twig
+++ b/modules/media/form.html.twig
@@ -1,9 +1,10 @@
-
-
- {{ form_row(form.media) }}
-
-
- {{ form_row(form.aligment_media) }}
-
-
-{{ form_rest(form) }}
+{% embed '@SfsCms/forms/modules_form_block.html.twig' with { 'name': 'media', 'accordion': accordion, 'open': true } %}
+ {% block form %}
+
+ {{ form_row(form.media) }}
+
+
+ {{ form_row(form.aligment_media) }}
+
+ {% endblock %}
+{% endembed %}
\ No newline at end of file
diff --git a/modules/media/translations/sfs_cms_modules.en.yaml b/modules/media/translations/sfs_cms_modules.en.yaml
index eb9e04c..6215e6c 100644
--- a/modules/media/translations/sfs_cms_modules.en.yaml
+++ b/modules/media/translations/sfs_cms_modules.en.yaml
@@ -3,6 +3,11 @@ _group.media.name: "Multimedia"
media:
label: "Multimedia file"
form:
+ _group:
+ filters: "Filters"
+ others: "Others"
+ attributes: "Attributes"
+ media: "Media file"
locale_filter.label: "Locales"
site_filter.label: "Sites"
media.label: "File"
diff --git a/modules/media/translations/sfs_cms_modules.es.yaml b/modules/media/translations/sfs_cms_modules.es.yaml
index 46050db..81d72ec 100644
--- a/modules/media/translations/sfs_cms_modules.es.yaml
+++ b/modules/media/translations/sfs_cms_modules.es.yaml
@@ -3,6 +3,11 @@ _group.media.name: "Multimedia"
media:
label: "Fichero multimedia"
form:
+ _group:
+ filters: "Filtros"
+ others: "Otros"
+ attributes: "Atributos"
+ media: "Fichero multimedia"
locale_filter.label: "Idiomas"
site_filter.label: "Sites"
media.label: "Fichero"
diff --git a/modules/paragraph/config.yaml b/modules/paragraph/config.yaml
index 04ab51d..f65cc1e 100644
--- a/modules/paragraph/config.yaml
+++ b/modules/paragraph/config.yaml
@@ -1,5 +1,5 @@
module:
- revision: 1
+ revision: 2
group: 'basic'
edit_template: '@module/paragraph/edit.html.twig'
form_template: '@module/paragraph/form.html.twig'
@@ -7,20 +7,16 @@ module:
form_fields:
id:
type: 'id'
- type_options:
- attr:
- data-edit-id-input: 'paragraph'
class:
type: 'class'
- type_options:
- attr:
- data-edit-class-input: 'paragraph'
+ spacing:
+ type: 'spacing'
+
paragraph:
type: 'translatable'
type_options:
+ type: 'textarea'
type_options:
constraints: [ 'notBlank' ]
- attr:
- data-edit-content-input: 'paragraph'
diff --git a/modules/paragraph/edit.html.twig b/modules/paragraph/edit.html.twig
index 941c248..5a967fa 100644
--- a/modules/paragraph/edit.html.twig
+++ b/modules/paragraph/edit.html.twig
@@ -1,19 +1,12 @@
-{% trans_default_domain 'sfs_cms_modules' %}
+{% import '@SfsCms/macros/modules_edit.html.twig' as module %}
{% for locale,localeField in form.paragraph %}
- {{ localeField.vars.data|default|raw }}
+
+ {{ localeField.vars.data|default|raw }}
+
{% endfor %}
diff --git a/modules/paragraph/form.html.twig b/modules/paragraph/form.html.twig
index 0aaa44d..83d4460 100644
--- a/modules/paragraph/form.html.twig
+++ b/modules/paragraph/form.html.twig
@@ -1,6 +1,21 @@
-
-
{{ form_row(form.id) }}
-
{{ form_row(form.class) }}
-
{{ form_row(form.paragraph, {'attr': {'data-content-edit-preview': 'paragraph'}}) }}
-
{{ form_rest(form) }}
-
+{% embed '@SfsCms/forms/modules_form_block.html.twig' with { 'name': 'attributes', 'accordion': accordion } %}
+ {% block form %}
+
+ {{ form_widget(form.id) }}
+
+
+ {{ form_widget(form.class) }}
+
+
+ {{ form_widget(form.spacing) }}
+
+ {% endblock %}
+{% endembed %}
+
+{% embed '@SfsCms/forms/modules_form_block.html.twig' with { 'name': 'paragraph', 'accordion': accordion, 'open': true } %}
+ {% block form %}
+
+ {{ form_widget(form.paragraph, {'children_attr': {'style': 'min-height: 300px'}}) }}
+
+ {% endblock %}
+{% endembed %}
diff --git a/modules/paragraph/migrate.php b/modules/paragraph/migrate.php
new file mode 100644
index 0000000..bf97894
--- /dev/null
+++ b/modules/paragraph/migrate.php
@@ -0,0 +1,11 @@
+= 2) {
+ list($data['class'], $data['spacing']) = ModuleMigrator::classToSpacing($data['class']);
+ }
+
+ return $data;
+};
diff --git a/modules/paragraph/render.html.twig b/modules/paragraph/render.html.twig
index 66d5921..79304b4 100644
--- a/modules/paragraph/render.html.twig
+++ b/modules/paragraph/render.html.twig
@@ -1 +1,2 @@
-{{ paragraph|sfs_cms_trans|raw }}
+{% import '@SfsCms/macros/modules_render.html.twig' as module %}
+{{ paragraph|sfs_cms_trans|raw }}
\ No newline at end of file
diff --git a/modules/paragraph/translations/sfs_cms_modules.en.yaml b/modules/paragraph/translations/sfs_cms_modules.en.yaml
index 65f02c5..74a6ca9 100644
--- a/modules/paragraph/translations/sfs_cms_modules.en.yaml
+++ b/modules/paragraph/translations/sfs_cms_modules.en.yaml
@@ -3,6 +3,11 @@ paragraph:
prototype_button: "Paragraph"
prototype_button_icon: ''
form:
+ _group:
+ filters: "Filters"
+ others: "Others"
+ attributes: "Attributes"
+ paragraph: "Paragraph"
locale_filter.label: "Locales"
site_filter.label: "Sites"
id.label: "HTML id"
diff --git a/modules/paragraph/translations/sfs_cms_modules.es.yaml b/modules/paragraph/translations/sfs_cms_modules.es.yaml
index 0b6ffcb..f4bcf5f 100644
--- a/modules/paragraph/translations/sfs_cms_modules.es.yaml
+++ b/modules/paragraph/translations/sfs_cms_modules.es.yaml
@@ -3,6 +3,11 @@ paragraph:
prototype_button: "Párrafo"
prototype_button_icon: ''
form:
+ _group:
+ filters: "Filtros"
+ others: "Otros"
+ attributes: "Atributos"
+ paragraph: "Párrafo"
locale_filter.label: "Idiomas"
site_filter.label: "Sites"
id.label: "HTML id"
diff --git a/modules/quote/config.yaml b/modules/quote/config.yaml
index a3b069d..50ba60b 100644
--- a/modules/quote/config.yaml
+++ b/modules/quote/config.yaml
@@ -7,20 +7,13 @@ module:
form_fields:
id:
type: 'id'
- type_options:
- attr:
- data-edit-id-input: 'quote'
class:
type: 'class'
- type_options:
- attr:
- data-edit-class-input: 'quote'
quote:
type: 'translatable'
type_options:
+ type: 'textarea'
type_options:
constraints: [ 'notBlank' ]
- attr:
- data-edit-content-input: 'quote'
diff --git a/modules/quote/edit.html.twig b/modules/quote/edit.html.twig
index 842fde0..59e082d 100644
--- a/modules/quote/edit.html.twig
+++ b/modules/quote/edit.html.twig
@@ -1,19 +1,15 @@
-{% trans_default_domain 'sfs_cms_modules' %}
-
-{% for locale,localeField in form.quote %}
- {{ localeField.vars.data|default|raw }}
-{% endfor %}
-
+{% import '@SfsCms/macros/modules_edit.html.twig' as module %}
+
+
+
+ {% for locale,localeField in form.quote %}
+
+ {{ localeField.vars.data|default|raw }}
+
+ {% endfor %}
+
diff --git a/modules/quote/form.html.twig b/modules/quote/form.html.twig
index c8e7efd..e1a785c 100644
--- a/modules/quote/form.html.twig
+++ b/modules/quote/form.html.twig
@@ -1,6 +1,18 @@
-
-
{{ form_row(form.id) }}
-
{{ form_row(form.class) }}
-
{{ form_row(form.quote, {'attr': {'data-content-edit-preview': 'quote'}}) }}
-
{{ form_rest(form) }}
-
+{% embed '@SfsCms/forms/modules_form_block.html.twig' with { 'name': 'attributes', 'accordion': accordion } %}
+ {% block form %}
+
+ {{ form_widget(form.id) }}
+
+
+ {{ form_widget(form.class) }}
+
+ {% endblock %}
+{% endembed %}
+
+{% embed '@SfsCms/forms/modules_form_block.html.twig' with { 'name': 'quote', 'accordion': accordion, 'open': true } %}
+ {% block form %}
+
+ {{ form_widget(form.quote, {'children_attr': {'style': 'min-height: 300px'}}) }}
+
+ {% endblock %}
+{% endembed %}
diff --git a/modules/quote/render.html.twig b/modules/quote/render.html.twig
index e30964e..9d738b4 100644
--- a/modules/quote/render.html.twig
+++ b/modules/quote/render.html.twig
@@ -1 +1,2 @@
-{{ quote|sfs_cms_trans|raw }}
+{% import '@SfsCms/macros/modules_render.html.twig' as module %}
+{{ quote|sfs_cms_trans|raw }}
\ No newline at end of file
diff --git a/modules/quote/translations/sfs_cms_modules.en.yaml b/modules/quote/translations/sfs_cms_modules.en.yaml
index d766660..ac784b4 100644
--- a/modules/quote/translations/sfs_cms_modules.en.yaml
+++ b/modules/quote/translations/sfs_cms_modules.en.yaml
@@ -3,6 +3,11 @@ quote:
prototype_button: "quote"
prototype_button_icon: ''
form:
+ _group:
+ filters: "Filters"
+ others: "Others"
+ attributes: "Attributes"
+ quote: "Quote"
locale_filter.label: "Locales"
site_filter.label: "Sites"
id.label: "HTML id"
diff --git a/modules/quote/translations/sfs_cms_modules.es.yaml b/modules/quote/translations/sfs_cms_modules.es.yaml
index 81cb8ff..9c8abdf 100644
--- a/modules/quote/translations/sfs_cms_modules.es.yaml
+++ b/modules/quote/translations/sfs_cms_modules.es.yaml
@@ -3,6 +3,11 @@ quote:
prototype_button: "Cita"
prototype_button_icon: ''
form:
+ _group:
+ filters: "Filtros"
+ others: "Otros"
+ attributes: "Atributos"
+ quote: "Cita"
locale_filter.label: "Idiomas"
site_filter.label: "Sites"
id.label: "HTML id"
@@ -10,4 +15,4 @@ quote:
bg_color.label: "Color de fondo"
quote:
label: "Cita"
- placeholder: "Inserta aquí el párrafo"
+ placeholder: "Inserta aquí la cita"
diff --git a/modules/text_section/form.html.twig b/modules/text_section/form.html.twig
index 3383eac..c60e0c0 100644
--- a/modules/text_section/form.html.twig
+++ b/modules/text_section/form.html.twig
@@ -1,39 +1,10 @@
-
-
- {{ form_row(form.background) }}
-
-
- {{ form_row(form.bg_color) }}
-
-
- {{ form_row(form.id) }}
-
-
- {{ form_row(form.class) }}
-
-
- {{ form_row(form.media) }}
-
-
- {{ form_row(form.title) }}
-
-
- {{ form_row(form.title_type) }}
-
-
- {{ form_row(form.title_class) }}
-
-
- {{ form_row(form.primary_button_text) }}
-
-
- {{ form_widget(form.primary_button_link) }}
-
-{#
#}
-{# {{ form_row(form.jump_button_text) }}#}
-{#
#}
-{#
#}
-{# {{ form_row(form.jump_button_link) }}#}
-{#
#}
-
-{{ form_rest(form) }}
+{% embed '@SfsCms/forms/modules_form_block.html.twig' with { 'name': 'attributes', 'accordion': accordion } %}
+ {% block form %}
+
+ {{ form_row(form.id) }}
+
+
+ {{ form_row(form.class) }}
+
+ {% endblock %}
+{% endembed %}
diff --git a/modules/text_section/translations/sfs_cms_modules.en.yaml b/modules/text_section/translations/sfs_cms_modules.en.yaml
index 3f89149..c3754b5 100644
--- a/modules/text_section/translations/sfs_cms_modules.en.yaml
+++ b/modules/text_section/translations/sfs_cms_modules.en.yaml
@@ -3,6 +3,10 @@ text_section:
prototype_button: "Text section"
prototype_button_icon: ''
form:
+ _group:
+ filters: "Filters"
+ others: "Others"
+ attributes: "Attributes"
locale_filter.label: "Locales"
site_filter.label: "Sites"
background.label: "Background image"
@@ -19,7 +23,9 @@ text_section:
h4: "Heading 4"
h5: "Heading 5"
h6: "Heading 6"
- description.label: "Description"
+ description:
+ label: "Description"
+ placeholder: "Insert description here"
media.label: "Main image"
text_position:
label: "Text position"
@@ -28,8 +34,11 @@ text_section:
left: "Left"
right: "Right"
primary_button_class.label: "Primary button classes"
- primary_button_text.label: "Primary button text"
+ primary_button_text:
+ label: "Primary button text"
+ placeholder: "Primary button"
primary_button_link:
+ label: "Primary button link"
type.label: "Primary button link type"
route_name.label: "Route"
route_params.label: "Route parameters"
diff --git a/modules/text_section/translations/sfs_cms_modules.es.yaml b/modules/text_section/translations/sfs_cms_modules.es.yaml
index ea83dc8..7e0de8d 100644
--- a/modules/text_section/translations/sfs_cms_modules.es.yaml
+++ b/modules/text_section/translations/sfs_cms_modules.es.yaml
@@ -3,6 +3,10 @@ text_section:
prototype_button: "Sección texto"
prototype_button_icon: ''
form:
+ _group:
+ filters: "Filtros"
+ others: "Otros"
+ attributes: "Atributos"
locale_filter.label: "Idiomas"
site_filter.label: "Sites"
background.label: "Imagen de fondo"
@@ -19,7 +23,9 @@ text_section:
h4: "Encabezado 4"
h5: "Encabezado 5"
h6: "Encabezado 6"
- description.label: "Descripción"
+ description:
+ label: "Descripción"
+ placeholder: "Inserta aquí la descripción"
media.label: "Imagen principal"
text_position:
label: "Position del texto"
@@ -28,8 +34,11 @@ text_section:
left: "Izquierda"
right: "Derecha"
primary_button_class.label: "Classes del botón primario"
- primary_button_text.label: "Texto del botón primario"
+ primary_button_text:
+ label: "Texto del botón primario"
+ placeholder: "Botón primario"
primary_button_link:
+ label: "Enlace del botón primario"
type.label: "Tipo de enlace del botón primario"
route_name.label: "Ruta"
route_params.label: "Parámetros de la ruta"
diff --git a/modules/title/config.yaml b/modules/title/config.yaml
index 55e1ff6..c8aeee7 100644
--- a/modules/title/config.yaml
+++ b/modules/title/config.yaml
@@ -1,5 +1,5 @@
module:
- revision: 1
+ revision: 2
group: 'basic'
edit_template: '@module/title/edit.html.twig'
form_template: '@module/title/form.html.twig'
@@ -11,9 +11,13 @@ module:
class:
type: 'class'
+ spacing:
+ type: 'spacing'
+
type:
type: 'choice'
type_options:
+ default_value: h1
choices:
"title.form.type.values.h1": h1
"title.form.type.values.h2": h2
diff --git a/modules/title/edit.html.twig b/modules/title/edit.html.twig
index d9c73f5..d917803 100644
--- a/modules/title/edit.html.twig
+++ b/modules/title/edit.html.twig
@@ -1,18 +1,13 @@
{% import '@SfsCms/macros/modules_edit.html.twig' as module %}
-{% trans_default_domain 'sfs_cms_modules' %}
-{% set type = form.type.vars.data|default('h1') %}
-
{% for locale,localeField in form.title %}
- <{{ type}}
- data-cms-module-title-type=""
- {{ module.link_id(form.id) }}
- {{ module.link_class(form.class, 'sfs-title') }}
- {{ module.link_content(localeField, locale, true, 'title.form.title.placeholder') }}
-
- data-edit-content-enter-inserts-module="paragraph"
- >
+ {{ module.start_link_tag_type(form.type, [
+ module.link_id(form.id),
+ module.link_class([form.class]|merge(form.spacing.children), 'sfs-title'),
+ module.link_content(localeField, locale, true, 'title.form.title.placeholder'),
+ module.enter_inserts_module('paragraph')
+ ]) }}
{{ localeField.vars.data|default|raw }}
- {{ type }}>
+ {{ module.end_link_tag_type(form.type) }}
{% endfor %}
diff --git a/modules/title/form.html.twig b/modules/title/form.html.twig
index a19b567..5555ac0 100644
--- a/modules/title/form.html.twig
+++ b/modules/title/form.html.twig
@@ -1,7 +1,24 @@
-
-
{{ form_row(form.id) }}
-
{{ form_row(form.class) }}
-
{{ form_row(form.type) }}
-
{{ form_row(form.title, {'attr': {'data-content-edit-preview': 'title'}}) }}
-
{{ form_rest(form) }}
-
+{% embed '@SfsCms/forms/modules_form_block.html.twig' with { 'name': 'attributes', 'accordion': accordion } %}
+ {% block form %}
+
+ {{ form_widget(form.id) }}
+
+
+ {{ form_widget(form.class) }}
+
+
+ {{ form_widget(form.spacing) }}
+
+ {% endblock %}
+{% endembed %}
+
+{% embed '@SfsCms/forms/modules_form_block.html.twig' with { 'name': 'title', 'accordion': accordion, 'open': true } %}
+ {% block form %}
+
+ {{ form_widget(form.type) }}
+
+
+ {{ form_widget(form.title, {'attr': {'style': 'min-height: 300px'}}) }}
+
+ {% endblock %}
+{% endembed %}
diff --git a/modules/title/migrate.php b/modules/title/migrate.php
new file mode 100644
index 0000000..bf97894
--- /dev/null
+++ b/modules/title/migrate.php
@@ -0,0 +1,11 @@
+= 2) {
+ list($data['class'], $data['spacing']) = ModuleMigrator::classToSpacing($data['class']);
+ }
+
+ return $data;
+};
diff --git a/modules/title/render.html.twig b/modules/title/render.html.twig
index abbad55..4836632 100644
--- a/modules/title/render.html.twig
+++ b/modules/title/render.html.twig
@@ -1,3 +1,3 @@
{% import '@SfsCms/macros/modules_render.html.twig' as module %}
-<{{ type }} {{ module.id(id) }} {{ module.class(class|default('mb-0'), 'sfs-title') }}>{{ title|sfs_cms_trans|raw }}{{ type }}>
+<{{ type }} {{ module.id(id) }} {{ module.class([class]|merge(spacing), 'sfs-title') }}>{{ title|sfs_cms_trans|raw }}{{ type }}>
diff --git a/modules/title/translations/sfs_cms_modules.en.yaml b/modules/title/translations/sfs_cms_modules.en.yaml
index 49b8fa6..2fcc7a4 100644
--- a/modules/title/translations/sfs_cms_modules.en.yaml
+++ b/modules/title/translations/sfs_cms_modules.en.yaml
@@ -3,6 +3,11 @@ title:
prototype_button: "Title"
prototype_button_icon: ''
form:
+ _group:
+ filters: "Filters"
+ others: "Others"
+ attributes: "Attributes"
+ title: "Title"
locale_filter.label: "Locales"
site_filter.label: "Sites"
id.label: "HTML id"
diff --git a/modules/title/translations/sfs_cms_modules.es.yaml b/modules/title/translations/sfs_cms_modules.es.yaml
index ae51c78..95f6898 100644
--- a/modules/title/translations/sfs_cms_modules.es.yaml
+++ b/modules/title/translations/sfs_cms_modules.es.yaml
@@ -3,6 +3,11 @@ title:
prototype_button: "Título"
prototype_button_icon: ''
form:
+ _group:
+ filters: "Filtros"
+ others: "Otros"
+ attributes: "Atributos"
+ title: "Título"
locale_filter.label: "Idiomas"
site_filter.label: "Sites"
id.label: "HTML id"
diff --git a/modules/two_columns/form.html.twig b/modules/two_columns/form.html.twig
index 26d7b14..c60e0c0 100644
--- a/modules/two_columns/form.html.twig
+++ b/modules/two_columns/form.html.twig
@@ -1,30 +1,10 @@
-
-
- {{ form_row(form.id) }}
-
-
- {{ form_row(form.class) }}
-
-
- {{ form_row(form.module_image) }}
-
-
- {{ form_row(form.title) }}
-
-
- {{ form_row(form.title_type) }}
-
-
- {{ form_row(form.title_class) }}
-
-{#
#}
-{# {{ form_row(form.description) }}#}
-{#
#}
-
- {{ form_row(form.primary_button_text) }}
-
-
- {{ form_widget(form.primary_button_link) }}
-
-
-{{ form_rest(form) }}
+{% embed '@SfsCms/forms/modules_form_block.html.twig' with { 'name': 'attributes', 'accordion': accordion } %}
+ {% block form %}
+
+ {{ form_row(form.id) }}
+
+
+ {{ form_row(form.class) }}
+
+ {% endblock %}
+{% endembed %}
diff --git a/modules/two_columns/translations/sfs_cms_modules.en.yaml b/modules/two_columns/translations/sfs_cms_modules.en.yaml
index da02e0a..4a82300 100644
--- a/modules/two_columns/translations/sfs_cms_modules.en.yaml
+++ b/modules/two_columns/translations/sfs_cms_modules.en.yaml
@@ -3,6 +3,10 @@ two_columns:
prototype_button: "Two columns"
prototype_button_icon: ''
form:
+ _group:
+ filters: "Filters"
+ others: "Others"
+ attributes: "Attributes"
locale_filter.label: "Locales"
site_filter.label: "Sites"
background.label: "Background image"
@@ -28,6 +32,7 @@ two_columns:
label: "Primary button text"
placeholder: "Primary button text"
primary_button_link:
+ label: "Primary button link"
type.label: "Primary button link type"
route_name.label: "Route"
route_params.label: "Route parameters"
diff --git a/modules/two_columns/translations/sfs_cms_modules.es.yaml b/modules/two_columns/translations/sfs_cms_modules.es.yaml
index edd4429..af40fae 100644
--- a/modules/two_columns/translations/sfs_cms_modules.es.yaml
+++ b/modules/two_columns/translations/sfs_cms_modules.es.yaml
@@ -3,6 +3,10 @@ two_columns:
prototype_button: "Dos columnas"
prototype_button_icon: ''
form:
+ _group:
+ filters: "Filtros"
+ others: "Otros"
+ attributes: "Atributos"
locale_filter.label: "Idiomas"
site_filter.label: "Sites"
background.label: "Imagen de fondo"
@@ -28,6 +32,7 @@ two_columns:
label: "Texto del botón primario"
placeholder: "Texto del botón primario"
primary_button_link:
+ label: "Enlace del botón primario"
type.label: "Tipo de enlace del botón primario"
route_name.label: "Ruta"
route_params.label: "Parámetros de la ruta"
diff --git a/modules/wysiwyg/form.html.twig b/modules/wysiwyg/form.html.twig
index 384fd4a..6019f54 100644
--- a/modules/wysiwyg/form.html.twig
+++ b/modules/wysiwyg/form.html.twig
@@ -1,9 +1,10 @@
-
-
- {{ form_row(form.id) }}
-
-
- {{ form_row(form.class) }}
-
-
-{{ form_rest(form) }}
+{% embed '@SfsCms/forms/modules_form_block.html.twig' with { 'name': 'attributes', 'accordion': accordion, 'open': true } %}
+ {% block form %}
+
+ {{ form_row(form.id) }}
+
+
+ {{ form_row(form.class) }}
+
+ {% endblock %}
+{% endembed %}
\ No newline at end of file
diff --git a/modules/wysiwyg/translations/sfs_cms_modules.en.yaml b/modules/wysiwyg/translations/sfs_cms_modules.en.yaml
index e954956..ad9a31d 100644
--- a/modules/wysiwyg/translations/sfs_cms_modules.en.yaml
+++ b/modules/wysiwyg/translations/sfs_cms_modules.en.yaml
@@ -3,8 +3,14 @@ wysiwyg:
prototype_button: "WYSIWYG"
prototype_button_icon: ''
form:
+ _group:
+ filters: "Filters"
+ others: "Others"
+ attributes: "Attributes"
locale_filter.label: "Locales"
site_filter.label: "Sites"
id.label: "Id"
class.label: "Class"
- content.label: "Content"
+ content:
+ label: "Content"
+ placeholder: "Insert content here"
diff --git a/modules/wysiwyg/translations/sfs_cms_modules.es.yaml b/modules/wysiwyg/translations/sfs_cms_modules.es.yaml
index bcce03d..11903d7 100644
--- a/modules/wysiwyg/translations/sfs_cms_modules.es.yaml
+++ b/modules/wysiwyg/translations/sfs_cms_modules.es.yaml
@@ -3,8 +3,14 @@ wysiwyg:
prototype_button: "WYSIWYG"
prototype_button_icon: ''
form:
+ _group:
+ filters: "Filtros"
+ others: "Otros"
+ attributes: "Atributos"
locale_filter.label: "Idiomas"
site_filter.label: "Sites"
id.label: "Id"
class.label: "Clase"
- content.label: "Contenido"
+ content:
+ label: "Contenido"
+ placeholder: "Inserta aquí el contenido"
diff --git a/modules/wysiwyg_translatable/form.html.twig b/modules/wysiwyg_translatable/form.html.twig
index 384fd4a..6019f54 100644
--- a/modules/wysiwyg_translatable/form.html.twig
+++ b/modules/wysiwyg_translatable/form.html.twig
@@ -1,9 +1,10 @@
-
-
- {{ form_row(form.id) }}
-
-
- {{ form_row(form.class) }}
-
-
-{{ form_rest(form) }}
+{% embed '@SfsCms/forms/modules_form_block.html.twig' with { 'name': 'attributes', 'accordion': accordion, 'open': true } %}
+ {% block form %}
+
+ {{ form_row(form.id) }}
+
+
+ {{ form_row(form.class) }}
+
+ {% endblock %}
+{% endembed %}
\ No newline at end of file
diff --git a/modules/wysiwyg_translatable/translations/sfs_cms_modules.en.yaml b/modules/wysiwyg_translatable/translations/sfs_cms_modules.en.yaml
index b33dbc8..febf8cd 100644
--- a/modules/wysiwyg_translatable/translations/sfs_cms_modules.en.yaml
+++ b/modules/wysiwyg_translatable/translations/sfs_cms_modules.en.yaml
@@ -3,8 +3,14 @@ wysiwyg_translatable:
prototype_button: "WYSIWYG translatable"
prototype_button_icon: ''
form:
+ _group:
+ filters: "Filters"
+ others: "Others"
+ attributes: "Attributes"
locale_filter.label: "Locales"
site_filter.label: "Sites"
id.label: "Id"
class.label: "Classes"
- content.label: "Content"
+ content:
+ label: "Content"
+ placeholder: "Insert content here"
diff --git a/modules/wysiwyg_translatable/translations/sfs_cms_modules.es.yaml b/modules/wysiwyg_translatable/translations/sfs_cms_modules.es.yaml
index 0f3e958..e053a1e 100644
--- a/modules/wysiwyg_translatable/translations/sfs_cms_modules.es.yaml
+++ b/modules/wysiwyg_translatable/translations/sfs_cms_modules.es.yaml
@@ -3,8 +3,14 @@ wysiwyg_translatable:
prototype_button: "WYSIWYG traducible"
prototype_button_icon: ''
form:
+ _group:
+ filters: "Filtros"
+ others: "Otros"
+ attributes: "Atributos"
locale_filter.label: "Idiomas"
site_filter.label: "Sites"
id.label: "Id"
class.label: "Clases"
- content.label: "Contenido"
+ content:
+ label: "Contenido"
+ placeholder: "Inserta aquí el contenido"
diff --git a/tests/modules/TitleTest.php b/tests/modules/TitleTest.php
new file mode 100644
index 0000000..b13ae3a
--- /dev/null
+++ b/tests/modules/TitleTest.php
@@ -0,0 +1,105 @@
+moduleName = 'title';
+ $this->modulePath = realpath(__DIR__ . '/../../modules/title');
+ }
+
+ protected function provideDataForMigrations(): array
+ {
+ return [
+ [
+ '_revision' => 1,
+ 'id' => 'mainTitle',
+ 'class' => 'example mx-2 my-3 text-dark pt-1 pb-2 ps-3 other-class',
+ 'type' => 'h1',
+ 'title' => ['en' => 'Test title'],
+ ],
+ [
+ '_revision' => 2,
+ 'id' => 'mainTitle',
+ 'class' => 'example text-dark other-class',
+ 'type' => 'h1',
+ 'title' => ['en' => 'Test title'],
+ 'spacing' => [
+ 'marginTop' => 'mt-3',
+ 'marginEnd' => 'me-2',
+ 'marginBottom' => 'mb-3',
+ 'marginStart' => 'ms-2',
+ 'paddingTop' => 'pt-1',
+ 'paddingEnd' => 'pe-0',
+ 'paddingBottom' => 'pb-2',
+ 'paddingStart' => 'ps-3',
+ ],
+ ],
+ ];
+ }
+//
+// public function testEmptyForm(): void
+// {
+// $config = $this->readModuleConfiguration();
+// $form = $this->getModuleForm($config);
+// $form->submit([]);
+// $procesedData = $form->getData();
+//
+// $this->assertTrue($form->isSynchronized());
+// // $this->assertFalse($form->isValid());
+// }
+//
+// public function testForm(): void
+// {
+// $config = $this->readModuleConfiguration();
+// $form = $this->getModuleForm($config);
+// $form->submit([
+// 'locale_filter' => ['es'],
+// 'id' => '',
+// 'title_style' => 'btn btn-primary',
+// 'title_classes' => '',
+// 'title_text' => [
+// 'es' => 'Prueba',
+// 'en' => 'Test',
+// ],
+// 'title_link' => [
+// 'type' => 'url',
+// 'route_name' => '',
+// 'route_params' => '',
+// 'anchor' => '',
+// 'url' => 'https://github.com/softspring/cms-bundle',
+// 'target' => '_self',
+// 'custom_target' => '',
+// ],
+// ]);
+// $procesedData = $form->getData();
+//
+// $this->assertTrue($form->isSynchronized());
+//
+// $this->assertEquals([
+// '_node_discr' => null,
+// '_revision' => null,
+// 'id' => null,
+// 'title_style' => 'btn btn-primary',
+// 'title_classes' => null,
+// 'title_text' => [
+// 'es' => 'Prueba',
+// 'en' => 'Test',
+// ],
+// 'title_link' => [
+// 'type' => 'url',
+// 'route_name' => '',
+// 'route_params' => '',
+// 'anchor' => '',
+// 'url' => 'https://github.com/softspring/cms-bundle',
+// 'target' => '_self',
+// 'custom_target' => '',
+// ],
+// ], $procesedData);
+// }
+}