From 495999771e92703103eeec9f0f69446db9a69391 Mon Sep 17 00:00:00 2001 From: Stefan Peters Date: Mon, 16 Nov 2020 09:48:55 +0100 Subject: [PATCH] Adjust how user name and URI are handled (#591) This commit allows the user to choose any name regardless of identity URI. --- src/App.vue | 8 ------- src/components/TheNavbar.vue | 29 ++++++++++++++++++---- src/components/TheSettings.vue | 44 +++++++++++++--------------------- src/store/index.js | 14 +---------- 4 files changed, 42 insertions(+), 53 deletions(-) diff --git a/src/App.vue b/src/App.vue index 6aeee7566..5e009c17f 100644 --- a/src/App.vue +++ b/src/App.vue @@ -415,14 +415,6 @@ export default { } } }, - /** - * Update authorized user's name if creator name changed. - */ - userName() { - if (this.authorized && this.user && this.userName != this.user.name) { - this.setName(this.userName) - } - }, /** * Unminimize mapping browser if force mapping browser is set to true */ diff --git a/src/components/TheNavbar.vue b/src/components/TheNavbar.vue index bdb04d0eb..6c714948d 100644 --- a/src/components/TheNavbar.vue +++ b/src/components/TheNavbar.vue @@ -191,11 +191,7 @@ 'navbar-dropdown-selectable': true, 'navbar-dropdown-selectable-selected': uri == creator.uri }" - @click="$store.commit({ - type: 'settings/set', - prop: 'creatorUri', - value: uri - })"> + @click="setIdentity(uri)"> i.uri === uri) + if (identity) { + name = identity.name + } + if (name) { + this.$store.commit({ + type: "settings/set", + prop: "creator", + value: name, + }) + } + } + }, }, } diff --git a/src/components/TheSettings.vue b/src/components/TheSettings.vue index 9e2daf74e..d1aaddf22 100644 --- a/src/components/TheSettings.vue +++ b/src/components/TheSettings.vue @@ -74,33 +74,10 @@

{{ $t("settings.creator") }} - - - - - - -

-
- -
-
- - {{ userIdentityProvider.name }} -
-
-
+

{{ $t("settings.creatorUri") }} @@ -540,6 +517,19 @@ export default { reader.readAsText(this.uploadedFile) } }, + "localSettings.creatorUri"(uri) { + // Find name in identity and set creator + if (this.user) { + let name = this.user.name + const identity = Object.values(this.user.identities).find(i => i.uri === uri) + if (identity) { + name = identity.name + } + if (name) { + this.localSettings.creator = name + } + } + }, }, methods: { show() { diff --git a/src/store/index.js b/src/store/index.js index 19feeb176..3a73619cf 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -58,10 +58,6 @@ const getters = { */ creator: (state) => { let creator = {} - let language = state.settings.settings.locale - if (!(state.config.languages || []).includes(language)) { - language = "en" - } let name = state.settings.settings.creator let uri = state.settings.settings.creatorUri if (!jskos.isValidUri(uri)) { @@ -69,17 +65,9 @@ const getters = { } if (uri) { creator.uri = uri - // Override name with name from chosen identity - let user = state.auth.user - if (user) { - let identity = Object.values(user.identities).find(identity => identity.uri === uri) - if (identity && identity.name) { - name = identity.name - } - } } if (name) { - creator.prefLabel = { [language]: name } + creator.prefLabel = { "en": name } } return creator },