... | ... |
@@ -188,8 +188,10 @@ $GLOBALS['TL_DCA']['tl_vr_wa_reservation'] = array |
188 | 188 |
'approved' => array |
189 | 189 |
( |
190 | 190 |
'exclude' => true, |
191 |
- 'inputType' => 'checkbox', |
|
192 |
- 'eval' => array('tl_class'=>'w50 m12'), |
|
191 |
+ 'inputType' => 'select', |
|
192 |
+ 'options' => ['1','0'], |
|
193 |
+ 'reference' => $GLOBALS['TL_LANG']['REF']['wa_approval'], |
|
194 |
+ 'eval' => array('tl_class'=>'w50 m12', 'includeBlankOption' => true, 'blankOptionLabel' => $GLOBALS['TL_LANG']['MSC']['wa_approval_pending']), |
|
193 | 195 |
'sql' => "char(1) NOT NULL default '1'" |
194 | 196 |
), |
195 | 197 |
'approved_on' => array |
... | ... |
@@ -11,8 +11,14 @@ |
11 | 11 |
$GLOBALS['TL_LANG']['MSC']['wa_sorte'] = 'Rebsorte'; |
12 | 12 |
$GLOBALS['TL_LANG']['MSC']['wa_leseart'] = 'Leseart'; |
13 | 13 |
$GLOBALS['TL_LANG']['MSC']['wa_approval_needed'] = 'erfordert Freigabe'; |
14 |
+$GLOBALS['TL_LANG']['MSC']['wa_approval_pending'] = 'Freigabe ausstehend'; |
|
14 | 15 |
|
15 | 16 |
$GLOBALS['TL_LANG']['REF']['wa_ernteart'] = [ |
16 | 17 |
'handlese' => 'Handlese', |
17 | 18 |
'vollernter' => 'Vollernter', |
18 | 19 |
]; |
20 |
+ |
|
21 |
+$GLOBALS['TL_LANG']['REF']['wa_approval'] = [ |
|
22 |
+ '0' => 'abgelehnt', |
|
23 |
+ '1' => 'angenommen', |
|
24 |
+]; |
... | ... |
@@ -10,8 +10,15 @@ |
10 | 10 |
|
11 | 11 |
$GLOBALS['TL_LANG']['MSC']['wa_sorte'] = 'Grape variety'; |
12 | 12 |
$GLOBALS['TL_LANG']['MSC']['wa_leseart'] = 'Harvest type'; |
13 |
+$GLOBALS['TL_LANG']['MSC']['wa_approval_needed'] = 'approval needed'; |
|
14 |
+$GLOBALS['TL_LANG']['MSC']['wa_approval_pending'] = 'approval pending'; |
|
13 | 15 |
|
14 | 16 |
$GLOBALS['TL_LANG']['REF']['wa_ernteart'] = [ |
15 | 17 |
'handlese' => 'Manual harvest', |
16 | 18 |
'vollernter' => 'Harvester', |
17 | 19 |
]; |
20 |
+ |
|
21 |
+$GLOBALS['TL_LANG']['REF']['wa_approval'] = [ |
|
22 |
+ '0' => 'denied', |
|
23 |
+ '1' => 'approved', |
|
24 |
+]; |
... | ... |
@@ -72,7 +72,20 @@ |
72 | 72 |
<h4>Ihre Reservierungen</h4> |
73 | 73 |
<ul class="no-bullets mx-0 reservations"> |
74 | 74 |
{% for reservation in reservations %} |
75 |
- <li class="row u-items-center p-0"> |
|
75 |
+ {% if reservation.approved == '1' %} |
|
76 |
+ {% set status = 'approved' %} |
|
77 |
+ {% elseif reservation.approved == '0' %} |
|
78 |
+ {% set status = 'canceled' %} |
|
79 |
+ {% else %} |
|
80 |
+ {% set status = 'pending' %} |
|
81 |
+ {% endif %} |
|
82 |
+ |
|
83 |
+ <li class="row u-items-center p-0 status status--{{ status }}"> |
|
84 |
+ <div class="col-1"> |
|
85 |
+ <div class="u-flex u-items-center u-gap-1"> |
|
86 |
+ <i class="status-icon">Blah</i> |
|
87 |
+ </div> |
|
88 |
+ </div> |
|
76 | 89 |
<div class="col-2"> |
77 | 90 |
<div class="u-flex u-items-center u-gap-1"> |
78 | 91 |
<i class="icon-behaelter-outline"></i> |
... | ... |
@@ -91,6 +104,21 @@ |
91 | 104 |
</li> |
92 | 105 |
{% endfor %} |
93 | 106 |
</ul> |
107 |
+ <div class="u-flex u-items-center u-gap-2 px-1 text-sm"> |
|
108 |
+ <div><strong>Legende:</strong></div> |
|
109 |
+ <div class="u-flex u-items-center u-gap-1"> |
|
110 |
+ <i class="status-icon status--approved status--small"></i> |
|
111 |
+ angenommen |
|
112 |
+ </div> |
|
113 |
+ <div class="u-flex u-items-center u-gap-1"> |
|
114 |
+ <i class="status-icon status--pending status--small"></i> |
|
115 |
+ Freigabe ausstehend |
|
116 |
+ </div> |
|
117 |
+ <div class="u-flex u-items-center u-gap-1"> |
|
118 |
+ <i class="status-icon status--canceled status--small"></i> |
|
119 |
+ abgelehnt |
|
120 |
+ </div> |
|
121 |
+ </div> |
|
94 | 122 |
</div> |
95 | 123 |
{% endif %} |
96 | 124 |
|
... | ... |
@@ -211,3 +211,100 @@ ul { |
211 | 211 |
.ml-auto { |
212 | 212 |
margin-left: auto; |
213 | 213 |
} |
214 |
+ |
|
215 |
+/** Status icons */ |
|
216 |
+ |
|
217 |
+.status { |
|
218 |
+ |
|
219 |
+ .status-icon { |
|
220 |
+ visibility: hidden; |
|
221 |
+ position: relative; |
|
222 |
+ width: 24px; |
|
223 |
+ height: 24px; |
|
224 |
+ |
|
225 |
+ &:after { |
|
226 |
+ width: 24px; |
|
227 |
+ height: 24px; |
|
228 |
+ visibility: visible; |
|
229 |
+ position: absolute; |
|
230 |
+ top: 50%; |
|
231 |
+ left: 50%; |
|
232 |
+ margin: -12px 0 0 -12px; |
|
233 |
+ content: ''; |
|
234 |
+ background-position: 50% 50%; |
|
235 |
+ background-repeat: no-repeat; |
|
236 |
+ } |
|
237 |
+ |
|
238 |
+ } |
|
239 |
+} |
|
240 |
+.status-icon { |
|
241 |
+ visibility: hidden; |
|
242 |
+ position: relative; |
|
243 |
+ display: inline-block; |
|
244 |
+ width: 24px; |
|
245 |
+ height: 24px; |
|
246 |
+ |
|
247 |
+ &:after { |
|
248 |
+ width: 24px; |
|
249 |
+ height: 24px; |
|
250 |
+ visibility: visible; |
|
251 |
+ position: absolute; |
|
252 |
+ top: 50%; |
|
253 |
+ left: 50%; |
|
254 |
+ margin: -12px 0 0 -12px; |
|
255 |
+ content: ''; |
|
256 |
+ background-position: 50% 50%; |
|
257 |
+ background-repeat: no-repeat; |
|
258 |
+ } |
|
259 |
+ |
|
260 |
+ &.status--small, |
|
261 |
+ .status.status--small & { |
|
262 |
+ &, |
|
263 |
+ &:after { |
|
264 |
+ width: 16px; |
|
265 |
+ height: 16px; |
|
266 |
+ } |
|
267 |
+ &:after { |
|
268 |
+ margin: -8px 0 0 -8px; |
|
269 |
+ } |
|
270 |
+ } |
|
271 |
+} |
|
272 |
+ |
|
273 |
+.status, |
|
274 |
+.status-icon { |
|
275 |
+ &.status--approved { |
|
276 |
+ &:not(.status-icon):not(.status-no-rowcolor) { |
|
277 |
+ background-color: #f3ffe2; |
|
278 |
+ } |
|
279 |
+ &:not(.status), |
|
280 |
+ .status-icon { |
|
281 |
+ &:after { |
|
282 |
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='icon icon-tabler icon-tabler-thumb-up' width='100%25' height='100%25' viewBox='0 0 24 24' stroke-width='1.5' stroke='%2300b341' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M7 11v8a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1v-7a1 1 0 0 1 1 -1h3a4 4 0 0 0 4 -4v-1a2 2 0 0 1 4 0v5h3a2 2 0 0 1 2 2l-1 5a2 3 0 0 1 -2 2h-7a3 3 0 0 1 -3 -3' /%3E%3C/svg%3E"); |
|
283 |
+ } |
|
284 |
+ } |
|
285 |
+ } |
|
286 |
+ |
|
287 |
+ &.status--pending { |
|
288 |
+ &:not(.status-icon):not(.status-no-rowcolor) { |
|
289 |
+ background-color: #fff6e4; |
|
290 |
+ } |
|
291 |
+ &:not(.status), |
|
292 |
+ .status-icon { |
|
293 |
+ &:after { |
|
294 |
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='icon icon-tabler icon-tabler-hourglass-high' width='100%25' height='100%25' viewBox='0 0 24 24' stroke-width='1.5' stroke='%23ff9300' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M6.5 7h11' /%3E%3Cpath d='M6 20v-2a6 6 0 1 1 12 0v2a1 1 0 0 1 -1 1h-10a1 1 0 0 1 -1 -1z' /%3E%3Cpath d='M6 4v2a6 6 0 1 0 12 0v-2a1 1 0 0 0 -1 -1h-10a1 1 0 0 0 -1 1z' /%3E%3C/svg%3E"); |
|
295 |
+ } |
|
296 |
+ } |
|
297 |
+ } |
|
298 |
+ |
|
299 |
+ &.status--canceled { |
|
300 |
+ &:not(.status-icon):not(.status-no-rowcolor) { |
|
301 |
+ background-color: #ffe7e7; |
|
302 |
+ } |
|
303 |
+ &:not(.status), |
|
304 |
+ .status-icon { |
|
305 |
+ &:after { |
|
306 |
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='icon icon-tabler icon-tabler-thumb-down' width='100%25' height='100%25' viewBox='0 0 24 24' stroke-width='1.5' stroke='%23ff2825' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M7 13v-8a1 1 0 0 0 -1 -1h-2a1 1 0 0 0 -1 1v7a1 1 0 0 0 1 1h3a4 4 0 0 1 4 4v1a2 2 0 0 0 4 0v-5h3a2 2 0 0 0 2 -2l-1 -5a2 3 0 0 0 -2 -2h-7a3 3 0 0 0 -3 3' /%3E%3C/svg%3E"); |
|
307 |
+ } |
|
308 |
+ } |
|
309 |
+ } |
|
310 |
+} |