| ... | ... |
@@ -14,31 +14,16 @@ |
| 14 | 14 |
<div class="tl_formbody_edit"> |
| 15 | 15 |
<input type="hidden" name="REQUEST_TOKEN" value="{{ request_token }}">
|
| 16 | 16 |
|
| 17 |
- <fieldset id="pal_base_legend" class="tl_tbox"> |
|
| 18 |
- <legend onclick="AjaxRequest.toggleFieldset(this,'base_legend','tl_layout')">Grundeinstellung</legend> |
|
| 19 |
- <div class="w50 widget"> |
|
| 20 |
- <h3><label><span class="invisible">Pflichtfeld </span>Zeitslot-Typ<span class="mandatory">*</span></label></h3> |
|
| 21 |
- <select name="slotType" id="ctrl_slotType" class="tl_select" onfocus="Backend.getScrollOffset()"> |
|
| 22 |
- <option value="" selected="">-</option> |
|
| 23 |
- <option value="annahmestelle_1">Annahmestelle 1 (30 Behälter/h)</option> |
|
| 24 |
- <option value="annahmestelle_4">Annahmestelle 4 (30 Behälter/h)</option> |
|
| 25 |
- </select> |
|
| 26 |
- <p class="tl_help tl_tip" title="">Legen Sie hier den Zeitslot-Typ/Annahmestelle fest.</p> |
|
| 27 |
- </div> |
|
| 28 |
- <div class="w50 widget"> |
|
| 29 |
- <h3><label for="ctrl_buffer"><span class="invisible">Pflichtfeld </span>Pufferzeit in min.<span class="mandatory">*</span></label></h3> |
|
| 30 |
- <input type="text" name="buffer" id="ctrl_buffer" class="tl_text" value="0" required="" maxlength="3" onfocus="Backend.getScrollOffset()"> |
|
| 31 |
- <p class="tl_help tl_tip" title="">Die Pufferzeit zwischen den Slots.</p> |
|
| 32 |
- </div> |
|
| 33 |
- </fieldset> |
|
| 34 |
- |
|
| 35 |
- <fieldset id="pal_time_legend" class="tl_tbox"> |
|
| 36 |
- <legend onclick="AjaxRequest.toggleFieldset(this,'time_legend','tl_layout')">Zeitraum</legend> |
|
| 37 |
- {% for field in fields %}
|
|
| 38 |
- {{ field|raw }}
|
|
| 17 |
+ {% for legend, widgets in fields %}
|
|
| 18 |
+ <fieldset id="pal_{{ legend }}" class="tl_tbox">
|
|
| 19 |
+ <legend onclick="AjaxRequest.toggleFieldset(this,{{ legend }},'wa_slotassistant')">{{ ('wa_slotassistant.'~legend)|trans([], 'contao_default') }}</legend>
|
|
| 20 |
+ {% for field in widgets %}
|
|
| 21 |
+ <div class="{{ field.class is defined and field.class|length ? field.class ~ ' ' : '' }}widget">
|
|
| 22 |
+ {{ field.widget.parse()|raw }}
|
|
| 23 |
+ </div> |
|
| 39 | 24 |
{% endfor %}
|
| 40 |
- |
|
| 41 |
- |
|
| 25 |
+ </fieldset> |
|
| 26 |
+ {% endfor %}
|
|
| 42 | 27 |
|
| 43 | 28 |
</div> |
| 44 | 29 |
<div class="tl_formbody_submit"> |
| ... | ... |
@@ -18,6 +18,7 @@ use Contao\Date; |
| 18 | 18 |
use Contao\Environment; |
| 19 | 19 |
use Contao\FrontendUser; |
| 20 | 20 |
use Contao\Input; |
| 21 |
+use Contao\SelectMenu; |
|
| 21 | 22 |
use Contao\StringUtil; |
| 22 | 23 |
use Contao\System; |
| 23 | 24 |
use Contao\TextField; |
| ... | ... |
@@ -41,6 +42,8 @@ class WeinanlieferungSlotAssistantController extends AbstractController |
| 41 | 42 |
private $request; |
| 42 | 43 |
private $db; |
| 43 | 44 |
|
| 45 |
+ protected $fields; |
|
| 46 |
+ |
|
| 44 | 47 |
public function __construct(TwigEnvironment $twig, ContaoCsrfTokenManager $tokenManager, RequestStack $requestStack, Connection $db) |
| 45 | 48 |
{
|
| 46 | 49 |
$this->twig = $twig; |
| ... | ... |
@@ -68,13 +71,9 @@ class WeinanlieferungSlotAssistantController extends AbstractController |
| 68 | 71 |
]; |
| 69 | 72 |
System::loadLanguageFile('default');
|
| 70 | 73 |
|
| 71 |
- $blah = new TextField(); |
|
| 72 |
- |
|
| 73 |
- $blah->name = 'text'; |
|
| 74 |
- $blah->mandatory = true; |
|
| 75 |
- $blah->label = 'ad'; |
|
| 74 |
+ dump($this->getWidgets()); |
|
| 76 | 75 |
|
| 77 |
- $arrData['fields'][] = $blah->parse(); |
|
| 76 |
+ $arrData['fields'] = $this->getWidgets(); |
|
| 78 | 77 |
|
| 79 | 78 |
return new Response( |
| 80 | 79 |
$this->twig->render( |
| ... | ... |
@@ -83,4 +82,36 @@ class WeinanlieferungSlotAssistantController extends AbstractController |
| 83 | 82 |
) |
| 84 | 83 |
); |
| 85 | 84 |
} |
| 85 |
+ |
|
| 86 |
+ protected function getWidgets() |
|
| 87 |
+ {
|
|
| 88 |
+ if (!empty($this->fields)) |
|
| 89 |
+ {
|
|
| 90 |
+ return $this->fields; |
|
| 91 |
+ } |
|
| 92 |
+ |
|
| 93 |
+ $arrWidgets = [ |
|
| 94 |
+ 'base_legend' => [ |
|
| 95 |
+ [ |
|
| 96 |
+ 'class' => 'w50', |
|
| 97 |
+ 'widget' => new SelectMenu([ |
|
| 98 |
+ 'name' => 'slotType', |
|
| 99 |
+ 'mandatory' => true, |
|
| 100 |
+ 'label' => 'Zeitslot-Typ' |
|
| 101 |
+ ]) |
|
| 102 |
+ ], |
|
| 103 |
+ [ |
|
| 104 |
+ 'class' => 'w50', |
|
| 105 |
+ 'widget' => new TextField([ |
|
| 106 |
+ 'name' => 'buffer', |
|
| 107 |
+ 'mandatory' => true, |
|
| 108 |
+ 'label' => 'Pufferzeit in min.' |
|
| 109 |
+ ]) |
|
| 110 |
+ ] |
|
| 111 |
+ ] |
|
| 112 |
+ ]; |
|
| 113 |
+ |
|
| 114 |
+ $this->fields = $arrWidgets; |
|
| 115 |
+ return $this->fields; |
|
| 116 |
+ } |
|
| 86 | 117 |
} |