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