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": {