Aeltere Bestellungen (> 1 Monat) hinter Aufklapp-Knopf mit Suche
Im Kundenbereich stehen jetzt nur noch Bestellungen aus dem letzten Monat direkt in der Liste. Aeltere werden gebuendelt hinter einem kleinen Knopf "Aeltere Bestellungen (N)" gezeigt und lassen sich dort nach Bestellnummer, Artikel oder Datum durchsuchen. Alle 4 Sprachen. Die Monatsgrenze wird bewusst ERST IM BROWSER berechnet (echte Kalendermonate, nicht "30 Tage"): Die Seite ist statisch vorgebaut, eine schon beim Bauen gezogene Grenze waere ab dem naechsten Tag falsch. Bestelldatum steht dafuer jetzt als ISO-Datum in den Daten, die Anzeige wird daraus abgeleitet — nur noch eine Quelle fuers Datum. Nebenbei gefunden und behoben: getAccount() hat gespeicherte Kontodaten reind flach mit den Standardwerten zusammengefuehrt. Stand im Speicher ein kaputtes/fehlendes abo-Objekt (null), hat das den Standardwert ueberschrieben und jeder Zugriff wie a.abo.bezahltBisDatum warf einen Fehler, der das GESAMTE Konto-Dashboard lahmgelegt hat (keine Bestellungen, keine Tabs mehr). Das verschachtelte abo-Objekt wird jetzt ausdruecklich mit Standardwerten aufgefuellt. Getestet (Browser, alle Faelle): Aufteilung nach Datum, Auf-/Zuklappen, Suche nach Artikel und nach Bestellnummer, Suche ohne Treffer, Zusammenspiel mit den Tabs "Offene Sendungen"/ "Bestellungen", sowie Markup und Uebersetzungen in allen 4 Sprachen. Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -1683,6 +1683,54 @@ a:focus-visible, button:focus-visible {
|
||||
}
|
||||
|
||||
.order-list { display: flex; flex-direction: column; gap: 1.1rem; }
|
||||
|
||||
/* Aufklappbereich für Bestellungen, die älter als ein Monat sind (siehe konto/angemeldet.astro).
|
||||
Bewusst zurückhaltend gestaltet: Es ist ein Archiv-Zugang, kein Hauptinhalt — soll die
|
||||
aktuellen Bestellungen darüber nicht optisch überstrahlen. */
|
||||
.order-archive { margin-top: 1.2rem; display: flex; flex-direction: column; gap: 0.9rem; }
|
||||
.order-archive[hidden] { display: none; }
|
||||
.order-archive-toggle {
|
||||
align-self: flex-start;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 0.55em;
|
||||
padding: 0.5em 1em;
|
||||
border-radius: 999px;
|
||||
border: 1px dashed rgba(244, 241, 247, 0.22);
|
||||
background: transparent;
|
||||
color: var(--c-text-muted);
|
||||
font-family: inherit;
|
||||
font-size: 0.88rem;
|
||||
font-weight: 600;
|
||||
cursor: pointer;
|
||||
transition: border-color 0.2s var(--ease), color 0.2s var(--ease), background 0.2s var(--ease);
|
||||
}
|
||||
.order-archive-toggle:hover {
|
||||
border-color: var(--c-accent);
|
||||
border-style: solid;
|
||||
color: var(--c-text);
|
||||
background: color-mix(in srgb, var(--c-accent) 10%, transparent);
|
||||
}
|
||||
.order-archive-icon { font-size: 1em; }
|
||||
.order-archive-chevron { font-size: 0.7em; transition: transform 0.2s var(--ease); }
|
||||
.order-archive.is-open .order-archive-chevron { transform: rotate(180deg); }
|
||||
.order-archive-panel { display: flex; flex-direction: column; gap: 1.1rem; }
|
||||
.order-archive-panel[hidden] { display: none; }
|
||||
.order-archive-search { position: relative; display: flex; align-items: center; }
|
||||
.order-archive-search-icon { position: absolute; left: 0.85em; font-size: 0.9rem; opacity: 0.6; pointer-events: none; }
|
||||
.order-archive-search input {
|
||||
width: 100%;
|
||||
padding: 0.6em 0.9em 0.6em 2.4em;
|
||||
border-radius: var(--radius-m);
|
||||
border: 1px solid rgba(244, 241, 247, 0.14);
|
||||
background: var(--c-anthracite-light);
|
||||
color: var(--c-text);
|
||||
font-family: inherit;
|
||||
font-size: 0.92rem;
|
||||
}
|
||||
.order-archive-search input:focus-visible { outline: 2px solid var(--c-accent); outline-offset: 1px; }
|
||||
.order-archive-nohits { color: var(--c-text-muted); margin: 0; }
|
||||
.order-archive-nohits[hidden] { display: none; }
|
||||
.order-card { display: flex; flex-direction: column; gap: 0.9rem; }
|
||||
.order-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
|
||||
.order-no { display: block; font-weight: 700; font-size: 1.02rem; }
|
||||
|
||||
Reference in New Issue
Block a user