diff --git a/frontend/src/pages.jsx b/frontend/src/pages.jsx
index 1f02ac2..f73b4f0 100644
--- a/frontend/src/pages.jsx
+++ b/frontend/src/pages.jsx
@@ -2179,6 +2179,17 @@ export function RoosterScherm({ mode }) {
setBewerkBlok(null);
setToonForm(true);
}
+ // Direct vanuit een tijdvak in het rooster een vak toevoegen: tijdslot vast,
+ // en het doel alvast op de actieve scope (klas/leerling) zetten.
+ function openNieuwBlokVoorSlot(tijdslotId) {
+ setBewerkBlok(null);
+ const basis = { ...leeg, tijdslot: String(tijdslotId) };
+ if (scopeType === "klas" && scopeId) { basis.doel_type = "groep"; basis.doel = String(scopeId); }
+ else if (scopeType === "leerling" && scopeId) { basis.doel_type = "leerling"; basis.doel = String(scopeId); }
+ setForm(basis);
+ resetNieuweSplit();
+ setToonForm(true);
+ }
function sluitNieuwBlok() {
setToonForm(false);
resetNieuweSplit();
@@ -2471,7 +2482,6 @@ export function RoosterScherm({ mode }) {
)}
- {edit && schooljaar && tab === "week" && }
{schooljaar && (edit ? tab === "week" : true) && (
)}
@@ -2528,7 +2538,6 @@ export function RoosterScherm({ mode }) {
{edit && (
-
{(blokwizardAan || autoroosterAan) && (
@@ -2696,6 +2705,9 @@ export function RoosterScherm({ mode }) {
>
{t.start_tijd?.slice(0, 5)} {t.naam}
{renderSlotBlokken(slotBlokken, iso, kal)}
+ {edit && !kal && (
+
+ )}
);
})}
@@ -2705,24 +2717,33 @@ export function RoosterScherm({ mode }) {
)}
- {tab === "schooljaar" && (
-
-
Maak hier snel een schooljaar aan en beheer de kalender (studiedagen, vrije dagen, vakanties).
-
-
- )}
-
{edit && tab === "wizard" && blokwizardAan && }
{edit && tab === "auto" && autoroosterAan && }
{tab === "instellingen" && (
-
-
Bouwstenen van het rooster — beheer ze hier zonder het Rooster te verlaten.
-
-
-
-
+
+
Beheer hier alle bouwstenen van het rooster. Klik een onderdeel open om het te bewerken.
+
+ 📅 Schooljaar & kalender
+ Maak een schooljaar aan en beheer de kalender (studiedagen, vrije dagen, vakanties).
+
+
+ 🕒 Tijdvakken
+ De dag- en tijdindeling waarop vakken geplaatst kunnen worden.
+
+
+ 📚 Vakken & activiteiten
+ De vakken/activiteiten met kleur en icoon.
+
+
+ 🚪 Lokalen
+ Ruimtes met capaciteit; meetellen in de dubbele-boekingcheck.
+
+
+ 📍 Locaties
+ Vrije locatie-aanduidingen (bv. gymzaal, zwembad).
+
)}
diff --git a/frontend/src/styles.css b/frontend/src/styles.css
index 9862ec1..3cdf6d0 100644
--- a/frontend/src/styles.css
+++ b/frontend/src/styles.css
@@ -166,6 +166,18 @@ input[type="color"] { padding: 2px; width: 44px; min-width: 44px; height: 38px;
.slot-cel { border: 1px dashed transparent; border-radius: 8px; padding: 4px; margin-bottom: 8px; transition: background .1s, border-color .1s; }
.slot-cel.hover { border-color: var(--brand); background: var(--brand-soft); }
.slot-tijd { font-size: 11px; color: var(--muted); padding: 2px 2px 4px; }
+/* Snel een vak toevoegen direct in een tijdvak */
+.slot-add { width: 100%; margin-top: 4px; border: 1px dashed var(--line); background: transparent; color: var(--muted); border-radius: 8px; padding: 5px; font: inherit; font-size: 12px; cursor: pointer; opacity: .55; transition: opacity .1s, border-color .1s, color .1s, background .1s; }
+.slot-cel:hover .slot-add, .slot-add:focus-visible { opacity: 1; }
+.slot-add:hover { border-color: var(--brand); color: var(--brand); background: var(--brand-soft); }
+/* Instellingen als overzichtelijke uitklapsecties */
+.instellingen-secties { display: flex; flex-direction: column; gap: 10px; }
+.inst-sectie { border: 1px solid var(--line); border-radius: 10px; background: var(--panel); padding: 0 14px; }
+.inst-sectie > summary { cursor: pointer; font-weight: 600; padding: 12px 0; list-style: none; display: flex; align-items: center; gap: 8px; }
+.inst-sectie > summary::-webkit-details-marker { display: none; }
+.inst-sectie > summary::after { content: "▸"; color: var(--muted); margin-left: auto; }
+.inst-sectie[open] > summary::after { content: "▾"; }
+.inst-body { padding: 0 0 14px; border-top: 1px solid var(--line); margin-top: -2px; padding-top: 12px; }
.rooster-blok { touch-action: none; }
.rooster-blok.vervallen { opacity: .55; }