Bearbeiten geht jetzt -- und zwei Bedienelemente, die keine Kacheln sind
DER SERVER LIESS DAS AENDERN DIE GANZE ZEIT ZU. IM TAGESFENSTER FEHLTE DER KNOPF. Filipe: "ich hab die gemacht und kann sie nicht bearbeiten." Dort standen nur "erledigt" und "loeschen". Ein Recht ohne Knopf ist kein Recht. Jetzt oeffnet "bearbeiten" dasselbe Formular, gefuellt -- ein Formular, zwei Wege (POST oder PATCH), statt eines zweiten, das genauso aussieht und beim naechsten Feld auseinanderlaeuft. Die Wiederholung bleibt beim Bearbeiten aussen vor: Sie ist eine REGEL und wird unter "Laeuft von allein" geaendert, nicht an einer ihrer Auspraegungen. Wer das zulaesst, bekommt einen Termin, der aus der Reihe faellt, ohne dass jemand weiss warum. UND DIE REGEL DAZU IM SERVER Filipe: "nur diese person selber." Bis hierher durfte JEDER aendern, der den Termin ueberhaupt sah -- bei einem Termin mit mehreren Beteiligten also alle. Jetzt: die Leitung und wer ihn eingetragen hat. Dieselbe Regel wie beim Loeschen, die dort schon richtig stand. AUSNAHME "erledigt": Ein Haken, dass ein Gespraech stattgefunden hat, ist keine Aenderung am Termin, sondern eine Rueckmeldung dazu -- sonst muesste jeder Beteiligte den Anleger bitten, den eigenen Call abzuhaken. Gemessen in pruef-teilnehmer, mit allen drei Faellen. Beim Bauen der Pruefung ist mir ein Aufbaufehler unterlaufen (Bea statt Pat als zweite Teilnehmerin -- Luna darf Bea gar nicht einladen), und die Pruefung hat ihn korrekt als 404 statt 403 gemeldet. Der Fehler lag im Aufbau, nicht im Code. DER ANSICHTS-UMSCHALTER WAR VIER KACHELN `.k-ansicht` stand in der Modulliste. Jeder der vier Knoepfe bekam damit die volle Behandlung einer Kachel: Fase, Kantenlicht, Eckwinkel, Raster. Auf 90 mal 32 Pixeln ist das kein Modul, sondern Gedraenge -- vier Fasen und sechzehn Eckwinkel nebeneinander. Die Modulform ist fuer FLAECHEN gedacht, die etwas enthalten. Ein Umschalter enthaelt nichts, er waehlt aus, und die richtige Form dafuer ist die SCHIENE: eine vertiefte Bahn, in der ein erhabenes Stueck aus gebuerstetem Metall sitzt. Man sieht auf einen Blick, dass die vier zusammengehoeren und genau eines gewaehlt ist. DIE GRUPPENKOEPFE AUF DER CALLS-SEITE Vorher eine Textzeile mit Pfeil, und die Karten darunter begannen ohne Uebergang -- aufgeklappt sah man nicht, wo eine Gruppe aufhoert. Jetzt ist der Kopf ein Schalter mit Zustand, die Zahl ein gefasstes Schild, und die Karten stehen aufgeklappt in einer eigenen vertieften Bahn mit Farbschiene links. 14 Pruefungen gelaufen, alle gruen. Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -420,20 +420,74 @@
|
||||
|
||||
/* Der Kopf ist der Schalter -- <button>, also muessen die Vorgaben des
|
||||
Browsers zurueck (eigene Schrift, Rand, zentrierter Text). */
|
||||
/* =====================================================================
|
||||
DIE GRUPPENKOEPFE SIND SCHALTER AN EINEM GERAET (07.09.2026)
|
||||
|
||||
Filipe: "das soll besser viel besser geregelt sein, weil wenn man die
|
||||
aufmachst sieht das so beschissen aus, mach es im insgesamten viel
|
||||
krasser besser und geiler."
|
||||
|
||||
Vorher war der Kopf eine Textzeile mit einem Pfeil daneben, und die
|
||||
Karten darunter begannen ohne Uebergang. Aufgeklappt sah man deshalb
|
||||
nicht, wo eine Gruppe aufhoert und die naechste anfaengt -- drei
|
||||
Ueberschriften und dazwischen eine Wand.
|
||||
|
||||
Jetzt ist der Kopf ein SCHALTER mit Zustand:
|
||||
|
||||
ZU eine flache Leiste, dunkel
|
||||
AUF die Leiste sitzt in einer Fassung, die Zahl wird zum
|
||||
gefassten Schild, und die Karten darunter stehen in einer
|
||||
eigenen, leicht vertieften Bahn mit einer Farbschiene
|
||||
links -- man sieht auf einen Blick, was zu welcher
|
||||
Gruppe gehoert
|
||||
|
||||
Die abgeschnittene Ecke oben links nimmt die Sprache der Module auf,
|
||||
ohne dass der Kopf ein Modul waere: Er ist ein Bedienelement, und
|
||||
deshalb hat er keine Eckwinkel und kein Raster. */
|
||||
.call-brett .stufe__kopf {
|
||||
appearance: none; -webkit-appearance: none;
|
||||
width: 100%;
|
||||
font: inherit; color: inherit; text-align: left;
|
||||
border: 0; background: none; cursor: pointer;
|
||||
display: flex; align-items: center; gap: 10px;
|
||||
padding: 12px 2px;
|
||||
border-radius: 10px;
|
||||
transition: background var(--tempo);
|
||||
border: 0; cursor: pointer;
|
||||
display: flex; align-items: center; gap: 11px;
|
||||
padding: 11px 14px 11px 15px;
|
||||
border-radius: 0;
|
||||
clip-path: polygon(11px 0, 100% 0, 100% 100%, 0 100%, 0 11px);
|
||||
background:
|
||||
linear-gradient(90deg,
|
||||
color-mix(in srgb, var(--c, var(--akzent)) 22%, transparent) 0%,
|
||||
transparent 42%),
|
||||
linear-gradient(180deg, #101724, #0a0f18);
|
||||
box-shadow:
|
||||
inset 0 1px 0 rgba(255, 255, 255, .07),
|
||||
0 1px 0 rgba(0, 0, 0, .6);
|
||||
transition: background var(--tempo), box-shadow var(--tempo);
|
||||
}
|
||||
.call-brett .stufe__kopf:hover {
|
||||
background:
|
||||
linear-gradient(90deg,
|
||||
color-mix(in srgb, var(--c, var(--akzent)) 30%, transparent) 0%,
|
||||
transparent 46%),
|
||||
linear-gradient(180deg, #141d2d, #0c121c);
|
||||
}
|
||||
.call-brett .stufe__kopf:hover { background: rgba(255, 255, 255, .04); }
|
||||
.call-brett .stufe__kopf:focus-visible { outline: 2px solid var(--akzent); outline-offset: 2px; }
|
||||
.call-brett .stufe__titel { margin: 0; }
|
||||
.call-brett .stufe__zahl { margin-left: auto; }
|
||||
.call-brett .stufe__titel { margin: 0; color: var(--c, var(--akzent)); }
|
||||
|
||||
/* Die Zahl als gefasstes Schild -- dieselbe Bauart wie auf den Kacheln
|
||||
und in der Tageskachel. Eine Oberflaeche, eine Sprache. */
|
||||
.call-brett .stufe__zahl {
|
||||
margin-left: auto;
|
||||
min-width: 26px; padding: 2px 8px;
|
||||
border-radius: 0;
|
||||
clip-path: polygon(5px 0, 100% 0, 100% 100%, 0 100%, 0 5px);
|
||||
color: var(--c, var(--akzent));
|
||||
background:
|
||||
linear-gradient(150deg, rgba(255, 255, 255, .12) 0%, transparent 52%),
|
||||
linear-gradient(color-mix(in srgb, var(--c, var(--akzent)) 12%, #080d15),
|
||||
color-mix(in srgb, var(--c, var(--akzent)) 5%, #080d15));
|
||||
box-shadow: 0 0 0 1px rgba(190, 215, 245, .18);
|
||||
}
|
||||
|
||||
.call-brett .gruppe__pfeil {
|
||||
width: 16px; height: 16px; flex: none;
|
||||
color: var(--text-still);
|
||||
@@ -441,7 +495,23 @@
|
||||
}
|
||||
.call-brett .gruppe[data-zu="ja"] .gruppe__pfeil { transform: rotate(-90deg); }
|
||||
.call-brett .gruppe[data-zu="ja"] { padding-bottom: 4px; }
|
||||
.call-brett .gruppe__karten { margin-top: 0; }
|
||||
|
||||
/* AUFGEKLAPPT: die Karten stehen in einer eigenen Bahn. Das ist der
|
||||
Teil, der gefehlt hat -- ohne ihn hoerte die Gruppe optisch beim
|
||||
Kopf auf, und darunter lagen einfach Karten im Nichts. */
|
||||
.call-brett .gruppe:not([data-zu="ja"]) .gruppe__karten {
|
||||
margin-top: 0;
|
||||
padding: 12px 12px 12px 14px;
|
||||
background:
|
||||
linear-gradient(90deg,
|
||||
color-mix(in srgb, var(--c, var(--akzent)) 10%, transparent) 0 3px,
|
||||
transparent 3px),
|
||||
linear-gradient(180deg, rgba(255, 255, 255, .022), rgba(255, 255, 255, .006));
|
||||
box-shadow:
|
||||
inset 0 1px 0 rgba(0, 0, 0, .5),
|
||||
inset 3px 0 0 -1px color-mix(in srgb, var(--c, var(--akzent)) 55%, transparent);
|
||||
}
|
||||
|
||||
/* Die Karten stehen jetzt IN einer Tafel -- sie brauchen keine zweite
|
||||
schwere Flaeche, sonst liegt Kasten in Kasten. Leichter Grund, gleiche
|
||||
Schiene. */
|
||||
|
||||
Reference in New Issue
Block a user