6. Meldingen
6.1 Schermafbeelding

6.2 Scherm meta data
| Veld | Waarde |
|---|---|
| Scherm-ID | SCH-GEN-06-01 |
| Schermnaam | Meldingen |
| Doelgroep / onderdeel | Generiek |
| Bronbestand | oefenhub_generiek_05_meldingen_v1_12.html |
| Mockupversie | V1.12 |
| Screenshotbestand | oefenhub_generiek_05_meldingen_v1_12.png |
| Processtap / context | Ingelogde gebruiker opent de eigen meldingenpagina vanuit het profielmenu en kan eigen meldingen bekijken, filteren op opvolgstatus of een nieuwe melding maken. |
| Documentatiestatus | Uitgewerkt op basis van HTML-mockup, PNG-screenshot, Functioneel Ontwerp, Technisch Ontwerp, Software Requirements Specification en ondersteunende documentatie. |
| Opmerkingen | Header en footer vallen buiten de inhoudelijke scope van dit schermdocument, met één bewuste uitzondering: de oranje actie-indicatie op het profielicoon en het aantal achter het profielmenu-item Meldingen horen bij dit scherm omdat zij dezelfde actieteller voor meldingen gebruiken als het tabblad Wacht op mij. Alle zichtbare namen, datums, aantallen, statuslabels, onderwerpen en meldingsteksten zijn dynamische voorbeeldwaarden. |
| Route / URL-patroon | Profielgebonden meldingenroute, functioneel bijvoorbeeld /profiel/meldingen. |
| Autorisatie / vereiste rol-context | Ingelogde gebruiker met toegang tot de normale applicatie en tot de feature Meldingen. De gebruiker ziet uitsluitend meldingen waarvan Tickets.CreatedByUserId gelijk is aan de ingelogde gebruiker. |
| Primair domeinobject / hoofdentiteit | Tickets als hoofdentiteit, aangevuld met TicketCategories, TicketStatuses, TicketResolutionTypes, TicketDiscussionMessages, TicketClosures, TicketReopenRequests, TicketHistory, TicketTechnicalSnapshots en systeemberichten met verwijzing naar een ticket. |
| Gerelateerde schermen / navigatie | 06_melding_details, 02_berichten_overzicht, 10_profiel, 09_voorkeuren, 08_toegankelijk. |
| Data-karakter | Gebruikergebonden overzichts-, filter- en aanmaakscherm. De lijstinhoud, tabtellers, statuslabels, profielmenu-indicatie en formulierinvoer zijn dynamisch of afgeleid; technische context wordt automatisch als snapshot vastgelegd bij aanmaken van een melding. |
6.3 Functionele beschrijving
Het scherm Meldingen is de gebruikersgerichte overzichtspagina voor het meldingen- en ticketsysteem van OefenHub. Een gebruiker kan hier eigen meldingen terugvinden, snel zien of een reactie nodig is en via een opvallende actie een nieuwe melding starten. Het scherm is geen beheerweergave: interne beheerdiscussie, gekoppelde beheerders, technische metadata en auditgeschiedenis zijn niet zichtbaar voor de gewone gebruiker.
De pagina bestaat functioneel uit:
- een beperkte headeruitzondering voor de oranje actie-indicatie op het profielicoon en het aantal achter het menu-item Meldingen;
- een breadcrumb Home > Profiel > Meldingen;
- een introductieblok met titel Meldingen en uitleg over het meldingenproces;
- drie informatieve toelichtingskaarten: Na versturen, Bij extra vragen en Bij een oplossing;
- een opvallend actieblok Nieuwe melding met de knop Nieuwe melding maken;
- de sectie Mijn meldingen met drie tabbladen die als filters werken: Open, Wacht op mij en Gesloten;
- meldingregels met categorie, gebruikersgerichte status, datum of laatste activiteit, samenvatting en de actie Bekijk details;
- een modal Nieuwe melding maken met categorie, onderwerp, beschrijving, annuleren en verzenden.
6.3.1 Interpretatie van mockupwaarden
Alle zichtbare waarden in de mockup zijn voorbeeldwaarden. Onderwerpen zoals Nieuwe melding over foutief antwoordmodel, datums zoals 20 mrt 2026, aantallen zoals 1 bij Wacht op mij, statuslabels en beschrijvende teksten worden in productie dynamisch bepaald op basis van de ingelogde gebruiker, ticketstatussen, categorieën, laatste activiteit en actuele actiebehoefte.
De mockup toont een situatie waarin er één melding op reactie van de gebruiker wacht. Daardoor verschijnen drie samenhangende oranje indicaties: op het profielicoon, achter het menu-item Meldingen en op het tabblad Wacht op mij. Deze drie indicaties komen uit dezelfde afleiding en mogen niet als afzonderlijke, handmatig opgeslagen tellers worden behandeld.
6.3.2 Scope van header en footer
De algemene headernavigatie, categorienavigatie, berichtenicoon, gebruikersnaam, avatarinhoud en footer vallen buiten dit schermdocument. Alleen de meldingen-gerelateerde profielindicaties vallen binnen scope:
- de oranje actie-indicatie op het profielicoon wanneer minimaal één eigen melding op reactie van de gebruiker wacht;
- de oranje teller achter het profielmenu-item Meldingen;
- het tijdelijk verbergen van deze indicaties tijdens een actieve oefenrun van een leerling.
De profielindicatie is geen algemene ongelezen-berichtenbadge. De waarde wordt afgeleid uit eigen meldingen met backendstatus WaitingForUser.
6.3.3 Tabbladen als filters
De drie tabbladen in Mijn meldingen zijn filtertabs. Er is in deze gebruikersweergave geen tabblad Alles.
| Tabblad | Functionele betekenis | Bronlogica |
|---|---|---|
| Open | Eigen meldingen die nog in behandeling zijn en waarvoor geen expliciete reactie van de gebruiker wordt gevraagd. | Tickets.CreatedByUserId = CurrentUserId en status valt binnen New of InProgress, of een gelijkwaardige open toestand zonder gebruikersactie. |
| Wacht op mij | Eigen meldingen waarbij beheer wacht op aanvullende informatie van de gebruiker. | Tickets.CreatedByUserId = CurrentUserId en TicketStatuses.Code = WaitingForUser. |
| Gesloten | Eigen meldingen die formeel zijn gesloten of gebruikersgericht als opgelost/gesloten worden getoond. | TicketStatuses.Code = Closed, inclusief meldingen met een geldige of verlopen heropentermijn. |
Onder normale omstandigheden opent de overzichtsroute met het tabblad Open actief. Wanneer er meldingen zijn die op reactie wachten, blijft de overzichtsroute op Open kunnen openen, maar de actiebehoefte wordt zichtbaar via het profielicoon, het profielmenu-item en de teller op Wacht op mij. Wanneer een gebruiker via een specifiek systeembericht of directe detailroute naar een melding navigeert, hoort de detailpagina de relevante melding en het juiste detailtabblad te openen; dat is onderdeel van scherm 6. Melding details.
6.3.4 Actieteller voor meldingen
De actieteller voor meldingen wordt afgeleid uit het aantal eigen tickets met status WaitingForUser. De teller:
- verschijnt op het profielicoon wanneer de waarde groter is dan 0;
- verschijnt achter het profielmenu-item Meldingen wanneer de waarde groter is dan 0;
- verschijnt op het tabblad Wacht op mij wanneer de waarde groter is dan 0;
- wordt verborgen wanneer de waarde 0 is;
- wordt opnieuw bepaald nadat een gebruiker reageert, een melding sluit, een beheerder de status wijzigt of de pagina opnieuw wordt geladen.
Bij een nieuw of gewijzigd ticket dat de status WaitingForUser krijgt, wordt de teller verhoogd of zichtbaar gemaakt. Wanneer de gebruiker reageert en de melding daardoor niet langer op reactie van de gebruiker wacht, wordt de teller verlaagd of verborgen.
6.3.5 Leerling tijdens actieve oefenrun
Voor de rolcontext Leerling worden de meldingen-gerelateerde profielindicaties tijdelijk verborgen zodra een oefenrun actief is. Dit geldt voor de oranje indicatie op het profielicoon en voor de teller achter Meldingen in het profielmenu, voor zover het profielmenu in die oefencontext bereikbaar is. De onderliggende ticketstatussen en tellers worden niet gewijzigd en de melding wordt niet als behandeld beschouwd.
Na afronden van de oefenrun, of wanneer de leerling een lopende run onderbreekt door naar een andere pagina te gaan, worden de indicaties opnieuw bepaald op basis van de actuele WaitingForUser-meldingen. Deze regel is specifiek bedoeld om afleiding tijdens het oefenen te beperken en verandert niets aan de autorisatie of het meldingenproces voor andere rollen.
6.3.6 Nieuwe melding maken
De knop Nieuwe melding maken is bewust prominenter vormgegeven dan de overige pagina-acties. De actie staat in een apart actieblok rechts naast het introductieblok en opent een modal. Het formulier staat dus niet standaard volledig uitgeklapt op de pagina.
De modal bevat minimaal:
- titel Nieuwe melding maken;
- korte instructietekst;
- categorieveld met de opties Technisch probleem, Inhoudelijke fout, Wijziging aanvragen en Overig;
- tekstveld Onderwerp;
- tekstveld Beschrijving;
- hinttekst bij de beschrijving;
- actie Annuleren;
- actie Verstuur melding;
- sluitknop rechtsboven.
De gebruiker kiest geen prioriteit. Bijlagen worden in deze versie niet aangeboden. Technische context zoals browser, huidige pagina, IP-adres, rolmomentopname en laatst-gezien-informatie wordt automatisch onder water vastgelegd in de technische snapshot en niet als handmatige invoer aan de gebruiker getoond.
Na succesvol versturen wordt een nieuw ticket aangemaakt, gekoppeld aan de ingelogde gebruiker en voorzien van categorie, onderwerp, beschrijving, status en technische snapshot. Daarnaast wordt een systeembericht aangemaakt met een functionele verwijzing naar de nieuwe melding, zodat de gebruiker de melding ook vanuit het berichtenoverzicht kan openen.
6.3.7 Meldingregels en detailnavigatie
Elke meldingregel toont de eigen melding in compacte vorm. Functioneel bevat een meldingregel minimaal:
- meldingsnummer of functionele ticketreferentie;
- onderwerp;
- categorie;
- gebruikersgerichte status;
- laatste activiteit of relevante datum;
- korte status- of activiteitsuitleg;
- actie Bekijk details.
De actie Bekijk details opent de detailpagina van precies die melding. De server moet controleren dat de melding van de ingelogde gebruiker is of dat de gebruiker beheerder is in een beheerroute. In deze gebruikersweergave is beheerderinzage niet leidend: een reguliere gebruiker mag geen melding van een andere gebruiker openen door een URL of identifier te manipuleren.
6.3.8 Gebruikersgerichte statussen
De database gebruikt backendstatussen zoals New, InProgress, WaitingForUser en Closed. De gebruikersinterface toont Nederlandstalige, gebruikersgerichte labels. WaitingForUser wordt binnen deze gebruikerscontext functioneel als actiebehoefte voor de gebruiker behandeld en hoort bij Wacht op mij. Closed kan gebruikersgericht als Opgelost of Gesloten worden weergegeven afhankelijk van de meest recente sluitregistratie en de heropentermijn.
Opgelost is geen aparte backendstatus. Deze toestand wordt afgeleid uit de meest recente formele sluiting in TicketClosures en de bijbehorende ReopenDeadlineUtc. Zolang de heropentermijn functioneel relevant is, kan de detailpagina de melding als opgelost en heropenbaar tonen. Na acceptatie door de gebruiker of na het verstrijken van de heropentermijn wordt de melding gebruikersgericht gesloten.
6.3.9 Leegstaten, foutstaten en disabled states
Wanneer een filtertab geen meldingen bevat, toont de pagina een duidelijke lege staat binnen het tabpaneel. De lege staat moet aangeven dat er binnen die filterselectie geen eigen meldingen beschikbaar zijn. Technische identifiers worden niet getoond.
De knop Nieuwe melding maken is alleen beschikbaar wanneer de feature Meldingen sitebreed actief is en de gebruiker is ingelogd. Als de feature is uitgeschakeld, hoort de route niet beschikbaar te zijn of een nette functionele melding te tonen volgens het generieke featuretogglegedrag.
De actie Verstuur melding is alleen uitvoerbaar wanneer een geldige categorie is geselecteerd en de verplichte velden Onderwerp en Beschrijving voldoen aan de validatieregels. Ongeldige invoer moet in de modal worden teruggekoppeld zonder het ticket aan te maken.
6.4 UI-elementen en velddefinities
| Element-ID | Type | GUI-verwijzing | Omschrijving | Zichtbaar label | Opmerking | Technische naam |
|---|---|---|---|---|---|---|
| SCH-GEN-06-01-H01 | Field / badge | Header — profielicoon | Oranje actie-indicatie op het profielicoon wanneer een of meer eigen meldingen op reactie van de gebruiker wachten. | Dynamisch aantal | Enige profielicoononderdeel binnen scope. Niet tonen bij 0 of tijdens actieve leerling-oefenrun. | TicketActionProfileBadge |
| SCH-GEN-06-01-H02 | Field / badge | Profielmenu — Meldingen | Teller achter het profielmenu-item Meldingen. | Dynamisch aantal | Gebruikt dezelfde afleiding als het tabblad Wacht op mij. Niet tonen bij 0 of tijdens actieve leerling-oefenrun. | TicketActionMenuCount |
| SCH-GEN-06-01-N01 | Navigation | Breadcrumb | Navigatiepad naar de pagina. | Home > Profiel > Meldingen | Header- en footernavigatie vallen verder buiten scope. | TicketsBreadcrumb |
| SCH-GEN-06-01-S01 | Section | Introblok | Hoofdintroductie van de meldingenpagina. | Meldingen | Legt uit dat gebruiker eigen meldingen kan maken en volgen. | TicketsIntroSection |
| SCH-GEN-06-01-F01 | Field | Introblok — titel | Paginatitel. | Meldingen | Read-only schermlabel. | TicketsPageTitle |
| SCH-GEN-06-01-F02 | Field | Introblok — toelichting | Uitleg over melding maken, systeemberichten en opvolging. | Hier meld je een probleem en volg je je eigen meldingen. | Tekst is schermuitleg; zichtbare voorbeeldformulering mag contentmatig beheerd worden als dat in contentbeheer wordt ondersteund. | TicketsIntroText |
| SCH-GEN-06-01-S02 | Section | Introblok — uitlegkaarten | Drie korte proceskaarten. | Na versturen / Bij extra vragen / Bij een oplossing | Informatief; beschrijft de lifecycle van een gebruikersmelding. | TicketProcessGuideSection |
| SCH-GEN-06-01-F03 | Field | Uitlegkaart | Uitleg na indienen van een melding. | Na versturen | Geen invoer. | TicketGuideAfterSubmitText |
| SCH-GEN-06-01-F04 | Field | Uitlegkaart | Uitleg wanneer beheer aanvullende informatie vraagt. | Bij extra vragen | Verwijst functioneel naar externe discussie en systeembericht. | TicketGuideWaitingForUserText |
| SCH-GEN-06-01-F05 | Field | Uitlegkaart | Uitleg wanneer beheer een oplossing plaatst. | Bij een oplossing | Verwijst functioneel naar oplossing, systeembericht en heropenmogelijkheid. | TicketGuideResolutionText |
| SCH-GEN-06-01-S03 | Section | Actieblok rechts | Prominent blok voor het starten van een nieuwe melding. | Nieuwe melding | Staat bewust los van de filterlijst en valt visueel sterker op. | NewTicketActionCard |
| SCH-GEN-06-01-B01 | Button | Actieblok rechts | Opent de modal voor het aanmaken van een nieuwe melding. | Nieuwe melding maken | Alleen beschikbaar voor ingelogde gebruikers wanneer de meldingenfeature actief is. | OpenCreateTicketModalButton |
| SCH-GEN-06-01-S04 | Section | Mijn meldingen | Lijstsectie met filtertabs voor eigen meldingen. | Mijn meldingen | Toont uitsluitend eigen meldingen van de ingelogde gebruiker. | MyTicketsSection |
| SCH-GEN-06-01-F06 | Field | Mijn meldingen — toelichting | Uitleg bij de filtertabs. | Je ziet hier alleen je eigen meldingen. | Mag geen tabblad Alles suggereren. | MyTicketsIntroText |
| SCH-GEN-06-01-TAB01 | TAB | Filtertabs | Filtert de meldingenlijst op gebruikersgerichte statusgroep. | Open / Wacht op mij / Gesloten | Geen los zoek- of alles-tabblad in deze gebruikersweergave. | TicketFilterTabs |
| SCH-GEN-06-01-TAB02 | TAB | Tab Open | Toont eigen open meldingen zonder actiebehoefte voor de gebruiker. | Open | Normale standaardtab bij openen van de overzichtsroute. | OpenTicketsTab |
| SCH-GEN-06-01-TAB03 | TAB | Tab Wacht op mij | Toont eigen meldingen waarvoor beheer wacht op reactie van de gebruiker. | Wacht op mij | Actietab; toont teller wanneer waarde groter is dan 0. | WaitingForMeTicketsTab |
| SCH-GEN-06-01-F07 | Field / badge | Tab Wacht op mij | Aantal eigen meldingen met status WaitingForUser. | Dynamisch aantal | Zelfde bronlogica als profielicoon en profielmenu-indicatie. | WaitingForMeTabCount |
| SCH-GEN-06-01-TAB04 | TAB | Tab Gesloten | Toont eigen gesloten en gebruikersgericht opgeloste meldingen. | Gesloten | Bevat ook meldingen met heropenmogelijkheid zolang de detailpagina die toestand toont. | ClosedTicketsTab |
| SCH-GEN-06-01-T01 | Table / list | Meldinglijst | Herhalende lijst met meldingregels binnen het actieve filtertabblad. | Meldingregels | Dynamische collectie op basis van filter en gebruiker. | TicketList |
| SCH-GEN-06-01-F08 | Field | Meldingregel — nummer | Mensleesbare ticketreferentie. | Meldingsnummer | Functioneel vereist voor verwijzingen, zoeken en support; mag compact worden getoond. | TicketNumber |
| SCH-GEN-06-01-F09 | Field | Meldingregel — onderwerp | Onderwerp van de melding. | Dynamisch onderwerp | Komt uit gebruikersinvoer bij aanmaken van de melding. | TicketSubject |
| SCH-GEN-06-01-F10 | Field | Meldingregel — datum | Datum of laatste activiteit van de melding. | Dynamische datum | Weergave op basis van UTC-bronwaarde in lokale tijdzone. | TicketLastActivityDisplayDate |
| SCH-GEN-06-01-F11 | Field | Meldingregel — categorie | Categorie van de melding. | Technisch probleem / Inhoudelijke fout / Wijziging aanvragen / Overig | Afgeleid uit TicketCategories. | TicketCategoryLabel |
| SCH-GEN-06-01-F12 | Field | Meldingregel — status | Gebruikersgericht statuslabel. | Nieuw / In behandeling / Wachten op reactie / Opgelost / Gesloten | Afgeleid uit backendstatus, sluitregistratie en heropentermijn. | TicketUserStatusLabel |
| SCH-GEN-06-01-F13 | Field | Meldingregel — statusuitleg | Korte toelichting bij actuele toestand. | Dynamische statusuitleg | Samengesteld uit status en laatste relevante activiteit; geen vaste mockuptekst. | TicketStatusSummaryText |
| SCH-GEN-06-01-A01 | Action | Meldingregel | Opent de detailpagina van de gekozen melding. | Bekijk details | Server-side controle op eigenaar van de melding blijft verplicht. | ViewTicketDetailsAction |
| SCH-GEN-06-01-M01 | Message | Tabpaneel | Lege staat wanneer actieve tab geen eigen meldingen bevat. | Geen meldingen binnen deze selectie | Tekst afhankelijk van actieve tab. | TicketEmptyStateMessage |
| SCH-GEN-06-01-MOD01 | MOD | Modal Nieuwe melding maken | Modal voor het aanmaken van een nieuw ticket. | Nieuwe melding maken | Wordt geopend via de prominente knop. | CreateTicketModal |
| SCH-GEN-06-01-FORM01 | FORM | Modalformulier | Formulier met categorie, onderwerp en beschrijving. | Nieuwe melding maken | Geen prioriteitsveld en geen bijlagen. | CreateTicketForm |
| SCH-GEN-06-01-F14 | Field | Modal — categorie | Keuze waar de melding vooral over gaat. | Waar gaat het vooral om? | Verplicht; gesloten waardelijst. | CreateTicketCategory |
| SCH-GEN-06-01-F15 | Field | Modal — onderwerp | Korte samenvatting van de melding. | Onderwerp | Verplicht. | CreateTicketSubject |
| SCH-GEN-06-01-F16 | Field | Modal — beschrijving | Volledige omschrijving van de melding. | Beschrijving | Verplicht; vrije tekst, veilig verwerken. | CreateTicketDescription |
| SCH-GEN-06-01-F17 | Field | Modal — hint | Instructie bij het beschrijvingsveld. | Tip: beschrijf kort wat je deed, wat je verwachtte en wat er gebeurde. | Informeert dat technische context automatisch wordt meegenomen. | CreateTicketDescriptionHint |
| SCH-GEN-06-01-A02 | Action | Modal — sluiten | Sluit de modal zonder opslaan. | Sluiten | Kruis rechtsboven. | CloseCreateTicketModalAction |
| SCH-GEN-06-01-B02 | Button | Modal — footer | Annuleert het maken van de melding en sluit de modal. | Annuleren | Maakt geen ticket aan. | CancelCreateTicketButton |
| SCH-GEN-06-01-B03 | Button | Modal — footer | Valideert en verstuurt de melding. | Verstuur melding | Maakt bij geldige invoer een ticket, snapshot, historyregel en systeembericht aan. | SubmitCreateTicketButton |
| SCH-GEN-06-01-S05 | Section | Technische context | Niet-zichtbare technische snapshot bij aanmaken van een melding. | Niet zichtbaar | Wordt automatisch gevuld en niet getoond aan de gebruiker. | TicketTechnicalSnapshotCapture |
6.5 Waardelagen
| Element-ID | GUI-verwijzing | Zichtbaar label | Technische naam | Databron | Waardebron | Datatype | Bewerkbaar | Validatie / regel |
|---|---|---|---|---|---|---|---|---|
| SCH-GEN-06-01-H01 | Header — profielicoon | Dynamisch aantal | TicketActionProfileBadge | Tickets, TicketStatuses | Berekend aantal eigen tickets met Status.Code = WaitingForUser | Integer display | Nee | Tonen wanneer waarde groter is dan 0; verbergen bij 0 en tijdelijk verbergen tijdens actieve oefenrun van een leerling. |
| SCH-GEN-06-01-H02 | Profielmenu — Meldingen | Dynamisch aantal | TicketActionMenuCount | Tickets, TicketStatuses | Zelfde berekening als profielbadge | Integer display | Nee | Waarde moet gelijk zijn aan teller op Wacht op mij; geen aparte opslag. |
| SCH-GEN-06-01-N01 | Breadcrumb | Home > Profiel > Meldingen | TicketsBreadcrumb | Routeconfiguratie | Afgeleid uit huidige route | Navigation label | Nee | Mag geen technische identifiers tonen. |
| SCH-GEN-06-01-S01 | Introblok | Meldingen | TicketsIntroSection | Codegedreven layout, eventueel ContentBlocks voor tekst | Weergavetekst en schermstructuur | Composite | Nee | Structuur blijft codegedreven. |
| SCH-GEN-06-01-F01 | Introblok — titel | Meldingen | TicketsPageTitle | Codegedreven schermlabel of contentblok | Weergavetekst | String | Nee | Gebruikersgerichte domeinnaam is Meldingen. |
| SCH-GEN-06-01-F02 | Introblok — toelichting | Uitlegtekst | TicketsIntroText | Codegedreven schermtekst of contentblok | Weergavetekst | String | Nee | Tekst mag niet suggereren dat de gebruiker beheerdercommunicatie buiten de melding om kan voeren. |
| SCH-GEN-06-01-S02 | Uitlegkaarten | Na versturen / Bij extra vragen / Bij een oplossing | TicketProcessGuideSection | Codegedreven schermtekst of contentblokken | Weergavetekst | Composite | Nee | Informatief; geen mutatie. |
| SCH-GEN-06-01-S03 | Actieblok rechts | Nieuwe melding | NewTicketActionCard | Featuretoggle en gebruikerscontext | Runtime state | Composite | Nee | Blok alleen tonen wanneer de meldingenfeature beschikbaar is voor de ingelogde gebruiker. |
| SCH-GEN-06-01-B01 | Nieuwe melding maken | Nieuwe melding maken | OpenCreateTicketModalButton | UI-state | User action | Action | Ja | Opent modal; maakt nog geen ticket aan. |
| SCH-GEN-06-01-S04 | Mijn meldingen | Mijn meldingen | MyTicketsSection | Tickets | Gebruikergebonden ticketquery | Collection context | Nee | Query moet altijd CreatedByUserId = CurrentUserId afdwingen voor eindgebruikers. |
| SCH-GEN-06-01-TAB01 | Filtertabs | Open / Wacht op mij / Gesloten | TicketFilterTabs | UI-state + ticketquery | Runtime filter | Enum | Ja | Alleen toegestane tabwaarden; geen Alles in gebruikersweergave. |
| SCH-GEN-06-01-TAB02 | Tab Open | Open | OpenTicketsTab | Tickets.StatusId, TicketStatuses.Code | Afgeleide filterselectie | Enum/filter | Ja | Standaardtab bij overzichtsroute; toont geen tickets die expliciet op reactie van gebruiker wachten. |
| SCH-GEN-06-01-TAB03 | Tab Wacht op mij | Wacht op mij | WaitingForMeTicketsTab | Tickets.StatusId, TicketStatuses.Code | Afgeleide filterselectie | Enum/filter | Ja | Toont alleen eigen tickets met WaitingForUser. |
| SCH-GEN-06-01-F07 | Teller Wacht op mij | Dynamisch aantal | WaitingForMeTabCount | Tickets, TicketStatuses | Berekend | Integer | Nee | Teller tonen bij waarde groter dan 0; zelfde waarde als profielindicatie. |
| SCH-GEN-06-01-TAB04 | Tab Gesloten | Gesloten | ClosedTicketsTab | Tickets, TicketClosures, TicketResolutionTypes | Afgeleide filterselectie | Enum/filter | Ja | Toont gesloten en gebruikersgericht opgeloste meldingen; heropenmogelijkheid wordt op detailpagina bepaald. |
| SCH-GEN-06-01-T01 | Meldinglijst | Meldingregels | TicketList | Tickets, TicketCategories, TicketStatuses, TicketClosures | Gefilterde gebruikergebonden query | Collection | Nee | Alleen eigen meldingen; sortering bij voorkeur op LastActivityAtUtc aflopend. |
| SCH-GEN-06-01-F08 | Meldingregel — nummer | Meldingsnummer | TicketNumber | Tickets.TicketNumber | Databasewaarde | String | Nee | Uniek en mensleesbaar; geschikt voor supportverwijzingen. |
| SCH-GEN-06-01-F09 | Meldingregel — onderwerp | Dynamisch onderwerp | TicketSubject | Tickets.Subject | User input bij aanmaken | String | Nee | Verplicht bij aanmaken; veilig encoden bij weergave. |
| SCH-GEN-06-01-F10 | Meldingregel — datum | Dynamische datum | TicketLastActivityDisplayDate | Tickets.LastActivityAtUtc of relevante ticketdatum | Databasewaarde, lokaal geformatteerd | DateTime display | Nee | UTC-bronwaarden lokaal tonen. |
| SCH-GEN-06-01-F11 | Meldingregel — categorie | Categorie | TicketCategoryLabel | TicketCategories.Name, TicketCategories.Code | Lookupwaarde | String/enum | Nee | Alleen actieve of historisch gebruikte categorieën tonen; geen vrije tekstvarianten. |
| SCH-GEN-06-01-F12 | Meldingregel — status | Statuslabel | TicketUserStatusLabel | TicketStatuses.Code, TicketClosures.ReopenDeadlineUtc, TicketResolutionTypes | Afgeleid label | String/enum | Nee | Opgelost is afgeleid en geen aparte backendstatus. |
| SCH-GEN-06-01-F13 | Meldingregel — statusuitleg | Dynamische statusuitleg | TicketStatusSummaryText | Tickets, laatste externe TicketDiscussionMessages, statuscode | Berekend of samengesteld | String | Nee | Geen interne beheerinformatie tonen; veilig encoden. |
| SCH-GEN-06-01-A01 | Bekijk details | Bekijk details | ViewTicketDetailsAction | Tickets.Id, routeconfiguratie | User action | Action | Ja | Server-side eigenaarscontrole verplicht; detailpagina mag geen melding van andere gebruiker tonen. |
| SCH-GEN-06-01-M01 | Lege staat | Geen meldingen binnen deze selectie | TicketEmptyStateMessage | Gefilterde ticketquery | Afgeleid uit lege collectie | String | Nee | Toon duidelijke lege staat per actieve tab. |
| SCH-GEN-06-01-MOD01 | Modal Nieuwe melding maken | Nieuwe melding maken | CreateTicketModal | UI-state | Runtime state | Modal | Ja | Openen/sluiten mag geen ticketdata opslaan. |
| SCH-GEN-06-01-FORM01 | Modalformulier | Nieuwe melding maken | CreateTicketForm | Gebruikersinput + technische context | User input | Form | Ja | Verplichte velden valideren vóór opslag. |
| SCH-GEN-06-01-F14 | Categorie | Waar gaat het vooral om? | CreateTicketCategory | TicketCategories.Code, TicketCategories.Name | Lookupselectie | Enum/GUID | Ja | Verplicht; toegestane waarden: technisch probleem, inhoudelijke fout, wijziging aanvragen, overig. |
| SCH-GEN-06-01-F15 | Onderwerp | Onderwerp | CreateTicketSubject | Gebruikersinput | User input | String | Ja | Verplicht; opslaan naar Tickets.Subject; server-side lengte en lege waarde valideren. |
| SCH-GEN-06-01-F16 | Beschrijving | Beschrijving | CreateTicketDescription | Gebruikersinput | User input | Text | Ja | Verplicht; opslaan naar Tickets.Description; veilig verwerken en encoden. |
| SCH-GEN-06-01-F17 | Beschrijving hint | Tiptekst | CreateTicketDescriptionHint | Codegedreven tekst of contentblok | Weergavetekst | String | Nee | Moet duidelijk maken dat technische context automatisch wordt meegenomen. |
| SCH-GEN-06-01-A02 | Sluitknop modal | Sluiten | CloseCreateTicketModalAction | UI-state | User action | Action | Ja | Sluit modal zonder opslag. |
| SCH-GEN-06-01-B02 | Annuleren | Annuleren | CancelCreateTicketButton | UI-state | User action | Action | Ja | Sluit modal zonder ticket, snapshot of systeembericht. |
| SCH-GEN-06-01-B03 | Verstuur melding | Verstuur melding | SubmitCreateTicketButton | Tickets, TicketTechnicalSnapshots, TicketHistory, SystemMessages | User input + automatische context | Action | Ja | Alleen verwerken bij geldige categorie, onderwerp en beschrijving; resultaat moet atomair worden opgeslagen. |
| SCH-GEN-06-01-S05 | Technische snapshot | Niet zichtbaar | TicketTechnicalSnapshotCapture | Browser/requestcontext, huidige route, rolcontext, gebruikerscontext | Automatisch afgeleid | Object | Nee | Wordt bij aanmaken vastgelegd; niet toonbaar in gebruikersoverzicht. |
6.6 Schermtrace naar SRS en acceptatiecriteria
De onderstaande tabel legt per schermrequirement de koppeling naar het centrale schermrequirements-trace-register, SRS-requirements en acceptatiecriteria vast. De normatieve requirementtekst staat in de SRS; dit schermdocument beschrijft alleen de lokale schermcontext.
Deze tabel bevat alleen schermtraceability. De normatieve requirementtekst en acceptatiecriteria staan centraal in de SRS.
| Schermrequirement | Dekt | Schermcontext |
|---|---|---|
REQ-SCH-GEN-06-01-01 | SRS-AUTH-001 SRS-TIC-007 AC-AUTH-001 AC-TIC-007 | Voor iedere ingelogde gebruiker een gebruikersgerichte pagina Meldingen tonen waarop uitsluitend eigen meldingen zichtbaar zijn |
REQ-SCH-GEN-06-01-02 | SRS-AUTH-001 SRS-TIC-002 AC-AUTH-001 AC-TIC-002 | Server-side afdwingen dat een eindgebruiker alleen tickets kan zien waarvan CreatedByUserId gelijk is aan de ingelogde gebruiker |
REQ-SCH-GEN-06-01-03 | SRS-AUTH-001 SRS-TIC-002 AC-AUTH-001 AC-TIC-002 | De meldingenpagina beschikbaar maken via het profielmenu wanneer de feature Meldingen actief is voor de ingelogde gebruiker |
REQ-SCH-GEN-06-01-04 | SRS-AUTH-004 SRS-TIC-002 AC-AUTH-004 AC-TIC-002 | De breadcrumb Home > Profiel > Meldingen tonen zonder technische identifiers |
REQ-SCH-GEN-06-01-05 | SRS-TIC-002 AC-TIC-002 | De algemene header en footer buiten de functionele verwerking van dit scherm houden, behalve de meldingen-gerelateerde actie-indicatie op het profielicoon en het profielmenu-item |
REQ-SCH-GEN-06-01-06 | SRS-TIC-002 AC-TIC-002 | Een oranje actie-indicatie op het profielicoon tonen wanneer minimaal één eigen melding op reactie van de gebruiker wacht |
REQ-SCH-GEN-06-01-07 | SRS-RDM-007 SRS-RDM-002 SRS-RDM-001 SRS-TIC-002 AC-RDM-007 AC-RDM-002 AC-RDM-001 AC-TIC-002 | Achter het profielmenu-item Meldingen hetzelfde aantal tonen als het aantal eigen meldingen met status WaitingForUser |
REQ-SCH-GEN-06-01-08 | SRS-RDM-007 SRS-RDM-002 SRS-RDM-001 SRS-TIC-002 AC-RDM-007 AC-RDM-002 AC-RDM-001 AC-TIC-002 | De teller op het tabblad Wacht op mij baseren op dezelfde berekening als de profielicoon- en profielmenu-indicatie |
REQ-SCH-GEN-06-01-09 | SRS-RDM-007 SRS-RDM-002 SRS-RDM-001 SRS-TIC-002 AC-RDM-007 AC-RDM-002 AC-RDM-001 AC-TIC-002 | Het systeem mag de actie-indicatie voor meldingen niet als losse teller opslaan, maar deze afleiden uit Tickets.CreatedByUserId = CurrentUserId en TicketStatuses.Code = WaitingForUser |
REQ-SCH-GEN-06-01-10 | SRS-TIC-002 AC-TIC-002 | De meldingen-gerelateerde profielindicaties tijdelijk verbergen wanneer een leerling een actieve oefenrun uitvoert |
REQ-SCH-GEN-06-01-11 | SRS-RDM-006 SRS-RDM-007 SRS-RDM-002 SRS-RDM-001 SRS-TIC-002 AC-RDM-006 AC-RDM-007 AC-RDM-002 AC-RDM-001 AC-TIC-002 | Het tijdelijk verbergen van meldingen-indicaties tijdens een actieve oefenrun mag de onderliggende ticketstatus, leesstatus of actieteller niet wijzigen |
REQ-SCH-GEN-06-01-12 | SRS-TIC-002 AC-TIC-002 | Na afronden of onderbreken van een actieve leerling-oefenrun het systeem de meldingen-indicaties opnieuw bepalen op basis van de actuele ticketstatussen |
REQ-SCH-GEN-06-01-13 | SRS-TIC-007 AC-TIC-007 | Op de meldingenpagina drie filtertabs ondersteunen: Open, Wacht op mij en Gesloten |
REQ-SCH-GEN-06-01-14 | SRS-TIC-002 AC-TIC-002 | Het systeem mag in de gebruikersweergave geen tabblad Alles aanbieden voor meldingen |
REQ-SCH-GEN-06-01-15 | SRS-TIC-002 AC-TIC-002 | Het tabblad Open standaard actief zijn wanneer de gebruiker de overzichtsroute zonder specifieke filter- of detailcontext opent |
REQ-SCH-GEN-06-01-16 | SRS-TIC-007 AC-TIC-007 | Het tabblad Open eigen meldingen tonen die nog niet functioneel gesloten zijn en waarvoor geen expliciete reactie van de gebruiker wordt gevraagd |
REQ-SCH-GEN-06-01-17 | SRS-TIC-007 AC-TIC-007 | Het tabblad Wacht op mij uitsluitend eigen meldingen tonen met backendstatus WaitingForUser |
REQ-SCH-GEN-06-01-18 | SRS-TIC-007 AC-TIC-007 | Het tabblad Gesloten eigen meldingen tonen die formeel gesloten zijn of gebruikersgericht als opgelost/gesloten worden gepresenteerd |
REQ-SCH-GEN-06-01-19 | SRS-TIC-004 AC-TIC-004 | Gebruikersgerichte statuslabels afleiden uit backendstatussen, sluitregistraties en heropentermijnen |
REQ-SCH-GEN-06-01-20 | SRS-TIC-003 AC-TIC-003 | Het systeem mag Opgelost niet als aparte backendstatus behandelen; deze toestand wordt afgeleid uit de meest recente TicketClosures-registratie en ReopenDeadlineUtc |
REQ-SCH-GEN-06-01-21 | SRS-TIC-002 AC-TIC-002 | Elke meldingregel minimaal een meldingsnummer of ticketreferentie, onderwerp, categorie, gebruikersgerichte status, relevante datum of laatste activiteit, statusuitleg en de actie Bekijk details bevatten |
REQ-SCH-GEN-06-01-22 | SRS-TIC-002 AC-TIC-002 | Meldingregels standaard sorteren op relevante activiteit, bij voorkeur LastActivityAtUtc aflopend |
REQ-SCH-GEN-06-01-23 | SRS-RDM-007 SRS-RDM-002 SRS-RDM-001 SRS-TIC-002 AC-RDM-007 AC-RDM-002 AC-RDM-001 AC-TIC-002 | Alle zichtbare ticketwaarden dynamisch bepalen en mag onderwerpen, datums, aantallen, statuslabels of voorbeeldteksten uit de mockup niet hardcoded gebruiken als productiegegevens |
REQ-SCH-GEN-06-01-24 | SRS-TIC-002 AC-TIC-002 | De actie Bekijk details de detailpagina openen van de geselecteerde eigen melding |
REQ-SCH-GEN-06-01-25 | SRS-AUTH-001 SRS-TIC-002 AC-AUTH-001 AC-TIC-002 | De detailroute server-side controleren of de ingelogde eindgebruiker eigenaar is van de melding voordat details worden getoond |
REQ-SCH-GEN-06-01-26 | SRS-TIC-002 AC-TIC-002 | Per filtertab een duidelijke lege staat tonen wanneer er geen meldingen binnen die selectie beschikbaar zijn |
REQ-SCH-GEN-06-01-27 | SRS-TIC-001 AC-TIC-001 | De knop Nieuwe melding maken visueel prominent beschikbaar zijn als primaire actie op de meldingenpagina |
REQ-SCH-GEN-06-01-28 | SRS-TIC-001 AC-TIC-001 | De actie Nieuwe melding maken een modal openen en mag bij openen nog geen ticket aanmaken |
REQ-SCH-GEN-06-01-29 | SRS-TIC-001 AC-TIC-001 | De modal Nieuwe melding maken minimaal de velden categorie, onderwerp en beschrijving bevatten |
REQ-SCH-GEN-06-01-30 | SRS-TIC-007 AC-TIC-007 | De categoriekeuze verplicht zijn en uitsluitend waarden uit de vaste TicketCategories-waardelijst toestaan |
REQ-SCH-GEN-06-01-31 | SRS-TIC-001 AC-TIC-001 | De toegestane categorieën voor een nieuwe melding minimaal Technisch probleem, Inhoudelijke fout, Wijziging aanvragen en Overig zijn |
REQ-SCH-GEN-06-01-32 | SRS-TIC-001 AC-TIC-001 | De velden Onderwerp en Beschrijving verplicht zijn bij het versturen van een nieuwe melding |
REQ-SCH-GEN-06-01-33 | SRS-TIC-002 AC-TIC-002 | De gebruiker mag bij het aanmaken van een melding geen prioriteit kiezen |
REQ-SCH-GEN-06-01-34 | SRS-TIC-002 AC-TIC-002 | De gebruiker mag in deze versie geen bijlagen toevoegen aan een melding |
REQ-SCH-GEN-06-01-35 | SRS-TIC-002 AC-TIC-002 | Bij het aanmaken van een melding het systeem automatisch technische context vastleggen in een tickettechnical-snapshot zonder deze als handmatige invoer aan de gebruiker te tonen |
REQ-SCH-GEN-06-01-36 | SRS-TIC-007 AC-TIC-007 | De technische snapshot minimaal kunnen aansluiten op browser/requestcontext, huidige pagina, rolmomentopname en andere generieke supportinformatie die in het ticketdomein wordt vastgelegd |
REQ-SCH-GEN-06-01-37 | SRS-TIC-002 AC-TIC-002 | Na geldige verzending het systeem een Tickets-record aanmaken met gebruiker, categorie, onderwerp, beschrijving, status, aanmaakmoment en laatste activiteit |
REQ-SCH-GEN-06-01-38 | SRS-TIC-002 AC-TIC-002 | Na geldige verzending het systeem een ticketgeschiedenisregel vastleggen voor het aanmaken van de melding |
REQ-SCH-GEN-06-01-39 | SRS-TIC-001 AC-TIC-001 | Na geldige verzending het systeem een systeembericht aanmaken met een functionele verwijzing naar de nieuwe melding |
REQ-SCH-GEN-06-01-40 | SRS-TIC-002 AC-TIC-002 | Systeemberichten uit het meldingenproces verwijzen via een domeinverwijzing naar het ticket en niet afhankelijk zijn van een vrij opgeslagen URL |
REQ-SCH-GEN-06-01-41 | SRS-NFR-AUD-001 SRS-TIC-007 AC-NFR-AUD-001 AC-TIC-007 | De actie Annuleren en de sluitknop van de modal de modal sluiten zonder ticket, snapshot, historyregel of systeembericht aan te maken |
REQ-SCH-GEN-06-01-42 | SRS-TIC-002 AC-TIC-002 | Ongeldige invoer in de modal aan de gebruiker worden teruggekoppeld zonder gedeeltelijke ticketregistratie |
REQ-SCH-GEN-06-01-43 | SRS-NFR-AUD-001 SRS-TIC-003 AC-NFR-AUD-001 AC-TIC-003 | Ticketaanmaak, technische snapshot, historyregel en systeembericht bij succesvolle verzending als samenhangende verwerking behandelen, zodat geen half aangemaakte melding ontstaat |
REQ-SCH-GEN-06-01-44 | SRS-NFR-AUD-001 SRS-TIC-003 AC-NFR-AUD-001 AC-TIC-003 | De gebruiker mag in de meldingenpagina geen interne beheerdiscussie, beheerderkoppelingen, technische metadata of beheerhistory zien |
REQ-SCH-GEN-06-01-45 | SRS-TIC-003 AC-TIC-003 | Externe ticketcommunicatie die voor de gebruiker zichtbaar is, via de meldingdetailpagina lopen en niet als vrije chat met individuele beheerders worden aangeboden |
REQ-SCH-GEN-06-01-46 | SRS-TIC-002 AC-TIC-002 | Status- en toelichtingsteksten in de meldinglijst veilig worden weergegeven en mogen geen actieve HTML of scripts renderen |
REQ-SCH-GEN-06-01-47 | SRS-TIC-002 AC-TIC-002 | Datum- en tijdwaarden uit UTC-bronnen lokaal en consistent voor de gebruiker worden weergegeven |
REQ-SCH-GEN-06-01-48 | SRS-AUTH-004 SRS-TIC-002 AC-AUTH-004 AC-TIC-002 | Het systeem mag technische identifiers zoals Tickets.Id, StatusId, CategoryId of GUID-waarden niet als herkenningsinformatie in de gebruikerslijst tonen |
6.7 Technische koppeling
Voor technische uitwerking zijn vooral relevant:
- 05 Autorisatie, policies en server-side contextcontrole voor het beperken van het meldingenoverzicht en detailnavigatie tot de eigen gebruiker of bevoegde beheercontext.
- 13 Berichten, systeemberichten, notificaties en privéberichten voor systeemberichten die naar nieuwe of gewijzigde meldingen verwijzen.
- 14 Meldingen, tickets en beheerafhandeling voor tickets, statussen, categorieën, technische snapshots en gebruikersgerichte actiebehoefte.
- 17 Readmodels, tellers, badges, caching en materialisatie voor profielindicatoren en tellers rond meldingen die op gebruikersreactie wachten.
- 24 Frontend, Blazor, routing, state en componentopbouw voor filtertabs, modalstate, validatie en responsieve meldingenweergave.