From b50d584a5ba3003e729c6777b24d08bd7cb453bf Mon Sep 17 00:00:00 2001 From: Jannat Patel Date: Wed, 28 Jan 2026 10:57:58 +0530 Subject: [PATCH] feat: new course modal --- .../src/components/Controls/MultiSelect.vue | 11 +- frontend/src/components/Controls/Uploader.vue | 2 +- frontend/src/components/CourseCardOverlay.vue | 20 +- .../src/pages/Courses/CourseDashboard.vue | 2 +- frontend/src/pages/Courses/CourseDetail.vue | 47 +- .../pages/Courses/CourseEnrollmentModal.vue | 7 + frontend/src/pages/Courses/CourseForm.vue | 400 ++-- frontend/src/pages/Courses/CourseOverview.vue | 2 +- frontend/src/pages/Courses/Courses.vue | 8 +- frontend/src/pages/Courses/NewCourseModal.vue | 150 ++ frontend/src/router.js | 6 - package.json | 2 + yarn.lock | 1647 +++++++++++++++++ 13 files changed, 1991 insertions(+), 313 deletions(-) create mode 100644 frontend/src/pages/Courses/NewCourseModal.vue create mode 100644 yarn.lock diff --git a/frontend/src/components/Controls/MultiSelect.vue b/frontend/src/components/Controls/MultiSelect.vue index aa9dbc8f..8c1dfa19 100644 --- a/frontend/src/components/Controls/MultiSelect.vue +++ b/frontend/src/components/Controls/MultiSelect.vue @@ -19,9 +19,14 @@ showOptions = true } " + @click="(e) => { + showOptions = true + nextTick(() => { + setFocus() + }) + }" @focus=" () => { - showOptions = true if (!filterOptions.data || filterOptions.data.length === 0) { reload('') } @@ -115,7 +120,7 @@ import { } from '@headlessui/vue' import { createResource, Popover, Button } from 'frappe-ui' import { ref, computed, nextTick, useAttrs } from 'vue' -import { watchDebounced } from '@vueuse/core' +import { set, watchDebounced } from '@vueuse/core' import { X, Plus } from 'lucide-vue-next' const props = defineProps({ @@ -149,7 +154,6 @@ const props = defineProps({ const values = defineModel() const attrs = useAttrs() -const emails = ref([]) const search = ref(null) const error = ref(null) const query = ref('') @@ -161,6 +165,7 @@ const selectedValue = computed({ set: (val) => { query.value = '' val?.value && addValue(val.value) + showOptions.value = false }, }) diff --git a/frontend/src/components/Controls/Uploader.vue b/frontend/src/components/Controls/Uploader.vue index 75242a21..1a127697 100644 --- a/frontend/src/components/Controls/Uploader.vue +++ b/frontend/src/components/Controls/Uploader.vue @@ -34,7 +34,7 @@