From 345d02ff77303a3409f09b6db2828fb09c9cfe6c Mon Sep 17 00:00:00 2001 From: Christoph Wurst Date: Mon, 27 Dec 2021 12:27:50 +0100 Subject: [PATCH] Fix rendering app authors with homepage or email When the first author of an app doesn't have homepage/email attributes set in info.xml then any further author was rendered as `[object Object]` due to the complex XML node seralized to a JavaScript string. The logic was fixed so that it converts any of the authors to simple text. Signed-off-by: Christoph Wurst --- apps/settings/src/views/Apps.vue | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/apps/settings/src/views/Apps.vue b/apps/settings/src/views/Apps.vue index 327faa4ac6a..12d270e5c3e 100644 --- a/apps/settings/src/views/Apps.vue +++ b/apps/settings/src/views/Apps.vue @@ -229,13 +229,19 @@ export default { // sidebar app binding appSidebar() { + const authorName = (xmlNode) => { + if (xmlNode['@value']) { + // Complex node (with email or homepage attribute) + return xmlNode['@value'] + } + + // Simple text node + return xmlNode + } + const author = Array.isArray(this.app.author) - ? this.app.author[0]['@value'] - ? this.app.author.map(author => author['@value']).join(', ') - : this.app.author.join(', ') - : this.app.author['@value'] - ? this.app.author['@value'] - : this.app.author + ? this.app.author.map(authorName).join(', ') + : authorName(this.app.author) const license = t('settings', '{license}-licensed', { license: ('' + this.app.licence).toUpperCase() }) const subtitle = t('settings', 'by {author}\n{license}', { author, license })