Submit
Path:
~
/
/
usr
/
share
/
grafana
/
public
/
app
/
features
/
admin
/
UserListPublicDashboardPage
/
File Content:
UserListPublicDashboardPage.tsx
import React from 'react'; import { selectors as e2eSelectors } from '@grafana/e2e-selectors/src'; import { HorizontalGroup, Icon, Tag, Tooltip } from '@grafana/ui/src'; import { Page } from 'app/core/components/Page/Page'; import { Trans, t } from 'app/core/internationalization'; import { useGetActiveUsersQuery } from '../../dashboard/api/publicDashboardApi'; import { DashboardsListModalButton } from './DashboardsListModalButton'; import { DeleteUserModalButton } from './DeleteUserModalButton'; const selectors = e2eSelectors.pages.UserListPage.publicDashboards; export const UserListPublicDashboardPage = () => { const { data: users, isLoading } = useGetActiveUsersQuery(); return ( <Page.Contents isLoading={isLoading}> <table className="filter-table form-inline" data-testid={selectors.container}> <thead> <tr> <th> <Trans i18nKey="public-dashboard-users-access-list.table-header.email-label">Email</Trans> </th> <th> <span> <Trans i18nKey="public-dashboard-users-access-list.table-header.activated-label">Activated</Trans> </span> <Tooltip placement="top" content={t( 'public-dashboard-users-access-list.table-header.activated-tooltip', 'Earliest time user has been an active user to a dashboard' )} > <Icon name="question-circle" /> </Tooltip> </th> <th> <Trans i18nKey="public-dashboard-users-access-list.table-header.last-active-label">Last active</Trans> </th> <th> <Trans i18nKey="public-dashboard-users-access-list.table-header.origin-label">Origin</Trans> </th> <th> <Trans i18nKey="public-dashboard-users-access-list.table-header.role-label">Role</Trans> </th> <th></th> </tr> </thead> <tbody> {users?.map((user) => ( <tr key={user.email}> <td className="max-width-10"> <span className="ellipsis" title={user.email}> {user.email} </span> </td> <td className="max-width-10">{user.firstSeenAtAge}</td> <td className="max-width-10">{user.lastSeenAtAge}</td> <td className="max-width-10"> <HorizontalGroup spacing="sm"> <span>{user.totalDashboards} dashboard(s)</span> <DashboardsListModalButton email={user.email} /> </HorizontalGroup> </td> <td className="max-width-10"> <Tag name="Viewer" colorIndex={19} /> </td> <td className="text-right"> <DeleteUserModalButton user={user} /> </td> </tr> ))} </tbody> </table> </Page.Contents> ); };
Submit
FILE
FOLDER
INFO
Name
Size
Permission
Action
DashboardsListModalButton.tsx
4276 bytes
0644
DeleteUserModalButton.tsx
2909 bytes
0644
UserListPublicDashboardPage.tsx
3046 bytes
0644
N4ST4R_ID | Naxtarrr