... | ... |
@@ -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 |
} |