fix: program title rename and program overlay

This commit is contained in:
Jannat Patel
2024-11-29 15:53:50 +05:30
parent 97543a43eb
commit d688d5cdd9
4 changed files with 47 additions and 33 deletions

View File

@@ -176,6 +176,7 @@
import {
Breadcrumbs,
Button,
call,
createDocumentResource,
Dialog,
FormControl,
@@ -305,25 +306,14 @@ const updateOrder = (e) => {
}
const saveProgram = () => {
program.setValue.submit(
{
title: program.doc.title,
program_courses: program.doc.program_courses,
program_members: program.doc.program_members,
},
{
onSuccess(data) {
router.push({
name: 'ProgramsForm',
params: { programName: data.name },
})
showToast(__('Success'), __('Program saved successfully'), 'check')
},
onError(err) {
showToast('Error', err.messages?.[0] || err, 'x')
},
}
)
call('frappe.model.rename_doc.update_document_title', {
doctype: 'LMS Program',
docname: program.doc.name,
name: program.doc.title,
}).then((data) => {
console.log(data)
router.push({ name: 'ProgramForm', params: { programName: data } })
})
}
const courseColumns = computed(() => {

View File

@@ -61,12 +61,23 @@
v-if="program.courses?.length"
class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-5 mt-5"
>
<CourseCard
v-for="course in program.courses"
:course="course"
@click="enrollMember(program.name, course.name)"
class="cursor-pointer"
/>
<div v-for="course in program.courses" class="relative group">
<CourseCard
:course="course"
@click="enrollMember(program.name, course.name)"
class="cursor-pointer"
/>
<div
v-if="lockCourse(course)"
class="absolute inset-0 bg-black-overlay-500 opacity-60 rounded-md"
></div>
<div
v-if="lockCourse(course)"
class="absolute inset-0 flex items-center justify-center"
>
<LockKeyhole class="size-10 text-white" />
</div>
</div>
</div>
<div v-else class="text-sm italic text-gray-600 mt-4">
{{ __('No courses in this program') }}
@@ -119,7 +130,7 @@ import {
FormControl,
} from 'frappe-ui'
import { computed, inject, onMounted, ref } from 'vue'
import { BookOpen, Edit, Plus } from 'lucide-vue-next'
import { BookOpen, Edit, Plus, LockKeyhole } from 'lucide-vue-next'
import CourseCard from '@/components/CourseCard.vue'
import { useRouter } from 'vue-router'
import { showToast, singularize } from '@/utils'
@@ -189,6 +200,13 @@ const enrollMember = (program, course) => {
})
}
const lockCourse = (course) => {
if (user.data?.is_moderator || user.data?.is_instructor) return false
if (course.membership) return false
if (course.eligible) return false
return true
}
const breadbrumbs = computed(() => [
{
label: 'Programs',