|
@@ -23,8 +23,7 @@
|
|
|
<i
|
|
|
v-if="
|
|
|
station.type === 'community' &&
|
|
|
- isNotSelected(playlist._id) &&
|
|
|
- !station.partyMode
|
|
|
+ isNotSelected(playlist._id)
|
|
|
"
|
|
|
@click="selectPlaylist(playlist._id)"
|
|
|
class="material-icons play-icon"
|
|
@@ -33,8 +32,7 @@
|
|
|
<i
|
|
|
v-if="
|
|
|
station.type === 'community' &&
|
|
|
- !isNotSelected(playlist._id) &&
|
|
|
- !station.partyMode
|
|
|
+ !isNotSelected(playlist._id)
|
|
|
"
|
|
|
@click="deselectPlaylist(playlist._id)"
|
|
|
class="material-icons stop-icon"
|
|
@@ -81,7 +79,9 @@ export default {
|
|
|
},
|
|
|
computed: {
|
|
|
...mapState({
|
|
|
- station: state => state.station.station
|
|
|
+ station: state => state.station.station,
|
|
|
+ privatePlaylistQueueSelected: state =>
|
|
|
+ state.station.privatePlaylistQueueSelected
|
|
|
}),
|
|
|
...mapGetters({
|
|
|
socket: "websockets/getSocket"
|
|
@@ -164,41 +164,77 @@ export default {
|
|
|
this.openModal({ sector: "station", modal: "editPlaylist" });
|
|
|
},
|
|
|
selectPlaylist(id) {
|
|
|
- this.socket.dispatch(
|
|
|
- "stations.selectPrivatePlaylist",
|
|
|
- this.station._id,
|
|
|
- id,
|
|
|
- res => {
|
|
|
- if (res.status === "failure")
|
|
|
- return new Toast({
|
|
|
- content: res.message,
|
|
|
- timeout: 8000
|
|
|
- });
|
|
|
- this.station.includedPlaylists.push(id);
|
|
|
- return new Toast({ content: res.message, timeout: 4000 });
|
|
|
+ if (this.station.type === "community" && this.station.partyMode) {
|
|
|
+ if (this.isNotSelected(id)) {
|
|
|
+ this.updatePrivatePlaylistQueueSelected(id);
|
|
|
+ this.$parent.$parent.addFirstPrivatePlaylistSongToQueue();
|
|
|
+ new Toast({
|
|
|
+ content:
|
|
|
+ "Successfully selected playlist to auto request songs.",
|
|
|
+ timeout: 4000
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ new Toast({
|
|
|
+ content: "Error: Playlist already selected.",
|
|
|
+ timeout: 4000
|
|
|
+ });
|
|
|
}
|
|
|
- );
|
|
|
+ } else {
|
|
|
+ this.socket.dispatch(
|
|
|
+ "stations.selectPrivatePlaylist",
|
|
|
+ this.station._id,
|
|
|
+ id,
|
|
|
+ res => {
|
|
|
+ if (res.status === "failure") {
|
|
|
+ new Toast({
|
|
|
+ content: res.message,
|
|
|
+ timeout: 8000
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ this.station.includedPlaylists.push(id);
|
|
|
+ new Toast({
|
|
|
+ content: res.message,
|
|
|
+ timeout: 4000
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ );
|
|
|
+ }
|
|
|
},
|
|
|
deselectPlaylist(id) {
|
|
|
- this.socket.dispatch(
|
|
|
- "stations.deselectPrivatePlaylist",
|
|
|
- this.station._id,
|
|
|
- id,
|
|
|
- res => {
|
|
|
- if (res.status === "failure")
|
|
|
- return new Toast({
|
|
|
+ if (this.station.type === "community" && this.station.partyMode) {
|
|
|
+ this.updatePrivatePlaylistQueueSelected(null);
|
|
|
+ new Toast({
|
|
|
+ content: "Successfully deselected playlist.",
|
|
|
+ timeout: 4000
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ this.socket.dispatch(
|
|
|
+ "stations.deselectPrivatePlaylist",
|
|
|
+ this.station._id,
|
|
|
+ id,
|
|
|
+ res => {
|
|
|
+ if (res.status === "failure")
|
|
|
+ new Toast({
|
|
|
+ content: res.message,
|
|
|
+ timeout: 8000
|
|
|
+ });
|
|
|
+ this.station.includedPlaylists.splice(
|
|
|
+ this.station.includedPlaylists.indexOf(id),
|
|
|
+ 1
|
|
|
+ );
|
|
|
+ new Toast({
|
|
|
content: res.message,
|
|
|
- timeout: 8000
|
|
|
+ timeout: 4000
|
|
|
});
|
|
|
- this.station.includedPlaylists.splice(
|
|
|
- this.station.includedPlaylists.indexOf(id),
|
|
|
- 1
|
|
|
- );
|
|
|
- return new Toast({ content: res.message, timeout: 4000 });
|
|
|
- }
|
|
|
- );
|
|
|
+ }
|
|
|
+ );
|
|
|
+ }
|
|
|
},
|
|
|
isNotSelected(id) {
|
|
|
+ if (this.station.type === "community" && this.station.partyMode) {
|
|
|
+ return this.privatePlaylistQueueSelected !== id;
|
|
|
+ }
|
|
|
// TODO Also change this once it changes for a station
|
|
|
if (
|
|
|
this.station &&
|
|
@@ -207,6 +243,7 @@ export default {
|
|
|
return false;
|
|
|
return true;
|
|
|
},
|
|
|
+ ...mapActions("station", ["updatePrivatePlaylistQueueSelected"]),
|
|
|
...mapActions("modalVisibility", ["openModal"]),
|
|
|
...mapActions("user/playlists", ["editPlaylist"])
|
|
|
}
|