diff --git a/Content/Types/FormSelect.php b/Content/Types/FormSelect.php
index 72708be5..13b8727b 100644
--- a/Content/Types/FormSelect.php
+++ b/Content/Types/FormSelect.php
@@ -126,7 +126,7 @@ public function getContentData(PropertyInterface $property)
$form = $this->formFactory->create(
$formType,
- new Dynamic($uuid, $locale, $webspaceKey, $defaults)
+ new Dynamic($uuid, $locale, $id, $webspaceKey, $defaults)
);
// handle request
diff --git a/Entity/Dynamic.php b/Entity/Dynamic.php
index 3dd2bb51..abeadae5 100644
--- a/Entity/Dynamic.php
+++ b/Entity/Dynamic.php
@@ -30,8 +30,8 @@ class Dynamic implements TimestampableInterface
const TYPE_ATTACHMENT = 'attachment';
const TYPE_CHECKBOX = 'checkbox';
const TYPE_CHECKBOX_MULTIPLE = 'checkboxMultiple';
- const TYPE_SELECT = 'select';
- const TYPE_SELECT_MULTIPLE = 'selectMultiple';
+ const TYPE_DROPDOWN = 'dropdown';
+ const TYPE_DROPDOWN_MULTIPLE = 'dropdownMultiple';
const TYPE_RADIO_BUTTONS = 'radioButtons';
/**
@@ -49,6 +49,11 @@ class Dynamic implements TimestampableInterface
*/
private $locale;
+ /**
+ * @var int
+ */
+ private $formId;
+
/**
* @var string
*/
@@ -157,12 +162,12 @@ class Dynamic implements TimestampableInterface
/**
* @var string
*/
- private $select;
+ private $dropdown;
/**
* @var string
*/
- private $selectMultiple;
+ private $dropdownMultiple;
/**
* @var string
@@ -199,13 +204,15 @@ public static function getConstants()
/**
* @param string $uuid
* @param string $locale
+ * @param int $formId
* @param null|string $webspaceKey
* @param array $data
*/
- public function __construct($uuid, $locale, $webspaceKey = null, $data = [])
+ public function __construct($uuid, $locale, $formId, $webspaceKey = null, $data = [])
{
$this->uuid = $uuid;
$this->locale = $locale;
+ $this->formId = $formId;
$this->webspaceKey = $webspaceKey;
foreach ($data as $name => $value) {
diff --git a/Form/Type/DynamicFormType.php b/Form/Type/DynamicFormType.php
index ab7eeeb2..0b5ea415 100644
--- a/Form/Type/DynamicFormType.php
+++ b/Form/Type/DynamicFormType.php
@@ -166,10 +166,10 @@ public function buildForm(FormBuilderInterface $builder, array $options)
case Dynamic::TYPE_CHECKBOX_MULTIPLE:
$type = $this->createChoiceType($translation, $options, true, true);
break;
- case Dynamic::TYPE_SELECT:
+ case Dynamic::TYPE_DROPDOWN:
$type = $this->createChoiceType($translation, $options);
break;
- case Dynamic::TYPE_SELECT_MULTIPLE:
+ case Dynamic::TYPE_DROPDOWN_MULTIPLE:
$type = $this->createChoiceType($translation, $options, false, true);
break;
case Dynamic::TYPE_RADIO_BUTTONS:
diff --git a/Provider/DynamicProvider.php b/Provider/DynamicProvider.php
new file mode 100644
index 00000000..730c915d
--- /dev/null
+++ b/Provider/DynamicProvider.php
@@ -0,0 +1,66 @@
+ $this->createFieldDescriptor('id', '', 'public.id'),
+ 'firstName' => $this->createFieldDescriptor('firstName'),
+ 'lastName' => $this->createFieldDescriptor('lastName'),
+ 'email' => $this->createFieldDescriptor('email'),
+ 'phone' => $this->createFieldDescriptor('phone'),
+ 'street' => $this->createFieldDescriptor('street'),
+ 'zip' => $this->createFieldDescriptor('zip'),
+ 'city' => $this->createFieldDescriptor('city'),
+ 'state' => $this->createFieldDescriptor('state'),
+ 'country' => $this->createFieldDescriptor('country'),
+ 'function' => $this->createFieldDescriptor('function'),
+ 'company' => $this->createFieldDescriptor('company'),
+ 'created' => $this->createFieldDescriptor('created', 'date', 'public.created'),
+ ];
+
+ return $fieldDescriptors;
+ }
+
+ /**
+ * @param string $name
+ * @param bool $disabled
+ * @param string $type
+ *
+ * @return DoctrineFieldDescriptor
+ */
+ protected function createFieldDescriptor($name, $type = '', $translationKey = '', $disabled = false)
+ {
+ if (!$translationKey) {
+ $translationKey = 'l91_sulu_form.type.' . strtolower($name);
+ }
+
+ return new DoctrineFieldDescriptor(
+ $name,
+ $name,
+ Dynamic::class,
+ $translationKey,
+ [],
+ $disabled,
+ false,
+ $type
+ );
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function getEntityName($webspace, $locale, $uuid)
+ {
+ return Dynamic::class;
+ }
+}
diff --git a/Resources/config/doctrine/Dynamic.orm.xml b/Resources/config/doctrine/Dynamic.orm.xml
index 2bbd71df..30968dd0 100644
--- a/Resources/config/doctrine/Dynamic.orm.xml
+++ b/Resources/config/doctrine/Dynamic.orm.xml
@@ -9,6 +9,7 @@
+
@@ -31,8 +32,8 @@
-
-
+
+
diff --git a/Resources/translations/sulu/backend.de.xlf b/Resources/translations/sulu/backend.de.xlf
index a21099da..d7ea9b8a 100644
--- a/Resources/translations/sulu/backend.de.xlf
+++ b/Resources/translations/sulu/backend.de.xlf
@@ -110,11 +110,11 @@
Checkboxes
- l91_sulu_form.type.select
+ l91_sulu_form.type.dropdown
Dropdown
- l91_sulu_form.type.selectmultiple
+ l91_sulu_form.type.dropdownmultiple
Dropdown (Mehrfachauswahl)
diff --git a/Resources/translations/sulu/backend.en.xlf b/Resources/translations/sulu/backend.en.xlf
index 2b90cd92..265020e5 100644
--- a/Resources/translations/sulu/backend.en.xlf
+++ b/Resources/translations/sulu/backend.en.xlf
@@ -110,11 +110,11 @@
Checkboxes
- l91_sulu_form.type.select
+ l91_sulu_form.type.dropdown
Select
- l91_sulu_form.type.selectmultiple
+ l91_sulu_form.type.dropdownmultiple
Select (multiple)
diff --git a/Resources/translations/sulu/backend.fr.xlf b/Resources/translations/sulu/backend.fr.xlf
index 7beaac92..278015b0 100644
--- a/Resources/translations/sulu/backend.fr.xlf
+++ b/Resources/translations/sulu/backend.fr.xlf
@@ -109,11 +109,11 @@
Checkboxes
- l91_sulu_form.type.select
+ l91_sulu_form.type.dropdown
Select
- l91_sulu_form.type.selectmultiple
+ l91_sulu_form.type.dropdownmultiple
Select (multiple)
diff --git a/Resources/views/forms/fields/types/select.html.twig b/Resources/views/forms/fields/types/dropdown.html.twig
similarity index 100%
rename from Resources/views/forms/fields/types/select.html.twig
rename to Resources/views/forms/fields/types/dropdown.html.twig
diff --git a/Resources/views/forms/fields/types/selectmultiple.html.twig b/Resources/views/forms/fields/types/dropdownmultiple.html.twig
similarity index 100%
rename from Resources/views/forms/fields/types/selectmultiple.html.twig
rename to Resources/views/forms/fields/types/dropdownmultiple.html.twig