diff --git a/changes/changelog.d/368.enhancement b/changes/changelog.d/368.enhancement new file mode 100644 index 0000000000000000000000000000000000000000..7e8f78c0a8be20794c0042e32ad2ad55e2f221be --- /dev/null +++ b/changes/changelog.d/368.enhancement @@ -0,0 +1 @@ +Added button to search for objects on Discogs (#368) diff --git a/front/src/components/library/AlbumBase.vue b/front/src/components/library/AlbumBase.vue index 1f89bef8898f9a1a496545688ff818a10e071e2a..2b3c978bced83a60574a49380e786e7312828182 100644 --- a/front/src/components/library/AlbumBase.vue +++ b/front/src/components/library/AlbumBase.vue @@ -61,7 +61,11 @@ <i class="external icon"></i> <translate translate-context="Content/*/*/Clickable, Verb">View on MusicBrainz</translate> </a> - <router-link + <a :href="discogsUrl" target="_blank" rel="noreferrer noopener" class="basic item"> + <i class="external icon"></i> + <translate translate-context="Content/*/Button.Label/Verb">Search on Discogs</translate> + </a> + <router-link v-if="object.is_local" :to="{name: 'library.albums.edit', params: {id: object.id }}" class="basic item"> @@ -168,6 +172,13 @@ export default { return "https://musicbrainz.org/release/" + this.object.mbid } }, + discogsUrl() { + return ( + "https://discogs.com/search/?type=release&title=" + + encodeURI(this.object.title) + "&artist=" + + encodeURI(this.object.artist.name) + ) + }, headerStyle() { if (!this.object.cover.original) { return "" diff --git a/front/src/components/library/ArtistBase.vue b/front/src/components/library/ArtistBase.vue index 5da7370bacf5fba3abe0c44aa10eb82d421c4a46..3c21f603fe150109ade24448510bb42805ac4663 100644 --- a/front/src/components/library/ArtistBase.vue +++ b/front/src/components/library/ArtistBase.vue @@ -72,6 +72,10 @@ <i class="external icon"></i> <translate translate-context="Content/*/*/Clickable, Verb">View on MusicBrainz</translate> </a> + <a :href="discogsUrl" target="_blank" rel="noreferrer noopener" class="basic item"> + <i class="external icon"></i> + <translate translate-context="Content/*/Button.Label/Verb">Search on Discogs</translate> + </a> <router-link v-if="object.is_local" :to="{name: 'library.artists.edit', params: {id: object.id }}" @@ -205,6 +209,12 @@ export default { return "https://musicbrainz.org/artist/" + this.object.mbid } }, + discogsUrl() { + return ( + "https://discogs.com/search/?type=artist&title=" + + encodeURI(this.object.name) + ) + }, cover() { return this.object.albums .filter(album => { diff --git a/front/src/components/library/TrackBase.vue b/front/src/components/library/TrackBase.vue index 639c8f51b83c63166d1ec4d70d668a82352e48a1..a968f8b0cf626a37b596832184c6e9782f65c95c 100644 --- a/front/src/components/library/TrackBase.vue +++ b/front/src/components/library/TrackBase.vue @@ -80,6 +80,10 @@ <i class="external icon"></i> <translate translate-context="Content/*/*/Clickable, Verb">View on MusicBrainz</translate> </a> + <a :href="discogsUrl" target="_blank" rel="noreferrer noopener" class="basic item"> + <i class="external icon"></i> + <translate translate-context="Content/*/Button.Label/Verb">Search on Discogs</translate> + </a> <router-link v-if="track.is_local" :to="{name: 'library.tracks.edit', params: {id: track.id }}" @@ -184,6 +188,14 @@ export default { return "https://musicbrainz.org/recording/" + this.track.mbid } }, + discogsUrl() { + return ( + "https://discogs.com/search/?type=release&title=" + + encodeURI(this.track.album.title) + "&artist=" + + encodeURI(this.track.artist.name) + "&track=" + + encodeURI(this.track.title) + ) + }, downloadUrl() { let u = this.$store.getters["instance/absoluteUrl"]( this.upload.listen_url