Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a warning when the user runs on an outdated Raspberry Pi OS #492

Merged
merged 1 commit into from
May 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/locales/c.json
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,8 @@
"msg.modal-p2": "",
"msg.offline.not-responsing": "",
"msg.offline.please-wait": "",
"msg.outdated-os.message": "",
"msg.outdated-os.title": "",
"msg.sla-pour-resin": "",
"msg.sla-refill": "",
"msg.sysupgrade.pending": "",
Expand Down
4 changes: 3 additions & 1 deletion src/locales/source/cs.json
Original file line number Diff line number Diff line change
Expand Up @@ -275,5 +275,7 @@
"logs.file-size-unknown": "",
"ntf.calibration-error": "",
"ntf.low-resin.message": "",
"ntf.low-resin.title": ""
"ntf.low-resin.title": "",
"msg.outdated-os.message": "PrusaLink běží na zastaralém obrazu systému. Nahrajte ho prosím znovu podle <a href='https://help.prusa3d.com/guide/_221744#222170'>tohoto návodu</a>. Bohužel bude nutné PrusaLink znovu nastavit",
"msg.outdated-os.title": "Raspberry Pi OS je zastaralý"
}
4 changes: 3 additions & 1 deletion src/locales/source/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -289,5 +289,7 @@
"logs.file-size-unknown": "Die Protokolldatei hat eine unbekannte Größe und ist daher nur zum Herunterladen verfügbar",
"ntf.calibration-error": "Kalibrierungsfehler",
"ntf.low-resin.message": "Die gemessene Harzmenge ist zu gering. Der Druck kann fortgesetzt werden, es kann jedoch ein Nachfüllen erforderlich sein.",
"ntf.low-resin.title": "Harz niedrig"
"ntf.low-resin.title": "Harz niedrig",
"msg.outdated-os.message": "Ihr PrusaLink läuft mit einem veralteten Raspberry Pi Betriebssystem. Folgen Sie <a href='https://help.prusa3d.com/guide/_221744#222170'>dieser Anleitung, um die neueste Version zu flashen</a>. Dies wird PrusaLink zurücksetzen",
"msg.outdated-os.title": "Raspberry Pi OS ist veraltet"
}
4 changes: 3 additions & 1 deletion src/locales/source/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -278,5 +278,7 @@
"msg.sysupgrade.title": "Upgrade System Package?",
"msg.sysupgrade.wait-for-printer": "Waiting for the printer...",
"conn.error_status": "Error",
"conn.printer.not-supported": ""
"conn.printer.not-supported": "",
"msg.outdated-os.message": "Your PrusaLink is running on an outdated Raspberry Pi OS. Follow <a href='https://help.prusa3d.com/guide/_221744#222170'>this guide to flash the latest version</a>. This will reset PrusaLink",
"msg.outdated-os.title": "Raspberry Pi OS is out-of-date"
}
4 changes: 3 additions & 1 deletion src/locales/source/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -270,5 +270,7 @@
"logs.file-size-unknown": "El archivo de registro es de tamaño desconocido y, por lo tanto, solo está disponible para su descarga.",
"ntf.calibration-error": "Error de calibración",
"ntf.low-resin.message": "El volumen de resina medido es demasiado bajo. La impresión puede continuar, sin embargo, es posible que se requiera una recarga.",
"ntf.low-resin.title": "Poca resina"
"ntf.low-resin.title": "Poca resina",
"msg.outdated-os.message": "Tu PrusaLink está funcionando con un Raspberry Pi OS obsoleto. Sigue <a href='https://help.prusa3d.com/guide/_221744#222170'>esta guía para flashear la última versión</a>. Esto reiniciará PrusaLink",
"msg.outdated-os.title": "El SO de la Raspberry Pi está desactualizado"
}
4 changes: 3 additions & 1 deletion src/locales/source/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -281,5 +281,7 @@
"logs.file-size-unknown": "Le fichier de journal est d'une taille inconnue et n'est donc disponible que pour le téléchargement",
"ntf.calibration-error": "Erreur de Calibration",
"ntf.low-resin.message": "Le volume de résine mesuré est trop bas. L'impression peut continuer, mais un remplissage pourra être nécessaire.",
"ntf.low-resin.title": "Niveau de résine bas"
"ntf.low-resin.title": "Niveau de résine bas",
"msg.outdated-os.message": "Votre PrusaLink fonctionne sur un système un Raspberry Pi OS obsolète. Suivez <a href='https://help.prusa3d.com/guide/_221744#222170'>ce guide pour flasher la dernière version</a>. Cela réinitialisera PrusaLink",
"msg.outdated-os.title": "Raspberry Pi OS est obsolète"
}
4 changes: 3 additions & 1 deletion src/locales/source/it.json
Original file line number Diff line number Diff line change
Expand Up @@ -270,5 +270,7 @@
"logs.file-size-unknown": "Il file di log è di dimensioni sconosciute e quindi è disponibile solo per il download.",
"ntf.calibration-error": "Errore di calibrazione",
"ntf.low-resin.message": "Il volume di resina misurato è troppo basso. La stampa può continuare, ma potrebbe essere necessaria una ricarica.",
"ntf.low-resin.title": "Resina bassa"
"ntf.low-resin.title": "Resina bassa",
"msg.outdated-os.message": "Il sistema PrusaLink è in esecuzione su un sistema operativo Raspberry Pi non aggiornato. Seguire <a href='https://help.prusa3d.com/it/guide/impostazione-prusalink-e-prusa-connect-mk3-s-_221744#222176'>questa guida per flashare l'ultima versione</a>. Questo ripristinerà PrusaLink",
"msg.outdated-os.title": "Il sistema operativo di Raspberry Pi è obsoleto"
}
6 changes: 4 additions & 2 deletions src/locales/source/kr.json
Original file line number Diff line number Diff line change
Expand Up @@ -279,5 +279,7 @@
"logs.file-size-unknown": "로그파일의 크기를 알 수 없으므로 다운로드만 가능합니다.",
"ntf.calibration-error": "캘리브레이션 에러",
"ntf.low-resin.message": "측정된 레진양이 적습니다. 인쇄는 계속할 수 있지만 리필이 필요할 수는 있습니다.",
"ntf.low-resin.title": "레진 부족함"
}
"ntf.low-resin.title": "레진 부족함",
"msg.outdated-os.message": "",
"msg.outdated-os.title": ""
}
4 changes: 3 additions & 1 deletion src/locales/source/lt.json
Original file line number Diff line number Diff line change
Expand Up @@ -278,5 +278,7 @@
"logs.file-size-unknown": "",
"ntf.calibration-error": "",
"ntf.low-resin.message": "",
"ntf.low-resin.title": ""
"ntf.low-resin.title": "",
"msg.outdated-os.message": "",
"msg.outdated-os.title": ""
}
4 changes: 3 additions & 1 deletion src/locales/source/nl.json
Original file line number Diff line number Diff line change
Expand Up @@ -278,5 +278,7 @@
"logs.file-size-unknown": "",
"ntf.calibration-error": "",
"ntf.low-resin.message": "",
"ntf.low-resin.title": ""
"ntf.low-resin.title": "",
"msg.outdated-os.message": "",
"msg.outdated-os.title": ""
}
4 changes: 3 additions & 1 deletion src/locales/source/pl.json
Original file line number Diff line number Diff line change
Expand Up @@ -270,5 +270,7 @@
"logs.file-size-unknown": "Plik logu ma nieznany rozmiar i dlatego jest dostępny tylko do pobrania",
"ntf.calibration-error": "Błąd kalibracji",
"ntf.low-resin.message": "Zmierzona ilość żywicy jest zbyt niska. Drukowanie można kontynuować, jednak konieczne może być uzupełnienie w trakcie.",
"ntf.low-resin.title": "Niski poziom żywicy"
"ntf.low-resin.title": "Niski poziom żywicy",
"msg.outdated-os.message": "Twój PrusaLink działa na nieaktualnej wersji systemu operacyjnego Raspberry Pi. Postępuj zgodnie z <a href='https://help.prusa3d.com/pl/guide/konfiguracja-prusalink-i-prusa-connect-mk3-s-_221744'>tym przewodnikiem, aby wgrać najnowszą wersję</a>. Spowoduje to zresetowanie PrusaLink",
"msg.outdated-os.title": "System operacyjny Raspberry Pi jest nieaktualny"
}
4 changes: 3 additions & 1 deletion src/locales/source/sk.json
Original file line number Diff line number Diff line change
Expand Up @@ -281,5 +281,7 @@
"logs.file-size-unknown": "",
"ntf.calibration-error": "",
"ntf.low-resin.message": "",
"ntf.low-resin.title": ""
"ntf.low-resin.title": "",
"msg.outdated-os.message": "",
"msg.outdated-os.title": ""
}
17 changes: 16 additions & 1 deletion src/printer/components/settings.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,13 @@ import {
getSerialNumber,
} from "./settingsActions";
import { handleError } from "./errors";
import { success } from "./toast";
import { success, warning } from "./toast";
import { modal } from "./modal";

let serialNumber = null;
let prusaLinkVersion = null;
let connectUrl = null;
let shownOutdatedOs = false;

const logsModule = process.env.WITH_LOGS
? require("./settings/logs").default
Expand Down Expand Up @@ -68,13 +69,27 @@ function updateApiKey(apiKey) {
}
}

function checkOldLink(data) {
if (shownOutdatedOs ||
typeof data.version.system === "undefined" ||
typeof data.version.system.DESCRIPTION === "undefined" ||
data.version.system.DESCRIPTION !== "Raspbian GNU/Linux 11 (bullseye)") {
return;
}
const message = translate("msg.outdated-os.message");
const title = translate("msg.outdated-os.title");
warning(title, message, ()=> {}, false);
shownOutdatedOs = true;
}

function initBaseSettings() {
getJson("/api/version?system=1")
.then((result) => {
const data = {
version: result.data,
};
prusaLinkVersion = data.version.server;
checkOldLink(data);
updateProperties("settings", data);
updateSystemVersionProperties(data);
})
Expand Down
20 changes: 10 additions & 10 deletions src/printer/components/toast.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ export const createToast = (title, message, type) => {
* onClose: () => void,
* }}
*/
function show({ title, message, type, onClose }) {
function show({ title, message, type, onClose, autoClose = true }) {
const article = createToast(title, message, type);
const close = () => {
if (toast_context.contains(article)) {
Expand All @@ -50,7 +50,7 @@ function show({ title, message, type, onClose }) {
});

const timeout = timeouts[type];
if (timeout)
if (timeout && autoClose)
ddx32 marked this conversation as resolved.
Show resolved Hide resolved
setTimeout(close, timeout);

toast_context.appendChild(article);
Expand All @@ -62,8 +62,8 @@ function show({ title, message, type, onClose }) {
* @param {string} message
* @param {() => void | undefined} onClose
*/
export function info(title, message, onClose) {
show({ type: "info", title, message, onClose });
export function info(title, message, onClose , autoClose = true ) {
show({ type: "info", title, message, onClose, autoClose });
}

/**
Expand All @@ -72,8 +72,8 @@ export function info(title, message, onClose) {
* @param {string} message
* @param {() => void | undefined} onClose
*/
export function warning(title, message, onClose) {
show({ type: "warning", title, message, onClose });
export function warning(title, message, onClose , autoClose = true ) {
show({ type: "warning", title, message, onClose, autoClose });
}

/**
Expand All @@ -82,8 +82,8 @@ export function warning(title, message, onClose) {
* @param {string} message
* @param {() => void | undefined} onClose
*/
export function success(title, message, onClose) {
show({ type: "success", title, message, onClose });
export function success(title, message, onClose , autoClose = true ) {
show({ type: "success", title, message, onClose, autoClose });
}

/**
Expand All @@ -92,8 +92,8 @@ export function success(title, message, onClose) {
* @param {string} message
* @param {() => void | undefined} onClose
*/
export function error(title, message, onClose) {
show({ type: "error", title, message, onClose });
export function error(title, message, onClose , autoClose = true ) {
show({ type: "error", title, message, onClose, autoClose });
}

export default { info, warning, success, error };
Loading