Skip to content

Commit

Permalink
Activity Log UI inception
Browse files Browse the repository at this point in the history
  • Loading branch information
nelsonkopliku committed Jul 4, 2024
1 parent 4fa886d commit ebe32fc
Show file tree
Hide file tree
Showing 5 changed files with 88 additions and 0 deletions.
3 changes: 3 additions & 0 deletions assets/js/lib/api/activityLogs.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import { networkClient } from '@lib/network';

export const getActivityLog = () => networkClient.get(`/activity_log`);
70 changes: 70 additions & 0 deletions assets/js/pages/ActivityLogPage/ActivityLogPage.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
import React, { useState, useEffect } from 'react';

import { logError } from '@lib/log';

import Table from '@common/Table';
import { getActivityLog } from '../../lib/api/activityLogs';

function ActivityLogPage() {
const [activityLog, setActivityLog] = useState([]);
// const [isLoading, setIsLoading] = useState(true);

useEffect(() => {
getActivityLog()
.then((response) => {
setActivityLog(response.data);
// setIsLoading(false);
})
.catch((e) => logError(e));
}, []);

const config = {
pagination: true,
usePadding: false,
columns: [
{
title: 'Time',
key: 'occurred_on',
},
{
title: 'Event Type',
key: 'type',
},
{
title: 'Resource',
key: 'metadata',
render: ({ resource_type }, { type }) => {
if (['resource_tagging', 'resource_untagging'].includes(type)) {
return resource_type;
}
return 'Resource unavailable';
},
},
{
title: 'User',
key: 'actor',
},
{
title: 'Message',
key: 'metadata',
render: (content, { type }) => {
if (type === 'resource_tagging') {
const { added_tag, resource_id } = content;
return `Tag "${added_tag}" added to "${resource_id}"`;
}

if (type === 'resource_untagging') {
const { removed_tag, resource_id } = content;
return `Tag "${removed_tag}" removed to "${resource_id}"`;
}

return 'message unavailable';
},
},
],
};

return <Table config={config} data={activityLog} />;
}

export default ActivityLogPage;
3 changes: 3 additions & 0 deletions assets/js/pages/ActivityLogPage/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import ActivityLogPage from './ActivityLogPage';

export default ActivityLogPage;
7 changes: 7 additions & 0 deletions assets/js/pages/Layout/Layout.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import {
EOS_KEYBOARD_DOUBLE_ARROW_LEFT,
EOS_KEYBOARD_DOUBLE_ARROW_RIGHT,
EOS_SUPERVISED_USER_CIRCLE_OUTLINED,
EOS_ASSIGNMENT,
} from 'eos-icons-react';

import TrentoLogo from '@static/trento-logo-stacked.svg';
Expand Down Expand Up @@ -59,6 +60,12 @@ const navigation = [
icon: EOS_SUPERVISED_USER_CIRCLE_OUTLINED,
permittedFor: ['all:users'],
},
{
name: 'Activity Log',
href: '/activity_log',
icon: EOS_ASSIGNMENT,
// permittedFor: ['all:users'],
},
{
name: 'Settings',
href: '/settings',
Expand Down
5 changes: 5 additions & 0 deletions assets/js/trento.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ import SettingsPage from '@pages/SettingsPage';
import SomethingWentWrong from '@pages/SomethingWentWrong';
import UsersPage, { CreateUserPage, EditUserPage } from '@pages/Users';
import ProfilePage from '@pages/Profile';
import ActivityLogPage from '@pages/ActivityLogPage';

import { profile } from '@lib/auth';
import { networkClient } from '@lib/network';
Expand Down Expand Up @@ -113,6 +114,10 @@ const createRouter = ({ getUser }) =>
path="hosts/:hostID/patches/:advisoryID"
element={<AdvisoryDetailsPage />}
/>
<Route
path="activity_log"
element={<ActivityLogPage />}
/>
<Route
element={
<ForbiddenGuard permitted={['all:users']} outletMode />
Expand Down

0 comments on commit ebe32fc

Please sign in to comment.