Browse Source

SONAR-18964 Improve users list help texts and activity filter labels

tags/10.1.0.73491
Ambroise C 1 year ago
parent
commit
f6aef43f68

+ 2
- 56
server/sonar-web/src/main/js/apps/users/UsersApp.tsx View File

@@ -20,7 +20,6 @@
import { subDays, subSeconds } from 'date-fns';
import React, { useCallback, useEffect, useMemo, useState } from 'react';
import { Helmet } from 'react-helmet-async';
import { FormattedMessage } from 'react-intl';
import { getIdentityProviders, searchUsers } from '../../api/users';
import HelpTooltip from '../../components/controls/HelpTooltip';
import ListFooter from '../../components/controls/ListFooter';
@@ -158,61 +157,8 @@ export default function UsersApp() {
className="sw-ml-1"
overlay={
<>
<p>{translate('users.activity_filter.helptext')}</p>
<ul className="spacer-top">
<li>
<FormattedMessage
defaultMessage={translate('users.activity_filter.helptext.all_users')}
id="users.activity_filter.helptext.all_users"
values={{
allUsersLabel: (
<strong>{translate('users.activity_filter.all_users')}</strong>
),
}}
/>
</li>
<li>
<FormattedMessage
defaultMessage={translate(
'users.activity_filter.helptext.active_sonarlint_users'
)}
id="users.activity_filter.helptext.active_sonarlint_users"
values={{
activeSonarLintUsersLabel: (
<strong>
{translate('users.activity_filter.active_sonarlint_users')}
</strong>
),
}}
/>
</li>
<li>
<FormattedMessage
defaultMessage={translate(
'users.activity_filter.helptext.active_sonarqube_users'
)}
id="users.activity_filter.helptext.active_sonarqube_users"
values={{
activeSonarQubeUsersLabel: (
<strong>
{translate('users.activity_filter.active_sonarqube_users')}
</strong>
),
}}
/>
</li>
<li>
<FormattedMessage
defaultMessage={translate('users.activity_filter.helptext.inactive_users')}
id="users.activity_filter.helptext.inactive_users"
values={{
inactiveUsersLabel: (
<strong>{translate('users.activity_filter.inactive_users')}</strong>
),
}}
/>
</li>
</ul>
<p>{translate('users.activity_filter.helptext.sonarqube')}</p>
<p>{translate('users.activity_filter.helptext.sonarlint')}</p>
</>
}
/>

+ 9
- 24
server/sonar-web/src/main/js/apps/users/__tests__/UsersApp-it.tsx View File

@@ -120,14 +120,10 @@ describe('different filters combinations', () => {

await userEvent.click(await ui.localFilter.find());
await act(async () => {
await selectEvent.select(ui.activityFilter.get(), (content, element) => {
return (
// eslint-disable-next-line jest/no-conditional-in-test
content === 'users.activity_filter.active_sonarlint_users' &&
element?.tagName === 'DIV' &&
element?.className.split(' ').includes('react-select__option')
);
});
await selectEvent.select(
ui.activityFilter.get(),
'users.activity_filter.active_sonarlint_users'
);
});

expect(await ui.userRows.findAll()).toHaveLength(1);
@@ -139,14 +135,10 @@ describe('different filters combinations', () => {

await userEvent.click(await ui.managedFilter.find());
await act(async () => {
await selectEvent.select(ui.activityFilter.get(), (content, element) => {
return (
// eslint-disable-next-line jest/no-conditional-in-test
content === 'users.activity_filter.active_sonarqube_users' &&
element?.tagName === 'DIV' &&
element?.className.split(' ').includes('react-select__option')
);
});
await selectEvent.select(
ui.activityFilter.get(),
'users.activity_filter.active_sonarqube_users'
);
});

expect(await ui.userRows.findAll()).toHaveLength(1);
@@ -158,14 +150,7 @@ describe('different filters combinations', () => {

await userEvent.click(await ui.allFilter.find());
await act(async () => {
await selectEvent.select(ui.activityFilter.get(), (content, element) => {
return (
// eslint-disable-next-line jest/no-conditional-in-test
content === 'users.activity_filter.inactive_users' &&
element?.tagName === 'DIV' &&
element?.className.split(' ').includes('react-select__option')
);
});
await selectEvent.select(ui.activityFilter.get(), 'users.activity_filter.inactive_users');
});

expect(await ui.userRows.findAll()).toHaveLength(2);

+ 4
- 7
sonar-core/src/main/resources/org/sonar/l10n/core.properties View File

@@ -4402,7 +4402,7 @@ users.minimum_x_characters=Minimum {0} characters
users.email=Email
users.last_connection=Last connection
users.last_sonarlint_connection=Last SonarLint connection
users.last_sonarlint_connection.help_text=The last time the user connected to this instance through SonarLint in connected mode.
users.last_sonarlint_connection.help_text=The time of the last connection from SonarLint indicates that the user used SonarLint in connected mode.
users.update_users_groups=Update {0}'s group membership
users.update_groups=Update Groups
users.manage_user=Update {0}
@@ -4413,13 +4413,10 @@ users.remove=Remove user
users.search_description=Search users by login or name
users.activity_filter.label=Filter users by activity
users.activity_filter.placeholder=All users
users.activity_filter.helptext=A user is considered active if they connected to SonarLint or SonarQube at least once in the past 30 days.
users.activity_filter.helptext.all_users={allUsersLabel}: All users whether they connected to SonarLint/SonarQube in the 30 days.
users.activity_filter.helptext.active_sonarlint_users={activeSonarLintUsersLabel}: Users that connected to SonarLint in the past 30 days.
users.activity_filter.helptext.active_sonarqube_users={activeSonarQubeUsersLabel}: Users that connected to SonarQube but not to SonarLint in the past 30 days.
users.activity_filter.helptext.inactive_users={inactiveUsersLabel}: Users that didn't connect to SonarQube in the past 30 days.
users.activity_filter.helptext.sonarqube=Users are considered active if they connected to SonarQube at least once in the past 30 days.
users.activity_filter.helptext.sonarlint=Users are considered active with SonarLint if they used SonarLint in connected mode at least once in the past 30 days.
users.activity_filter.all_users=All users
users.activity_filter.active_sonarlint_users=Active SonarLint users
users.activity_filter.active_sonarlint_users=Active users with SonartLint
users.activity_filter.active_sonarqube_users=Active users without SonarLint
users.activity_filter.inactive_users=Inactive users
users.tokens=Tokens

Loading…
Cancel
Save