|
@@ -250,10 +250,22 @@
|
|
}"
|
|
}"
|
|
>
|
|
>
|
|
<div
|
|
<div
|
|
- v-if="isEditable()"
|
|
|
|
class="song-actions"
|
|
class="song-actions"
|
|
slot="actions"
|
|
slot="actions"
|
|
>
|
|
>
|
|
|
|
+ <i
|
|
|
|
+ class="material-icons add-to-queue-icon"
|
|
|
|
+ v-if="
|
|
|
|
+ station.partyMode &&
|
|
|
|
+ !station.locked
|
|
|
|
+ "
|
|
|
|
+ @click="
|
|
|
|
+ addSongToQueue(song.songId)
|
|
|
|
+ "
|
|
|
|
+ content="Add Song to Queue"
|
|
|
|
+ v-tippy
|
|
|
|
+ >queue</i
|
|
|
|
+ >
|
|
<i
|
|
<i
|
|
v-if="
|
|
v-if="
|
|
userId ===
|
|
userId ===
|
|
@@ -272,7 +284,7 @@
|
|
>
|
|
>
|
|
<i
|
|
<i
|
|
class="material-icons"
|
|
class="material-icons"
|
|
- v-if="index > 0"
|
|
|
|
|
|
+ v-if="isEditable() && index > 0"
|
|
@click="moveSongToTop(index)"
|
|
@click="moveSongToTop(index)"
|
|
content="Move to top of Playlist"
|
|
content="Move to top of Playlist"
|
|
v-tippy
|
|
v-tippy
|
|
@@ -280,9 +292,10 @@
|
|
>
|
|
>
|
|
<i
|
|
<i
|
|
v-if="
|
|
v-if="
|
|
- playlist.songs.length -
|
|
|
|
- 1 !==
|
|
|
|
- index
|
|
|
|
|
|
+ isEditable() &&
|
|
|
|
+ playlist.songs.length -
|
|
|
|
+ 1 !==
|
|
|
|
+ index
|
|
"
|
|
"
|
|
@click="moveSongToBottom(index)"
|
|
@click="moveSongToBottom(index)"
|
|
class="material-icons"
|
|
class="material-icons"
|
|
@@ -366,6 +379,9 @@ export default {
|
|
};
|
|
};
|
|
},
|
|
},
|
|
computed: {
|
|
computed: {
|
|
|
|
+ ...mapState("station", {
|
|
|
|
+ station: state => state.station
|
|
|
|
+ }),
|
|
...mapState("user/playlists", {
|
|
...mapState("user/playlists", {
|
|
editing: state => state.editing
|
|
editing: state => state.editing
|
|
}),
|
|
}),
|
|
@@ -689,6 +705,26 @@ export default {
|
|
);
|
|
);
|
|
}
|
|
}
|
|
},
|
|
},
|
|
|
|
+ addSongToQueue(songId) {
|
|
|
|
+ this.socket.dispatch(
|
|
|
|
+ "stations.addToQueue",
|
|
|
|
+ this.station._id,
|
|
|
|
+ songId,
|
|
|
|
+ data => {
|
|
|
|
+ if (data.status !== "success")
|
|
|
|
+ new Toast({
|
|
|
|
+ content: `Error: ${data.message}`,
|
|
|
|
+ timeout: 8000
|
|
|
|
+ });
|
|
|
|
+ else {
|
|
|
|
+ new Toast({
|
|
|
|
+ content: `${data.message}`,
|
|
|
|
+ timeout: 4000
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ );
|
|
|
|
+ },
|
|
...mapActions("modalVisibility", ["openModal", "closeModal"])
|
|
...mapActions("modalVisibility", ["openModal", "closeModal"])
|
|
}
|
|
}
|
|
};
|
|
};
|