Can download a copy of storage
Some checks failed
continuous-integration/drone/push Build is failing
Some checks failed
continuous-integration/drone/push Build is failing
This commit is contained in:
@ -16,6 +16,7 @@ import { PendingDevicesRoute } from "./routes/PendingDevicesRoute";
|
||||
import { RelaysListRoute } from "./routes/RelaysListRoute";
|
||||
import { BaseAuthenticatedPage } from "./widgets/BaseAuthenticatedPage";
|
||||
import { OTARoute } from "./routes/OTARoute";
|
||||
import { ManagementRoute } from "./routes/ManagementRoute";
|
||||
|
||||
export function App() {
|
||||
if (!AuthApi.SignedIn && !ServerApi.Config.auth_disabled)
|
||||
@ -31,6 +32,7 @@ export function App() {
|
||||
<Route path="relays" element={<RelaysListRoute />} />
|
||||
<Route path="ota" element={<OTARoute />} />
|
||||
<Route path="logs" element={<LogsRoute />} />
|
||||
<Route path="management" element={<ManagementRoute />} />
|
||||
<Route path="*" element={<NotFoundRoute />} />
|
||||
</Route>
|
||||
)
|
||||
|
31
central_frontend/src/routes/ManagementRoute.tsx
Normal file
31
central_frontend/src/routes/ManagementRoute.tsx
Normal file
@ -0,0 +1,31 @@
|
||||
import { Button } from "@mui/material";
|
||||
import { useConfirm } from "../hooks/context_providers/ConfirmDialogProvider";
|
||||
import { SolarEnergyRouteContainer } from "../widgets/SolarEnergyRouteContainer";
|
||||
import { APIClient } from "../api/ApiClient";
|
||||
|
||||
export function ManagementRoute(): React.ReactElement {
|
||||
const confirm = useConfirm();
|
||||
|
||||
const downloadBackup = async () => {
|
||||
try {
|
||||
if (
|
||||
!(await confirm(
|
||||
`Do you really want to download a copy of the storage? It will contain sensitive information!`
|
||||
))
|
||||
)
|
||||
return;
|
||||
|
||||
location.href = APIClient.backendURL() + "/management/download_storage";
|
||||
} catch (e) {
|
||||
console.error(`Failed to donwload a backup of the storage! Error: ${e}`);
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<SolarEnergyRouteContainer label="Management">
|
||||
<Button variant="outlined" onClick={downloadBackup}>
|
||||
Download a backup of storage
|
||||
</Button>
|
||||
</SolarEnergyRouteContainer>
|
||||
);
|
||||
}
|
@ -1,5 +1,6 @@
|
||||
import {
|
||||
mdiChip,
|
||||
mdiCog,
|
||||
mdiElectricSwitch,
|
||||
mdiHome,
|
||||
mdiMonitorArrowDown,
|
||||
@ -54,6 +55,11 @@ export function SolarEnergyNavList(): React.ReactElement {
|
||||
uri="/logs"
|
||||
icon={<Icon path={mdiNotebookMultiple} size={1} />}
|
||||
/>
|
||||
<NavLink
|
||||
label="Management"
|
||||
uri="/management"
|
||||
icon={<Icon path={mdiCog} size={1} />}
|
||||
/>
|
||||
<Typography
|
||||
variant="caption"
|
||||
component="div"
|
||||
|
Reference in New Issue
Block a user