added support for ordering meta fields (#1940)
This commit is contained in:
@@ -163,4 +163,19 @@ interface MetaTableTypeInterface
|
||||
* @return array
|
||||
*/
|
||||
public function getOptions(): array;
|
||||
|
||||
/**
|
||||
* Sets the weight order.
|
||||
*
|
||||
* @param int $order
|
||||
* @return MetaTableTypeInterface
|
||||
*/
|
||||
public function setOrder(int $order): MetaTableTypeInterface;
|
||||
|
||||
/**
|
||||
* Returns the weight order.
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getOrder(): int;
|
||||
}
|
||||
|
||||
@@ -89,6 +89,10 @@ trait MetaTableTypeTrait
|
||||
* @var array
|
||||
*/
|
||||
private $options = [];
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
private $order = 0;
|
||||
|
||||
public function getName(): ?string
|
||||
{
|
||||
@@ -216,6 +220,7 @@ trait MetaTableTypeTrait
|
||||
->setIsVisible($meta->isVisible())
|
||||
->setLabel($meta->getLabel())
|
||||
->setOptions($meta->getOptions())
|
||||
->setOrder($meta->getOrder())
|
||||
;
|
||||
|
||||
return $this;
|
||||
@@ -249,6 +254,18 @@ trait MetaTableTypeTrait
|
||||
return $this->options;
|
||||
}
|
||||
|
||||
public function getOrder(): int
|
||||
{
|
||||
return $this->order;
|
||||
}
|
||||
|
||||
public function setOrder(int $order): MetaTableTypeInterface
|
||||
{
|
||||
$this->order = $order;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function __clone()
|
||||
{
|
||||
if ($this->id) {
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% for metaField in activity.visibleMetaFields %}
|
||||
{% for metaField in activity.visibleMetaFields|sort((a, b) => a.order <=> b.order) %}
|
||||
<tr>
|
||||
<th>{{ metaField.label|trans }}</th>
|
||||
<td colspan="3">{{ widgets.form_type_value(metaField.type, metaField.value, activity) }}</td>
|
||||
|
||||
@@ -36,7 +36,9 @@
|
||||
{% endif %}
|
||||
{{ form_row(form.visible) }}
|
||||
{% if form.metaFields is defined and form.metaFields is not empty %}
|
||||
{{ form_row(form.metaFields) }}
|
||||
{% for meta in form.metaFields|sort((a, b) => a.vars.data.order <=> b.vars.data.order) %}
|
||||
{{ form_row(meta) }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if form.create_more is defined and app.request.xmlHttpRequest %}
|
||||
<div class="hidden">
|
||||
|
||||
@@ -111,7 +111,7 @@
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% for metaField in customer.visibleMetaFields %}
|
||||
{% for metaField in customer.visibleMetaFields|sort((a, b) => a.order <=> b.order) %}
|
||||
<tr>
|
||||
<th>{{ metaField.label|trans }}</th>
|
||||
<td>{{ widgets.form_type_value(metaField.type, metaField.value, customer) }}</td>
|
||||
|
||||
@@ -79,7 +79,9 @@
|
||||
{% endif %}
|
||||
{{ form_row(form.visible) }}
|
||||
{% if form.metaFields is defined and form.metaFields is not empty %}
|
||||
{{ form_row(form.metaFields) }}
|
||||
{% for meta in form.metaFields|sort((a, b) => a.vars.data.order <=> b.vars.data.order) %}
|
||||
{{ form_row(meta) }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{{ form_widget(form) }}
|
||||
{% endblock %}
|
||||
|
||||
@@ -86,7 +86,7 @@
|
||||
</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% for metaField in project.visibleMetaFields %}
|
||||
{% for metaField in project.visibleMetaFields|sort((a, b) => a.order <=> b.order) %}
|
||||
<tr>
|
||||
<th>{{ metaField.label|trans }}</th>
|
||||
<td colspan="3">{{ widgets.form_type_value(metaField.type, metaField.value, project) }}</td>
|
||||
|
||||
@@ -51,7 +51,9 @@
|
||||
{% endif %}
|
||||
{{ form_row(form.visible) }}
|
||||
{% if form.metaFields is defined and form.metaFields is not empty %}
|
||||
{{ form_row(form.metaFields) }}
|
||||
{% for meta in form.metaFields|sort((a, b) => a.vars.data.order <=> b.vars.data.order) %}
|
||||
{{ form_row(meta) }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if form.create_more is defined and app.request.xmlHttpRequest %}
|
||||
<div class="hidden">
|
||||
|
||||
@@ -37,6 +37,7 @@ abstract class AbstractMetaEntityTest extends TestCase
|
||||
self::assertEmpty($sut->getOptions());
|
||||
self::assertFalse($sut->isVisible());
|
||||
self::assertFalse($sut->isRequired());
|
||||
self::assertEquals(0, $sut->getOrder());
|
||||
}
|
||||
|
||||
public function testSetterAndGetter()
|
||||
@@ -65,6 +66,9 @@ abstract class AbstractMetaEntityTest extends TestCase
|
||||
self::assertInstanceOf(MetaTableTypeInterface::class, $sut->setType(DateTimePickerType::class));
|
||||
self::assertEquals(DateTimePickerType::class, $sut->getType());
|
||||
|
||||
self::assertInstanceOf(MetaTableTypeInterface::class, $sut->setOrder(7));
|
||||
self::assertEquals(7, $sut->getOrder());
|
||||
|
||||
self::assertInstanceOf(MetaTableTypeInterface::class, $sut->addConstraint(new Length(['max' => 10])));
|
||||
self::assertInstanceOf(MetaTableTypeInterface::class, $sut->addConstraint(new NotNull([])));
|
||||
self::assertInstanceOf(MetaTableTypeInterface::class, $sut->addConstraint(new NotBlank([])));
|
||||
@@ -112,7 +116,8 @@ abstract class AbstractMetaEntityTest extends TestCase
|
||||
->setType('blub2')
|
||||
->setEntity($entity2)
|
||||
->setIsRequired(true)
|
||||
->setisVisible(true)
|
||||
->setIsVisible(true)
|
||||
->setOrder(93)
|
||||
->setConstraints([new NotBlank(), new Length(['min' => 1])])
|
||||
->setOptions(['foo1' => 'bar1'])
|
||||
;
|
||||
@@ -123,6 +128,7 @@ abstract class AbstractMetaEntityTest extends TestCase
|
||||
self::assertEquals('bar', $meta1->getValue());
|
||||
self::assertEquals('blub2', $meta1->getType());
|
||||
self::assertEquals('TRALALA', $meta1->getLabel());
|
||||
self::assertEquals(93, $meta1->getOrder());
|
||||
self::assertTrue($meta1->isRequired());
|
||||
self::assertTrue($meta1->isVisible());
|
||||
self::assertSame($entity1, $meta1->getEntity());
|
||||
|
||||
Reference in New Issue
Block a user