|
4 | 4 | --> |
5 | 5 |
|
6 | 6 | <template> |
7 | | - <form class="absence" @submit.prevent="saveForm"> |
8 | | - <div class="absence__dates"> |
| 7 | + <form :class="$style.absenceForm" @submit.prevent="saveForm"> |
| 8 | + <div :class="$style.absenceForm__pickerContainer"> |
9 | 9 | <NcDateTimePickerNative |
10 | 10 | id="absence-first-day" |
11 | 11 | v-model="firstDay" |
| 12 | + :class="$style.absenceForm__picker" |
12 | 13 | :label="t('dav', 'First day')" |
13 | | - class="absence__dates__picker" |
14 | | - :required="true" /> |
| 14 | + required /> |
15 | 15 | <NcDateTimePickerNative |
16 | 16 | id="absence-last-day" |
17 | 17 | v-model="lastDay" |
| 18 | + :class="$style.absenceForm__picker" |
18 | 19 | :label="t('dav', 'Last day (inclusive)')" |
19 | | - class="absence__dates__picker" |
20 | | - :required="true" /> |
| 20 | + required /> |
21 | 21 | </div> |
22 | 22 | <label for="replacement-search-input">{{ t('dav', 'Out of office replacement (optional)') }}</label> |
23 | 23 | <NcSelectUsers |
|
28 | 28 | :options="options" |
29 | 29 | @search="asyncFind" /> |
30 | 30 | <NcTextField v-model="status" :label="t('dav', 'Short absence status')" :required="true" /> |
31 | | - <div class="absence-long-message__wrapper"> |
32 | | - <NcTextArea input-class="absence-long-message" v-model="message" :label="t('dav', 'Long absence Message')" :required="true" resize="none" rows="6"/> |
| 31 | + <div :class="$style.absenceForm__longMessageContainer"> |
| 32 | + <NcTextArea |
| 33 | + v-model="message" |
| 34 | + :inputClass="$style.absenceForm__longMessage" |
| 35 | + :label="t('dav', 'Long absence Message')" |
| 36 | + required |
| 37 | + resize="none" |
| 38 | + rows="6" /> |
33 | 39 | </div> |
34 | 40 |
|
35 | | - <div class="absence__buttons"> |
| 41 | + <div :class="$style.absenceForm__actions"> |
36 | 42 | <NcButton |
37 | 43 | :disabled="loading || !valid" |
38 | 44 | variant="primary" |
@@ -253,40 +259,40 @@ export default { |
253 | 259 | } |
254 | 260 | </script> |
255 | 261 |
|
256 | | -<style lang="scss" scoped> |
257 | | -.absence { |
| 262 | +<style module> |
| 263 | +.absenceForm { |
258 | 264 | display: flex; |
259 | 265 | flex-direction: column; |
260 | 266 | gap: 5px; |
| 267 | +} |
261 | 268 |
|
262 | | - &__dates { |
263 | | - display: flex; |
264 | | - gap: 10px; |
265 | | - width: 100%; |
| 269 | +.absenceForm__pickerContainer { |
| 270 | + display: flex; |
| 271 | + gap: 10px; |
| 272 | + width: 100%; |
| 273 | +} |
266 | 274 |
|
267 | | - &__picker { |
268 | | - flex: 1 auto; |
| 275 | +.absenceForm__picker { |
| 276 | + flex: 1 auto; |
269 | 277 |
|
270 | | - :deep(.native-datetime-picker--input) { |
271 | | - margin-bottom: 0; |
272 | | - } |
273 | | - } |
| 278 | + :global(.native-datetime-picker--input) { |
| 279 | + margin-bottom: 0; |
274 | 280 | } |
| 281 | +} |
275 | 282 |
|
276 | | - .absence-long-message { |
277 | | - height: calc(var(--default-line-height) * 6 * var(--font-size-small)); |
| 283 | +.absenceForm__longMessage { |
| 284 | + height: calc(var(--default-line-height) * 6 * var(--font-size-small)); |
| 285 | +} |
278 | 286 |
|
279 | | - &__wrapper { |
280 | | - height: calc(var(--default-line-height) * 6 * var(--font-size-small) + var(--default-grid-baseline) * 2); |
281 | | - display: flex; |
282 | | - flex-direction: column; |
283 | | - justify-content: start; |
284 | | - } |
285 | | - } |
| 287 | +.absenceForm__longMessageContainer { |
| 288 | + height: calc(var(--default-line-height) * 6 * var(--font-size-small) + var(--default-grid-baseline) * 2); |
| 289 | + display: flex; |
| 290 | + flex-direction: column; |
| 291 | + justify-content: start; |
| 292 | +} |
286 | 293 |
|
287 | | - &__buttons { |
288 | | - display: flex; |
289 | | - gap: 5px; |
290 | | - } |
| 294 | +.absenceForm__actions { |
| 295 | + display: flex; |
| 296 | + gap: 5px; |
291 | 297 | } |
292 | 298 | </style> |
0 commit comments