feat: completion certificate
This commit is contained in:
@@ -63,6 +63,9 @@
|
|||||||
{{ __('Start Learning') }}
|
{{ __('Start Learning') }}
|
||||||
</span>
|
</span>
|
||||||
</Button>
|
</Button>
|
||||||
|
<Button v-if="canGetCertificate">
|
||||||
|
{{ __('Get Certificate') }}
|
||||||
|
</Button>
|
||||||
<router-link
|
<router-link
|
||||||
v-if="user?.data?.is_moderator || is_instructor()"
|
v-if="user?.data?.is_moderator || is_instructor()"
|
||||||
:to="{
|
:to="{
|
||||||
@@ -174,4 +177,8 @@ const is_instructor = () => {
|
|||||||
})
|
})
|
||||||
return user_is_instructor
|
return user_is_instructor
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const canGetCertificate = computed(() => {
|
||||||
|
console.log(props.course)
|
||||||
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -90,6 +90,17 @@
|
|||||||
</span>
|
</span>
|
||||||
</Button>
|
</Button>
|
||||||
</router-link>
|
</router-link>
|
||||||
|
<router-link
|
||||||
|
v-else
|
||||||
|
:to="{
|
||||||
|
name: 'CourseDetail',
|
||||||
|
params: { courseName: courseName },
|
||||||
|
}"
|
||||||
|
>
|
||||||
|
<Button>
|
||||||
|
{{ __('Back to Course') }}
|
||||||
|
</Button>
|
||||||
|
</router-link>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -160,12 +171,12 @@
|
|||||||
{{ lesson.data.course_title }}
|
{{ lesson.data.course_title }}
|
||||||
</div>
|
</div>
|
||||||
<div v-if="user && lesson.data.membership" class="text-sm mt-3">
|
<div v-if="user && lesson.data.membership" class="text-sm mt-3">
|
||||||
{{ Math.ceil(lesson.data.membership.progress) }}% completed
|
{{ Math.ceil(lessonProgress) }}% completed
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<ProgressBar
|
<ProgressBar
|
||||||
v-if="user && lesson.data.membership"
|
v-if="user && lesson.data.membership"
|
||||||
:progress="lesson.data.membership.progress"
|
:progress="lessonProgress"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<CourseOutline
|
<CourseOutline
|
||||||
@@ -196,6 +207,7 @@ const route = useRoute()
|
|||||||
const allowDiscussions = ref(false)
|
const allowDiscussions = ref(false)
|
||||||
const editor = ref(null)
|
const editor = ref(null)
|
||||||
const instructorEditor = ref(null)
|
const instructorEditor = ref(null)
|
||||||
|
const lessonProgress = ref(0)
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
courseName: {
|
courseName: {
|
||||||
@@ -224,6 +236,7 @@ const lesson = createResource({
|
|||||||
},
|
},
|
||||||
auto: true,
|
auto: true,
|
||||||
onSuccess(data) {
|
onSuccess(data) {
|
||||||
|
lessonProgress.value = data.membership?.progress
|
||||||
markProgress(data)
|
markProgress(data)
|
||||||
if (data.content) editor.value = renderEditor('editor', data.content)
|
if (data.content) editor.value = renderEditor('editor', data.content)
|
||||||
if (data.instructor_content?.blocks?.length)
|
if (data.instructor_content?.blocks?.length)
|
||||||
@@ -257,7 +270,11 @@ const renderEditor = (holder, content) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const markProgress = (data) => {
|
const markProgress = (data) => {
|
||||||
if (user.data && !data.progress) progress.submit()
|
if (user.data && !data.progress) {
|
||||||
|
setTimeout(() => {
|
||||||
|
progress.submit()
|
||||||
|
}, 30000)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const progress = createResource({
|
const progress = createResource({
|
||||||
@@ -268,6 +285,10 @@ const progress = createResource({
|
|||||||
course: props.courseName,
|
course: props.courseName,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
onSuccess(data) {
|
||||||
|
console.log(data)
|
||||||
|
lessonProgress.value = data
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
const breadcrumbs = computed(() => {
|
const breadcrumbs = computed(() => {
|
||||||
|
|||||||
Reference in New Issue
Block a user