feat: home page

This commit is contained in:
Jannat Patel
2025-08-21 21:16:21 +05:30
parent 0725714144
commit e0601c7b38
10 changed files with 626 additions and 25 deletions

View File

@@ -365,7 +365,7 @@ const addPrograms = async () => {
let canAddProgram = await checkIfCanAddProgram()
if (!canAddProgram) return
let activeFor = ['Programs', 'ProgramDetail']
let index = 1
let index = 2
sidebarLinks.value.splice(index, 0, {
label: 'Programs',

View File

@@ -52,7 +52,7 @@
<Clock class="w-4 h-4 stroke-1.5" />
<span>
{{ formatTime(cls.time) }} -
{{ dayjs(getClassEnd(cls)).format('HH:mm') }}
{{ dayjs(getClassEnd(cls)).format('HH:mm A') }}
</span>
</div>
<div

View File

@@ -11,7 +11,7 @@
class="flex items-center w-full duration-300 ease-in-out group"
:class="isCollapsed ? 'p-1 relative' : 'px-2 py-1'"
>
<Tooltip :text="link.label" placement="right">
<Tooltip :text="__(link.label)" placement="right">
<slot name="icon">
<span class="grid h-5 w-6 flex-shrink-0 place-items-center">
<component

View File

@@ -1,22 +1,24 @@
<template>
<div>
<div v-if="!forHome || (forHome && upcoming_evals.data?.length)">
<div class="flex items-center justify-between mb-4">
<div class="text-lg text-ink-gray-9 font-semibold">
{{ __('Upcoming Evaluations') }}
</div>
<Button
v-if="upcoming_evals.data?.length != evaluationCourses.length"
v-if="
upcoming_evals.data?.length != evaluationCourses.length && !forHome
"
@click="openEvalModal"
>
{{ __('Schedule Evaluation') }}
</Button>
</div>
<div v-if="upcoming_evals.data?.length">
<div class="grid grid-cols-3 gap-4">
<div class="grid gap-4" :class="forHome ? 'grid-cols-2' : 'grid-cols-3'">
<div v-for="evl in upcoming_evals.data">
<div class="border text-ink-gray-7 rounded-md p-3">
<div class="flex justify-between mb-3">
<span class="font-semibold text-ink-gray-9 leading-5">
<span class="text-lg font-semibold text-ink-gray-9 leading-5">
{{ evl.course_title }}
</span>
<Menu
@@ -94,8 +96,8 @@
</div>
</div>
</div>
<div v-else class="text-sm italic text-ink-gray-5">
{{ __('Please schedule an evaluation to get certified.') }}
<div v-else class="text-ink-gray-5">
{{ __('Schedule an evaluation to get certified.') }}
</div>
</div>
<EvaluationModal
@@ -122,7 +124,6 @@ import EvaluationModal from '@/components/Modals/EvaluationModal.vue'
import { Menu, MenuButton, MenuItems, MenuItem } from '@headlessui/vue'
const dayjs = inject('$dayjs')
const user = inject('$user')
const showEvalModal = ref(false)
const app = getCurrentInstance()
const { $dialog } = app.appContext.config.globalProperties
@@ -140,12 +141,15 @@ const props = defineProps({
type: String,
default: null,
},
forHome: {
type: Boolean,
default: false,
},
})
const upcoming_evals = createResource({
url: 'lms.lms.utils.get_upcoming_evals',
params: {
student: user.data.name,
courses: props.courses.map((course) => course.course),
batch: props.batch,
},