mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-06 15:59:52 +03:00
Merge branch 'dev2' of https://github.com/emsesp/EMS-ESP32 into dev2
This commit is contained in:
2
.vscode/settings.json
vendored
2
.vscode/settings.json
vendored
@@ -9,7 +9,7 @@
|
||||
},
|
||||
"eslint.nodePath": "interface/.yarn/sdks",
|
||||
"eslint.workingDirectories": ["interface"],
|
||||
"prettier.prettierPath": "interface/.yarn/sdks/prettier/index.js",
|
||||
"prettier.prettierPath": "",
|
||||
"typescript.tsdk": "interface/.yarn/sdks/typescript/lib",
|
||||
"typescript.enablePromptUseWorkspaceTsdk": true,
|
||||
"files.associations": {
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
"eslint-plugin-prettier": "alpha",
|
||||
"eslint-plugin-react": "^7.32.2",
|
||||
"eslint-plugin-react-hooks": "^4.6.0",
|
||||
"nodemon": "^2.0.22",
|
||||
"nodemon": "^3.0.1",
|
||||
"npm-run-all": "^4.1.5",
|
||||
"prettier": "^3.0.0",
|
||||
"rollup-plugin-visualizer": "^5.9.2",
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
import DownloadIcon from '@mui/icons-material/GetApp';
|
||||
import WarningIcon from '@mui/icons-material/Warning';
|
||||
import { Box, styled, Button, Checkbox, MenuItem, Grid, TextField } from '@mui/material';
|
||||
// eslint-disable-next-line import/named
|
||||
import { useRequest } from 'alova';
|
||||
import { useState, useEffect } from 'react';
|
||||
import { useState, useEffect, useRef } from 'react';
|
||||
import { toast } from 'react-toastify';
|
||||
import type { FC } from 'react';
|
||||
|
||||
@@ -58,8 +57,7 @@ const SystemLog: FC = () => {
|
||||
});
|
||||
|
||||
// called on page load to reset pointer and fetch all log entries
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
const { send: fetchLog } = useRequest(SystemApi.fetchLog());
|
||||
useRequest(SystemApi.fetchLog());
|
||||
const [logEntries, setLogEntries] = useState<LogEntry[]>([]);
|
||||
const [lastIndex, setLastIndex] = useState<number>(0);
|
||||
|
||||
@@ -108,13 +106,23 @@ const SystemLog: FC = () => {
|
||||
await saveData();
|
||||
};
|
||||
|
||||
const ref = useRef<HTMLDivElement>(null);
|
||||
|
||||
useEffect(() => {
|
||||
if (logEntries.length) {
|
||||
ref.current?.scrollIntoView({
|
||||
behavior: 'smooth',
|
||||
block: 'end'
|
||||
});
|
||||
}
|
||||
}, [logEntries.length]);
|
||||
|
||||
useEffect(() => {
|
||||
const es = new EventSource(addAccessTokenParameter(LOG_EVENTSOURCE_URL));
|
||||
es.onmessage = onMessage;
|
||||
es.onerror = () => {
|
||||
es.close();
|
||||
toast.error('EventSource failed');
|
||||
// window.location.reload();
|
||||
};
|
||||
|
||||
return () => {
|
||||
@@ -217,6 +225,7 @@ const SystemLog: FC = () => {
|
||||
<span>{e.m}</span>
|
||||
</LogEntryLine>
|
||||
))}
|
||||
<div ref={ref} />
|
||||
</Box>
|
||||
</>
|
||||
);
|
||||
|
||||
@@ -1554,7 +1554,7 @@ __metadata:
|
||||
jwt-decode: ^3.1.2
|
||||
lodash-es: ^4.17.21
|
||||
mime-types: ^2.1.35
|
||||
nodemon: ^2.0.22
|
||||
nodemon: ^3.0.1
|
||||
npm-run-all: ^4.1.5
|
||||
prettier: ^3.0.0
|
||||
react: latest
|
||||
@@ -4374,23 +4374,23 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"nodemon@npm:^2.0.22":
|
||||
version: 2.0.22
|
||||
resolution: "nodemon@npm:2.0.22"
|
||||
"nodemon@npm:^3.0.1":
|
||||
version: 3.0.1
|
||||
resolution: "nodemon@npm:3.0.1"
|
||||
dependencies:
|
||||
chokidar: ^3.5.2
|
||||
debug: ^3.2.7
|
||||
ignore-by-default: ^1.0.1
|
||||
minimatch: ^3.1.2
|
||||
pstree.remy: ^1.1.8
|
||||
semver: ^5.7.1
|
||||
simple-update-notifier: ^1.0.7
|
||||
semver: ^7.5.3
|
||||
simple-update-notifier: ^2.0.0
|
||||
supports-color: ^5.5.0
|
||||
touch: ^3.1.0
|
||||
undefsafe: ^2.0.5
|
||||
bin:
|
||||
nodemon: bin/nodemon.js
|
||||
checksum: 37e960b995b66e6d9e3b0e435ecc07a45200c4c566c4820a4deb6e7cc234b305e076a8ff0b4dc9c01ee690c663ae82a217d60c591dcbbcd4af1e3a7d0ad2b2c6
|
||||
checksum: 471a218227949b38926de78237004c91e226b63ee06f433cf85c2f1c1f8b6bfbef9bceaa8d27786e7cfb539eb84da357d01741884d08a3ae172bebecd0f1de5b
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -5223,7 +5223,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.5.0, semver@npm:^5.7.1":
|
||||
"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.5.0":
|
||||
version: 5.7.1
|
||||
resolution: "semver@npm:5.7.1"
|
||||
bin:
|
||||
@@ -5241,7 +5241,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"semver@npm:^7.3.5, semver@npm:^7.3.7":
|
||||
"semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.3":
|
||||
version: 7.5.4
|
||||
resolution: "semver@npm:7.5.4"
|
||||
dependencies:
|
||||
@@ -5252,15 +5252,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"semver@npm:~7.0.0":
|
||||
version: 7.0.0
|
||||
resolution: "semver@npm:7.0.0"
|
||||
bin:
|
||||
semver: bin/semver.js
|
||||
checksum: 7fd341680a967a0abfd66f3a7d36ba44e52ff5d3e799e9a6cdb01a68160b64ef09be82b4af05459effeecdd836f002c2462555d2821cd890dfdfe36a0d9f56a5
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"set-blocking@npm:^2.0.0":
|
||||
version: 2.0.0
|
||||
resolution: "set-blocking@npm:2.0.0"
|
||||
@@ -5332,12 +5323,12 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"simple-update-notifier@npm:^1.0.7":
|
||||
version: 1.1.0
|
||||
resolution: "simple-update-notifier@npm:1.1.0"
|
||||
"simple-update-notifier@npm:^2.0.0":
|
||||
version: 2.0.0
|
||||
resolution: "simple-update-notifier@npm:2.0.0"
|
||||
dependencies:
|
||||
semver: ~7.0.0
|
||||
checksum: 3cbbbc71a5d9a2924f0e3f42fbf3cbe1854bfe142203456b00d5233bdbbdeb5091b8067cd34fb00f81dbfbc29fc30dbb6e026b3d58ea0551e3f26c0e64082092
|
||||
semver: ^7.5.3
|
||||
checksum: 2a00bd03bfbcbf8a737c47ab230d7920f8bfb92d1159d421bdd194479f6d01ebc995d13fbe13d45dace23066a78a3dc6642999b4e3b38b847e6664191575b20c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
||||
@@ -43,7 +43,6 @@ void UploadFileService::handleUpload(AsyncWebServerRequest * request, const Stri
|
||||
} else {
|
||||
md5[0] = '\0';
|
||||
handleError(request, 406); // Not Acceptable - unsupported file type
|
||||
request->client()->abort();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -134,7 +133,7 @@ void UploadFileService::uploadComplete(AsyncWebServerRequest * request) {
|
||||
return;
|
||||
}
|
||||
|
||||
handleError(request, 406); // send the forbidden response
|
||||
handleError(request, 500);
|
||||
}
|
||||
|
||||
void UploadFileService::handleError(AsyncWebServerRequest * request, int code) {
|
||||
@@ -146,7 +145,13 @@ void UploadFileService::handleError(AsyncWebServerRequest * request, int code) {
|
||||
// send the error code to the client and record the error code in the temp object
|
||||
AsyncWebServerResponse * response = request->beginResponse(code);
|
||||
request->send(response);
|
||||
handleEarlyDisconnect();
|
||||
|
||||
// check for invalid extension and immediately kill the connection, which will through an error
|
||||
// that is caught by the web code. Unfortunately the http error code is not sent to the client on fast network connections
|
||||
if (code == 406) {
|
||||
request->client()->close(true);
|
||||
handleEarlyDisconnect();
|
||||
}
|
||||
}
|
||||
|
||||
void UploadFileService::handleEarlyDisconnect() {
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
"compression": "^1.7.4",
|
||||
"express": "^4.18.2",
|
||||
"multer": "^1.4.5-lts.1",
|
||||
"nodemon": "^2.0.22"
|
||||
"nodemon": "^3.0.1"
|
||||
},
|
||||
"packageManager": "yarn@3.4.1"
|
||||
}
|
||||
|
||||
@@ -2782,5 +2782,5 @@ rest_server.get(ES_LOG_ENDPOINT, function (req, res) {
|
||||
log_index = 0;
|
||||
}
|
||||
fetch_log.events.push(data); // append to buffer
|
||||
}, 3000);
|
||||
}, 300);
|
||||
});
|
||||
|
||||
@@ -118,7 +118,7 @@ __metadata:
|
||||
compression: ^1.7.4
|
||||
express: ^4.18.2
|
||||
multer: ^1.4.5-lts.1
|
||||
nodemon: ^2.0.22
|
||||
nodemon: ^3.0.1
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
@@ -1203,23 +1203,23 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"nodemon@npm:^2.0.22":
|
||||
version: 2.0.22
|
||||
resolution: "nodemon@npm:2.0.22"
|
||||
"nodemon@npm:^3.0.1":
|
||||
version: 3.0.1
|
||||
resolution: "nodemon@npm:3.0.1"
|
||||
dependencies:
|
||||
chokidar: ^3.5.2
|
||||
debug: ^3.2.7
|
||||
ignore-by-default: ^1.0.1
|
||||
minimatch: ^3.1.2
|
||||
pstree.remy: ^1.1.8
|
||||
semver: ^5.7.1
|
||||
simple-update-notifier: ^1.0.7
|
||||
semver: ^7.5.3
|
||||
simple-update-notifier: ^2.0.0
|
||||
supports-color: ^5.5.0
|
||||
touch: ^3.1.0
|
||||
undefsafe: ^2.0.5
|
||||
bin:
|
||||
nodemon: bin/nodemon.js
|
||||
checksum: 9c987e139748f5b5c480c6c9080bdc97304ee7d29172b7b3da1a7db590b1323ad57b96346304e9b522b0e445c336dc393ccd3f9f45c73b20d476d2347890dcd0
|
||||
checksum: 6a5d81855760d6617049eccce10ccf02bddb482dab13ceea5280ae595ec7004eee13e7b934368e3f46c37fe4d970342a8c38c99cae7e93e4d7a3ed1c1ecb6acf
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -1483,15 +1483,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"semver@npm:^5.7.1":
|
||||
version: 5.7.1
|
||||
resolution: "semver@npm:5.7.1"
|
||||
bin:
|
||||
semver: ./bin/semver
|
||||
checksum: 57fd0acfd0bac382ee87cd52cd0aaa5af086a7dc8d60379dfe65fea491fb2489b6016400813930ecd61fd0952dae75c115287a1b16c234b1550887117744dfaf
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"semver@npm:^7.3.5":
|
||||
version: 7.3.8
|
||||
resolution: "semver@npm:7.3.8"
|
||||
@@ -1503,12 +1494,14 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"semver@npm:~7.0.0":
|
||||
version: 7.0.0
|
||||
resolution: "semver@npm:7.0.0"
|
||||
"semver@npm:^7.5.3":
|
||||
version: 7.5.4
|
||||
resolution: "semver@npm:7.5.4"
|
||||
dependencies:
|
||||
lru-cache: ^6.0.0
|
||||
bin:
|
||||
semver: bin/semver.js
|
||||
checksum: 272c11bf8d083274ef79fe40a81c55c184dff84dd58e3c325299d0927ba48cece1f020793d138382b85f89bab5002a35a5ba59a3a68a7eebbb597eb733838778
|
||||
checksum: 12d8ad952fa353b0995bf180cdac205a4068b759a140e5d3c608317098b3575ac2f1e09182206bf2eb26120e1c0ed8fb92c48c592f6099680de56bb071423ca3
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -1577,12 +1570,12 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"simple-update-notifier@npm:^1.0.7":
|
||||
version: 1.1.0
|
||||
resolution: "simple-update-notifier@npm:1.1.0"
|
||||
"simple-update-notifier@npm:^2.0.0":
|
||||
version: 2.0.0
|
||||
resolution: "simple-update-notifier@npm:2.0.0"
|
||||
dependencies:
|
||||
semver: ~7.0.0
|
||||
checksum: 1012e9b6c504e559a948078177b3eedbb9d7e4d15878e2bda56314d08db609ca5da485be4ac9f838759faae8057935ee0246fcdf63f1233c86bd9fecb2a5544b
|
||||
semver: ^7.5.3
|
||||
checksum: 9ba00d38ce6a29682f64a46213834e4eb01634c2f52c813a9a7b8873ca49cdbb703696f3290f3b27dc067de6d9418b0b84bef22c3eb074acf352529b2d6c27fd
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
||||
Reference in New Issue
Block a user