*/
import * as React from 'react';
import { CurrentUserContext } from '../../app/components/current-user/CurrentUserContext';
+import HelpTooltip from '../../components/controls/HelpTooltip';
import { translate } from '../../helpers/l10n';
import { IdentityProvider } from '../../types/types';
import { isLoggedIn, User } from '../../types/users';
<th className="nowrap" />
<th className="nowrap">{translate('my_profile.scm_accounts')}</th>
<th className="nowrap">{translate('users.last_connection')}</th>
+ <th className="nowrap">
+ {translate('users.last_sonarlint_connection')}
+ <HelpTooltip
+ className="sw-ml-1"
+ overlay={translate('users.last_sonarlint_connection.help_text')}
+ />
+ </th>
<th className="nowrap">{translate('my_profile.groups')}</th>
<th className="nowrap">{translate('users.tokens')}</th>
{(manageProvider === undefined || users.some((u) => !u.managed)) && (
managedFilter: byRole('button', { name: 'managed' }),
localFilter: byRole('button', { name: 'local' }),
showMore: byRole('button', { name: 'show_more' }),
- aliceRow: byRole('row', { name: 'AM Alice Merveille alice.merveille never' }),
+ aliceRow: byRole('row', { name: 'AM Alice Merveille alice.merveille never never' }),
aliceRowWithLocalBadge: byRole('row', {
- name: 'AM Alice Merveille alice.merveille local never',
+ name: 'AM Alice Merveille alice.merveille local never never',
}),
aliceUpdateGroupButton: byRole('button', { name: 'users.update_users_groups.alice.merveille' }),
aliceUpdateButton: byRole('button', { name: 'users.manage_user.alice.merveille' }),
alicedDeactivateButton: byRole('button', { name: 'users.deactivate' }),
bobUpdateGroupButton: byRole('button', { name: 'users.update_users_groups.bob.marley' }),
bobUpdateButton: byRole('button', { name: 'users.manage_user.bob.marley' }),
- bobRow: byRole('row', { name: 'BM Bob Marley bob.marley never' }),
+ bobRow: byRole('row', { name: 'BM Bob Marley bob.marley never never' }),
loginInput: byRole('textbox', { name: /login/ }),
userNameInput: byRole('textbox', { name: /name/ }),
passwordInput: byLabelText(/password/),
user={user}
manageProvider={manageProvider}
/>
- <td className="thin nowrap text-middle">
+ <td className="thin text-middle">
<UserScmAccounts scmAccounts={user.scmAccounts || []} />
</td>
<td className="thin nowrap text-middle">
<DateFromNow date={user.lastConnectionDate} hourPrecision={true} />
</td>
+ <td className="thin nowrap text-middle">
+ <DateFromNow date={user.sonarLintLastConnectionDate} hourPrecision={true} />
+ </td>
<td className="thin nowrap text-middle">
<UserGroups
groups={user.groups || []}
const user: User = {
active: true,
lastConnectionDate: '2019-01-18T15:06:33+0100',
+ sonarLintLastConnectionDate: '2019-01-16T15:06:33+0100',
local: false,
login: 'obi',
name: 'One',
"managed": false,
"name": "One",
"scmAccounts": [],
+ "sonarLintLastConnectionDate": "2019-01-16T15:06:33+0100",
}
}
/>
<td
- className="thin nowrap text-middle"
+ className="thin text-middle"
>
<UserScmAccounts
scmAccounts={[]}
hourPrecision={true}
/>
</td>
+ <td
+ className="thin nowrap text-middle"
+ >
+ <DateFromNow
+ date="2019-01-16T15:06:33+0100"
+ hourPrecision={true}
+ />
+ </td>
<td
className="thin nowrap text-middle"
>
"managed": false,
"name": "One",
"scmAccounts": [],
+ "sonarLintLastConnectionDate": "2019-01-16T15:06:33+0100",
}
}
/>
"managed": false,
"name": "One",
"scmAccounts": [],
+ "sonarLintLastConnectionDate": "2019-01-16T15:06:33+0100",
}
}
/>
"managed": false,
"name": "One",
"scmAccounts": [],
+ "sonarLintLastConnectionDate": "2019-01-16T15:06:33+0100",
}
}
/>
<td
- className="thin nowrap text-middle"
+ className="thin text-middle"
>
<UserScmAccounts
scmAccounts={[]}
hourPrecision={true}
/>
</td>
+ <td
+ className="thin nowrap text-middle"
+ >
+ <DateFromNow
+ date="2019-01-16T15:06:33+0100"
+ hourPrecision={true}
+ />
+ </td>
<td
className="thin nowrap text-middle"
>
"managed": false,
"name": "One",
"scmAccounts": [],
+ "sonarLintLastConnectionDate": "2019-01-16T15:06:33+0100",
}
}
/>
"managed": false,
"name": "One",
"scmAccounts": [],
+ "sonarLintLastConnectionDate": "2019-01-16T15:06:33+0100",
}
}
/>
externalProvider?: string;
groups?: string[];
lastConnectionDate?: string;
+ sonarLintLastConnectionDate?: string;
local: boolean;
managed: boolean;
scmAccounts?: string[];
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.update_users_groups=Update {0}'s group membership
users.update_groups=Update Groups
users.manage_user=Update {0}