mirror of https://github.com/portainer/portainer
63 lines
1.5 KiB
TypeScript
63 lines
1.5 KiB
TypeScript
|
import { useCurrentStateAndParams } from '@uirouter/react';
|
||
|
|
||
|
import { useEnvironmentId } from '@/react/hooks/useEnvironmentId';
|
||
|
import { NomadEventsList } from '@/react/nomad/types';
|
||
|
|
||
|
import { TableSettingsProvider } from '@@/datatables/useTableSettings';
|
||
|
import { PageHeader } from '@@/PageHeader';
|
||
|
|
||
|
import { EventsDatatable } from './EventsDatatable';
|
||
|
import { useEvents } from './useEvents';
|
||
|
|
||
|
export function EventsView() {
|
||
|
const environmentId = useEnvironmentId();
|
||
|
const { query, invalidateQuery } = useEvents();
|
||
|
const {
|
||
|
params: { jobID, taskName },
|
||
|
} = useCurrentStateAndParams();
|
||
|
|
||
|
const breadcrumbs = [
|
||
|
{
|
||
|
label: 'Nomad Jobs',
|
||
|
link: 'nomad.jobs',
|
||
|
linkParams: { id: environmentId },
|
||
|
},
|
||
|
{ label: jobID },
|
||
|
{ label: taskName },
|
||
|
{ label: 'Events' },
|
||
|
];
|
||
|
|
||
|
const defaultSettings = {
|
||
|
pageSize: 10,
|
||
|
sortBy: {},
|
||
|
};
|
||
|
|
||
|
return (
|
||
|
<>
|
||
|
{/* header */}
|
||
|
<PageHeader
|
||
|
title="Event list"
|
||
|
breadcrumbs={breadcrumbs}
|
||
|
reload
|
||
|
loading={query.isLoading || query.isFetching}
|
||
|
onReload={invalidateQuery}
|
||
|
/>
|
||
|
|
||
|
<div className="row">
|
||
|
<div className="col-sm-12">
|
||
|
<TableSettingsProvider
|
||
|
defaults={defaultSettings}
|
||
|
storageKey="nomad-events"
|
||
|
>
|
||
|
{/* events table */}
|
||
|
<EventsDatatable
|
||
|
data={(query.data || []) as NomadEventsList}
|
||
|
isLoading={query.isLoading}
|
||
|
/>
|
||
|
</TableSettingsProvider>
|
||
|
</div>
|
||
|
</div>
|
||
|
</>
|
||
|
);
|
||
|
}
|