Feature: Implement firmware update check is a opt-in to protect your privacy

This commit is contained in:
Thomas Basler 2024-01-20 22:43:40 +01:00
parent 16fbad92ac
commit 8a80289474
5 changed files with 35 additions and 4 deletions

View File

@ -28,12 +28,19 @@
</tr> </tr>
<tr> <tr>
<th>{{ $t('firmwareinfo.FirmwareUpdate') }}</th> <th>{{ $t('firmwareinfo.FirmwareUpdate') }}</th>
<td><a :href="systemStatus.update_url" target="_blank" v-tooltip <td v-if="modelAllowVersionInfo">
<a :href="systemStatus.update_url" target="_blank" v-tooltip
:title="$t('firmwareinfo.FirmwareUpdateHint')"> :title="$t('firmwareinfo.FirmwareUpdateHint')">
<span class="badge" :class="systemStatus.update_status"> <span class="badge" :class="systemStatus.update_status">
{{ systemStatus.update_text }} {{ systemStatus.update_text }}
</span> </span>
</a></td> </a>
</td>
<td v-else>
<div class="form-check form-switch">
<input v-model="modelAllowVersionInfo" class="form-check-input" type="checkbox" role="switch" v-tooltip :title="$t('firmwareinfo.FrmwareUpdateAllow')" />
</div>
</td>
</tr> </tr>
<tr> <tr>
<th>{{ $t('firmwareinfo.ResetReason0') }}</th> <th>{{ $t('firmwareinfo.ResetReason0') }}</th>
@ -69,8 +76,17 @@ export default defineComponent({
}, },
props: { props: {
systemStatus: { type: Object as PropType<SystemStatus>, required: true }, systemStatus: { type: Object as PropType<SystemStatus>, required: true },
allowVersionInfo: Boolean,
}, },
computed: { computed: {
modelAllowVersionInfo: {
get(): any {
return !!this.allowVersionInfo;
},
set(value: any) {
this.$emit('update:allowVersionInfo', value);
},
},
timeInHours() { timeInHours() {
return (value: number) => { return (value: number) => {
const [count, time] = timestampToString(this.$i18n.locale, value, true); const [count, time] = timestampToString(this.$i18n.locale, value, true);

View File

@ -185,6 +185,7 @@
"FirmwareVersionHint": "Klicken Sie hier, um Informationen über Ihre aktuelle Version anzuzeigen", "FirmwareVersionHint": "Klicken Sie hier, um Informationen über Ihre aktuelle Version anzuzeigen",
"FirmwareUpdate": "Firmware-Aktualisierung", "FirmwareUpdate": "Firmware-Aktualisierung",
"FirmwareUpdateHint": "Klicken Sie hier, um die Änderungen zwischen Ihrer Version und der neuesten Version anzuzeigen", "FirmwareUpdateHint": "Klicken Sie hier, um die Änderungen zwischen Ihrer Version und der neuesten Version anzuzeigen",
"FrmwareUpdateAllow": "Durch Aktivieren der Update Prüfung wird bei jedem Seitenaufruf eine Anfrage an GitHub.com gesendet um die aktuell verfügbare Version abzurufen. Wenn du damit nicht einverstanden bist, lasse diese Funktion deaktiviert.",
"ResetReason0": "Reset Grund CPU 0", "ResetReason0": "Reset Grund CPU 0",
"ResetReason1": "Reset Grund CPU 1", "ResetReason1": "Reset Grund CPU 1",
"ConfigSaveCount": "Anzahl der Konfigurationsspeicherungen", "ConfigSaveCount": "Anzahl der Konfigurationsspeicherungen",

View File

@ -185,6 +185,7 @@
"FirmwareVersionHint": "Click here to show information about your current version", "FirmwareVersionHint": "Click here to show information about your current version",
"FirmwareUpdate": "Firmware Update", "FirmwareUpdate": "Firmware Update",
"FirmwareUpdateHint": "Click here to view the changes between your version and the latest version", "FirmwareUpdateHint": "Click here to view the changes between your version and the latest version",
"FrmwareUpdateAllow": "By activating the update check, a request is sent to GitHub.com each time the page is called up to retrieve the currently available version. If you do not agree with this, leave this function deactivated.",
"ResetReason0": "Reset Reason CPU 0", "ResetReason0": "Reset Reason CPU 0",
"ResetReason1": "Reset Reason CPU 1", "ResetReason1": "Reset Reason CPU 1",
"ConfigSaveCount": "Config save count", "ConfigSaveCount": "Config save count",

View File

@ -185,6 +185,7 @@
"FirmwareVersionHint": "Cliquez ici pour afficher des informations sur votre version actuelle", "FirmwareVersionHint": "Cliquez ici pour afficher des informations sur votre version actuelle",
"FirmwareUpdate": "Mise à jour du firmware", "FirmwareUpdate": "Mise à jour du firmware",
"FirmwareUpdateHint": "Cliquez ici pour voir les changements entre votre version et la dernière version", "FirmwareUpdateHint": "Cliquez ici pour voir les changements entre votre version et la dernière version",
"FrmwareUpdateAllow": "En activant le contrôle de mise à jour, une demande est envoyée à GitHub.com à chaque fois que la page est consultée afin de récupérer la dernière version disponible. Si tu n'es pas d'accord, laisse cette fonction désactivée.",
"ResetReason0": "Raison de la réinitialisation CPU 0", "ResetReason0": "Raison de la réinitialisation CPU 0",
"ResetReason1": "Raison de la réinitialisation CPU 1", "ResetReason1": "Raison de la réinitialisation CPU 1",
"ConfigSaveCount": "Nombre d'enregistrements de la configuration", "ConfigSaveCount": "Nombre d'enregistrements de la configuration",

View File

@ -1,6 +1,6 @@
<template> <template>
<BasePage :title="$t('systeminfo.SystemInfo')" :isLoading="dataLoading" :show-reload="true" @reload="getSystemInfo"> <BasePage :title="$t('systeminfo.SystemInfo')" :isLoading="dataLoading" :show-reload="true" @reload="getSystemInfo">
<FirmwareInfo :systemStatus="systemDataList" /> <FirmwareInfo :systemStatus="systemDataList" v-model:allowVersionInfo="allowVersionInfo" />
<div class="mt-5"></div> <div class="mt-5"></div>
<HardwareInfo :systemStatus="systemDataList" /> <HardwareInfo :systemStatus="systemDataList" />
<div class="mt-5"></div> <div class="mt-5"></div>
@ -37,9 +37,11 @@ export default defineComponent({
return { return {
dataLoading: true, dataLoading: true,
systemDataList: {} as SystemStatus, systemDataList: {} as SystemStatus,
allowVersionInfo: false,
} }
}, },
created() { created() {
this.allowVersionInfo = (localStorage.getItem("allowVersionInfo") || "0") == "1";
this.getSystemInfo(); this.getSystemInfo();
}, },
methods: { methods: {
@ -50,7 +52,9 @@ export default defineComponent({
.then((data) => { .then((data) => {
this.systemDataList = data; this.systemDataList = data;
this.dataLoading = false; this.dataLoading = false;
this.getUpdateInfo(); if (this.allowVersionInfo) {
this.getUpdateInfo();
}
}) })
}, },
getUpdateInfo() { getUpdateInfo() {
@ -90,5 +94,13 @@ export default defineComponent({
}); });
} }
}, },
watch: {
allowVersionInfo(allow: Boolean) {
if (allow) {
localStorage.setItem("allowVersionInfo", this.allowVersionInfo ? "1" : "0");
this.getUpdateInfo();
}
}
}
}); });
</script> </script>