diff options
author | Julius Härtl <jus@bitgrid.net> | 2020-09-23 12:39:53 +0200 |
---|---|---|
committer | Julius Härtl <jus@bitgrid.net> | 2020-12-14 11:14:58 +0100 |
commit | a86746ea08be193ae69c4dcbf8001c9032c1a2c1 (patch) | |
tree | 6429ee4abce253e30db63309cdd45d85744ec252 /apps/files_sharing/src/components/SharingInput.vue | |
parent | 99a6665888af1ac89af7269c6d40d14aba94b613 (diff) | |
download | nextcloud-server-a86746ea08be193ae69c4dcbf8001c9032c1a2c1.tar.gz nextcloud-server-a86746ea08be193ae69c4dcbf8001c9032c1a2c1.zip |
Make share results distinguishable if there are more than one with the exact same display name
Signed-off-by: Julius Härtl <jus@bitgrid.net>
Diffstat (limited to 'apps/files_sharing/src/components/SharingInput.vue')
-rw-r--r-- | apps/files_sharing/src/components/SharingInput.vue | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/apps/files_sharing/src/components/SharingInput.vue b/apps/files_sharing/src/components/SharingInput.vue index c8373c6c0ae..6d7eb8220a1 100644 --- a/apps/files_sharing/src/components/SharingInput.vue +++ b/apps/files_sharing/src/components/SharingInput.vue @@ -241,7 +241,27 @@ export default { // if there is a condition specified, filter it const externalResults = this.externalResults.filter(result => !result.condition || result.condition(this)) - this.suggestions = exactSuggestions.concat(suggestions).concat(externalResults).concat(lookupEntry) + const allSuggestions = exactSuggestions.concat(suggestions).concat(externalResults).concat(lookupEntry) + + // Count occurances of display names in order to provide a distinguishable description if needed + const nameCounts = allSuggestions.reduce((nameCounts, result) => { + if (!result.displayName) { + return nameCounts + } + if (!nameCounts[result.displayName]) { + nameCounts[result.displayName] = 0 + } + nameCounts[result.displayName]++ + return nameCounts + }, {}) + + this.suggestions = allSuggestions.map(item => { + // Make sure that items with duplicate displayName get the shareWith applied as a description + if (nameCounts[item.displayName] > 1 && !item.desc) { + return { ...item, desc: item.shareWith } + } + return item + }) this.loading = false console.info('suggestions', this.suggestions) |