@@ -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> | |||
</> | |||
} | |||
/> |
@@ -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); |
@@ -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 |