ntp status and time button

This commit is contained in:
MichaelDvP
2022-04-04 11:12:18 +02:00
parent 26758b965d
commit 462bf81be1
4 changed files with 12 additions and 6 deletions

View File

@@ -32,11 +32,14 @@ import { extractErrorMessage, formatDateTime, formatLocalDateTime, useRest } fro
import { AuthenticatedContext } from '../../contexts/authentication'; import { AuthenticatedContext } from '../../contexts/authentication';
export const isNtpActive = ({ status }: NTPStatus) => status === NTPSyncStatus.NTP_ACTIVE; export const isNtpActive = ({ status }: NTPStatus) => status === NTPSyncStatus.NTP_ACTIVE;
export const isNtpEnabled = ({ status }: NTPStatus) => status !== NTPSyncStatus.NTP_DISABLED;
export const ntpStatusHighlight = ({ status }: NTPStatus, theme: Theme) => { export const ntpStatusHighlight = ({ status }: NTPStatus, theme: Theme) => {
switch (status) { switch (status) {
case NTPSyncStatus.NTP_INACTIVE: case NTPSyncStatus.NTP_DISABLED:
return theme.palette.info.main; return theme.palette.info.main;
case NTPSyncStatus.NTP_INACTIVE:
return theme.palette.error.main;
case NTPSyncStatus.NTP_ACTIVE: case NTPSyncStatus.NTP_ACTIVE:
return theme.palette.success.main; return theme.palette.success.main;
default: default:
@@ -46,6 +49,8 @@ export const ntpStatusHighlight = ({ status }: NTPStatus, theme: Theme) => {
export const ntpStatus = ({ status }: NTPStatus) => { export const ntpStatus = ({ status }: NTPStatus) => {
switch (status) { switch (status) {
case NTPSyncStatus.NTP_DISABLED:
return 'Disabled';
case NTPSyncStatus.NTP_INACTIVE: case NTPSyncStatus.NTP_INACTIVE:
return 'Inactive'; return 'Inactive';
case NTPSyncStatus.NTP_ACTIVE: case NTPSyncStatus.NTP_ACTIVE:
@@ -143,7 +148,7 @@ const NTPStatusForm: FC = () => {
<ListItemText primary="Status" secondary={ntpStatus(data)} /> <ListItemText primary="Status" secondary={ntpStatus(data)} />
</ListItem> </ListItem>
<Divider variant="inset" component="li" /> <Divider variant="inset" component="li" />
{isNtpActive(data) && ( {isNtpEnabled(data) && (
<> <>
<ListItem> <ListItem>
<ListItemAvatar> <ListItemAvatar>

View File

@@ -1,6 +1,7 @@
export enum NTPSyncStatus { export enum NTPSyncStatus {
NTP_INACTIVE = 0, NTP_DISABLED = 0,
NTP_ACTIVE = 1 NTP_INACTIVE = 1,
NTP_ACTIVE = 2
} }
export interface NTPStatus { export interface NTPStatus {

View File

@@ -59,7 +59,7 @@ void NTPSettingsService::configureNTP() {
} }
void NTPSettingsService::configureTime(AsyncWebServerRequest * request, JsonVariant & json) { void NTPSettingsService::configureTime(AsyncWebServerRequest * request, JsonVariant & json) {
if (!sntp_enabled() && json.is<JsonObject>()) { if (json.is<JsonObject>()) {
struct tm tm = {0}; struct tm tm = {0};
String timeLocal = json["local_time"]; String timeLocal = json["local_time"];
char * s = strptime(timeLocal.c_str(), "%Y-%m-%dT%H:%M:%S", &tm); char * s = strptime(timeLocal.c_str(), "%Y-%m-%dT%H:%M:%S", &tm);

View File

@@ -36,7 +36,7 @@ void NTPStatus::ntpStatus(AsyncWebServerRequest * request) {
time_t now = time(nullptr); time_t now = time(nullptr);
// only provide enabled/disabled status for now // only provide enabled/disabled status for now
root["status"] = sntp_enabled() && emsesp::EMSESP::system_.ntp_connected() ? 1 : 0; root["status"] = sntp_enabled() ? emsesp::EMSESP::system_.ntp_connected() ? 2 : 1 : 0;
// the current time in UTC // the current time in UTC
root["utc_time"] = toUTCTimeString(gmtime(&now)); root["utc_time"] = toUTCTimeString(gmtime(&now));