Blame view

src/pages/Dashboard/CourseDetails.vue 6.21 KB
fe15ee8b4   Amber Dev   added course chap...
1
2
  <template>
    <div>
6f7cf8cf5   Amber Dev   added discussion ...
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   Amber Dev   added course chap...
21
      <v-container class="pt-0">
6f7cf8cf5   Amber Dev   added discussion ...
22
        <v-layout row class="mt-1">
fe15ee8b4   Amber Dev   added course chap...
23
24
25
          <v-flex xs8>
            <div
              class="title side-bar-color font-weight-bold"
0a5256600   Amber Dev   added events
26
            >Welcome to the {{courseDetails[0].courseId.courseName}} Course for {{courseDetails[0].classId.classNum}} class</div>
fe15ee8b4   Amber Dev   added course chap...
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   Amber Dev   minor
32

fe15ee8b4   Amber Dev   added course chap...
33
            <div class="mt-5">
0a5256600   Amber Dev   added events
34
              <span
3f7b85167   Amber Dev   added announcements
35
                style="cursor: pointer;"
0a5256600   Amber Dev   added events
36
37
38
                class="grey--text lighten-1"
                @click="$router.push({name: 'Announcement', query:{courseId: $route.query.courseId}})"
              >
47a8dcd38   Amber Dev   minor
39
40
41
                <v-icon>question_answer</v-icon>
                <span class="ml-2">Announcement</span>
              </span>
fe15ee8b4   Amber Dev   added course chap...
42
43
44
45
            </div>
            <div>
              <span
                style="cursor: pointer;"
6f7cf8cf5   Amber Dev   added discussion ...
46
                @click="$router.push({name: 'Course Discussion Forum', query:{courseId: $route.query.courseId}})"
fe15ee8b4   Amber Dev   added course chap...
47
48
                class="grey--text lighten-1"
              >
47a8dcd38   Amber Dev   minor
49
50
                <v-icon>question_answer</v-icon>
                <span class="ml-2">Course discussion forum</span>
fe15ee8b4   Amber Dev   added course chap...
51
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
78
79
80
81
82
83
84
              </span>
            </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>
          <!-- COURSES -->
          <v-flex xs3>
            <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   Amber Dev   added discussion ...
85
86
87
88
89
90
91
92
93
                  <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   Amber Dev   added events
94
                      {{course.courseName}}
6f7cf8cf5   Amber Dev   added discussion ...
95
96
                    </div>
                  </v-btn>
fe15ee8b4   Amber Dev   added course chap...
97
98
99
100
                </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   Amber Dev   added events
101
                      <div class="subheading">{{item.courseName}}</div>
fe15ee8b4   Amber Dev   added course chap...
102
103
104
105
106
107
108
109
                    </template>
                  </v-expansion-panel-content>
                </v-expansion-panel>-->
              </v-container>
            </v-card>
          </v-flex>
        </v-layout>
      </v-container>
fe15ee8b4   Amber Dev   added course chap...
110
111
112
    </div>
  </template>
  <script>
6f7cf8cf5   Amber Dev   added discussion ...
113
  import AllApiCalls from "@/Services/AllApiCalls.js";
fe15ee8b4   Amber Dev   added course chap...
114
115
116
  import http from "@/Services/http.js";
  import moment from "moment";
  export default {
6f7cf8cf5   Amber Dev   added discussion ...
117
    mixins: [AllApiCalls],
fe15ee8b4   Amber Dev   added course chap...
118
119
120
121
122
    data() {
      return {
        showLoader: false,
        courseDetails: [{ courseId: {}, classId: {} }],
        chapterIds: [],
6f7cf8cf5   Amber Dev   added discussion ...
123
        // courseData: [],
fe15ee8b4   Amber Dev   added course chap...
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
        courseDataTree: []
      };
    },
    methods: {
      routeToChapterInfo(chapterId) {
        /* 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;
        }
        obj.chapterId = chapterId;
        obj.courseDetailId = this.courseDetails[0]._id;
        this.$router.push({
          name: "Chapter Info",
          query: obj
        });
6f7cf8cf5   Amber Dev   added discussion ...
142
143
144
145
146
147
148
149
150
151
152
153
154
155
      },
      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) {
          this.$router.push({
            name: "Course Details",
            query: { courseId: courseId }
          });
        } else {
          this.seeSnackbar("No Data Available", "warning");
        }
fe15ee8b4   Amber Dev   added course chap...
156
157
      }
    },
6f7cf8cf5   Amber Dev   added discussion ...
158
159
160
161
162
163
    async created() {
      /* getParticularCourseDetail- To get courseDetail - defined in GetApis.js*/
      let response = await this.getParticularCourseDetail(
        this.$route.query.courseId
      );
      this.courseDetails = response.data.data;
fe15ee8b4   Amber Dev   added course chap...
164

6f7cf8cf5   Amber Dev   added discussion ...
165
166
167
168
169
      /* getStudentCourses - to get courseData - defined in GetApis.js*/
      await this.getStudentCourses({
        classId: localStorage.getItem("parentClassId"),
        studentId: localStorage.getItem("parentStudentId")
      });
fe15ee8b4   Amber Dev   added course chap...
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
    }
  };
  </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>