Merge branch 'stable' into develop
This commit is contained in:
commit
b39bd5f349
59
CHANGELOG
59
CHANGELOG
|
@ -10,6 +10,63 @@ This changelog is viewable on the web at https://docs.funkwhale.audio/changelog.
|
|||
|
||||
.. towncrier
|
||||
|
||||
1.2.2 (2020-02-04)
|
||||
------------------
|
||||
|
||||
Upgrade instructions are available at
|
||||
https://docs.funkwhale.audio/admin/upgrading.html
|
||||
|
||||
Bugfixes:
|
||||
|
||||
- Fix an issue where the tracks tab in a library doesn't show any tracks (#1683)
|
||||
- Fix an issue with the embedded player not showing any content (#1675)
|
||||
- Fix broken instance description if it contains a line break #1673
|
||||
|
||||
Dependency Updates:
|
||||
|
||||
Update dependency vue-template-compiler to 2.6.14
|
||||
Update dependency vue to ^2.6.14
|
||||
Update dependency vuex-persistedstate to ^2.7.1
|
||||
Update dependency vuedraggable to ^2.24.3
|
||||
Update dependency vue-lazyload to ^1.3.3
|
||||
Update dependency vue-plyr to ^5.1.3
|
||||
Update dependency vue-upload-component to ^2.8.22
|
||||
Update dependency vue-gettext to ^2.1.12
|
||||
Update dependency showdown to ^1.9.1
|
||||
Update dependency js-logger to ^1.6.1
|
||||
Update dependency register-service-worker to ^1.7.2
|
||||
Update dependency howler to ^2.2.3
|
||||
Update dependency fomantic-ui-css to ^2.8.8
|
||||
Update dependency diff to ^4.0.2
|
||||
Update dependency axios-auth-refresh to ^2.2.8
|
||||
|
||||
Contributors to our Issues:
|
||||
|
||||
- Ciarán Ainsworth
|
||||
- Georg Krause
|
||||
- JuniorJPDJ
|
||||
- Marcos Peña
|
||||
- Mathieu Jourdan
|
||||
- Micha Gläß-Stöcker
|
||||
- Ricardo
|
||||
- petitminion
|
||||
|
||||
Contributors to our Merge Requests:
|
||||
|
||||
- Ciarán Ainsworth
|
||||
- Georg Krause
|
||||
- JuniorJPDJ
|
||||
- Marcos Peña
|
||||
|
||||
Committers
|
||||
|
||||
- Ciarán Ainsworth
|
||||
- Georg Krause
|
||||
- JuniorJPDJ
|
||||
- Keunes
|
||||
- Marcos Peña
|
||||
|
||||
|
||||
1.2.1 (2022-01-06)
|
||||
------------------
|
||||
|
||||
|
@ -47,7 +104,7 @@ nztvar
|
|||
Upgrade instructions are available at
|
||||
https://docs.funkwhale.audio/admin/upgrading.html
|
||||
|
||||
Due to a bug in our CI Pipeline frontend artifacts are not available at
|
||||
Due to a bug in our CI Pipeline frontend artifacts are not available at
|
||||
https://dev.funkwhale.audio/funkwhale/funkwhale/builds/artifacts/1.2.0/download?job=build_front as they would usually.
|
||||
Please use this URL to get your frontend build: https://dev.funkwhale.audio/funkwhale/funkwhale/-/jobs/81069/artifacts/download
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
__version__ = "1.2.1"
|
||||
__version__ = "1.2.2"
|
||||
__version_info__ = tuple(
|
||||
[
|
||||
int(num) if num.isdigit() else num
|
||||
|
|
|
@ -252,7 +252,7 @@ function getURLParams () {
|
|||
const decode = function (s) { return decodeURIComponent(s.replace(pl, ' ')) }
|
||||
const query = window.location.search.substring(1)
|
||||
|
||||
while (match === search.exec(query)) { urlParams[decode(match[1])] = decode(match[2]) }
|
||||
while ((match = search.exec(query)) !== null) { urlParams[decode(match[1])] = decode(match[2]) }
|
||||
return urlParams
|
||||
}
|
||||
export default {
|
||||
|
|
|
@ -39,23 +39,24 @@
|
|||
>
|
||||
<div class="ui stackable grid">
|
||||
<div class="eight wide column">
|
||||
<p v-if="!truncatedDescription">
|
||||
<p v-if="!renderedDescription">
|
||||
<translate translate-context="Content/Home/Paragraph">
|
||||
No description available.
|
||||
</translate>
|
||||
</p>
|
||||
<template v-if="truncatedDescription || rules">
|
||||
<template v-if="renderedDescription || rules">
|
||||
<div
|
||||
v-if="truncatedDescription"
|
||||
v-html="truncatedDescription"
|
||||
v-if="renderedDescription"
|
||||
id="renderedDescription"
|
||||
v-html="renderedDescription"
|
||||
/>
|
||||
<div
|
||||
v-if="truncatedDescription"
|
||||
v-if="renderedDescription"
|
||||
class="ui hidden divider"
|
||||
/>
|
||||
<div class="ui relaxed list">
|
||||
<div
|
||||
v-if="truncatedDescription"
|
||||
v-if="renderedDescription"
|
||||
class="item"
|
||||
>
|
||||
<i class="arrow right icon" />
|
||||
|
@ -324,7 +325,6 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import $ from 'jquery'
|
||||
import _ from '@/lodash'
|
||||
import { mapState } from 'vuex'
|
||||
import showdown from 'showdown'
|
||||
|
@ -372,22 +372,12 @@ export default {
|
|||
rules () {
|
||||
return _.get(this.nodeinfo, 'metadata.rules')
|
||||
},
|
||||
truncatedDescription () {
|
||||
renderedDescription () {
|
||||
if (!this.longDescription) {
|
||||
return
|
||||
}
|
||||
const doc = this.markdown.makeHtml(this.longDescription)
|
||||
const nodes = $.parseHTML(doc)
|
||||
const excerptParts = []
|
||||
let handled = 0
|
||||
nodes.forEach((n) => {
|
||||
const content = n.innerHTML || n.nodeValue
|
||||
if (handled < this.excerptLength && content.trim()) {
|
||||
excerptParts.push(n)
|
||||
handled += 1
|
||||
}
|
||||
})
|
||||
return excerptParts.map((p) => { return p.outerHTML }).join('')
|
||||
return doc
|
||||
},
|
||||
stats () {
|
||||
const data = {
|
||||
|
|
|
@ -123,11 +123,6 @@ export default {
|
|||
artist: this.$pgettext('*/*/*/Noun', 'Artist')
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
updatePage: function (page) {
|
||||
this.$emit('page-changed', page)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -5,8 +5,9 @@
|
|||
v-if="search"
|
||||
v-model="query"
|
||||
@search="
|
||||
currentPage = 1;
|
||||
additionalTracks = [];
|
||||
fetchData();
|
||||
fetchData('tracks/');
|
||||
"
|
||||
/>
|
||||
|
||||
|
@ -106,10 +107,10 @@
|
|||
class="ui center aligned basic segment desktop-and-up"
|
||||
>
|
||||
<pagination
|
||||
:total="total"
|
||||
:current="page"
|
||||
:total="totalTracks"
|
||||
:current=" tracks.length > 0 ? page : {currentPage}"
|
||||
:paginate-by="paginateBy"
|
||||
v-on="$listeners"
|
||||
@page-changed="updatePage"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -140,15 +141,16 @@
|
|||
:is-podcast="isPodcast"
|
||||
/>
|
||||
<div
|
||||
v-if="paginateResults"
|
||||
v-if="paginateResults && totalTracks > paginateBy"
|
||||
class="ui center aligned basic segment tablet-and-below"
|
||||
>
|
||||
<pagination
|
||||
v-if="paginateResults"
|
||||
:total="total"
|
||||
:current="page"
|
||||
v-if="paginateResults && totalTracks > paginateBy"
|
||||
:paginate-by="paginateBy"
|
||||
:total="totalTracks"
|
||||
:current="tracks.length > 0 ? page : {currentPage}"
|
||||
:compact="true"
|
||||
v-on="$listeners"
|
||||
@page-changed="updatePage"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -194,10 +196,11 @@ export default {
|
|||
fetchDataUrl: this.nextUrl,
|
||||
isLoading: false,
|
||||
additionalTracks: [],
|
||||
query: ''
|
||||
query: '',
|
||||
totalTracks: this.total,
|
||||
currentPage: this.page
|
||||
}
|
||||
},
|
||||
|
||||
computed: {
|
||||
allTracks () {
|
||||
return (this.tracks || []).concat(this.additionalTracks)
|
||||
|
@ -212,7 +215,7 @@ export default {
|
|||
}
|
||||
},
|
||||
created () {
|
||||
if (!this.tracks) {
|
||||
if (this.tracks.length === 0) {
|
||||
this.fetchData('tracks/')
|
||||
}
|
||||
},
|
||||
|
@ -224,15 +227,15 @@ export default {
|
|||
this.isLoading = true
|
||||
const self = this
|
||||
const params = _.clone(this.filters)
|
||||
const tracksPromise = axios.get(url, { params: params })
|
||||
params.page_size = this.limit
|
||||
params.page = this.page
|
||||
params.page_size = this.paginateBy
|
||||
params.page = this.currentPage
|
||||
params.include_channels = true
|
||||
params.q = this.query
|
||||
const tracksPromise = await axios.get(url, { params: params })
|
||||
try {
|
||||
await tracksPromise
|
||||
self.nextPage = tracksPromise.data.next
|
||||
self.objects = tracksPromise.data.results
|
||||
self.count = tracksPromise.data.count
|
||||
self.fetchDataUrl = tracksPromise.data.next
|
||||
self.additionalTracks = tracksPromise.data.results
|
||||
self.totalTracks = tracksPromise.data.count
|
||||
self.$emit('fetched', tracksPromise.data)
|
||||
self.isLoading = false
|
||||
} catch (e) {
|
||||
|
@ -241,7 +244,12 @@ export default {
|
|||
}
|
||||
},
|
||||
updatePage: function (page) {
|
||||
this.$emit('page-changed', page)
|
||||
if (this.tracks.length === 0) {
|
||||
this.currentPage = page
|
||||
this.fetchData('tracks/')
|
||||
} else {
|
||||
this.$emit('page-changed', page)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -31,3 +31,18 @@
|
|||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
#renderedDescription {
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 5;
|
||||
-webkit-box-orient: vertical;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#renderedDescription p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#renderedDescription *:not(:first-child) {
|
||||
display: none;
|
||||
}
|
||||
|
|
|
@ -36,7 +36,7 @@ export default {
|
|||
TrackTable
|
||||
},
|
||||
props: {
|
||||
object: { type: String, required: true },
|
||||
object: { type: [Object, String], required: true },
|
||||
isOwner: { type: Boolean, required: true }
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue