Compare commits
8 Commits
mongodb-6
...
023649e647
| Author | SHA1 | Date | |
|---|---|---|---|
| 023649e647 | |||
|
|
761001d686 | ||
|
|
c2659f4c85 | ||
|
|
426a024564 | ||
| 6ce9df7fd8 | |||
| 4dd3f939b8 | |||
|
|
2b79f47d57 | ||
| ff7bb569fc |
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"backend_dev": "http://localhost:31204",
|
||||
"backend_de": "https://webplay.rocks",
|
||||
"backend_de": "http://localhost:31204",
|
||||
"backend_dev": "https://webplay.rocks",
|
||||
"backend": "https://webplay.rocks"
|
||||
}
|
||||
@@ -85,23 +85,10 @@ td.fillCell>* {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.favourite {
|
||||
z-index: 1;
|
||||
position: absolute;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.favourite.active {
|
||||
color: var(--yellow);
|
||||
}
|
||||
|
||||
.keepPlaying {
|
||||
z-index: 1;
|
||||
position: absolute;
|
||||
cursor: pointer;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
DIALOGS
|
||||
|
||||
@@ -1741,6 +1741,10 @@ td.strech {
|
||||
box-shadow: 0 1px 4px var(--glow);
|
||||
}
|
||||
|
||||
.glow-text {
|
||||
text-shadow: 0 1px 4px var(--glow);
|
||||
}
|
||||
|
||||
.nowrap {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
@@ -146,8 +146,6 @@ export default {
|
||||
this.audio.pause();
|
||||
this.audio.src = url;
|
||||
|
||||
this.pushHistoryItem();
|
||||
|
||||
if (this.currentTrackParent.progress) {
|
||||
if (this.currentTrackParent.progress.id == this.selectedTrack._id) {
|
||||
this.skipToSecond(this.currentTrackParent.progress.progress);
|
||||
@@ -297,6 +295,7 @@ export default {
|
||||
track: this.selectedTrack,
|
||||
rate: this.audioBpm,
|
||||
});
|
||||
this.pushHistoryItem();
|
||||
}
|
||||
},
|
||||
},
|
||||
|
||||
@@ -1,35 +1,37 @@
|
||||
<template>
|
||||
<DialogBase ref="dialogWindow" id="dialogWindow" :title="selectedArtist.name" @canceled="closed" :showFooter="false" :showFullscreenButton="true" :disableXscroll="true" :disableYscroll="true">
|
||||
<DialogBase ref="dialogWindow" id="dialogWindow" :title="selectedArtist.name" @canceled="closed" :showFooter="false" :showHeader="false" :showFullscreenButton="true" :disableXscroll="true" :disableYscroll="true">
|
||||
<div id="artistViewer">
|
||||
<div id="header" class="flex-column">
|
||||
<div id="background" :style="coverBackground" />
|
||||
<awesome-icon icon="star" size="2x" class="favourite ma4" :class="{ active: isFavourite }" @click="toggleFavourite" />
|
||||
<awesome-icon icon="play" size="2x" class="keepPlaying ma4 primary-text" @click="playProgress" v-if="selectedArtist.progress" title="Keep playing" />
|
||||
<h1 @dblclick="dblclick">
|
||||
{{ selectedArtist.name }}
|
||||
</h1>
|
||||
<span id="stats" class="ma-bottom">
|
||||
<b>{{ artist_tracks.length }}</b> Tracks in
|
||||
<b>{{ artist_albums.length }}</b> Albums with a duration of
|
||||
<b>{{ artist_duration }}</b>
|
||||
</span>
|
||||
<div id="albumList" class="flex-row showOnMobilePortrait">
|
||||
<AlbumItem class="ma" :class="{ playing: playingAlbumId == album._id }" v-for="album in selectedArtist.albums" :key="album._id" :item="album" @click="scrollToAlbum(album)" @dblclick="playAlbum(album)" />
|
||||
</div>
|
||||
<div id="navigation" class="flex-row center ma-top">
|
||||
<div class="flex-row grow"></div>
|
||||
<div class="flex-row">
|
||||
<button @click="gotoPrevArtist" class="primary ma4" :title="prevArtist.name" :disabled="!prevArtist._id">
|
||||
<awesome-icon icon="angle-left" class="ma4" />
|
||||
<div id="title" class="flex-column ma-left ma-right pa-bottom">
|
||||
<h1>
|
||||
{{ selectedArtist.name }}
|
||||
</h1>
|
||||
<span id="stats" class="ma-bottom">
|
||||
<b>{{ artist_tracks.length }}</b> Tracks in
|
||||
<b>{{ artist_albums.length }}</b> Albums with a duration of
|
||||
<b>{{ artist_duration }}</b>
|
||||
</span>
|
||||
<div class="flex-row ma-top ma-bottom">
|
||||
<button class="flat ma-right">
|
||||
<awesome-icon icon="star" size="2x" class="favourite" :class="{ active: isFavourite }" @click="toggleFavourite" />
|
||||
</button>
|
||||
<button @click="gotoNextArtist" class="primary ma4" :title="nextArtist.name" :disabled="!nextArtist._id">
|
||||
<awesome-icon icon="angle-right" class="ma4" />
|
||||
<button class="flat ma-right" v-if="selectedArtist.progress">
|
||||
<awesome-icon icon="play" size="2x" class="primary-text " @click="playProgress" title="Keep playing" />
|
||||
</button>
|
||||
</div>
|
||||
<div class="flex-row grow right center">
|
||||
<DropDown v-if="$store.getters['user/isAdministrator']" class="hideOnMobile">
|
||||
<button class="flat pa8-left pa8-right">
|
||||
<awesome-icon icon="ellipsis-v" />
|
||||
<button class="flat ma-right" v-else>
|
||||
<awesome-icon icon="play" size="2x" class="white-text" @click="playArtist" title="Keep playing" />
|
||||
</button>
|
||||
<button @click="gotoPrevArtist" class="flat ma-left ma-right" :title="prevArtist.name" :disabled="!prevArtist._id">
|
||||
<awesome-icon icon="angle-left" class="ma4 white-text" />
|
||||
</button>
|
||||
<button @click="gotoNextArtist" class="flat" :title="nextArtist.name" :disabled="!nextArtist._id">
|
||||
<awesome-icon icon="angle-right" class="ma4 white-text" />
|
||||
</button>
|
||||
|
||||
<DropDown v-if="$store.getters['user/isAdministrator']" class="ma-left hideOnMobile">
|
||||
<button class="flat pa-left pa-right">
|
||||
<awesome-icon icon="ellipsis-v" class="white-text"/>
|
||||
</button>
|
||||
<template v-slot:dropdown-content>
|
||||
<div>
|
||||
@@ -48,6 +50,9 @@
|
||||
</DropDown>
|
||||
</div>
|
||||
</div>
|
||||
<div id="albumList" class="flex-row showOnMobilePortrait">
|
||||
<AlbumItem class="ma" :class="{ playing: playingAlbumId == album._id }" v-for="album in selectedArtist.albums" :key="album._id" :item="album" @click="scrollToAlbum(album)" @dblclick="playAlbum(album)" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex-row overflow-y">
|
||||
<div id="albumList" class="flex-column hideOnMobilePortrait">
|
||||
@@ -77,7 +82,7 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
dblclick() {
|
||||
playArtist() {
|
||||
this.$store.commit("tracks/resetSelectedTrack");
|
||||
this.$store.commit("radios/resetSelectedRadio");
|
||||
this.$store.dispatch("tracks/playContainer", this.selectedArtist);
|
||||
@@ -262,7 +267,6 @@ export default {
|
||||
h1,
|
||||
#stats {
|
||||
z-index: 1;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
color: var(--white);
|
||||
text-shadow: 0 1px 2px black;
|
||||
@@ -280,6 +284,10 @@ h1,
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
#header #title {
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
#albumList {
|
||||
z-index: 1;
|
||||
overflow-y: auto;
|
||||
|
||||
@@ -3,19 +3,13 @@ import axios from 'axios'
|
||||
export default {
|
||||
checkIfInstanceIsNew(context) {
|
||||
return new Promise((resolve) => {
|
||||
axios
|
||||
.get(context.rootGetters.server + "/api/system/setup")
|
||||
.then((res) => {
|
||||
console.log(res.status);
|
||||
if (res.status == 200) {
|
||||
resolve(true);
|
||||
} else {
|
||||
resolve(false);
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(err);
|
||||
});
|
||||
axios.get(context.rootGetters.server + "/api/system/setup").then((res) => {
|
||||
if (res.status == 200) {
|
||||
resolve(true);
|
||||
} else {
|
||||
resolve(false);
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
loadClientConfigs(context) {
|
||||
|
||||
@@ -10,13 +10,11 @@ export default {
|
||||
load(context) {
|
||||
return new Promise((resolve, reject) => {
|
||||
axios.get(context.rootGetters.server + "/api/user/login", context.rootGetters.headers).then((res) => {
|
||||
console.log(res.data);
|
||||
context.commit("load", res.data);
|
||||
context.rootState["player"].shuffle = res.data.player.shuffle;
|
||||
context.rootState["player"].repeatType = res.data.player.repeat;
|
||||
resolve();
|
||||
}).catch(err => {
|
||||
console.log("error")
|
||||
context.commit("resetToken");
|
||||
reject(err);
|
||||
});
|
||||
|
||||
@@ -123,17 +123,13 @@ export default {
|
||||
checkTocken() {
|
||||
let token = localStorage.getItem("token");
|
||||
if (token) {
|
||||
console.log("hello token")
|
||||
this.$store.dispatch("user/setToken", token);
|
||||
console.log("hello token; user/load")
|
||||
this.$store
|
||||
.dispatch("user/load")
|
||||
.then(() => {
|
||||
console.log("user loaded")
|
||||
this.goto();
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("user not loaded")
|
||||
console.log(err);
|
||||
this.checkIfNewBackend();
|
||||
});
|
||||
@@ -161,7 +157,6 @@ export default {
|
||||
});
|
||||
},
|
||||
checkIfNewBackend() {
|
||||
console.log("check new instance")
|
||||
this.$store.dispatch("checkIfInstanceIsNew").then((res) => {
|
||||
if (res) {
|
||||
this.$router.replace("setup");
|
||||
|
||||
Reference in New Issue
Block a user