diff --git a/interface/src/app/settings/Version.tsx b/interface/src/app/settings/Version.tsx index 2529f1575..d53046e5e 100644 --- a/interface/src/app/settings/Version.tsx +++ b/interface/src/app/settings/Version.tsx @@ -9,10 +9,12 @@ import WarningIcon from '@mui/icons-material/Warning'; import { Box, Button, + Checkbox, Dialog, DialogActions, DialogContent, DialogTitle, + FormControlLabel, Grid2 as Grid, Link, Typography @@ -91,7 +93,7 @@ const Version = () => { }, [latestVersion, latestDevVersion]); const getBinURL = () => { - if (!latestVersion || !latestDevVersion) { + if (!internetLive) { return ''; } const filename = @@ -182,21 +184,16 @@ const Version = () => { setUsingDevVersion(data.emsesp_version.includes('dev')); }; - const switchToDev = () => { - setUsingDevVersion(true); - setUpgradeAvailable(true); - }; - - const showButtons = () => { + const showButtons = (showDev?: boolean) => { if (downloadOnly) { return ( ); }; @@ -223,6 +223,8 @@ const Version = () => { return ; } + const isDev = data.emsesp_version.includes('dev'); + return ( <> @@ -269,11 +271,36 @@ const Version = () => { {LL.RELEASE_TYPE()} - - {data.emsesp_version.includes('dev') - ? LL.DEVELOPMENT() - : LL.STABLE()} - + + } + checked={!isDev} + label={LL.STABLE()} + sx={{ '& .MuiSvgIcon-root': { fontSize: 18 } }} + /> + + } + checked={isDev} + label={LL.DEVELOPMENT()} + sx={{ '& .MuiSvgIcon-root': { fontSize: 18 } }} + /> @@ -303,10 +330,17 @@ const Version = () => { {latestVersion.published_at && (  ( - {Math.floor((Date.now() - new Date(latestVersion.published_at).getTime()) / (1000 * 60 * 60 * 24))} days ago) + {LL.DAYS_AGO( + Math.floor( + (Date.now() - + new Date(latestVersion.published_at).getTime()) / + (1000 * 60 * 60 * 24) + ) + )} + ) )} -   {!usingDevVersion && showButtons()} + {!usingDevVersion && showButtons(false)} @@ -317,14 +351,21 @@ const Version = () => { {latestDevVersion.name} - + {latestDevVersion.published_at && (  ( - {Math.floor((Date.now() - new Date(latestDevVersion.published_at).getTime()) / (1000 * 60 * 60 * 24))} days ago) + {LL.DAYS_AGO( + Math.floor( + (Date.now() - + new Date(latestDevVersion.published_at).getTime()) / + (1000 * 60 * 60 * 24) + ) + )} + ) )} -   {usingDevVersion && showButtons()} + {showButtons(true)} @@ -346,25 +387,11 @@ const Version = () => { {LL.LATEST_VERSION()} )} - - {!data.emsesp_version.includes('dev') && !usingDevVersion && ( - - - - )} ) : ( - + - no access to download site + {LL.INTERNET_CONNECTION_REQUIRED()} )} {renderInstallDialog()} diff --git a/interface/src/i18n/cz/index.ts b/interface/src/i18n/cz/index.ts index 4e5585d9f..29918c325 100644 --- a/interface/src/i18n/cz/index.ts +++ b/interface/src/i18n/cz/index.ts @@ -332,9 +332,8 @@ const cz: Translation = { SPECIAL_FUNCTIONS: 'Speciální funkce', WAIT_FIRMWARE: 'Firmware se nahrává a instaluje', INSTALL_VERSION: 'Tímto se instalovat verze {0}. Jste si jistí?', - SWITCH_DEV: 'přepnout na vývojovou verzi', UPGRADE_AVAILABLE: 'Je k dispozici aktualizace firmwaru!', - LATEST_VERSION: 'Používáte nejnovější verzi firmwaru.', + LATEST_VERSION: 'Používáte nejnovější verzi firmwaru', PLEASE_WAIT: 'Prosím čekejte', RESTARTING_PRE: 'Inicializace', RESTARTING_POST: 'Příprava', @@ -350,7 +349,9 @@ const cz: Translation = { THIS_VERSION: 'This Version', // TODO translate PLATFORM: 'Platform', // TODO translate RELEASE_TYPE: 'Release Type', // TODO translate - REINSTALL: 'Re-install' // TODO translate + REINSTALL: 'Re-install', // TODO translate + INTERNET_CONNECTION_REQUIRED: 'Internet connection required for automatic version checking and upgrading', + DAYS_AGO: '{0} den{{y|ní|ní|ní|ní|ní}} zpátky' }; export default cz; diff --git a/interface/src/i18n/de/index.ts b/interface/src/i18n/de/index.ts index 2bc12942b..e1761b424 100644 --- a/interface/src/i18n/de/index.ts +++ b/interface/src/i18n/de/index.ts @@ -332,9 +332,8 @@ const de: Translation = { SPECIAL_FUNCTIONS: 'Sonderfunktionen', WAIT_FIRMWARE: 'Die Firmware wird hochgeladen und installiert.', INSTALL_VERSION: 'Dadurch wird die Version {0} heruntergeladen. Sind Sie sicher?', - SWITCH_DEV: 'Wechseln Sie zur Entwicklungsversion!', UPGRADE_AVAILABLE: 'Es ist ein Firmware-Upgrade verfügbar.', - LATEST_VERSION: 'Sie verwenden die neueste Firmware-Version.', + LATEST_VERSION: 'Sie verwenden die neueste Firmware-Version', PLEASE_WAIT: 'Bitte warten', RESTARTING_PRE: 'Initialisierung', RESTARTING_POST: 'Vorbereitung', @@ -347,10 +346,12 @@ const de: Translation = { NO_DATA_1: 'Keine favorisierten EMS-Entitäten gefunden! Verwenden Sie das Modul', NO_DATA_2: ', um sie zu markieren.', NO_DATA_3: 'Um alle verfügbaren Entitäten anzuzeigen, gehen Sie zu', - THIS_VERSION: 'This Version', + THIS_VERSION: 'Diese Version', PLATFORM: 'Plattform', RELEASE_TYPE: 'Release Typ', - REINSTALL: 'Neu installieren' + REINSTALL: 'Neu installieren', + INTERNET_CONNECTION_REQUIRED: 'Internetverbindung erforderlich für automatische Version-Überprüfung und -Aktualisierung', + DAYS_AGO: '{0} Tag{{e}} vorher' }; export default de; diff --git a/interface/src/i18n/en/index.ts b/interface/src/i18n/en/index.ts index 5fcccbf0d..2d0e5ed55 100644 --- a/interface/src/i18n/en/index.ts +++ b/interface/src/i18n/en/index.ts @@ -332,9 +332,8 @@ const en: Translation = { SPECIAL_FUNCTIONS: 'Special Functions', WAIT_FIRMWARE: 'Firmware is uploading and installing', INSTALL_VERSION: 'This will install version {0}. Are you sure?', - SWITCH_DEV: 'switch to the development version', UPGRADE_AVAILABLE: 'There is a firmware upgrade available!', - LATEST_VERSION: 'You are using the latest firmware version.', + LATEST_VERSION: 'You are using the latest firmware version', PLEASE_WAIT: 'Please wait', RESTARTING_PRE: 'Initializing', RESTARTING_POST: 'Preparing', @@ -350,7 +349,9 @@ const en: Translation = { THIS_VERSION: 'This Version', PLATFORM: 'Platform', RELEASE_TYPE: 'Release Type', - REINSTALL: 'Re-install' + REINSTALL: 'Re-install', + INTERNET_CONNECTION_REQUIRED: 'Internet connection required for automatic version checking and upgrading', + DAYS_AGO: '{0} day{{s}} ago' }; export default en; diff --git a/interface/src/i18n/fr/index.ts b/interface/src/i18n/fr/index.ts index 6b85f93b6..f767a094e 100644 --- a/interface/src/i18n/fr/index.ts +++ b/interface/src/i18n/fr/index.ts @@ -332,9 +332,8 @@ const fr: Translation = { SPECIAL_FUNCTIONS: 'Special Functions', WAIT_FIRMWARE: 'Firmware is uploading and installing', // TODO translate INSTALL_VERSION: 'This will install version {0}. Are you sure?', // TODO translate - SWITCH_DEV: 'switch to the development version', // TODO translate UPGRADE_AVAILABLE: 'There is a firmware upgrade available!', // TODO translate - LATEST_VERSION: 'You are using the latest firmware version.', // TODO translate + LATEST_VERSION: 'You are using the latest firmware version', // TODO translate PLEASE_WAIT: 'Please wait', // TODO translate RESTARTING_PRE: 'Initializing', // TODO translate RESTARTING_POST: 'Preparing', // TODO translate @@ -350,7 +349,9 @@ const fr: Translation = { THIS_VERSION: 'This Version', // TODO translate PLATFORM: 'Platform', // TODO translate RELEASE_TYPE: 'Release Type', // TODO translate - REINSTALL: 'Re-install' // TODO translate + REINSTALL: 'Re-install', // TODO translate + INTERNET_CONNECTION_REQUIRED: 'Internet connection required for automatic version checking and upgrading', + DAYS_AGO: '{0} jour{{s}} avant' }; export default fr; diff --git a/interface/src/i18n/it/index.ts b/interface/src/i18n/it/index.ts index 0041efa88..4b958da16 100644 --- a/interface/src/i18n/it/index.ts +++ b/interface/src/i18n/it/index.ts @@ -332,9 +332,8 @@ const it: Translation = { SPECIAL_FUNCTIONS: 'Special Functions', // TODO translate WAIT_FIRMWARE: 'Firmware is uploading and installing', // TODO translate INSTALL_VERSION: 'This will install version {0}. Are you sure?', // TODO translate - SWITCH_DEV: 'switch to the development version', // TODO translate UPGRADE_AVAILABLE: 'There is a firmware upgrade available!', // TODO translate - LATEST_VERSION: 'You are using the latest firmware version.', // TODO translate + LATEST_VERSION: 'You are using the latest firmware version', // TODO translate PLEASE_WAIT: 'Please wait', // TODO translate RESTARTING_PRE: 'Initializing', // TODO translate RESTARTING_POST: 'Preparing', // TODO translate @@ -350,7 +349,9 @@ const it: Translation = { THIS_VERSION: 'This Version', // TODO translate PLATFORM: 'Platform', // TODO translate RELEASE_TYPE: 'Release Type', // TODO translate - REINSTALL: 'Re-install' // TODO translate + REINSTALL: 'Re-install', // TODO translate + INTERNET_CONNECTION_REQUIRED: 'Internet connection required for automatic version checking and upgrading', + DAYS_AGO: '{0} giorni{{s}} fa' }; export default it; diff --git a/interface/src/i18n/nl/index.ts b/interface/src/i18n/nl/index.ts index 14ed5d9b5..f2e14992e 100644 --- a/interface/src/i18n/nl/index.ts +++ b/interface/src/i18n/nl/index.ts @@ -332,9 +332,8 @@ const nl: Translation = { SPECIAL_FUNCTIONS: 'Speciale functies', WAIT_FIRMWARE: 'Firmware wordt geüpload en geïnstalleerd', INSTALL_VERSION: 'Hiermee wordt versie {0} geïnstalleerd. Weet je het zeker?', - SWITCH_DEV: 'Overschakelen naar de ontwikkelingsversie', UPGRADE_AVAILABLE: 'Er is een firmware-upgrade beschikbaar!', - LATEST_VERSION: 'U gebruikt de nieuwste firmwareversie.', + LATEST_VERSION: 'U gebruikt de nieuwste firmwareversie', PLEASE_WAIT: 'Een ogenblik geduld', RESTARTING_PRE: 'Initialiseren', RESTARTING_POST: 'Voorbereiding', @@ -350,7 +349,9 @@ const nl: Translation = { THIS_VERSION: 'Deze Versie', PLATFORM: 'Platform', RELEASE_TYPE: 'Release Typ', - REINSTALL: 'Opnieuw Installeren' + REINSTALL: 'Opnieuw Installeren', + INTERNET_CONNECTION_REQUIRED: 'Internetverbinding vereist voor automatische versiecontrole en -upgrade', + DAYS_AGO: '{0} dag{{en}} geleden' }; export default nl; \ No newline at end of file diff --git a/interface/src/i18n/no/index.ts b/interface/src/i18n/no/index.ts index 2bd0d8473..d33be9e74 100644 --- a/interface/src/i18n/no/index.ts +++ b/interface/src/i18n/no/index.ts @@ -332,9 +332,8 @@ const no: Translation = { SPECIAL_FUNCTIONS: 'Special Functions', // TODO translate WAIT_FIRMWARE: 'Firmware is uploading and installing', // TODO translate INSTALL_VERSION: 'This will install version {0}. Are you sure?', // TODO translate - SWITCH_DEV: 'switch to the development version', // TODO translate UPGRADE_AVAILABLE: 'There is a firmware upgrade available!', // TODO translate - LATEST_VERSION: 'You are using the latest firmware version.', // TODO translate + LATEST_VERSION: 'You are using the latest firmware version', // TODO translate PLEASE_WAIT: 'Please wait', // TODO translate RESTARTING_PRE: 'Initializing', // TODO translate RESTARTING_POST: 'Preparing', // TODO translate @@ -350,7 +349,9 @@ const no: Translation = { THIS_VERSION: 'This Version', // TODO translate PLATFORM: 'Platform', // TODO translate RELEASE_TYPE: 'Release Type', // TODO translate - REINSTALL: 'Re-install' // TODO translate + REINSTALL: 'Re-install', // TODO translate + INTERNET_CONNECTION_REQUIRED: 'Internet connection required for automatic version checking and upgrading', + DAYS_AGO: '{0} dag{{er}} siden' }; export default no; diff --git a/interface/src/i18n/pl/index.ts b/interface/src/i18n/pl/index.ts index d93ede67b..cea449c92 100644 --- a/interface/src/i18n/pl/index.ts +++ b/interface/src/i18n/pl/index.ts @@ -332,9 +332,8 @@ const pl: BaseTranslation = { SPECIAL_FUNCTIONS: 'Special Functions', // TODO translate WAIT_FIRMWARE: 'Firmware is uploading and installing', // TODO translate INSTALL_VERSION: 'This will install version {0}. Are you sure?', // TODO translate - SWITCH_DEV: 'switch to the development version', // TODO translate UPGRADE_AVAILABLE: 'There is a firmware upgrade available!', // TODO translate - LATEST_VERSION: 'You are using the latest firmware version.', // TODO translate + LATEST_VERSION: 'You are using the latest firmware version', // TODO translate PLEASE_WAIT: 'Please wait', // TODO translate RESTARTING_PRE: 'Initializing', // TODO translate RESTARTING_POST: 'Preparing', // TODO translate @@ -350,7 +349,9 @@ const pl: BaseTranslation = { THIS_VERSION: 'This Version', // TODO translate PLATFORM: 'Platform', // TODO translate RELEASE_TYPE: 'Release Type', // TODO translate - REINSTALL: 'Re-install' // TODO translate + REINSTALL: 'Re-install', // TODO translate + INTERNET_CONNECTION_REQUIRED: 'Internet connection required for automatic version checking and upgrading', // TODO translate + DAYS_AGO: '{0} dzień{{s}} temu' }; export default pl; diff --git a/interface/src/i18n/sk/index.ts b/interface/src/i18n/sk/index.ts index 5c5491b60..c9470f3e8 100644 --- a/interface/src/i18n/sk/index.ts +++ b/interface/src/i18n/sk/index.ts @@ -332,9 +332,8 @@ const sk: Translation = { SPECIAL_FUNCTIONS: 'Špeciálne funkcie', WAIT_FIRMWARE: 'Firmvér sa nahráva a inštaluje', INSTALL_VERSION: 'Týmto sa inštalovať verzia {0}. Si si istý?', - SWITCH_DEV: 'prejsť na vývojovú verziu', UPGRADE_AVAILABLE: 'K dispozícii je aktualizácia firmvéru!', - LATEST_VERSION: 'Používate poslednú verziu firmvéru.', + LATEST_VERSION: 'Používate poslednú verziu firmvéru', PLEASE_WAIT: 'Čakajte prosím', RESTARTING_PRE: 'Prebieha inicializácia', RESTARTING_POST: 'Príprava', @@ -350,7 +349,9 @@ const sk: Translation = { THIS_VERSION: 'This Version', // TODO translate PLATFORM: 'Platforma', RELEASE_TYPE: 'Typ vydania', - REINSTALL: 'Preinštalovať' + REINSTALL: 'Preinštalovať', + INTERNET_CONNECTION_REQUIRED: 'Internetové pripojenie je potrebné pre automatickú kontrolu a aktualizáciu', + DAYS_AGO: '{0} d{{ní|eň|ní|ní|ní|ní}} temu' }; export default sk; diff --git a/interface/src/i18n/sv/index.ts b/interface/src/i18n/sv/index.ts index 786f3b5b2..bd44dcf55 100644 --- a/interface/src/i18n/sv/index.ts +++ b/interface/src/i18n/sv/index.ts @@ -332,7 +332,6 @@ const sv: Translation = { SPECIAL_FUNCTIONS: 'Specialfunktioner', WAIT_FIRMWARE: 'Firmware laddas upp och installeras', INSTALL_VERSION: 'Det här kommer installera version {0}. Är du säker?', - SWITCH_DEV: 'byt till utvecklarversionen', UPGRADE_AVAILABLE: 'Det finns en tillgänglig firmwareupgradering!', LATEST_VERSION: 'Du använder den senaste firmwareversionen.', PLEASE_WAIT: 'Var god vänta', @@ -350,7 +349,9 @@ const sv: Translation = { THIS_VERSION: 'This Version', // TODO translate PLATFORM: 'Platform', // TODO translate RELEASE_TYPE: 'Release Type', // TODO translate - REINSTALL: 'Re-install' // TODO translate + REINSTALL: 'Re-install', // TODO translate + INTERNET_CONNECTION_REQUIRED: 'Internetanslutning krävs för automatisk version kontroll och uppdatering', + DAYS_AGO: '{0} dag{{ar}} sedan' }; export default sv; diff --git a/interface/src/i18n/tr/index.ts b/interface/src/i18n/tr/index.ts index f703ef972..dbf1e4540 100644 --- a/interface/src/i18n/tr/index.ts +++ b/interface/src/i18n/tr/index.ts @@ -332,7 +332,6 @@ const tr: Translation = { SPECIAL_FUNCTIONS: 'Special Functions', // TODO translate WAIT_FIRMWARE: 'Firmware is uploading and installing', // TODO translate INSTALL_VERSION: 'This will install version {0}. Are you sure?', // TODO translate - SWITCH_DEV: 'switch to the development version', // TODO translate UPGRADE_AVAILABLE: 'There is a firmware upgrade available!', // TODO translate LATEST_VERSION: 'You are using the latest firmware version.', // TODO translate PLEASE_WAIT: 'Please wait', // TODO translate @@ -350,7 +349,9 @@ const tr: Translation = { THIS_VERSION: 'This Version', // TODO translate PLATFORM: 'Platform', // TODO translate RELEASE_TYPE: 'Release Type', // TODO translate - REINSTALL: 'Re-install' // TODO translate + REINSTALL: 'Re-install', // TODO translate + INTERNET_CONNECTION_REQUIRED: 'Internet connection required for automatic version checking and upgrading', // TODO translate + DAYS_AGO: '{0} gün{{ü|ü|ü|ü|ü|ü}} önce' }; export default tr;