diff --git a/web/src/format.js b/web/src/format.js index e5152bc..72d757b 100644 --- a/web/src/format.js +++ b/web/src/format.js @@ -32,6 +32,17 @@ export function formatDate(iso, locale = "de") { return new Intl.DateTimeFormat(locale === "en" ? "en-GB" : "de-DE").format(d); } +/** Datum MIT Uhrzeit – für Zeitpunkte, bei denen der Tag allein nichts sagt + * ("zuletzt abgerufen" am selben Tag). */ +export function formatDateTime(iso, locale = "de") { + if (!iso) return ""; + const d = new Date(iso); + if (Number.isNaN(d.getTime())) return String(iso); + return new Intl.DateTimeFormat(locale === "en" ? "en-GB" : "de-DE", { + dateStyle: "short", timeStyle: "short", + }).format(d); +} + /** Eingabetext ("12,34" oder "12.34") in Ganzzahl-Cent; null bei leer/ungültig. */ export function parseAmountToCents(str) { if (str == null) return null; diff --git a/web/src/locales/de.json b/web/src/locales/de.json index 0c88780..dc3710a 100644 --- a/web/src/locales/de.json +++ b/web/src/locales/de.json @@ -573,7 +573,10 @@ "deleteSender": "Zuordnung entfernen", "deleteSenderConfirm": "Zuordnung „{{text}}“ entfernen? Bereits erfasste Zahlungen bleiben.", "anyCurrency": "jede Währung", - "fetchOlder": "Älteres nachholen" + "fetchOlder": "Älteres nachholen", + "every": "alle {{n}} Minuten", + "manualOnly": "nur auf Knopfdruck", + "lastPollAt": "zuletzt abgerufen: {{when}}" }, "bank": { "title": "Bankkonten Anbindung", diff --git a/web/src/locales/en.json b/web/src/locales/en.json index 249231b..7c06c66 100644 --- a/web/src/locales/en.json +++ b/web/src/locales/en.json @@ -573,7 +573,10 @@ "deleteSender": "Remove mapping", "deleteSenderConfirm": "Remove mapping “{{text}}”? Payments already captured stay.", "anyCurrency": "any currency", - "fetchOlder": "Catch up on older" + "fetchOlder": "Catch up on older", + "every": "every {{n}} minutes", + "manualOnly": "only on demand", + "lastPollAt": "last fetched: {{when}}" }, "bank": { "title": "Bank account connection", diff --git a/web/src/pages/settings/Postfaecher.jsx b/web/src/pages/settings/Postfaecher.jsx index 8b0e204..55844c6 100644 --- a/web/src/pages/settings/Postfaecher.jsx +++ b/web/src/pages/settings/Postfaecher.jsx @@ -1,7 +1,7 @@ import { useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import { api } from "../../api"; -import { formatDate } from "../../format"; +import { formatDate, formatDateTime } from "../../format"; import { useToast } from "../../toast"; import { useConfirm } from "../../confirm"; import Icon from "../../components/Icon"; @@ -145,11 +145,20 @@ export default function Postfaecher() { {quellen.map((q) => (