From 91916a01a405fcf304594aaff73fb1652b5d4c35 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 5e151dc9bc8..9dc46510996 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 })