Sessions: Fix /sessions url using the sessions_rel_users.json

pull/3844/head
Julio Montoya 5 years ago
parent dee91beb7b
commit b56fa53205
  1. 5
      assets/vue/views/user/courses/CourseCard.vue
  2. 8
      assets/vue/views/user/sessions/List.vue
  3. 70
      assets/vue/views/user/sessions/SessionCard.vue
  4. 87
      assets/vue/views/user/sessions/SessionCardList.vue

@ -1,13 +1,14 @@
<template> <template>
<b-row no-gutters> <b-row no-gutters>
<b-col md="4"> <b-col md="2">
<b-card-img <b-card-img
src="/img/icons/64/course.png" src="/img/icons/64/course.png"
alt="Image" alt="Image"
img-left
class="rounded-0" class="rounded-0"
/> />
</b-col> </b-col>
<b-col md="8"> <b-col md="10">
<b-card-body :title="course.title"> <b-card-body :title="course.title">
<!-- <b-card-text>--> <!-- <b-card-text>-->
<!-- Course description--> <!-- Course description-->

@ -1,12 +1,12 @@
<template> <template>
<div class="course-list"> <div class="course-list">
{{ status }} {{ status }}
<SessionCard :sessions="sessions"></SessionCard> <SessionCardList :sessions="sessions"></SessionCardList>
</div> </div>
</template> </template>
<script> <script>
import SessionCard from './SessionCard'; import SessionCardList from './SessionCardList';
import ListMixin from '../../../mixins/ListMixin'; import ListMixin from '../../../mixins/ListMixin';
import { ENTRYPOINT } from '../../../config/entrypoint'; import { ENTRYPOINT } from '../../../config/entrypoint';
import axios from "axios"; import axios from "axios";
@ -16,7 +16,7 @@ export default {
servicePrefix: 'Course', servicePrefix: 'Course',
mixins: [ListMixin], mixins: [ListMixin],
components: { components: {
SessionCard SessionCardList
}, },
data() { data() {
return { return {
@ -32,7 +32,7 @@ export default {
this.status = 'Loading'; this.status = 'Loading';
let user = this.$store.getters['security/getUser']; let user = this.$store.getters['security/getUser'];
if (user) { if (user) {
axios.get(ENTRYPOINT + 'users/' + user.id + '/session_course_subscriptions.json').then(response => { axios.get(ENTRYPOINT + 'users/' + user.id + '/sessions_rel_users.json').then(response => {
this.status = ''; this.status = '';
if (Array.isArray(response.data)) { if (Array.isArray(response.data)) {
this.sessions = response.data; this.sessions = response.data;

@ -1,46 +1,50 @@
<template> <template>
<v-container grid-list-xl fluid> <b-row no-gutters>
<v-layout row wrap> <b-col md="2">
<v-row dense> <b-card-img
<v-col src="/img/icons/64/session.png"
v-for="card in sessions" alt="Image"
:key="card.course.title" class="mb-3"
:cols="12" img-left
/>
</b-col>
<b-col md="10">
<b-card-body :title="sessionRelUser.session.name">
<b-card
v-for="course in sessionRelUser.courses"
:key="course.id"
no-body
class="overflow-hidden"
style="max-width: 540px;"
> >
<v-card> <b-card-body :title="course.course.title">
<div class="d-flex flex-no-wrap"> <!-- <b-card-text>-->
<v-avatar <!-- Course description-->
class="ma-3" <!-- </b-card-text>-->
tile <b-button
> :href=" '/course/' + course.course.id + '/home' + '?sid=' + sessionRelUser.session.id"
<v-img src="/img/icons/48/blackboard_blue.png"></v-img> variant="primary"
</v-avatar>
<div >
<v-card-title v-text="card.course.title">
</v-card-title>
</div>
</div>
<v-card-actions>
<v-btn
:href=" '/course/' + card.course.id + '/home'"
text
color="deep-purple accent-4"
> >
Go Go
</v-btn> </b-button>
</v-card-actions> </b-card-body>
</v-card> </b-card>
</v-col> </b-card-body>
</v-row> </b-col>
</v-layout> </b-row>
</v-container>
</template> </template>
<script> <script>
export default { export default {
name: 'SessionCard', name: 'SessionCard',
props: { props: {
sessions: Array sessionRelUser: Object,
},
data() {
return {
};
}, },
methods: {
}
}; };
</script> </script>

@ -0,0 +1,87 @@
<template>
<span>
<b-button-group>
<b-button
rounded
:variant="isList()"
@click="changeLayout"
>
<font-awesome-icon icon="bars" />
</b-button>
<b-button
:variant="isDeck()"
rounded
@click="changeLayout"
>
<font-awesome-icon icon="th-large" />
</b-button>
</b-button-group>
<b-card-group
v-if="deck"
columns
>
<b-card
v-for="card in sessions"
:key="card.session.id"
no-body
class="overflow-hidden"
style="max-width: 540px;"
>
<SessionCard
:session="card"
/>
</b-card>
</b-card-group>
<span v-else>
<b-card
v-for="card in sessions"
:key="card.session.id"
no-body
class="overflow-hidden"
style="max-width: 540px;"
>
<SessionCard
:sessionRelUser="card"
/>
</b-card>
<span />
</span>
</span>
</template>
<script>
import SessionCard from './SessionCard';
export default {
name: 'SessionCardList',
components: {
SessionCard
},
props: {
sessions: Array,
},
data() {
return {
deck: false
};
},
methods: {
isList: function (){
if (!this.deck) {
return 'primary';
}
return 'secondary';
},
isDeck: function (){
if (this.deck) {
return 'primary';
}
return 'secondary';
},
changeLayout: function () {
this.deck = !this.deck;
},
}
};
</script>
Loading…
Cancel
Save