mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-06 07:49:52 +03:00
fix NTP icons, add AP
This commit is contained in:
@@ -32,7 +32,7 @@
|
||||
"@types/imagemin": "^8.0.5",
|
||||
"@types/lodash-es": "^4.17.12",
|
||||
"@types/node": "^20.11.30",
|
||||
"@types/react": "^18.2.67",
|
||||
"@types/react": "^18.2.69",
|
||||
"@types/react-dom": "^18.2.22",
|
||||
"@types/react-router-dom": "^5.3.3",
|
||||
"alova": "^2.18.0",
|
||||
@@ -66,11 +66,11 @@
|
||||
"eslint-plugin-prettier": "alpha",
|
||||
"eslint-plugin-react": "^7.34.1",
|
||||
"eslint-plugin-react-hooks": "^4.6.0",
|
||||
"preact": "^10.20.0",
|
||||
"preact": "^10.20.1",
|
||||
"prettier": "^3.2.5",
|
||||
"rollup-plugin-visualizer": "^5.12.0",
|
||||
"terser": "^5.29.2",
|
||||
"vite": "^5.2.3",
|
||||
"vite": "^5.2.4",
|
||||
"vite-plugin-imagemin": "^0.6.1",
|
||||
"vite-tsconfig-paths": "^4.3.2"
|
||||
},
|
||||
|
||||
@@ -8,6 +8,7 @@ import MemoryIcon from '@mui/icons-material/Memory';
|
||||
import PowerSettingsNewIcon from '@mui/icons-material/PowerSettingsNew';
|
||||
import SettingsBackupRestoreIcon from '@mui/icons-material/SettingsBackupRestore';
|
||||
import SettingsEthernetIcon from '@mui/icons-material/SettingsEthernet';
|
||||
import SettingsInputAntennaIcon from '@mui/icons-material/SettingsInputAntenna';
|
||||
import TuneIcon from '@mui/icons-material/Tune';
|
||||
|
||||
import { List, Button, Dialog, DialogActions, DialogContent, DialogTitle, Box } from '@mui/material';
|
||||
@@ -171,7 +172,7 @@ const Settings: FC = () => {
|
||||
/>
|
||||
|
||||
<ListMenuItem
|
||||
icon={AccessTimeIcon}
|
||||
icon={SettingsInputAntennaIcon}
|
||||
bgcolor="#5f9a5f"
|
||||
label={LL.ACCESS_POINT(0)}
|
||||
text={LL.CONFIGURE(LL.ACCESS_POINT(0))}
|
||||
|
||||
@@ -4,7 +4,7 @@ import { Navigate, Routes, Route } from 'react-router-dom';
|
||||
import APSettings from './APSettings';
|
||||
import APStatus from './APStatus';
|
||||
import type { FC } from 'react';
|
||||
import { RequireAdmin, RouterTabs, useLayoutTitle, useRouterTab } from 'components';
|
||||
import { RouterTabs, useLayoutTitle, useRouterTab } from 'components';
|
||||
|
||||
import { useI18nContext } from 'i18n/i18n-react';
|
||||
|
||||
@@ -23,14 +23,7 @@ const AccessPoint: FC = () => {
|
||||
</RouterTabs>
|
||||
<Routes>
|
||||
<Route path="status" element={<APStatus />} />
|
||||
<Route
|
||||
path="settings"
|
||||
element={
|
||||
<RequireAdmin>
|
||||
<APSettings />
|
||||
</RequireAdmin>
|
||||
}
|
||||
/>
|
||||
<Route path="settings" element={<APSettings />} />
|
||||
<Route path="*" element={<Navigate replace to="settings" />} />
|
||||
</Routes>
|
||||
</>
|
||||
|
||||
@@ -4,7 +4,7 @@ import MqttSettings from './MqttSettings';
|
||||
import MqttStatus from './MqttStatus';
|
||||
import type { FC } from 'react';
|
||||
|
||||
import { RequireAdmin, RouterTabs, useLayoutTitle, useRouterTab } from 'components';
|
||||
import { RouterTabs, useLayoutTitle, useRouterTab } from 'components';
|
||||
|
||||
import { useI18nContext } from 'i18n/i18n-react';
|
||||
|
||||
@@ -23,14 +23,7 @@ const Mqtt: FC = () => {
|
||||
</RouterTabs>
|
||||
<Routes>
|
||||
<Route path="status" element={<MqttStatus />} />
|
||||
<Route
|
||||
path="settings"
|
||||
element={
|
||||
<RequireAdmin>
|
||||
<MqttSettings />
|
||||
</RequireAdmin>
|
||||
}
|
||||
/>
|
||||
<Route path="settings" element={<MqttSettings />} />
|
||||
<Route path="*" element={<Navigate replace to="settings" />} />
|
||||
</Routes>
|
||||
</>
|
||||
|
||||
@@ -8,7 +8,7 @@ import WiFiNetworkScanner from './WiFiNetworkScanner';
|
||||
import type { FC } from 'react';
|
||||
|
||||
import type { WiFiNetwork } from 'types';
|
||||
import { RequireAdmin, RouterTabs, useLayoutTitle, useRouterTab } from 'components';
|
||||
import { RouterTabs, useLayoutTitle, useRouterTab } from 'components';
|
||||
import { useI18nContext } from 'i18n/i18n-react';
|
||||
|
||||
const Network: FC = () => {
|
||||
@@ -48,22 +48,8 @@ const Network: FC = () => {
|
||||
</RouterTabs>
|
||||
<Routes>
|
||||
<Route path="status" element={<NetworkStatus />} />
|
||||
<Route
|
||||
path="scan"
|
||||
element={
|
||||
<RequireAdmin>
|
||||
<WiFiNetworkScanner />
|
||||
</RequireAdmin>
|
||||
}
|
||||
/>
|
||||
<Route
|
||||
path="settings"
|
||||
element={
|
||||
<RequireAdmin>
|
||||
<NetworkSettings />
|
||||
</RequireAdmin>
|
||||
}
|
||||
/>
|
||||
<Route path="scan" element={<WiFiNetworkScanner />} />
|
||||
<Route path="settings" element={<NetworkSettings />} />
|
||||
<Route path="*" element={<Navigate replace to="settings" />} />
|
||||
</Routes>
|
||||
</WiFiConnectionContext.Provider>
|
||||
|
||||
@@ -4,7 +4,7 @@ import NTPSettings from './NTPSettings';
|
||||
import NTPStatus from './NTPStatus';
|
||||
import type { FC } from 'react';
|
||||
|
||||
import { RequireAdmin, RouterTabs, useLayoutTitle, useRouterTab } from 'components';
|
||||
import { RouterTabs, useLayoutTitle, useRouterTab } from 'components';
|
||||
|
||||
import { useI18nContext } from 'i18n/i18n-react';
|
||||
|
||||
@@ -22,14 +22,7 @@ const NetworkTime: FC = () => {
|
||||
</RouterTabs>
|
||||
<Routes>
|
||||
<Route path="status" element={<NTPStatus />} />
|
||||
<Route
|
||||
path="settings"
|
||||
element={
|
||||
<RequireAdmin>
|
||||
<NTPSettings />
|
||||
</RequireAdmin>
|
||||
}
|
||||
/>
|
||||
<Route path="settings" element={<NTPSettings />} />
|
||||
<Route path="*" element={<Navigate replace to="settings" />} />
|
||||
</Routes>
|
||||
</>
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
import { Tab } from '@mui/material';
|
||||
import { useContext, type FC } from 'react';
|
||||
import { Navigate, Routes, Route } from 'react-router-dom';
|
||||
import SystemLog from './SystemLog';
|
||||
import SystemStatus from './SystemStatus';
|
||||
import type { FC } from 'react';
|
||||
|
||||
import { useRouterTab, RouterTabs, useLayoutTitle } from 'components';
|
||||
import { useRouterTab, RouterTabs, useLayoutTitle, RequireAdmin } from 'components';
|
||||
|
||||
import { AuthenticatedContext } from 'contexts/authentication';
|
||||
import { useI18nContext } from 'i18n/i18n-react';
|
||||
import SystemActivity from 'project/SystemActivity';
|
||||
|
||||
@@ -15,18 +16,26 @@ const System: FC = () => {
|
||||
useLayoutTitle(LL.SYSTEM(0));
|
||||
|
||||
const { routerTab } = useRouterTab();
|
||||
const { me } = useContext(AuthenticatedContext);
|
||||
|
||||
return (
|
||||
<>
|
||||
<RouterTabs value={routerTab}>
|
||||
<Tab value="status" label={LL.STATUS_OF('')} />
|
||||
<Tab value="activity" label={LL.ACTIVITY()} />
|
||||
<Tab value="log" label={LL.LOG_OF('')} />
|
||||
<Tab disabled={!me.admin} value="log" label={me.admin ? LL.LOG_OF('') : ''} />
|
||||
</RouterTabs>
|
||||
<Routes>
|
||||
<Route path="status" element={<SystemStatus />} />
|
||||
<Route path="activity" element={<SystemActivity />} />
|
||||
<Route path="log" element={<SystemLog />} />
|
||||
<Route
|
||||
path="log"
|
||||
element={
|
||||
<RequireAdmin>
|
||||
<SystemLog />
|
||||
</RequireAdmin>
|
||||
}
|
||||
/>
|
||||
<Route path="*" element={<Navigate replace to="status" />} />
|
||||
</Routes>
|
||||
</>
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import AccessTimeIcon from '@mui/icons-material/AccessTime';
|
||||
import BuildIcon from '@mui/icons-material/Build';
|
||||
import CancelIcon from '@mui/icons-material/Cancel';
|
||||
import CastIcon from '@mui/icons-material/Cast';
|
||||
@@ -6,6 +7,7 @@ import DirectionsBusIcon from '@mui/icons-material/DirectionsBus';
|
||||
import MemoryIcon from '@mui/icons-material/Memory';
|
||||
import PermScanWifiIcon from '@mui/icons-material/PermScanWifi';
|
||||
import RefreshIcon from '@mui/icons-material/Refresh';
|
||||
import SettingsInputAntennaIcon from '@mui/icons-material/SettingsInputAntenna';
|
||||
import TimerIcon from '@mui/icons-material/Timer';
|
||||
|
||||
import {
|
||||
@@ -249,7 +251,7 @@ const SystemStatus: FC = () => {
|
||||
|
||||
<ListMenuItem
|
||||
disabled={!me.admin}
|
||||
icon={DeviceHubIcon}
|
||||
icon={AccessTimeIcon}
|
||||
bgcolor={ntpStatusHighlight()}
|
||||
label={LL.STATUS_OF('NTP')}
|
||||
text={ntpStatus()}
|
||||
@@ -266,6 +268,16 @@ const SystemStatus: FC = () => {
|
||||
to="/settings/ota"
|
||||
/>
|
||||
<Divider variant="inset" component="li" />
|
||||
|
||||
<ListMenuItem
|
||||
disabled={!me.admin}
|
||||
icon={SettingsInputAntennaIcon}
|
||||
bgcolor={activeHighlight(data.ota_status)}
|
||||
label={LL.ACCESS_POINT(0)}
|
||||
text={data.ap_status ? LL.ACTIVE() : LL.INACTIVE(0)}
|
||||
to="/settings/ap/status"
|
||||
/>
|
||||
<Divider variant="inset" component="li" />
|
||||
</List>
|
||||
|
||||
{renderScanDialog()}
|
||||
|
||||
@@ -37,6 +37,7 @@ export interface SystemStatus {
|
||||
ntp_status: number;
|
||||
ota_status: boolean;
|
||||
mqtt_status: boolean;
|
||||
ap_status: boolean;
|
||||
}
|
||||
|
||||
export interface OTASettingsType {
|
||||
|
||||
@@ -1595,14 +1595,14 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/react@npm:^18.2.67":
|
||||
version: 18.2.67
|
||||
resolution: "@types/react@npm:18.2.67"
|
||||
"@types/react@npm:^18.2.69":
|
||||
version: 18.2.69
|
||||
resolution: "@types/react@npm:18.2.69"
|
||||
dependencies:
|
||||
"@types/prop-types": "npm:*"
|
||||
"@types/scheduler": "npm:*"
|
||||
csstype: "npm:^3.0.2"
|
||||
checksum: 10/d7e248dbe8d9d3b05f0d8e128d615fc9c85aa2c5d15634271d20cb9b343dbeffb0875f31a44e7ac63b42afc25949bd4c3633b7ebee45ee4666591ca934a8dffb
|
||||
checksum: 10/5cc185f00ad5a4c2261e127ad25241448492f391e2206738b0477cbdba6aa75692e18ece5e75854ed513342d95c9ee83315744cb6b1470d488772cef1f8b40c8
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -1784,7 +1784,7 @@ __metadata:
|
||||
"@types/imagemin": "npm:^8.0.5"
|
||||
"@types/lodash-es": "npm:^4.17.12"
|
||||
"@types/node": "npm:^20.11.30"
|
||||
"@types/react": "npm:^18.2.67"
|
||||
"@types/react": "npm:^18.2.69"
|
||||
"@types/react-dom": "npm:^18.2.22"
|
||||
"@types/react-router-dom": "npm:^5.3.3"
|
||||
"@typescript-eslint/eslint-plugin": "npm:^7.3.1"
|
||||
@@ -1805,7 +1805,7 @@ __metadata:
|
||||
jwt-decode: "npm:^4.0.0"
|
||||
lodash-es: "npm:^4.17.21"
|
||||
mime-types: "npm:^2.1.35"
|
||||
preact: "npm:^10.20.0"
|
||||
preact: "npm:^10.20.1"
|
||||
prettier: "npm:^3.2.5"
|
||||
react: "npm:latest"
|
||||
react-dom: "npm:latest"
|
||||
@@ -1818,7 +1818,7 @@ __metadata:
|
||||
terser: "npm:^5.29.2"
|
||||
typesafe-i18n: "npm:^5.26.2"
|
||||
typescript: "npm:^5.4.3"
|
||||
vite: "npm:^5.2.3"
|
||||
vite: "npm:^5.2.4"
|
||||
vite-plugin-imagemin: "npm:^0.6.1"
|
||||
vite-tsconfig-paths: "npm:^4.3.2"
|
||||
languageName: unknown
|
||||
@@ -6795,10 +6795,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"preact@npm:^10.20.0":
|
||||
version: 10.20.0
|
||||
resolution: "preact@npm:10.20.0"
|
||||
checksum: 10/fb8cfc1ab1b4b8f2bd483b9fdd2f8614cc7e099d741ec33f41d95d9056aefbe3fe5897201ef0f37c76238e7657ecd38afdef377e171cb1477068aae1dcf020d6
|
||||
"preact@npm:^10.20.1":
|
||||
version: 10.20.1
|
||||
resolution: "preact@npm:10.20.1"
|
||||
checksum: 10/894ac14b3ec6f8ca308b53fb14e12e57678248fd1faa24ae857f5e37d9c11b34833e6dd1ba8210a34de4d6d523462923b1f9c93d35ce433874affd056f2d0998
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -8491,9 +8491,9 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"vite@npm:^5.2.3":
|
||||
version: 5.2.3
|
||||
resolution: "vite@npm:5.2.3"
|
||||
"vite@npm:^5.2.4":
|
||||
version: 5.2.4
|
||||
resolution: "vite@npm:5.2.4"
|
||||
dependencies:
|
||||
esbuild: "npm:^0.20.1"
|
||||
fsevents: "npm:~2.3.3"
|
||||
@@ -8527,7 +8527,7 @@ __metadata:
|
||||
optional: true
|
||||
bin:
|
||||
vite: bin/vite.js
|
||||
checksum: 10/5033a989462bc3127cb937ae5138024af68ec1b67accad07e07e116254b84fc6888a18d7a0358e3d3ce19fe160d72b6622259edc93e7fba47b84d042dcbe1e4e
|
||||
checksum: 10/ed3d4fa2023642dd578e90eb02876e01729fda0af196304bb1c3a7f037b457f1a505bfa36c10f28d0466945b9da7d7972219716554d43ff3c025f26ed3d89e11
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
||||
@@ -60,10 +60,19 @@ class ESP8266React {
|
||||
return _mqttSettingsService.getMqttClient();
|
||||
}
|
||||
|
||||
//
|
||||
// special functions needed outside scope
|
||||
//
|
||||
|
||||
void setWill(const char * will_topic) {
|
||||
_mqttSettingsService.setWill(will_topic);
|
||||
}
|
||||
|
||||
// true if AP is active
|
||||
bool apStatus() {
|
||||
return _apSettingsService.getAPNetworkStatus() == APNetworkStatus::ACTIVE;
|
||||
}
|
||||
|
||||
#ifndef EMSESP_STANDALONE
|
||||
void factoryReset() {
|
||||
_factoryResetService.factoryReset();
|
||||
|
||||
@@ -119,6 +119,10 @@ class ESP8266React {
|
||||
return _mqttClient;
|
||||
}
|
||||
|
||||
bool apStatus() {
|
||||
return false;
|
||||
}
|
||||
|
||||
void setWill(const char * will_topic) {
|
||||
}
|
||||
void onMessage(espMqttClientTypes::OnMessageCallback callback) {
|
||||
|
||||
@@ -400,7 +400,6 @@ const ESPsystem_status = {
|
||||
arduino_version: 'ESP32 Arduino v2.0.14'
|
||||
};
|
||||
|
||||
// TODO fix this
|
||||
const system_status = {
|
||||
emsesp_version: '3.6-demo',
|
||||
esp_platform: 'ESP32',
|
||||
@@ -414,7 +413,8 @@ const system_status = {
|
||||
free_heap: 143,
|
||||
ntp_status: 2,
|
||||
ota_status: false,
|
||||
mqtt_status: true
|
||||
mqtt_status: true,
|
||||
ap_status: false
|
||||
};
|
||||
|
||||
let security_settings = {
|
||||
|
||||
@@ -69,6 +69,8 @@ void WebStatusService::systemStatus(AsyncWebServerRequest * request) {
|
||||
}();
|
||||
#endif
|
||||
|
||||
root["ap_status"] = EMSESP::esp8266React.apStatus();
|
||||
|
||||
response->setLength();
|
||||
request->send(response);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user