improve version check, #1497

This commit is contained in:
proddy
2025-03-30 14:51:59 +02:00
parent 83330907cd
commit 6991677cf9
14 changed files with 84 additions and 58 deletions

View File

@@ -44,7 +44,9 @@ const Version = () => {
const [restarting, setRestarting] = useState<boolean>(false);
const [openInstallDialog, setOpenInstallDialog] = useState<boolean>(false);
const [usingDevVersion, setUsingDevVersion] = useState<boolean>(false);
const [upgradeAvailable, setUpgradeAvailable] = useState<boolean>(false);
const [devUpgradeAvailable, setDevUpgradeAvailable] = useState<boolean>(false);
const [stableUpgradeAvailable, setStableUpgradeAvailable] =
useState<boolean>(false);
const [internetLive, setInternetLive] = useState<boolean>(false);
const [downloadOnly, setDownloadOnly] = useState<boolean>(false);
@@ -62,8 +64,13 @@ const Version = () => {
immediate: false
}
).onSuccess((event) => {
const data = event.data as { emsesp_version: string; upgradeable: boolean };
setUpgradeAvailable(data.upgradeable);
const data = event.data as {
emsesp_version: string;
dev_upgradeable: boolean;
stable_upgradeable: boolean;
};
setDevUpgradeAvailable(data.dev_upgradeable);
setStableUpgradeAvailable(data.stable_upgradeable);
});
const {
@@ -236,8 +243,12 @@ const Version = () => {
setUsingDevVersion(data.emsesp_version.includes('dev'));
};
const showButtons = (showDev?: boolean) => {
if (!me.admin) {
const showButtons = (showDev: boolean) => {
if (
!me.admin ||
(showDev && !devUpgradeAvailable) ||
(!showDev && !stableUpgradeAvailable)
) {
return;
}
@@ -266,10 +277,11 @@ const Version = () => {
size="small"
onClick={() => showFirmwareDialog(showDev)}
>
{upgradeAvailable || (!usingDevVersion && showDev)
? LL.UPGRADE()
: LL.REINSTALL()}
&hellip;
{(devUpgradeAvailable && showDev) || (stableUpgradeAvailable && !showDev)
? showDev && !usingDevVersion
? LL.SWITCH_RELEASE_TYPE()
: LL.UPGRADE()
: LL.INSTALL()}
</Button>
);
};
@@ -421,8 +433,8 @@ const Version = () => {
</Typography>
</Grid>
</Grid>
{upgradeAvailable ? (
{(devUpgradeAvailable && usingDevVersion) ||
(stableUpgradeAvailable && !usingDevVersion) ? (
<Typography mt={2} color="warning">
<InfoOutlinedIcon
color="warning"
@@ -436,7 +448,9 @@ const Version = () => {
color="success"
sx={{ verticalAlign: 'middle', mr: 2 }}
/>
{LL.LATEST_VERSION()}
{LL.LATEST_VERSION(
usingDevVersion ? LL.DEVELOPMENT() : LL.STABLE()
)}
</Typography>
)}
</>

View File

@@ -333,7 +333,7 @@ const cz: Translation = {
WAIT_FIRMWARE: 'Firmware se nahrává a instaluje',
INSTALL_VERSION: 'Tímto se instalovat verze {0}. Jste si jistí?',
UPGRADE_AVAILABLE: 'Je k dispozici aktualizace firmwaru!',
LATEST_VERSION: 'Používáte nejnovější verzi firmwaru',
LATEST_VERSION: 'Používáte nejnovější verzi {0}firmwaru',
PLEASE_WAIT: 'Prosím čekejte',
RESTARTING_PRE: 'Inicializace',
RESTARTING_POST: 'Příprava',
@@ -351,8 +351,8 @@ const cz: Translation = {
THIS_VERSION: 'Tato verze',
PLATFORM: 'Platforma',
RELEASE_TYPE: 'Typ sestavení',
REINSTALL: 'Přeinstalovat',
INTERNET_CONNECTION_REQUIRED: 'Pro automatickou kontrolu a instalaci aktualizací je třeba internetové připojení',
SWITCH_RELEASE_TYPE: 'Přepnout na vývojovou verzi'
};
export default cz;

View File

@@ -333,7 +333,7 @@ const de: Translation = {
WAIT_FIRMWARE: 'Die Firmware wird hochgeladen und installiert.',
INSTALL_VERSION: 'Dadurch wird die Version {0} heruntergeladen. Sind Sie sicher?',
UPGRADE_AVAILABLE: 'Es ist ein Firmware-Upgrade verfügbar.',
LATEST_VERSION: 'Sie verwenden die neueste Firmware-Version',
LATEST_VERSION: 'Sie verwenden die neueste {0} Firmware-Version',
PLEASE_WAIT: 'Bitte warten',
RESTARTING_PRE: 'Initialisierung',
RESTARTING_POST: 'Vorbereitung',
@@ -351,8 +351,8 @@ const de: Translation = {
THIS_VERSION: 'Diese Version',
PLATFORM: 'Plattform',
RELEASE_TYPE: 'Release Typ',
REINSTALL: 'Neu installieren',
INTERNET_CONNECTION_REQUIRED: 'Internetverbindung erforderlich für automatische Version-Überprüfung und -Aktualisierung',
SWITCH_RELEASE_TYPE: 'Zum Entwickler-Release wechseln'
};
export default de;

View File

@@ -333,7 +333,7 @@ const en: Translation = {
WAIT_FIRMWARE: 'Firmware is uploading and installing',
INSTALL_VERSION: 'This will install version {0}. Are you sure?',
UPGRADE_AVAILABLE: 'There is a firmware upgrade available!',
LATEST_VERSION: 'You are using the latest firmware version',
LATEST_VERSION: 'You are using the latest {0} firmware version',
PLEASE_WAIT: 'Please wait',
RESTARTING_PRE: 'Initializing',
RESTARTING_POST: 'Preparing',
@@ -351,8 +351,8 @@ const en: Translation = {
THIS_VERSION: 'This Version',
PLATFORM: 'Platform',
RELEASE_TYPE: 'Release Type',
REINSTALL: 'Re-install',
INTERNET_CONNECTION_REQUIRED: 'Internet connection required for automatic version checking and upgrading',
SWITCH_RELEASE_TYPE: 'Switch to Development release'
};
export default en;

View File

@@ -333,7 +333,7 @@ const fr: Translation = {
WAIT_FIRMWARE: 'Firmware is uploading and installing', // TODO translate
INSTALL_VERSION: 'This will install version {0}. Are you sure?', // 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 {0} firmware version', // TODO translate
PLEASE_WAIT: 'Please wait', // TODO translate
RESTARTING_PRE: 'Initializing', // TODO translate
RESTARTING_POST: 'Preparing', // TODO translate
@@ -351,8 +351,8 @@ const fr: Translation = {
THIS_VERSION: 'This Version', // TODO translate
PLATFORM: 'Platform', // TODO translate
RELEASE_TYPE: 'Release Type', // TODO translate
REINSTALL: 'Re-install', // TODO translate
INTERNET_CONNECTION_REQUIRED: 'Internet connection required for automatic version checking and upgrading',
INTERNET_CONNECTION_REQUIRED: 'Internet connection required for automatic version checking and upgrading', // TODO translate
SWITCH_RELEASE_TYPE: 'Switch to Development release' // TODO translate
};
export default fr;

View File

@@ -333,7 +333,7 @@ const it: Translation = {
WAIT_FIRMWARE: 'Firmware is uploading and installing', // TODO translate
INSTALL_VERSION: 'This will install version {0}. Are you sure?', // 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 {0}firmware version', // TODO translate
PLEASE_WAIT: 'Please wait', // TODO translate
RESTARTING_PRE: 'Initializing', // TODO translate
RESTARTING_POST: 'Preparing', // TODO translate
@@ -351,8 +351,8 @@ const it: Translation = {
THIS_VERSION: 'This Version', // TODO translate
PLATFORM: 'Platform', // TODO translate
RELEASE_TYPE: 'Release Type', // TODO translate
REINSTALL: 'Re-install', // TODO translate
INTERNET_CONNECTION_REQUIRED: 'Internet connection required for automatic version checking and upgrading',
INTERNET_CONNECTION_REQUIRED: 'Internet connection required for automatic version checking and upgrading', // TODO translate
SWITCH_RELEASE_TYPE: 'Switch to Development release' // TODO translate
};
export default it;

View File

@@ -333,15 +333,15 @@ const nl: Translation = {
WAIT_FIRMWARE: 'Firmware wordt geüpload en geïnstalleerd',
INSTALL_VERSION: 'Hiermee wordt versie {0} geïnstalleerd. Weet je het zeker?',
UPGRADE_AVAILABLE: 'Er is een firmware-upgrade beschikbaar!',
LATEST_VERSION: 'U gebruikt de nieuwste firmwareversie',
LATEST_VERSION: 'U gebruikt de nieuwste {0} firmwareversie',
PLEASE_WAIT: 'Een ogenblik geduld',
RESTARTING_PRE: 'Initialiseren',
RESTARTING_POST: 'Voorbereiding',
AUTO_SCROLL: 'Automatisch Scrollen',
DASHBOARD: 'Dashboard',
DEVELOPER_MODE: 'Ontwikkelaarsmodus',
BYTES: 'Bytes', // TODO translate
BITMASK: 'Bit Mask',// TODO translate
BYTES: 'Bytes',
BITMASK: 'Bit Mask',
DUPLICATE: 'Duplicaat',
UPGRADE: 'Upgraden',
DASHBOARD_1: 'Alle EMS-entiteiten die actief zijn en als favoriet zijn gemarkeerd, plus alle aangepaste entiteiten en externe sensorgegevens worden hieronder weergegeven.',
@@ -351,8 +351,8 @@ const nl: Translation = {
THIS_VERSION: 'Deze Versie',
PLATFORM: 'Platform',
RELEASE_TYPE: 'Release Typ',
REINSTALL: 'Opnieuw Installeren',
INTERNET_CONNECTION_REQUIRED: 'Internetverbinding vereist voor automatische versiecontrole en -upgrade',
SWITCH_RELEASE_TYPE: 'Switch naar Development release'
};
export default nl;

View File

@@ -333,7 +333,7 @@ const no: Translation = {
WAIT_FIRMWARE: 'Firmware is uploading and installing', // TODO translate
INSTALL_VERSION: 'This will install version {0}. Are you sure?', // 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 {0}firmware version', // TODO translate
PLEASE_WAIT: 'Please wait', // TODO translate
RESTARTING_PRE: 'Initializing', // TODO translate
RESTARTING_POST: 'Preparing', // TODO translate
@@ -351,8 +351,8 @@ const no: Translation = {
THIS_VERSION: 'This Version', // TODO translate
PLATFORM: 'Platform', // TODO translate
RELEASE_TYPE: 'Release Type', // TODO translate
REINSTALL: 'Re-install', // TODO translate
INTERNET_CONNECTION_REQUIRED: 'Internet connection required for automatic version checking and upgrading',
INTERNET_CONNECTION_REQUIRED: 'Internet connection required for automatic version checking and upgrading', // TODO translate
SWITCH_RELEASE_TYPE: 'Switch to Development release' // TODO translate
};
export default no;

View File

@@ -333,7 +333,7 @@ const pl: BaseTranslation = {
WAIT_FIRMWARE: 'Firmware is uploading and installing', // TODO translate
INSTALL_VERSION: 'This will install version {0}. Are you sure?', // 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 {0} firmware version', // TODO translate
PLEASE_WAIT: 'Please wait', // TODO translate
RESTARTING_PRE: 'Initializing', // TODO translate
RESTARTING_POST: 'Preparing', // TODO translate
@@ -351,8 +351,8 @@ const pl: BaseTranslation = {
THIS_VERSION: 'This Version', // TODO translate
PLATFORM: 'Platform', // TODO translate
RELEASE_TYPE: 'Release Type', // TODO translate
REINSTALL: 'Re-install', // TODO translate
INTERNET_CONNECTION_REQUIRED: 'Internet connection required for automatic version checking and upgrading', // TODO translate
SWITCH_RELEASE_TYPE: 'Switch to Development release' // TODO translate
};
export default pl;

View File

@@ -333,7 +333,7 @@ const sk: Translation = {
WAIT_FIRMWARE: 'Firmvér sa nahráva a inštaluje',
INSTALL_VERSION: 'Týmto sa inštalovať verzia {0}. Si si istý?',
UPGRADE_AVAILABLE: 'K dispozícii je aktualizácia firmvéru!',
LATEST_VERSION: 'Používate poslednú verziu firmvéru',
LATEST_VERSION: 'Používate poslednú {0} verziu firmvéru',
PLEASE_WAIT: 'Čakajte prosím',
RESTARTING_PRE: 'Prebieha inicializácia',
RESTARTING_POST: 'Príprava',
@@ -351,8 +351,8 @@ const sk: Translation = {
THIS_VERSION: 'Táto verzia',
PLATFORM: 'Platforma',
RELEASE_TYPE: 'Typ vydania',
REINSTALL: 'Preinštalovať',
INTERNET_CONNECTION_REQUIRED: 'Internetové pripojenie je potrebné pre automatickú kontrolu a aktualizáciu',
SWITCH_RELEASE_TYPE: 'Prepnúť na vývojovú verziu'
};
export default sk;

View File

@@ -333,7 +333,7 @@ const sv: Translation = {
WAIT_FIRMWARE: 'Firmware laddas upp och installeras',
INSTALL_VERSION: 'Det här kommer installera version {0}. Är du säker?',
UPGRADE_AVAILABLE: 'Det finns en tillgänglig firmwareupgradering!',
LATEST_VERSION: 'Du använder den senaste firmwareversionen.',
LATEST_VERSION: 'Du använder den senaste {0} firmwareversionen.',
PLEASE_WAIT: 'Var god vänta',
RESTARTING_PRE: 'Initialiserar',
RESTARTING_POST: 'Förbereder',
@@ -351,8 +351,8 @@ const sv: Translation = {
THIS_VERSION: 'This Version', // TODO translate
PLATFORM: 'Platform', // TODO translate
RELEASE_TYPE: 'Release Type', // TODO translate
REINSTALL: 'Re-install', // TODO translate
INTERNET_CONNECTION_REQUIRED: 'Internetanslutning krävs för automatisk version kontroll och uppdatering',
SWITCH_RELEASE_TYPE: 'Byt till utvecklingsversion'
};
export default sv;

View File

@@ -333,7 +333,7 @@ const tr: Translation = {
WAIT_FIRMWARE: 'Firmware is uploading and installing', // TODO translate
INSTALL_VERSION: 'This will install version {0}. Are you sure?', // 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 {0}firmware version.', // TODO translate
PLEASE_WAIT: 'Please wait', // TODO translate
RESTARTING_PRE: 'Initializing', // TODO translate
RESTARTING_POST: 'Preparing', // TODO translate
@@ -351,8 +351,8 @@ const tr: Translation = {
THIS_VERSION: 'This Version', // TODO translate
PLATFORM: 'Platform', // TODO translate
RELEASE_TYPE: 'Release Type', // TODO translate
REINSTALL: 'Re-install', // TODO translate
INTERNET_CONNECTION_REQUIRED: 'Internet connection required for automatic version checking and upgrading', // TODO translate
SWITCH_RELEASE_TYPE: 'Switch to Development release' // TODO translate
};
export default tr;