From c3ec182ba66d2ff4876407ad9f9b1360a0b6df77 Mon Sep 17 00:00:00 2001 From: RachelElysia <71795832+RachelElysia@users.noreply.github.com> Date: Thu, 15 Feb 2024 13:31:44 -0500 Subject: [PATCH] [Released bug] Fleet UI: Fix my device page last restarted date (#16879) --- changes/16681-device-last-restarted-bug | 1 + .../details/DeviceUserPage/DeviceUserPage.tsx | 43 +++------------ .../HostDetailsPage/HostDetailsPage.tsx | 53 ++++--------------- .../details/cards/HostSummary/HostSummary.tsx | 46 ++++++++-------- frontend/utilities/constants.tsx | 38 +++++++++++++ 5 files changed, 82 insertions(+), 99 deletions(-) create mode 100644 changes/16681-device-last-restarted-bug diff --git a/changes/16681-device-last-restarted-bug b/changes/16681-device-last-restarted-bug new file mode 100644 index 0000000000..912291b031 --- /dev/null +++ b/changes/16681-device-last-restarted-bug @@ -0,0 +1 @@ +- Fix device page showing invalid date for last restarted diff --git a/frontend/pages/hosts/details/DeviceUserPage/DeviceUserPage.tsx b/frontend/pages/hosts/details/DeviceUserPage/DeviceUserPage.tsx index 7aa966dba8..b9fa3811bc 100644 --- a/frontend/pages/hosts/details/DeviceUserPage/DeviceUserPage.tsx +++ b/frontend/pages/hosts/details/DeviceUserPage/DeviceUserPage.tsx @@ -25,7 +25,11 @@ import InfoBanner from "components/InfoBanner"; import Icon from "components/Icon/Icon"; import { normalizeEmptyValues } from "utilities/helpers"; import PATHS from "router/paths"; -import { DOCUMENT_TITLE_SUFFIX } from "utilities/constants"; +import { + DOCUMENT_TITLE_SUFFIX, + HOST_ABOUT_DATA, + HOST_SUMMARY_DATA, +} from "utilities/constants"; import HostSummaryCard from "../cards/HostSummary"; import AboutCard from "../cards/About"; @@ -205,39 +209,9 @@ const DeviceUserPage = ({ } ); - const titleData = normalizeEmptyValues( - pick(host, [ - "id", - "status", - "issues", - "memory", - "cpu_type", - "os_version", - "osquery_version", - "enroll_secret_name", - "detail_updated_at", - "percent_disk_space_available", - "gigs_disk_space_available", - "team_name", - "platform", - "mdm", - ]) - ); + const summaryData = normalizeEmptyValues(pick(host, HOST_SUMMARY_DATA)); - const aboutData = normalizeEmptyValues( - pick(host, [ - "seen_time", - "uptime", - "last_enrolled_at", - "hardware_model", - "hardware_serial", - "primary_ip", - "public_ip", - "geolocation", - "batteries", - "detail_updated_at", - ]) - ); + const aboutData = normalizeEmptyValues(pick(host, HOST_ABOUT_DATA)); const toggleInfoModal = useCallback(() => { setShowInfoModal(!showInfoModal); @@ -392,8 +366,7 @@ const DeviceUserPage = ({ )} { @@ -795,8 +763,7 @@ const HostDetailsPage = ({ /> void; @@ -164,9 +163,8 @@ const getHostDiskEncryptionTooltipMessage = ( }; const HostSummary = ({ - titleData, + summaryData, bootstrapPackageData, - diskEncryptionEnabled, isPremiumTier, isSandboxMode = false, toggleOSSettingsModal, @@ -180,10 +178,14 @@ const HostSummary = ({ osSettings, hostMdmDeviceStatus, }: IHostSummaryProps): JSX.Element => { - const { status, platform } = titleData; + const { + status, + platform, + disk_encryption_enabled: diskEncryptionEnabled, + } = summaryData; const renderRefetch = () => { - const isOnline = titleData.status === "online"; + const isOnline = summaryData.status === "online"; let isDisabled = false; let tooltip: React.ReactNode = <>; @@ -237,11 +239,11 @@ const HostSummary = ({ data-html > - Failing policies ({titleData.issues.failing_policies_count}) + Failing policies ({summaryData.issues.failing_policies_count}) - {titleData.issues.total_issues_count} + {summaryData.issues.total_issues_count} @@ -251,8 +253,8 @@ const HostSummary = ({
Team - {titleData.team_name ? ( - `${titleData.team_name}` + {summaryData.team_name ? ( + `${summaryData.team_name}` ) : ( No team )} @@ -316,7 +318,7 @@ const HostSummary = ({ />
- {(titleData.issues?.total_issues_count > 0 || isSandboxMode) && + {(summaryData.issues?.total_issues_count > 0 || isSandboxMode) && isPremiumTier && renderIssues()} @@ -352,9 +354,11 @@ const HostSummary = ({ Disk space @@ -366,28 +370,28 @@ const HostSummary = ({
Memory - {wrapFleetHelper(humanHostMemory, titleData.memory)} + {wrapFleetHelper(humanHostMemory, summaryData.memory)}
Processor type - {titleData.cpu_type} + {summaryData.cpu_type}
Operating system - {titleData.os_version} + {summaryData.os_version}
Osquery - {titleData.osquery_version} + {summaryData.osquery_version}
); }; - const lastFetched = titleData.detail_updated_at ? ( + const lastFetched = summaryData.detail_updated_at ? ( ) : ( ": unavailable" @@ -430,7 +434,7 @@ const HostSummary = ({

{deviceUser ? "My device" - : titleData.display_name || DEFAULT_EMPTY_CELL_VALUE} + : summaryData.display_name || DEFAULT_EMPTY_CELL_VALUE}

{renderDeviceStatusTag()} diff --git a/frontend/utilities/constants.tsx b/frontend/utilities/constants.tsx index 557a40558b..80b264fd8f 100644 --- a/frontend/utilities/constants.tsx +++ b/frontend/utilities/constants.tsx @@ -307,3 +307,41 @@ export const EMPTY_AGENT_OPTIONS = { export const DEFAULT_EMPTY_CELL_VALUE = "---"; export const DOCUMENT_TITLE_SUFFIX = "Fleet"; + +export const HOST_SUMMARY_DATA = [ + "id", + "status", + "issues", + "memory", + "cpu_type", + "platform", + "os_version", + "osquery_version", + "enroll_secret_name", + "detail_updated_at", + "percent_disk_space_available", + "gigs_disk_space_available", + "team_name", + "disk_encryption_enabled", + "display_name", // Not rendered on my device page +]; + +export const HOST_ABOUT_DATA = [ + "seen_time", + "uptime", + "last_enrolled_at", + "hardware_model", + "hardware_serial", + "primary_ip", + "public_ip", + "geolocation", + "batteries", + "detail_updated_at", + "last_restarted_at", +]; + +export const HOST_OSQUERY_DATA = [ + "config_tls_refresh", + "logger_tls_period", + "distributed_interval", +];