diff --git a/CHANGELOG.md b/CHANGELOG.md index c66aa6705..ed8d70dc0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,8 @@ All notable changes to this project will be documented in this file. ## [Unreleased] +- [#281](https://github.com/os2display/display-admin-client/pull/281) + - Fixed screen status bugs. - [#274](https://github.com/os2display/display-admin-client/pull/274) - Added screen status to screen list. - Refactored screen status on screen edit. diff --git a/src/components/screen/screen-status.jsx b/src/components/screen/screen-status.jsx index 2b1a2290a..625397b4b 100644 --- a/src/components/screen/screen-status.jsx +++ b/src/components/screen/screen-status.jsx @@ -124,28 +124,74 @@ function ScreenStatus({ screen, handleInput = () => {}, mode = "default" }) { ); } + if ( + status.releaseTimestamp === null || + status.releaseVersion === null || + status.latestRequestDateTime === null + ) { + return ( + + ); + } + const latestRequest = dayjs(status.latestRequestDateTime); - const inOneHour = dayjs().add(1, "hours"); + const oneHourAgo = dayjs().subtract(1, "hours"); + + if (status?.clientMeta?.tokenExpired) { + return ( + + ); + } - if (status?.clientMeta?.tokenExpired || latestRequest > inOneHour) { + if (latestRequest < oneHourAgo) { return ( - + ); } if (clientRelease) { if (status?.releaseVersion !== clientRelease?.releaseVersion) { - return ; + return ( + + ); } if (status?.releaseTimestamp !== clientRelease?.releaseTimestamp) { - return ; + return ( + + ); } } return (
- +
); } @@ -209,14 +255,14 @@ function ScreenStatus({ screen, handleInput = () => {}, mode = "default" }) { {status?.latestRequestDateTime && (
  • {t("latest-request")}:{" "} - {dayjs(status?.latestRequestDateTime).format( + {dayjs(status.latestRequestDateTime).format( "D/M YYYY HH:mm" )}
  • )} {status?.releaseVersion && (
  • - {t("release-version")}: {status?.releaseVersion} + {t("release-version")}: {status.releaseVersion} {notRunningLatestRelease && ( <> {" "} @@ -228,7 +274,7 @@ function ScreenStatus({ screen, handleInput = () => {}, mode = "default" }) { {status?.releaseTimestamp && (
  • {t("release-timestamp")}:{" "} - {dayjs(status?.releaseTimestamp * 1000).format( + {dayjs(status.releaseTimestamp * 1000).format( "D/M YYYY HH:mm" )} {notRunningLatestRelease && ( diff --git a/src/components/screen/util/campaign-icon.jsx b/src/components/screen/util/campaign-icon.jsx index 145bef7a2..94ccafcf0 100644 --- a/src/components/screen/util/campaign-icon.jsx +++ b/src/components/screen/util/campaign-icon.jsx @@ -19,7 +19,7 @@ import { * @param {number} props.delay Delay the fetch. * @returns {object} The campaign icon. */ -function CampaignIcon({ id, delay }) { +function CampaignIcon({ id, delay = 1000 }) { const { t } = useTranslation("common", { keyPrefix: "campaign-icon" }); const dispatch = useDispatch(); const [isOverriddenByCampaign, setIsOverriddenByCampaign] = useState(null); @@ -103,10 +103,6 @@ function CampaignIcon({ id, delay }) { : t("not-overridden-by-campaign"); } -CampaignIcon.defaultProps = { - delay: 1000, -}; - CampaignIcon.propTypes = { id: PropTypes.string.isRequired, delay: PropTypes.number, diff --git a/src/components/util/list/list.jsx b/src/components/util/list/list.jsx index 78808d035..4dd87ec45 100644 --- a/src/components/util/list/list.jsx +++ b/src/components/util/list/list.jsx @@ -227,11 +227,11 @@ function List({ switch (screenStatusParam) { case "active": setExists({ screenUser: true }); - setScreenUserLatestRequest({ after: anHourAgo.valueOf() }); + setScreenUserLatestRequest({ after: anHourAgo.toISOString() }); break; case "inactive": setExists({ screenUser: true }); - setScreenUserLatestRequest({ before: anHourAgo.valueOf() }); + setScreenUserLatestRequest({ before: anHourAgo.toISOString() }); break; case "not-connected": setExists({ screenUser: false }); diff --git a/src/translations/da/common.json b/src/translations/da/common.json index b4b79a584..e758e8bdd 100644 --- a/src/translations/da/common.json +++ b/src/translations/da/common.json @@ -80,7 +80,10 @@ "latest-release-timestamp": "Seneste udgivelsestidspunkt", "latest-request-warning": "Skærmen har ikke kommunikeret i mere end en time.", "release-warning": "Skærmen kører ikke seneste udgivelse.", - "newest": "Nyeste" + "newest": "Nyeste", + "no-info": "Endnu ikke aktiv", + "no-communication-since": "Inaktiv siden: {{ts}}", + "ok": "Aktiv" }, "screen-list": { "columns": { @@ -118,7 +121,7 @@ }, "roles": { "ROLE_USER": "Bruger", - "ROLE_SCREEN": "Skærm", + "ROLE_SCREEN": "Skærm", "ROLE_EDITOR": "Redaktør", "ROLE_EXTERNAL_USER": "Ekstern bruger", "ROLE_EXTERNAL_USER_ADMIN": "Ekstern brugeradministrator", @@ -380,7 +383,7 @@ "published": "Udgivet", "number-of-slides": "Slides tilknyttede" }, - "more-playlists":"Hent flere spillelister", + "more-playlists": "Hent flere spillelister", "edit-playlists-help-text": "Hvis du vil redigere en spilleliste, åbnes dette i en ny fane.", "remove-from-list": "Fjern fra liste", "info-modal": {