mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-06 07:49:52 +03:00
4
.github/workflows/sonar_check.yml
vendored
4
.github/workflows/sonar_check.yml
vendored
@@ -5,8 +5,8 @@ on:
|
||||
push:
|
||||
branches:
|
||||
- dev
|
||||
pull_request:
|
||||
types: [opened, synchronize, reopened]
|
||||
# pull_request:
|
||||
# types: [opened, synchronize, reopened]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
## **IMPORTANT! BREAKING CHANGES**
|
||||
|
||||
- new device WATER shows dhw entities from MM100 and SM100 in dhw setting
|
||||
- rename WWC to DHW, always create DHW nests/topics, remove ww prefix from mqtt names [#1634](https://github.com/emsesp/EMS-ESP32/issues/1634)
|
||||
- renamed WWC to DHW, always create DHW nests/topics, remove ww prefix from mqtt names [#1634](https://github.com/emsesp/EMS-ESP32/issues/1634)
|
||||
|
||||
## Added
|
||||
|
||||
@@ -40,3 +40,4 @@
|
||||
- dynamic register dhw circuits for thermostat
|
||||
- removed OTA feature [#1738](https://github.com/emsesp/EMS-ESP32/issues/1738)
|
||||
- added shower min duration [[#1801](https://github.com/emsesp/EMS-ESP32/issues/1801)]
|
||||
- Include TXT file along with the generated CSV for Device Data export/download
|
||||
|
||||
@@ -23,7 +23,7 @@ const en: Translation = {
|
||||
ONOFF: 'on/off',
|
||||
TYPE: 'Type',
|
||||
DESCRIPTION: 'Description',
|
||||
ENTITIES: 'Entities',
|
||||
ENTITIES: 'entities',
|
||||
REFRESH: 'Refresh',
|
||||
EXPORT: 'Export',
|
||||
DEVICE_DETAILS: 'Device Details',
|
||||
|
||||
@@ -23,7 +23,7 @@ const fr: Translation = {
|
||||
ONOFF: 'on/off',
|
||||
TYPE: 'Type',
|
||||
DESCRIPTION: 'Description',
|
||||
ENTITIES: 'Entités',
|
||||
ENTITIES: 'entités',
|
||||
REFRESH: 'Rafraîchir',
|
||||
EXPORT: 'Exporter',
|
||||
DEVICE_DETAILS: "Détails de l'appareil",
|
||||
|
||||
@@ -23,7 +23,7 @@ const it: Translation = {
|
||||
ONOFF: 'on/off',
|
||||
TYPE: 'Tipo',
|
||||
DESCRIPTION: 'Descrizione',
|
||||
ENTITIES: 'Entità',
|
||||
ENTITIES: 'entità',
|
||||
REFRESH: 'Ricaricare',
|
||||
EXPORT: 'Esporta',
|
||||
DEVICE_DETAILS: 'Dettagli dispositivo',
|
||||
|
||||
@@ -23,7 +23,7 @@ const nl: Translation = {
|
||||
ONOFF: 'aan/uit',
|
||||
TYPE: 'Type',
|
||||
DESCRIPTION: 'Beschrijving',
|
||||
ENTITIES: 'Entiteiten',
|
||||
ENTITIES: 'entiteiten',
|
||||
REFRESH: 'Ververs',
|
||||
EXPORT: 'Export',
|
||||
DEVICE_DETAILS: 'Device Gegevens',
|
||||
|
||||
@@ -23,7 +23,7 @@ const sk: Translation = {
|
||||
ONOFF: 'zap/vyp',
|
||||
TYPE: 'Typ',
|
||||
DESCRIPTION: 'Popis',
|
||||
ENTITIES: 'Entity',
|
||||
ENTITIES: 'entity',
|
||||
REFRESH: 'Obnoviť',
|
||||
EXPORT: 'Export',
|
||||
DEVICE_DETAILS: 'Detaily zariadenia',
|
||||
|
||||
@@ -23,7 +23,7 @@ const sv: Translation = {
|
||||
ONOFF: 'på/av',
|
||||
TYPE: 'Typ',
|
||||
DESCRIPTION: 'Beskrivning',
|
||||
ENTITIES: 'Entiteter',
|
||||
ENTITIES: 'entiteter',
|
||||
REFRESH: 'Uppdatera',
|
||||
EXPORT: 'Exportera',
|
||||
DEVICE_DETAILS: 'Enhetsdetaljer',
|
||||
|
||||
@@ -23,7 +23,7 @@ const tr: Translation = {
|
||||
ONOFF: 'açık/kapalı',
|
||||
TYPE: 'Tür',
|
||||
DESCRIPTION: 'Açıklama',
|
||||
ENTITIES: 'Varlıklar',
|
||||
ENTITIES: 'varlıklar',
|
||||
REFRESH: 'Yenile',
|
||||
EXPORT: 'Dışarı al',
|
||||
DEVICE_DETAILS: 'Cihaz Ayrıntıları',
|
||||
|
||||
@@ -426,8 +426,9 @@ const Devices: FC = () => {
|
||||
document.body.removeChild(downloadLink);
|
||||
};
|
||||
|
||||
const device = { ...{ device: coreData.devices[deviceIndex] }, ...deviceData };
|
||||
downloadBlob(
|
||||
new Blob([JSON.stringify(deviceData, null, 2)], {
|
||||
new Blob([JSON.stringify(device, null, 2)], {
|
||||
type: 'text;charset:utf-8'
|
||||
})
|
||||
);
|
||||
@@ -650,7 +651,7 @@ const Devices: FC = () => {
|
||||
</Typography>
|
||||
|
||||
<Grid container justifyContent="space-between">
|
||||
<Typography sx={{ ml: 1 }} variant="subtitle2" color="primary">
|
||||
<Typography sx={{ ml: 1 }} variant="subtitle2" color="grey">
|
||||
{LL.SHOWING() +
|
||||
' ' +
|
||||
shown_data.length +
|
||||
@@ -660,61 +661,40 @@ const Devices: FC = () => {
|
||||
LL.ENTITIES(shown_data.length)}
|
||||
<ButtonTooltip title="Info">
|
||||
<IconButton onClick={() => setShowDeviceInfo(true)}>
|
||||
<InfoOutlinedIcon
|
||||
color="primary"
|
||||
sx={{ fontSize: 18, verticalAlign: 'middle' }}
|
||||
/>
|
||||
<InfoOutlinedIcon color="primary" sx={{ fontSize: 18 }} />
|
||||
</IconButton>
|
||||
</ButtonTooltip>
|
||||
{me.admin && (
|
||||
<ButtonTooltip title={LL.CUSTOMIZATIONS()}>
|
||||
<IconButton onClick={customize}>
|
||||
<FormatListNumberedIcon
|
||||
color="primary"
|
||||
sx={{ fontSize: 18, verticalAlign: 'middle' }}
|
||||
/>
|
||||
<FormatListNumberedIcon color="primary" sx={{ fontSize: 18 }} />
|
||||
</IconButton>
|
||||
</ButtonTooltip>
|
||||
)}
|
||||
<ButtonTooltip title={LL.EXPORT()}>
|
||||
<IconButton onClick={handleDownloadCsv}>
|
||||
<DownloadIcon
|
||||
color="primary"
|
||||
sx={{ fontSize: 18, verticalAlign: 'middle' }}
|
||||
/>
|
||||
<DownloadIcon color="primary" sx={{ fontSize: 18 }} />
|
||||
</IconButton>
|
||||
</ButtonTooltip>
|
||||
<ButtonTooltip title="Favorites">
|
||||
<IconButton onClick={() => setOnlyFav(!onlyFav)}>
|
||||
{onlyFav ? (
|
||||
<StarIcon
|
||||
color="primary"
|
||||
sx={{ fontSize: 18, verticalAlign: 'middle' }}
|
||||
/>
|
||||
<StarIcon color="primary" sx={{ fontSize: 18 }} />
|
||||
) : (
|
||||
<StarBorderOutlinedIcon
|
||||
color="primary"
|
||||
sx={{ fontSize: 18, verticalAlign: 'middle' }}
|
||||
/>
|
||||
<StarBorderOutlinedIcon color="primary" sx={{ fontSize: 18 }} />
|
||||
)}
|
||||
</IconButton>
|
||||
</ButtonTooltip>
|
||||
<ButtonTooltip title={LL.REFRESH()}>
|
||||
<IconButton onClick={refreshData}>
|
||||
<RefreshIcon
|
||||
color="primary"
|
||||
sx={{ fontSize: 18, verticalAlign: 'middle' }}
|
||||
/>
|
||||
<RefreshIcon color="primary" sx={{ fontSize: 18 }} />
|
||||
</IconButton>
|
||||
</ButtonTooltip>
|
||||
</Typography>
|
||||
<Grid item zeroMinWidth justifyContent="flex-end">
|
||||
<ButtonTooltip title={LL.CANCEL()}>
|
||||
<IconButton onClick={resetDeviceSelect}>
|
||||
<HighlightOffIcon
|
||||
color="primary"
|
||||
sx={{ fontSize: 18, verticalAlign: 'middle' }}
|
||||
/>
|
||||
<HighlightOffIcon color="primary" sx={{ fontSize: 18 }} />
|
||||
</IconButton>
|
||||
</ButtonTooltip>
|
||||
</Grid>
|
||||
|
||||
@@ -39,6 +39,7 @@ ESP8266React::ESP8266React(AsyncWebServer * server, FS * fs)
|
||||
response->addHeader("Content-Encoding", "gzip");
|
||||
// response->addHeader("Content-Encoding", "br"); // only works over HTTPS
|
||||
// response->addHeader("Cache-Control", "public, immutable, max-age=31536000");
|
||||
response->addHeader("Cache-Control", "must-revalidate"); // ensure that a client will check the server for a change
|
||||
response->addHeader("Last-Modified", last_modified);
|
||||
response->addHeader("ETag", hash);
|
||||
|
||||
@@ -46,6 +47,7 @@ ESP8266React::ESP8266React(AsyncWebServer * server, FS * fs)
|
||||
};
|
||||
|
||||
server->on(uri, HTTP_GET, requestHandler);
|
||||
|
||||
// Serving non matching get requests with "/index.html"
|
||||
// OPTIONS get a straight up 200 response
|
||||
if (strncmp(uri, "/index.html", 11) == 0) {
|
||||
|
||||
@@ -1 +1 @@
|
||||
#define EMSESP_APP_VERSION "3.7.0-dev.17"
|
||||
#define EMSESP_APP_VERSION "3.7.0-dev.18"
|
||||
|
||||
Reference in New Issue
Block a user