From 2e3a2cd6dd0c25f0b069f9b4b64d212203cb24f1 Mon Sep 17 00:00:00 2001 From: Eliot Berriot <contact@eliotberriot.com> Date: Sat, 23 Jun 2018 07:25:27 +0200 Subject: [PATCH] See #327: Cleaned now unused backend.absoluteUrl and config module --- front/config/prod.env.js | 3 +-- front/src/App.vue | 8 +++++++- front/src/audio/backend.js | 17 ----------------- front/src/audio/track.js | 7 ------- front/src/components/Sidebar.vue | 2 +- front/src/components/audio/Player.vue | 4 +--- front/src/components/audio/SearchBar.vue | 5 +---- front/src/components/audio/Track.vue | 2 +- front/src/components/audio/album/Card.vue | 2 +- front/src/components/audio/artist/Card.vue | 2 +- front/src/components/audio/track/Row.vue | 2 +- front/src/components/audio/track/Table.vue | 2 +- front/src/components/library/Album.vue | 2 +- front/src/components/library/Artist.vue | 2 +- front/src/components/library/Track.vue | 5 ++--- front/src/components/library/radios/Filter.vue | 3 +-- .../components/manage/users/InvitationForm.vue | 4 +--- front/src/components/metadata/Search.vue | 3 +-- front/src/config.js | 8 -------- front/src/store/instance.js | 2 +- 20 files changed, 24 insertions(+), 61 deletions(-) delete mode 100644 front/src/audio/track.js delete mode 100644 front/src/config.js diff --git a/front/config/prod.env.js b/front/config/prod.env.js index decfe361..773d263d 100644 --- a/front/config/prod.env.js +++ b/front/config/prod.env.js @@ -1,4 +1,3 @@ module.exports = { - NODE_ENV: '"production"', - BACKEND_URL: '"/"' + NODE_ENV: '"production"' } diff --git a/front/src/App.vue b/front/src/App.vue index 73e46328..56dbe0aa 100644 --- a/front/src/App.vue +++ b/front/src/App.vue @@ -39,7 +39,13 @@ <template v-else>{{ $t('Source code') }}</template> </a> <a href="https://code.eliotberriot.com/funkwhale/funkwhale/issues" class="item" target="_blank">{{ $t('Issue tracker') }}</a> - <a @click="switchInstance" class="item" target="_blank">{{ $t('Use another instance') }}</a> + <a @click="switchInstance" class="item" > + {{ $t('Use another instance') }} + <template v-if="$store.state.instance.instanceUrl !== '/'"> + <br> + ({{ $store.state.instance.instanceUrl }}) + </template> + </a> </div> </div> <div class="ten wide column"> diff --git a/front/src/audio/backend.js b/front/src/audio/backend.js index 619f3cef..5a82719a 100644 --- a/front/src/audio/backend.js +++ b/front/src/audio/backend.js @@ -1,5 +1,3 @@ -import config from '@/config' - var Album = { clean (album) { // we manually rebind the album and artist to each child track @@ -21,21 +19,6 @@ var Artist = { } } export default { - absoluteUrl (url) { - if (url.startsWith('http')) { - return url - } - if (url.startsWith('/')) { - let rootUrl = ( - window.location.protocol + '//' + window.location.hostname + - (window.location.port ? ':' + window.location.port : '') - ) - return rootUrl + url - } else { - return config.BACKEND_URL + url - } - }, Artist: Artist, Album: Album - } diff --git a/front/src/audio/track.js b/front/src/audio/track.js deleted file mode 100644 index 9873b74e..00000000 --- a/front/src/audio/track.js +++ /dev/null @@ -1,7 +0,0 @@ -import backend from './backend' - -export default { - getCover (track) { - return backend.absoluteUrl(track.album.cover) - } -} diff --git a/front/src/components/Sidebar.vue b/front/src/components/Sidebar.vue index 87c374a3..de018907 100644 --- a/front/src/components/Sidebar.vue +++ b/front/src/components/Sidebar.vue @@ -125,7 +125,7 @@ <tr @click="$store.dispatch('queue/currentIndex', index)" v-for="(track, index) in queue.tracks" :key="index" :class="[{'active': index === queue.currentIndex}]"> <td class="right aligned">{{ index + 1}}</td> <td class="center aligned"> - <img class="ui mini image" v-if="track.album.cover" :src="backend.absoluteUrl(track.album.cover)"> + <img class="ui mini image" v-if="track.album.cover" :src="$store.getters['instance/absoluteUrl'](track.album.cover)"> <img class="ui mini image" v-else src="../assets/audio/default-cover.png"> </td> <td colspan="4"> diff --git a/front/src/components/audio/Player.vue b/front/src/components/audio/Player.vue index 3c922e14..1cc27970 100644 --- a/front/src/components/audio/Player.vue +++ b/front/src/components/audio/Player.vue @@ -14,7 +14,7 @@ <div v-if="currentTrack" class="track-area ui unstackable items"> <div class="ui inverted item"> <div class="ui tiny image"> - <img ref="cover" @load="updateBackground" v-if="currentTrack.album.cover" :src="Track.getCover(currentTrack)"> + <img ref="cover" @load="updateBackground" v-if="currentTrack.album.cover" :src="$store.getters['instance/absoluteUrl'](currentTrack.album.cover)"> <img v-else src="../../assets/audio/default-cover.png"> </div> <div class="middle aligned content"> @@ -143,7 +143,6 @@ import {mapState, mapGetters, mapActions} from 'vuex' import GlobalEvents from '@/components/utils/global-events' import ColorThief from '@/vendor/color-thief' -import Track from '@/audio/track' import AudioTrack from '@/components/audio/Track' import TrackFavoriteIcon from '@/components/favorites/TrackFavoriteIcon' import TrackPlaylistIcon from '@/components/playlists/TrackPlaylistIcon' @@ -162,7 +161,6 @@ export default { isShuffling: false, renderAudio: true, sliderVolume: this.volume, - Track: Track, defaultAmbiantColors: defaultAmbiantColors, ambiantColors: defaultAmbiantColors } diff --git a/front/src/components/audio/SearchBar.vue b/front/src/components/audio/SearchBar.vue index 99896d04..9b6dc50e 100644 --- a/front/src/components/audio/SearchBar.vue +++ b/front/src/components/audio/SearchBar.vue @@ -11,11 +11,8 @@ <script> import jQuery from 'jquery' -import config from '@/config' import router from '@/router' -const SEARCH_URL = config.API_URL + 'search?query={query}' - export default { mounted () { let self = this @@ -94,7 +91,7 @@ export default { }) return {results: results} }, - url: SEARCH_URL + url: this.$store.getters['instance/absoluteUrl']('search?query={query}') } }) } diff --git a/front/src/components/audio/Track.vue b/front/src/components/audio/Track.vue index 366f104f..2ded7cb0 100644 --- a/front/src/components/audio/Track.vue +++ b/front/src/components/audio/Track.vue @@ -49,7 +49,7 @@ export default { return [] } let sources = [ - {type: file.mimetype, url: file.path} + {type: file.mimetype, url: this.$store.getters['instance/absoluteUrl'](file.path)} ] if (this.$store.state.auth.authenticated) { // we need to send the token directly in url diff --git a/front/src/components/audio/album/Card.vue b/front/src/components/audio/album/Card.vue index 6742dca4..37827718 100644 --- a/front/src/components/audio/album/Card.vue +++ b/front/src/components/audio/album/Card.vue @@ -2,7 +2,7 @@ <div class="ui card"> <div class="content"> <div class="right floated tiny ui image"> - <img v-if="album.cover" v-lazy="backend.absoluteUrl(album.cover)"> + <img v-if="album.cover" v-lazy="$store.getters['instance/absoluteUrl'](album.cover)"> <img v-else src="../../../assets/audio/default-cover.png"> </div> <div class="header"> diff --git a/front/src/components/audio/artist/Card.vue b/front/src/components/audio/artist/Card.vue index a4650679..b19c5e12 100644 --- a/front/src/components/audio/artist/Card.vue +++ b/front/src/components/audio/artist/Card.vue @@ -11,7 +11,7 @@ <tbody> <tr v-for="album in albums"> <td> - <img class="ui mini image" v-if="album.cover" :src="backend.absoluteUrl(album.cover)"> + <img class="ui mini image" v-if="album.cover" :src="$store.getters['instance/absoluteUrl'](album.cover)"> <img class="ui mini image" v-else src="../../../assets/audio/default-cover.png"> </td> <td colspan="4"> diff --git a/front/src/components/audio/track/Row.vue b/front/src/components/audio/track/Row.vue index 8310e89c..bd3ceb2a 100644 --- a/front/src/components/audio/track/Row.vue +++ b/front/src/components/audio/track/Row.vue @@ -4,7 +4,7 @@ <play-button class="basic icon" :discrete="true" :track="track"></play-button> </td> <td> - <img class="ui mini image" v-if="track.album.cover" v-lazy="backend.absoluteUrl(track.album.cover)"> + <img class="ui mini image" v-if="track.album.cover" v-lazy="$store.getters['instance/absoluteUrl'](track.album.cover)"> <img class="ui mini image" v-else src="../../..//assets/audio/default-cover.png"> </td> <td colspan="6"> diff --git a/front/src/components/audio/track/Table.vue b/front/src/components/audio/track/Table.vue index 4559b3c4..81869ff5 100644 --- a/front/src/components/audio/track/Table.vue +++ b/front/src/components/audio/track/Table.vue @@ -35,7 +35,7 @@ <pre> export PRIVATE_TOKEN="{{ $store.state.auth.token }}" <template v-for="track in tracks"><template v-if="track.files.length > 0"> -curl -G -o "{{ track.files[0].filename }}" <template v-if="$store.state.auth.authenticated">--header "Authorization: JWT $PRIVATE_TOKEN"</template> "{{ backend.absoluteUrl(track.files[0].path) }}"</template></template> +curl -G -o "{{ track.files[0].filename }}" <template v-if="$store.state.auth.authenticated">--header "Authorization: JWT $PRIVATE_TOKEN"</template> "{{ $store.getters['instance/absoluteUrl'](track.files[0].path) }}"</template></template> </pre> </div> </div> diff --git a/front/src/components/library/Album.vue b/front/src/components/library/Album.vue index 1681d46e..9a4288b8 100644 --- a/front/src/components/library/Album.vue +++ b/front/src/components/library/Album.vue @@ -87,7 +87,7 @@ export default { if (!this.album.cover) { return '' } - return 'background-image: url(' + backend.absoluteUrl(this.album.cover) + ')' + return 'background-image: url(' + this.$store.getters['instance/absoluteUrl'](this.album.cover) + ')' } }, watch: { diff --git a/front/src/components/library/Artist.vue b/front/src/components/library/Artist.vue index 7d0a41d8..171b80e8 100644 --- a/front/src/components/library/Artist.vue +++ b/front/src/components/library/Artist.vue @@ -127,7 +127,7 @@ export default { if (!this.cover) { return '' } - return 'background-image: url(' + backend.absoluteUrl(this.cover) + ')' + return 'background-image: url(' + this.$store.getters['instance/absoluteUrl'](this.cover) + ')' } }, watch: { diff --git a/front/src/components/library/Track.vue b/front/src/components/library/Track.vue index 24acca75..af364e94 100644 --- a/front/src/components/library/Track.vue +++ b/front/src/components/library/Track.vue @@ -108,7 +108,6 @@ import time from '@/utils/time' import axios from 'axios' import url from '@/utils/url' import logger from '@/logging' -import backend from '@/audio/backend' import PlayButton from '@/components/audio/PlayButton' import TrackFavoriteIcon from '@/components/favorites/TrackFavoriteIcon' import TrackPlaylistIcon from '@/components/playlists/TrackPlaylistIcon' @@ -169,7 +168,7 @@ export default { }, downloadUrl () { if (this.track.files.length > 0) { - let u = backend.absoluteUrl(this.track.files[0].path) + let u = this.$store.getters['instance/absoluteUrl'](this.track.files[0].path) if (this.$store.state.auth.authenticated) { u = url.updateQueryString(u, 'jwt', this.$store.state.auth.token) } @@ -191,7 +190,7 @@ export default { if (!this.cover) { return '' } - return 'background-image: url(' + backend.absoluteUrl(this.cover) + ')' + return 'background-image: url(' + this.$store.getters['instance/absoluteUrl'](this.cover) + ')' } }, watch: { diff --git a/front/src/components/library/radios/Filter.vue b/front/src/components/library/radios/Filter.vue index b27c3607..0d268dc6 100644 --- a/front/src/components/library/radios/Filter.vue +++ b/front/src/components/library/radios/Filter.vue @@ -63,7 +63,6 @@ </template> <script> import axios from 'axios' -import config from '@/config' import $ from 'jquery' import _ from 'lodash' @@ -86,7 +85,7 @@ export default { return { checkResult: null, showCandidadesModal: false, - exclude: config.not + exclude: this.config.not } }, mounted: function () { diff --git a/front/src/components/manage/users/InvitationForm.vue b/front/src/components/manage/users/InvitationForm.vue index 9429c1ae..d9f0969e 100644 --- a/front/src/components/manage/users/InvitationForm.vue +++ b/front/src/components/manage/users/InvitationForm.vue @@ -43,8 +43,6 @@ <script> import axios from 'axios' -import backend from '@/audio/backend' - export default { data () { return { @@ -72,7 +70,7 @@ export default { }) }, getUrl (code) { - return backend.absoluteUrl(this.$router.resolve({name: 'signup', query: {invitation: code.toUpperCase()}}).href) + return this.$store.getters['instance/absoluteUrl'](this.$router.resolve({name: 'signup', query: {invitation: code.toUpperCase()}}).href) } } } diff --git a/front/src/components/metadata/Search.vue b/front/src/components/metadata/Search.vue index 305aa7a3..0379cb18 100644 --- a/front/src/components/metadata/Search.vue +++ b/front/src/components/metadata/Search.vue @@ -22,7 +22,6 @@ <script> import jQuery from 'jquery' -import config from '@/config' export default { props: { @@ -117,7 +116,7 @@ export default { })[0] }, searchUrl: function () { - return config.API_URL + 'providers/musicbrainz/search/' + this.currentTypeObject.value + 's/?query={query}' + return this.$store.getters['instance/absoluteUrl']('providers/musicbrainz/search/' + this.currentTypeObject.value + 's/?query={query}') }, types: function () { return [ diff --git a/front/src/config.js b/front/src/config.js deleted file mode 100644 index 47d9d7b8..00000000 --- a/front/src/config.js +++ /dev/null @@ -1,8 +0,0 @@ -class Config { - constructor () { - this.BACKEND_URL = process.env.BACKEND_URL - this.API_URL = this.BACKEND_URL + 'api/v1/' - } -} - -export default new Config() diff --git a/front/src/store/instance.js b/front/src/store/instance.js index 555bd823..ba069ac4 100644 --- a/front/src/store/instance.js +++ b/front/src/store/instance.js @@ -6,7 +6,7 @@ export default { namespaced: true, state: { maxEvents: 200, - instanceUrl: process.env.INSTANCE_URL, + instanceUrl: '/', events: [], settings: { instance: { -- GitLab