From fda757a700a0fcad142c248f1f8213e7302471f7 Mon Sep 17 00:00:00 2001 From: RachelElysia <71795832+RachelElysia@users.noreply.github.com> Date: Mon, 18 Oct 2021 13:44:13 -0400 Subject: [PATCH] Dashboard: Fix activity feed verbage (#2540) --- changes/issue-2419-human-readable-activities | 1 + frontend/interfaces/activity.ts | 6 +++-- .../Homepage/ActivityFeed/ActivityFeed.tsx | 22 +++++++++++++++++-- 3 files changed, 25 insertions(+), 4 deletions(-) create mode 100644 changes/issue-2419-human-readable-activities diff --git a/changes/issue-2419-human-readable-activities b/changes/issue-2419-human-readable-activities new file mode 100644 index 0000000000..08b94d638c --- /dev/null +++ b/changes/issue-2419-human-readable-activities @@ -0,0 +1 @@ +* Update activity feed verbage diff --git a/frontend/interfaces/activity.ts b/frontend/interfaces/activity.ts index e4b59c0bc7..bef8dcf4a6 100644 --- a/frontend/interfaces/activity.ts +++ b/frontend/interfaces/activity.ts @@ -1,4 +1,5 @@ import PropTypes from "prop-types"; +import { IQuery } from "./query"; export enum ActivityType { CreatedPack = "created_pack", @@ -10,8 +11,8 @@ export enum ActivityType { CreatedTeam = "created_team", DeletedTeam = "deleted_team", LiveQuery = "live_query", - AppliedPackSpec = "applied_pack_spec", - AppliedQuerySpec = "applied_query_spec", + AppliedSpecPack = "applied_spec_pack", + AppliedSpecSavedQuery = "applied_spec_saved_query", } export interface IActivity { created_at: string; @@ -31,6 +32,7 @@ export interface IActivityDetails { team_id?: number; team_name?: string; targets_count?: number; + specs?: IQuery[]; } export default PropTypes.shape({ diff --git a/frontend/pages/Homepage/ActivityFeed/ActivityFeed.tsx b/frontend/pages/Homepage/ActivityFeed/ActivityFeed.tsx index e7b9aa8c2d..0f203f8222 100644 --- a/frontend/pages/Homepage/ActivityFeed/ActivityFeed.tsx +++ b/frontend/pages/Homepage/ActivityFeed/ActivityFeed.tsx @@ -29,15 +29,27 @@ const TAGGED_TEMPLATES = { ? "ran a live query" : `ran a live query on ${count} ${count === 1 ? "host" : "hosts"}`; }, + editPackCtlActivityTemplate: () => { + return "edited a pack using fleetctl"; + }, + editQueryCtlActivityTemplate: (activity: IActivity) => { + const count = activity.details?.specs?.length; + return typeof count === "undefined" || typeof count !== "number" + ? "edited a query using fleetctl" + : `edited ${count === 1 ? "a query" : "queries"} using fleetctl`; + }, defaultActivityTemplate: (activity: IActivity) => { const entityName = find(activity.details, (_, key) => key.includes("_name") ); + + const activityType = lowerCase(activity.type).replace(" saved", ""); + return !entityName ? ( - `${lowerCase(activity.type)}` + `${activityType}` ) : ( - {lowerCase(activity.type)} {entityName} + {activityType} {entityName} ); }, @@ -88,6 +100,12 @@ const ActivityFeed = (): JSX.Element => { if (activity.type === ActivityType.LiveQuery) { return TAGGED_TEMPLATES.liveQueryActivityTemplate(activity); } + if (activity.type === ActivityType.AppliedSpecPack) { + return TAGGED_TEMPLATES.editPackCtlActivityTemplate(); + } + if (activity.type === ActivityType.AppliedSpecSavedQuery) { + return TAGGED_TEMPLATES.editQueryCtlActivityTemplate(activity); + } return TAGGED_TEMPLATES.defaultActivityTemplate(activity); };