refactor: sidebar visibility of programs

This commit is contained in:
Jannat Patel
2025-08-20 13:11:22 +05:30
parent 5ec809e3dd
commit 5e607c3b8e
8 changed files with 80 additions and 28 deletions

View File

@@ -196,7 +196,7 @@ import { usersStore } from '@/stores/user'
import { sessionStore } from '@/stores/session'
import { useSidebar } from '@/stores/sidebar'
import { useSettings } from '@/stores/settings'
import { Button, createResource, Tooltip } from 'frappe-ui'
import { Button, call, createResource, Tooltip } from 'frappe-ui'
import PageModal from '@/components/Modals/PageModal.vue'
import { capture } from '@/telemetry'
import LMSLogo from '@/components/Icons/LMSLogo.vue'
@@ -214,6 +214,7 @@ import {
Users,
BookText,
Zap,
Check,
} from 'lucide-vue-next'
import {
TrialBanner,
@@ -360,7 +361,9 @@ const addProgrammingExercises = () => {
}
}
const addPrograms = () => {
const addPrograms = async () => {
let canAddProgram = await checkIfCanAddProgram()
if (!canAddProgram) return
let activeFor = ['Programs', 'ProgramDetail']
let index = 1
@@ -372,6 +375,14 @@ const addPrograms = () => {
})
}
const checkIfCanAddProgram = async () => {
if (isModerator.value || isInstructor.value) {
return true
}
const programs = await call('lms.lms.utils.get_programs')
return programs.enrolled.length > 0 || programs.published.length > 0
}
const openPageModal = (link) => {
showPageModal.value = true
pageToEdit.value = link