Use display name in account label The display name can be set by the user in the preferences. But for each host you can also set a default for what should happen, if that display name is not set. Normally that default would be 'FULL_NAME'. Thus this change will not yet change anything for any user, but for gerrit-review, where the default was already changed to FIRST_NAME. Screenshot of using FIRST_NAME: https://imgur.com/a/pQoJFHk Change-Id: Ibc3bc74216c8d3d7e7add831aa553a825bd8a1ae
diff --git a/polygerrit-ui/app/behaviors/gr-display-name-behavior/gr-display-name-behavior.js b/polygerrit-ui/app/behaviors/gr-display-name-behavior/gr-display-name-behavior.js index 2e7f5d4..af3ce64 100644 --- a/polygerrit-ui/app/behaviors/gr-display-name-behavior/gr-display-name-behavior.js +++ b/polygerrit-ui/app/behaviors/gr-display-name-behavior/gr-display-name-behavior.js
@@ -29,6 +29,10 @@ return GrDisplayNameUtils.getUserName(config, account); }, + getDisplayName(config, account) { + return GrDisplayNameUtils.getDisplayName(config, account); + }, + getGroupDisplayName(group) { return GrDisplayNameUtils.getGroupDisplayName(group); },
diff --git a/polygerrit-ui/app/elements/shared/gr-account-label/gr-account-label.js b/polygerrit-ui/app/elements/shared/gr-account-label/gr-account-label.js index d279563..145a2cc 100644 --- a/polygerrit-ui/app/elements/shared/gr-account-label/gr-account-label.js +++ b/polygerrit-ui/app/elements/shared/gr-account-label/gr-account-label.js
@@ -69,7 +69,7 @@ } _computeName(account, config) { - return this.getUserName(config, account); + return this.getDisplayName(config, account); } }
diff --git a/polygerrit-ui/app/scripts/gr-display-name-utils/gr-display-name-utils.js b/polygerrit-ui/app/scripts/gr-display-name-utils/gr-display-name-utils.js index cefd254..20de3fb6 100644 --- a/polygerrit-ui/app/scripts/gr-display-name-utils/gr-display-name-utils.js +++ b/polygerrit-ui/app/scripts/gr-display-name-utils/gr-display-name-utils.js
@@ -39,6 +39,24 @@ return ANONYMOUS_NAME; } + static getDisplayName(config, account) { + if (account && account.display_name) { + return account.display_name; + } + if (!account || !account.name || !config || !config.accounts) { + return this.getUserName(config, account); + } + if (config.accounts.default_display_name === 'USERNAME' + && account.username) { + return account.username; + } + if (config.accounts.default_display_name === 'FIRST_NAME') { + return account.name.trim().split(' ')[0]; + } + // Treat every other value as FULL_NAME. + return account.name; + } + static getAccountDisplayName(config, account) { const reviewerName = this.getUserName(config, account); const reviewerEmail = this._accountEmail(account.email);
diff --git a/polygerrit-ui/app/scripts/gr-display-name-utils/gr-display-name-utils_test.html b/polygerrit-ui/app/scripts/gr-display-name-utils/gr-display-name-utils_test.html index 262d53c..0ed5ec7 100644 --- a/polygerrit-ui/app/scripts/gr-display-name-utils/gr-display-name-utils_test.html +++ b/polygerrit-ui/app/scripts/gr-display-name-utils/gr-display-name-utils_test.html
@@ -34,7 +34,77 @@ }, }; - test('getUserName name only', () => { + test('getDisplayName name only', () => { + const account = { + name: 'test-name', + }; + assert.equal(GrDisplayNameUtils.getDisplayName(config, account), + 'test-name'); + }); + + test('getDisplayName prefer displayName', () => { + const account = { + name: 'test-name', + display_name: 'better-name', + }; + assert.equal(GrDisplayNameUtils.getDisplayName(config, account), + 'better-name'); + }); + + test('getDisplayName prefer username default', () => { + const account = { + name: 'test-name', + username: 'user-name', + }; + const config = { + accounts: { + default_display_name: 'USERNAME', + }, + }; + assert.equal(GrDisplayNameUtils.getDisplayName(config, account), + 'user-name'); + }); + + test('getDisplayName prefer first name default', () => { + const account = { + name: 'firstname lastname', + }; + const config = { + accounts: { + default_display_name: 'FIRST_NAME', + }, + }; + assert.equal(GrDisplayNameUtils.getDisplayName(config, account), + 'firstname'); + }); + + test('getDisplayName ignore leading whitespace for first name', () => { + const account = { + name: ' firstname lastname', + }; + const config = { + accounts: { + default_display_name: 'FIRST_NAME', + }, + }; + assert.equal(GrDisplayNameUtils.getDisplayName(config, account), + 'firstname'); + }); + + test('getDisplayName full name default', () => { + const account = { + name: 'firstname lastname', + }; + const config = { + accounts: { + default_display_name: 'FULL_NAME', + }, + }; + assert.equal(GrDisplayNameUtils.getDisplayName(config, account), + 'firstname lastname'); + }); + + test('getDisplayName name only', () => { const account = { name: 'test-name', };