Blame view
src/pages/Dashboard/CourseDetails.vue
6.42 KB
fe15ee8b4
|
1 2 |
<template> <div> |
6f7cf8cf5
|
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<!-- LOADER --> <div class="loader" v-if="showLoader"> <v-progress-circular indeterminate color="white"></v-progress-circular> </div> <!-- SNACKBAR --> <v-snackbar :timeout="timeout" :top="y === 'top'" :right="x === 'right'" :vertical="mode === 'vertical'" v-model="snackbar" :color="snackbarColor" > {{ text }} <v-spacer></v-spacer> <v-btn flat text @click="snackbar = false">X</v-btn> </v-snackbar> |
fe15ee8b4
|
21 |
<v-container class="pt-0"> |
f87ff3ba5
|
22 23 |
<v-layout row wrap class="mt-1"> <v-flex xs12 md8> |
fe15ee8b4
|
24 25 |
<div class="title side-bar-color font-weight-bold" |
0a5256600
|
26 |
>Welcome to the {{courseDetails[0].courseId.courseName}} Course for {{courseDetails[0].classId.classNum}} class</div> |
fe15ee8b4
|
27 28 29 30 31 |
<v-flex xs12 class="subheading mt-2"> Lorem Ipsum sdjjkhsdf sdklfjs dkfjskdjfk fjsdklf sdjfksljf sdfkls fljlkj kl jkhjkfhjksd sdfjkhsdjk fsdjkl sfkljkl ldkfjkl kjlfs dlkjlskd fljsldk fklj lksjdfljklsdj flkjs dflkjsd flkjsd lfkjsd lfjsdjf lkj kl </v-flex> |
47a8dcd38
|
32 |
|
fe15ee8b4
|
33 |
<div class="mt-5"> |
e91641fe5
|
34 |
<v-btn |
0a5256600
|
35 |
@click="$router.push({name: 'Announcement', query:{courseId: $route.query.courseId}})" |
e91641fe5
|
36 37 |
flat class="grey--text lighten-1" |
0a5256600
|
38 |
> |
e91641fe5
|
39 40 41 |
<v-icon>volume_up</v-icon> <span>Announcement</span> </v-btn> |
fe15ee8b4
|
42 43 |
</div> <div> |
e91641fe5
|
44 |
<v-btn |
6f7cf8cf5
|
45 |
@click="$router.push({name: 'Course Discussion Forum', query:{courseId: $route.query.courseId}})" |
fe15ee8b4
|
46 |
class="grey--text lighten-1" |
e91641fe5
|
47 |
flat |
fe15ee8b4
|
48 |
> |
e91641fe5
|
49 |
<v-icon>forum</v-icon> |
47a8dcd38
|
50 |
<span class="ml-2">Course discussion forum</span> |
e91641fe5
|
51 |
</v-btn> |
fe15ee8b4
|
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
</div> <!-- CHAPTERS --> <v-layout column class="mt-5"> <v-flex v-for="(chapter,index) in courseDetails[0].chapters" :key="index" style="cursor: pointer;" @click="routeToChapterInfo(chapter._id)" > <v-card class="mt-2 elevation-0 card-border"> <v-container class="pt-0"> <div class="title side-bar-color font-weight-bold">{{chapter.chapterName}}</div> <div class="grey--text lighten-1 subheading">{{chapter.description}}</div> <div v-for="(point,index) in chapter.chapterPoints" :key="index" class="ml-2 mt-2" > <span class="grey--text lighten-1 subheading">{{index +1}}. {{point}}</span> </div> </v-container> </v-card> </v-flex> </v-layout> </v-flex> <v-spacer></v-spacer> |
ac24ec07a
|
78 |
|
fe15ee8b4
|
79 |
<!-- COURSES --> |
f87ff3ba5
|
80 |
<v-flex xs12 md3> |
fe15ee8b4
|
81 82 83 84 85 |
<v-card class="elevation-0 card-border" height="100%"> <v-container class="pt-0"> <div class="side-bar-color font-weight-bold title">Courses</div> <div v-for="(course,index) in courseData"> |
6f7cf8cf5
|
86 87 88 89 90 91 92 93 94 |
<v-btn flat class="subheading text-xs-start justify-left" style="cursor: pointer;" block @click="routeToCourseDetails(course._id)" > <div style="width: 100%;text-align: left;"> <v-icon style="color: red;padding-bottom: 3px;" size="15">play_arrow</v-icon> |
0a5256600
|
95 |
{{course.courseName}} |
6f7cf8cf5
|
96 97 |
</div> </v-btn> |
fe15ee8b4
|
98 99 100 101 |
</div> <!-- <v-expansion-panel focusable class="elevation-0"> <v-expansion-panel-content v-for="(item,i) in courseData" :key="i"> <template v-slot:header> |
0a5256600
|
102 |
<div class="subheading">{{item.courseName}}</div> |
fe15ee8b4
|
103 104 105 106 107 108 109 110 |
</template> </v-expansion-panel-content> </v-expansion-panel>--> </v-container> </v-card> </v-flex> </v-layout> </v-container> |
fe15ee8b4
|
111 112 113 |
</div> </template> <script> |
6f7cf8cf5
|
114 |
import AllApiCalls from "@/Services/AllApiCalls.js"; |
fe15ee8b4
|
115 116 117 |
import http from "@/Services/http.js"; import moment from "moment"; export default { |
6f7cf8cf5
|
118 |
mixins: [AllApiCalls], |
fe15ee8b4
|
119 120 121 122 123 |
data() { return { showLoader: false, courseDetails: [{ courseId: {}, classId: {} }], chapterIds: [], |
6f7cf8cf5
|
124 |
// courseData: [], |
fe15ee8b4
|
125 126 127 128 |
courseDataTree: [] }; }, methods: { |
e91641fe5
|
129 |
routeToChapterInfo(selectedChapterId) { |
fe15ee8b4
|
130 131 132 133 134 135 136 |
/* set value of present chapter selected, and other chapters ids in the obj */ let obj = {}; for (var i = 0; i < this.courseDetails[0].chapters.length; i++) { obj[ this.courseDetails[0].chapters[i].chapterName ] = this.courseDetails[0].chapters[i]._id; } |
e91641fe5
|
137 |
obj.selectedChapterId = selectedChapterId; |
fe15ee8b4
|
138 |
obj.courseDetailId = this.courseDetails[0]._id; |
e91641fe5
|
139 |
obj.courseId = this.$route.query.courseId; |
fe15ee8b4
|
140 141 142 143 |
this.$router.push({ name: "Chapter Info", query: obj }); |
6f7cf8cf5
|
144 145 146 147 148 149 150 |
}, async routeToCourseDetails(courseId) { /* getParticularCourseDetail- To get courseDetail - defined in GetApis.js*/ let response = await this.getParticularCourseDetail(courseId); /* If the response is null then dont route */ if (response.data.data.length > 0) { |
0b7006a1c
|
151 152 153 154 |
// REQUIRED TO WAIT FOR UPDATE CYCLE this.$nextTick(() => { // this.filters.locEmitted = "emitted"; this.$router.push({ query: { courseId: courseId } }); |
6f7cf8cf5
|
155 156 157 158 |
}); } else { this.seeSnackbar("No Data Available", "warning"); } |
fe15ee8b4
|
159 160 |
} }, |
6f7cf8cf5
|
161 |
async created() { |
0b7006a1c
|
162 |
console.log("its working"); |
6f7cf8cf5
|
163 164 165 166 167 |
/* getParticularCourseDetail- To get courseDetail - defined in GetApis.js*/ let response = await this.getParticularCourseDetail( this.$route.query.courseId ); this.courseDetails = response.data.data; |
0b7006a1c
|
168 |
console.log("its working courseDetails - ", this.courseDetails); |
fe15ee8b4
|
169 |
|
6f7cf8cf5
|
170 171 172 173 174 |
/* getStudentCourses - to get courseData - defined in GetApis.js*/ await this.getStudentCourses({ classId: localStorage.getItem("parentClassId"), studentId: localStorage.getItem("parentStudentId") }); |
fe15ee8b4
|
175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 |
} }; </script> <style scoped> .side-bar-color { color: #827bfa !important; /* border-top-right-radius: 74px !important; */ } .card-border { border: 1px #bdbdbd solid; border-radius: 3px; } /* .v-treeview-node__toggle { color: red !important; } */ </style> |