More Bug fixes UI and Permissions
diff --git a/erpnext/public/js/education/web-academy.js b/erpnext/public/js/education/web-academy.js
index e6b48ec..8088a50 100644
--- a/erpnext/public/js/education/web-academy.js
+++ b/erpnext/public/js/education/web-academy.js
@@ -48,8 +48,10 @@
email: frappe.session.user
}
}).then( r => {
- for(var ii=0; ii < r.message.length; ii++){
- this.enrolledPrograms.add(r.message[ii])
+ if(r.message){
+ for(var ii=0; ii < r.message.length; ii++){
+ this.enrolledPrograms.add(r.message[ii])
+ }
}
})
if (this.debug) console.log('Updated State', this.enrolledPrograms)
@@ -76,8 +78,10 @@
email: frappe.session.user
}
}).then( r => {
- for(var ii=0; ii < r.message.length; ii++){
- this.completedCourses.add(r.message[ii])
+ if(r.message){
+ for(var ii=0; ii < r.message.length; ii++){
+ this.completedCourses.add(r.message[ii])
+ }
}
})
if (this.debug) console.log('Updated State', this.completedCourses)
diff --git a/erpnext/public/js/education/web-academy/components/AcademyProgramCard.vue b/erpnext/public/js/education/web-academy/components/AcademyProgramCard.vue
index 6ddf152..605dec2 100644
--- a/erpnext/public/js/education/web-academy/components/AcademyProgramCard.vue
+++ b/erpnext/public/js/education/web-academy/components/AcademyProgramCard.vue
@@ -10,8 +10,7 @@
</div>
<div class='card-footer text-right'>
<!-- <a class='video-btn btn btn-secondary btn-sm' data-toggle="modal" data-src=" insert jinja stuff here " data-target="#myModal">Watch Intro</a> -->
- <a v-if="this.$root.$data.checkProgramEnrollment(program.name)" class='btn btn-secondary btn-sm' @click="$router.push('/Program/' + program.name)">Start Course</a>
- <a v-else-if="this.$root.$data.isLogin" class='btn btn-secondary btn-sm' @click="enroll()">Enroll Now</a>
+ <a v-if="this.$root.$data.isLogin" class='btn btn-secondary btn-sm' @click="primaryAction()">{{ buttonName }}</a>
<a v-else class='btn btn-secondary btn-sm' href="/login#signup">Sign Up</a>
</div>
</div>
@@ -37,6 +36,16 @@
})
},
methods: {
+ primaryAction(){
+ if(this.$root.$data.isLogin){
+ if(this.$root.$data.checkProgramEnrollment(program_code)){
+ this.$router.push('/Program/' + program.name)
+ }
+ else {
+ this.enroll()
+ }
+ }
+ }
enroll() {
frappe.call({
method: "erpnext.www.academy.enroll_in_program",
@@ -45,6 +54,20 @@
student_email_id: frappe.session.user
}
})
+ this.$root.$data.enrolledPrograms.add(this.program_code)
+ this.$root.$data.updateEnrolledPrograms()
+ }
+ }
+ computed: {
+ buttonName() {
+ if(this.$root.$data.isLogin){
+ if(this.$root.$data.checkProgramEnrollment(program_code)){
+ return "Start Course"
+ }
+ else {
+ return "Enroll"
+ }
+ }
}
}
};