diff --git a/assets/css/app.css b/assets/css/app.css index e69497075..45ce4f5c0 100644 --- a/assets/css/app.css +++ b/assets/css/app.css @@ -545,10 +545,10 @@ input::-webkit-datetime-edit { .form-control { color: var(--evcc-default-text); } -.form-control:disabled, -.form-control:read-only, -.dark .form-control:disabled, -.dark .form-control:read-only { +input.form-control:disabled, +input.form-control:read-only, +.dark input.form-control:disabled, +.dark input.form-control:read-only { background-color: var(--evcc-gray-10); color: var(--bs-default-text); opacity: 1; diff --git a/assets/js/api.ts b/assets/js/api.ts index 363931179..9b3753821 100644 --- a/assets/js/api.ts +++ b/assets/js/api.ts @@ -1,4 +1,4 @@ -import axios from "axios"; +import axios, { type AxiosResponse } from "axios"; import { openLoginModal } from "./components/Auth/auth"; const { protocol, hostname, port, pathname } = window.location; @@ -65,3 +65,25 @@ export const allowClientError = { return status >= 200 && status < 500; }, }; + +export function downloadFile(res: AxiosResponse) { + if (res.status === 200) { + const blob = new Blob([res.data]); + const url = window.URL.createObjectURL(blob); + const link = document.createElement("a"); + link.href = url; + + // Try to get filename from Content-Disposition header + let filename = "evcc.txt"; + const disposition = res.headers["content-disposition"]; + if (disposition && disposition.indexOf("filename=") !== -1) { + filename = disposition.split("filename=")[1].replace(/['"]/g, "").trim(); + } + + link.download = filename; + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + window.URL.revokeObjectURL(url); + } +} diff --git a/assets/js/components/Auth/LoginModal.vue b/assets/js/components/Auth/LoginModal.vue index bd1a96356..0c63f3c79 100644 --- a/assets/js/components/Auth/LoginModal.vue +++ b/assets/js/components/Auth/LoginModal.vue @@ -11,33 +11,7 @@ {{ $t("loginModal.demoMode") }}
-
- - -
- -

{{ $t("loginModal.error") }}{{ error }}

- - {{ $t("loginModal.iframeHint") }} - +