Skip to content

Commit dfc126b

Browse files
committed
Add order_select field type
1 parent 6bea91f commit dfc126b

3 files changed

Lines changed: 71 additions & 0 deletions

File tree

Form/Field/Field.php

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ public function getLabel(): string
2626
public function getDomId(): string
2727
{
2828
$domId = strtolower($this->getScope().'-'.$this->getCode());
29+
2930
return preg_replace('/([^a-z0-9\-]+)/', '-', $domId);
3031
}
3132

@@ -129,4 +130,40 @@ public function isHidden(): bool
129130

130131
return false;
131132
}
133+
134+
// @todo: Move this to EntitySelectField
135+
public function setProvider(string|object $className)
136+
{
137+
$this->setData('provider', $className);
138+
}
139+
140+
// @todo: Move this to EntitySelectField
141+
public function getProvider(): string|object
142+
{
143+
return $this->getData('provider');
144+
}
145+
146+
// @todo: Move this to EntitySelectField
147+
public function setButtonLabel(string $buttonLabel)
148+
{
149+
$this->setData('button_label', $buttonLabel);
150+
}
151+
152+
// @todo: Move this to EntitySelectField
153+
public function getButtonLabel(): string
154+
{
155+
return $this->getData('button_label');
156+
}
157+
158+
// @todo: Move this to EntitySelectField
159+
public function setNamespace(string $namespace)
160+
{
161+
$this->setData('namespace', $namespace);
162+
}
163+
164+
// @todo: Move this to EntitySelectField
165+
public function getNamespace(): string
166+
{
167+
return $this->getData('namespace');
168+
}
132169
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<?php
2+
declare(strict_types=1);
3+
4+
namespace Loki\AdminComponents\Form\Field\FieldType;
5+
6+
use Loki\AdminComponents\Form\Field\Field;
7+
use Magento\Sales\Api\OrderRepositoryInterface;
8+
9+
class OrderSelect extends FieldTypeAbstract
10+
{
11+
public function __construct(
12+
private OrderRepositoryInterface $orderRepository,
13+
) {
14+
}
15+
16+
public function getInputType(): string
17+
{
18+
return 'text';
19+
}
20+
21+
public function prepareField(Field $field): Field
22+
{
23+
$field->setProvider($this->orderRepository);
24+
$field->setButtonLabel('Select order');
25+
$field->setNamespace('sales_order_grid');
26+
return $field;
27+
}
28+
29+
public function getTemplate(): string
30+
{
31+
return 'Loki_AdminComponents::form/field_type/entity_select.phtml';
32+
}
33+
}

etc/di.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
<item name="product_id" xsi:type="object">Loki\AdminComponents\Form\Field\FieldType\ProductId</item>
4747
<item name="product_select" xsi:type="object">Loki\AdminComponents\Form\Field\FieldType\ProductSelect</item>
4848
<item name="customer_select" xsi:type="object">Loki\AdminComponents\Form\Field\FieldType\CustomerSelect</item>
49+
<item name="order_select" xsi:type="object">Loki\AdminComponents\Form\Field\FieldType\OrderSelect</item>
4950
<item name="entity_select" xsi:type="object">Loki\AdminComponents\Form\Field\FieldType\EntitySelect</item>
5051
<item name="category_selection" xsi:type="object">Loki\AdminComponents\Form\Field\FieldType\CategorySelection</item>
5152
<item name="pagebuilder" xsi:type="object">Loki\AdminComponents\Form\Field\FieldType\Pagebuilder</item>

0 commit comments

Comments
 (0)