Added track listing
This commit is contained in:
parent
31f8cffec1
commit
6a63392b09
@ -37,7 +37,11 @@ export default {
|
|||||||
this.$api.getMyInfo().then(({name}) => {
|
this.$api.getMyInfo().then(({name}) => {
|
||||||
|
|
||||||
this.$store.dispatch('storeUserData', name).then(() => {
|
this.$store.dispatch('storeUserData', name).then(() => {
|
||||||
this.$router.push({name: "Collections"}).catch(() => {});
|
if (this.$route.path === '/login') {
|
||||||
|
// TODO: ez igy nagyon gagyi solution
|
||||||
|
this.$router.push({name: "Collections"}).catch(() => {
|
||||||
|
});
|
||||||
|
}
|
||||||
this.$store.dispatch('setAppReady');
|
this.$store.dispatch('setAppReady');
|
||||||
|
|
||||||
});
|
});
|
||||||
|
BIN
src/assets/music_placeholder.png
Normal file
BIN
src/assets/music_placeholder.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 10 KiB |
@ -18,7 +18,7 @@ export default {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
performClick() {
|
performClick() {
|
||||||
this.$emit('clicked');
|
this.$emit('click');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -74,6 +74,11 @@ const router = new VueRouter({
|
|||||||
|
|
||||||
router.beforeEach((to, from, next) => {
|
router.beforeEach((to, from, next) => {
|
||||||
|
|
||||||
|
if (!store.state.appReady) {
|
||||||
|
next();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const authorized = store.getters.isLoggedIn;
|
const authorized = store.getters.isLoggedIn;
|
||||||
|
|
||||||
const visitAllowed = to.matched.some(record => record.meta.allowVisit(authorized))
|
const visitAllowed = to.matched.some(record => record.meta.allowVisit(authorized))
|
||||||
|
@ -1,10 +1,77 @@
|
|||||||
<template>
|
<template>
|
||||||
<div></div>
|
<b-container>
|
||||||
|
<b-row>
|
||||||
|
<b-col>
|
||||||
|
<h1>Collection: {{ collectionName }}</h1>
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
<big-chungus-loader text="Fetching track list..." v-if="processing"/>
|
||||||
|
<b-row v-else>
|
||||||
|
<b-col class="my-4">
|
||||||
|
|
||||||
|
<b-table :items="tracklist" :fields="fields" hover borderless>
|
||||||
|
<template #cell(cover_url)="data">
|
||||||
|
<b-img-lazy :src="data.cover_url" height="45px" blank-src="@/assets/music_placeholder.png"
|
||||||
|
v-if="!!data.cover_url"/>
|
||||||
|
<b-img src="@/assets/music_placeholder.png" height="45px" v-else/>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template #cell(id)="data">
|
||||||
|
<div class="text-right">
|
||||||
|
<b-button :asd="data">Open</b-button>
|
||||||
|
<b-button variant="success" :disabled="!data.spotify_id">Play</b-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</b-table>
|
||||||
|
|
||||||
|
</b-col>
|
||||||
|
</b-row>
|
||||||
|
</b-container>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import BigChungusLoader from "@/components/BigChungusLoader";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "Collection"
|
name: "Collection",
|
||||||
|
components: {
|
||||||
|
BigChungusLoader
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
processing: true,
|
||||||
|
collectionName: "",
|
||||||
|
totalTracks: 0,
|
||||||
|
fields: [
|
||||||
|
{
|
||||||
|
key: "cover_url",
|
||||||
|
label: "Cover"
|
||||||
|
},
|
||||||
|
"artist",
|
||||||
|
"album",
|
||||||
|
"title",
|
||||||
|
{
|
||||||
|
key: "id",
|
||||||
|
label: ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
tracklist: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.$api.getList(this.$route.params.id).then((data) => {
|
||||||
|
if (data) {
|
||||||
|
this.tracklist = data.itemlist;
|
||||||
|
this.collectionName = data.name;
|
||||||
|
this.totalTracks = data.element_count;
|
||||||
|
this.processing = false;
|
||||||
|
} else {
|
||||||
|
this.$showToast("Invalid response from server");
|
||||||
|
}
|
||||||
|
}).catch(({text}) => {
|
||||||
|
this.$showToast(text);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ export default {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
openCollection(id) {
|
openCollection(id) {
|
||||||
console.log(id);
|
this.$router.push({name: "Collection", params: {id}})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
Loading…
Reference in New Issue
Block a user