Skip to content

Commit cb3d4ac

Browse files
committed
Display: Remove BaseInputDate component in favor of BaseCalendar
1 parent 29a9e98 commit cb3d4ac

File tree

11 files changed

+39
-240
lines changed

11 files changed

+39
-240
lines changed

assets/css/scss/atoms/_calendar.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
}
5151

5252
&-panel {
53-
@apply absolute overflow-auto top-0 left-0 bg-white drop-shadow-lg rounded-lg border-none text-gray-90 mt-1 p-0
53+
@apply w-auto absolute bg-white drop-shadow-lg rounded-lg border-none text-gray-90 mt-1 p-0
5454
before:content-[""] before:w-full before:block before:h-3 before:sticky before:bg-white before:z-[2] before:top-0 before:rounded-t-lg before:rounded-b-none
5555
after:content-[""] after:w-full after:block after:h-3 after:sticky after:bg-white after:z-[2] after:bottom-0 after:rounded-b-lg after:rounded-t-none;
5656
}

assets/css/scss/index.scss

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@
5656

5757
@include meta.load-css("molecules/chip");
5858
@include meta.load-css("molecules/course_tool");
59-
@include meta.load-css("molecules/datepicker");
6059
@include meta.load-css("molecules/empty_state");
6160
@include meta.load-css("molecules/teacher_bar");
6261
@include meta.load-css("molecules/toolbar");

assets/css/scss/molecules/_datepicker.scss

Lines changed: 0 additions & 133 deletions
This file was deleted.

assets/vue/components/admin/ColorThemePreview.vue

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<script setup>
22
import { provide, ref } from "vue"
33
import { useI18n } from "vue-i18n"
4-
import BaseInputDate from "../basecomponents/BaseInputDate.vue"
4+
import BaseCalendar from "../basecomponents/BaseCalendar.vue"
55
import BaseButton from "../basecomponents/BaseButton.vue"
66
import BaseMenu from "../basecomponents/BaseMenu.vue"
77
import BaseDialogConfirmCancel from "../basecomponents/BaseDialogConfirmCancel.vue"
@@ -213,10 +213,10 @@ provide("isCustomizing", isCustomizing)
213213
:label="t('This is a form with an error')"
214214
:model-value="null"
215215
/>
216-
<BaseInputDate
217-
id="date"
216+
<BaseCalendar
217+
id="dates"
218218
:label="t('Date')"
219-
class="w-32"
219+
show-time
220220
/>
221221
</div>
222222

assets/vue/components/assignments/AssignmentsForm.vue

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@
5959
name="enableExpiryDate"
6060
/>
6161

62-
<BaseInputDate
62+
<BaseCalendar
6363
v-if="chkExpiresOn"
6464
id="expires_on"
6565
v-model="v$.expiresOn.$model"
@@ -76,14 +76,13 @@
7676
name="enableEndDate"
7777
/>
7878

79-
<BaseInputDate
79+
<BaseCalendar
8080
v-if="chkEndsOn"
8181
id="ends_on"
8282
v-model="v$.endsOn.$model"
8383
:error-text="v$.endsOn.$errors.map((error) => error.$message).join('<br>')"
8484
:is-invalid="v$.endsOn.$error"
8585
:label="t('Ends at (completely closed)')"
86-
show-time
8786
/>
8887

8988
<BaseCheckbox
@@ -118,7 +117,7 @@
118117
</template>
119118

120119
<script setup>
121-
import BaseInputDate from "../basecomponents/BaseInputDate.vue"
120+
import BaseCalendar from "../basecomponents/BaseCalendar.vue"
122121
import BaseInputText from "../basecomponents/BaseInputText.vue"
123122
import BaseAdvancedSettingsButton from "../basecomponents/BaseAdvancedSettingsButton.vue"
124123
import BaseButton from "../basecomponents/BaseButton.vue"

assets/vue/components/attendance/AttendanceCalendarForm.vue

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@
22
<form class="flex flex-col gap-6 mt-6">
33
<!-- Start Date -->
44
<BaseCalendar
5+
id="date_time"
56
v-model="formData.startDate"
67
:label="t('Start Date')"
7-
:show-time="true"
88
required
9+
show-time
910
/>
1011

1112
<!-- Repeat Date -->
@@ -39,6 +40,7 @@
3940

4041
<!-- Repeat End Date -->
4142
<BaseCalendar
43+
id="end_date_time"
4244
v-model="formData.repeatEndDate"
4345
:label="t('Repeat End Date')"
4446
:show-time="true"
@@ -153,7 +155,6 @@ const submitForm = async () => {
153155
}
154156
}
155157
156-
157158
const loadGroups = async () => {
158159
try {
159160
groupOptions.value = await attendanceService.fetchGroups(parentResourceNodeId.value)

assets/vue/components/basecomponents/BaseCalendar.vue

Lines changed: 25 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,21 @@
22
import { computed, onMounted, ref, watch } from "vue"
33
import DatePicker from "primevue/datepicker"
44
import FloatLabel from "primevue/floatlabel"
5+
import Message from "primevue/message"
56
import { calendarLocales } from "../../utils/calendarLocales"
67
import { useLocale } from "../../composables/locale"
78
import { usePrimeVue } from "primevue/config"
89
10+
const modelValue = defineModel({
11+
type: [Date, Array, String, undefined, null],
12+
required: false,
13+
default: null,
14+
})
15+
916
const { appLocale } = useLocale()
1017
const localePrefix = ref(getLocalePrefix(appLocale.value))
11-
const props = defineProps({
12-
modelValue: {
13-
type: [String, Date, Array],
14-
required: false,
15-
default: null,
16-
},
18+
19+
defineProps({
1720
label: {
1821
type: String,
1922
required: true,
@@ -29,11 +32,6 @@ const props = defineProps({
2932
default: "single",
3033
validator: (value) => ["single", "range"].includes(value),
3134
},
32-
showIcon: {
33-
type: Boolean,
34-
required: false,
35-
default: false,
36-
},
3735
showTime: {
3836
type: Boolean,
3937
required: false,
@@ -44,20 +42,11 @@ const props = defineProps({
4442
required: false,
4543
default: false,
4644
},
47-
})
48-
49-
const model = ref(
50-
props.modelValue
51-
? Array.isArray(props.modelValue)
52-
? props.modelValue.map((date) => new Date(date))
53-
: new Date(props.modelValue)
54-
: null,
55-
)
56-
57-
const emit = defineEmits(["update:modelValue"])
58-
59-
watch(model, (newValue) => {
60-
emit("update:modelValue", newValue)
45+
errorText: {
46+
type: String,
47+
required: false,
48+
default: null,
49+
},
6150
})
6251
6352
function getLocalePrefix(locale) {
@@ -97,22 +86,30 @@ onMounted(() => {
9786
<div class="field">
9887
<FloatLabel variant="on">
9988
<DatePicker
100-
v-model="model"
101-
:class="{ 'p-invalid': isInvalid }"
89+
v-model="modelValue"
10290
:date-format="dateFormat"
10391
:input-id="id"
92+
:invalid="isInvalid"
10493
:locale="selectedLocale"
10594
:manual-input="type !== 'range'"
10695
:selection-mode="type"
107-
:show-icon="showIcon"
10896
:show-time="showTime"
10997
fluid
11098
icon-display="input"
99+
show-icon
111100
/>
112101
<label
113102
:for="id"
114103
v-text="label"
115104
/>
116105
</FloatLabel>
106+
<Message
107+
v-if="isInvalid"
108+
size="small"
109+
severity="seconday"
110+
variant="simple"
111+
>
112+
{{ errorText }}
113+
</Message>
117114
</div>
118115
</template>

0 commit comments

Comments
 (0)