UI Fixes
This commit is contained in:
parent
798f13be0d
commit
b3154efa84
@ -17,12 +17,12 @@
|
|||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class='course-buttons text-center col-xs-4 col-sm-3 col-md-2'>
|
<div class='course-buttons text-center col-xs-4 col-sm-3 col-md-2'>
|
||||||
<a-button
|
<a-button v-if="isLogin"
|
||||||
:type="buttonType"
|
:type="buttonType"
|
||||||
size="sm btn-block"
|
size="sm btn-block"
|
||||||
:route="firstContentRoute"
|
:route="firstContentRoute"
|
||||||
>
|
>
|
||||||
{{ courseMeta.flag }}
|
{{ buttonName }}
|
||||||
</a-button>
|
</a-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -49,9 +49,15 @@ export default {
|
|||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
firstContentRoute() {
|
firstContentRoute() {
|
||||||
|
if(lms.store.checkLogin()){
|
||||||
return `${this.program_name}/${this.course.name}/${this.courseMeta.content_type}/${this.courseMeta.content}`
|
return `${this.program_name}/${this.course.name}/${this.courseMeta.content_type}/${this.courseMeta.content}`
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return {}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
buttonType() {
|
buttonType() {
|
||||||
|
if(lms.store.checkProgramEnrollment(this.program_name)){
|
||||||
if (this.courseMeta.flag == "Start Course" ){
|
if (this.courseMeta.flag == "Start Course" ){
|
||||||
return "primary"
|
return "primary"
|
||||||
}
|
}
|
||||||
@ -61,12 +67,21 @@ export default {
|
|||||||
else if (this.courseMeta.flag == "Continue" ) {
|
else if (this.courseMeta.flag == "Continue" ) {
|
||||||
return "info"
|
return "info"
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
return " hidden"
|
return " hidden"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
isLogin() {
|
isLogin() {
|
||||||
return lms.store.checkLogin()
|
return lms.store.checkProgramEnrollment(this.program_name)
|
||||||
|
},
|
||||||
|
buttonName() {
|
||||||
|
if(lms.store.checkLogin()){
|
||||||
|
return this.courseMeta.flag
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return "Enroll"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
@ -31,7 +31,6 @@ frappe.ready(() => {
|
|||||||
if (lms.debug) console.log('Updated Enrolled Programs', this.enrolledPrograms)
|
if (lms.debug) console.log('Updated Enrolled Programs', this.enrolledPrograms)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
updateEnrolledCourses() {
|
updateEnrolledCourses() {
|
||||||
if(this.isLogin) {
|
if(this.isLogin) {
|
||||||
lms.call("get_all_course_enrollments").then(data => {
|
lms.call("get_all_course_enrollments").then(data => {
|
||||||
@ -40,7 +39,6 @@ frappe.ready(() => {
|
|||||||
if (lms.debug) console.log('Updated Enrolled Courses', this.enrolledCourses)
|
if (lms.debug) console.log('Updated Enrolled Courses', this.enrolledCourses)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
checkLogin() {
|
checkLogin() {
|
||||||
if(frappe.session.user === "Guest"){
|
if(frappe.session.user === "Guest"){
|
||||||
if (lms.debug) console.log('No Session')
|
if (lms.debug) console.log('No Session')
|
||||||
@ -52,15 +50,31 @@ frappe.ready(() => {
|
|||||||
}
|
}
|
||||||
return this.isLogin
|
return this.isLogin
|
||||||
},
|
},
|
||||||
|
|
||||||
updateState() {
|
updateState() {
|
||||||
this.checkLogin()
|
this.checkLogin()
|
||||||
this.updateEnrolledPrograms()
|
this.updateEnrolledPrograms()
|
||||||
this.updateEnrolledCourses()
|
this.updateEnrolledCourses()
|
||||||
},
|
},
|
||||||
|
checkProgramEnrollment(programName) {
|
||||||
|
if(this.checkLogin()){
|
||||||
|
if(this.enrolledPrograms) {
|
||||||
|
if(this.enrolledPrograms.includes(programName)) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
lms.view = new Vue({
|
lms.view = new Vue({
|
||||||
el: "#lms-app",
|
el: "#lms-app",
|
||||||
router: new VueRouter({ routes }),
|
router: new VueRouter({ routes }),
|
||||||
@ -70,5 +84,8 @@ frappe.ready(() => {
|
|||||||
if(lms.store.isLogin) lms.store.updateState()
|
if(lms.store.isLogin) lms.store.updateState()
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
lms.view.$router.afterEach((to, from) => {
|
||||||
|
window.scrollTo(0,0)
|
||||||
|
})
|
||||||
lms.debug = true
|
lms.debug = true
|
||||||
})
|
})
|
@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<TopSection :title="portal.title" :description="portal.description">
|
<TopSection :title="'Programs at ' + portal.title" :description="portal.description">
|
||||||
<AButton v-if="isLogin" :type="'primary'" :size="'lg'" :route="{ name: 'signup'}">Sign Up</AButton>
|
<AButton v-if="isLogin" :type="'primary'" :size="'lg'" :route="{ name: 'signup'}">Sign Up</AButton>
|
||||||
</TopSection>
|
</TopSection>
|
||||||
<CardList :title="'All Programs'" :description="''" :sectionType="'section-padding section-bg'">
|
<CardList :title="'All Programs'" :description="''" :sectionType="'section-padding section-bg'">
|
||||||
|
@ -4,20 +4,32 @@ import ContentPage from "./pages/ContentPage.vue";
|
|||||||
import ListPage from "./pages/ListPage.vue";
|
import ListPage from "./pages/ListPage.vue";
|
||||||
import ProfilePage from "./pages/ProfilePage.vue";
|
import ProfilePage from "./pages/ProfilePage.vue";
|
||||||
|
|
||||||
const routes = [
|
const routes = [{
|
||||||
{name: 'home', path: '', component: Home},
|
name: 'home',
|
||||||
{name: 'program', path: '/Program/:program_name', component: ProgramPage, props: true},
|
path: '',
|
||||||
|
component: Home
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'program',
|
||||||
|
path: '/Program/:program_name',
|
||||||
|
component: ProgramPage,
|
||||||
|
props: true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: 'content',
|
name: 'content',
|
||||||
path: '/Program/:program_name/:course/:type/:content',
|
path: '/Program/:program_name/:course/:type/:content',
|
||||||
component: ContentPage,
|
component: ContentPage,
|
||||||
props: true,
|
props: true,
|
||||||
beforeEnter: (to, from, next) => {
|
beforeEnter: (to, from, next) => {
|
||||||
if(!lms.store.checkLogin()){
|
if (lms.store.checkProgramEnrollment(this.program_name)) {
|
||||||
next({name: 'home'})
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
next()
|
next()
|
||||||
|
} else {
|
||||||
|
next({
|
||||||
|
name: 'program',
|
||||||
|
params: {
|
||||||
|
program_name: to.params.program_name
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -33,7 +45,7 @@ const routes = [
|
|||||||
beforeEnter(to, from, next) {
|
beforeEnter(to, from, next) {
|
||||||
window.location = window.location.origin.toString() + '/login#signup'
|
window.location = window.location.origin.toString() + '/login#signup'
|
||||||
},
|
},
|
||||||
component: ListPage,
|
component: Home,
|
||||||
props: true
|
props: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -43,9 +55,10 @@ const routes = [
|
|||||||
props: true,
|
props: true,
|
||||||
beforeEnter: (to, from, next) => {
|
beforeEnter: (to, from, next) => {
|
||||||
if (!lms.store.checkLogin()) {
|
if (!lms.store.checkLogin()) {
|
||||||
next({name: 'home'})
|
next({
|
||||||
}
|
name: 'home'
|
||||||
else {
|
})
|
||||||
|
} else {
|
||||||
next()
|
next()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,8 +5,11 @@ import frappe
|
|||||||
# LMS Utils to Update State for Vue Store
|
# LMS Utils to Update State for Vue Store
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def get_program_enrollments():
|
def get_program_enrollments():
|
||||||
|
student = utils.get_current_student()
|
||||||
|
if student == None:
|
||||||
|
return None
|
||||||
try:
|
try:
|
||||||
student = frappe.get_doc("Student", utils.get_current_student())
|
student = frappe.get_doc("Student", student)
|
||||||
return student.get_program_enrollments()
|
return student.get_program_enrollments()
|
||||||
except:
|
except:
|
||||||
return None
|
return None
|
||||||
@ -201,6 +204,9 @@ def check_quiz_completion(quiz, enrollment_name):
|
|||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def get_course_meta(course_name, program_name):
|
def get_course_meta(course_name, program_name):
|
||||||
course_enrollment = utils.get_course_enrollment(course_name)
|
course_enrollment = utils.get_course_enrollment(course_name)
|
||||||
|
program_enrollment = utils.get_program_enrollment(program_name)
|
||||||
|
if not program_enrollment:
|
||||||
|
return None
|
||||||
if not course_enrollment:
|
if not course_enrollment:
|
||||||
utils.enroll_in_course(course_name, program_name)
|
utils.enroll_in_course(course_name, program_name)
|
||||||
progress = get_course_progress(course_enrollment)
|
progress = get_course_progress(course_enrollment)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user