Skip to main content

UC-BEH-POP-003 — Popupvelden wijzigen

1. Kerngegevens

VeldWaarde
Usecase-IDUC-BEH-POP-003
NaamPopupvelden wijzigen
DomeinBeheerder / Popupbeheer
Primaire actorBeheerder
Secundaire actor(en)Frontend, backend, autorisatiecomponent, database
RolcontextActieve beheerdercontext; combinatierollen geven geen extra rechten binnen popupbeheer
Betrokken schermenSite Instellingen > Popups beheren
Gerelateerde usecasesUC-BEH-POP-002, UC-BEH-POP-004, UC-BEH-POP-006
Primaire entiteitenPopupDetails
Secundaire entiteiten / eventsPopupType, PopupVariant, PopupInputType, ButtonTheme, Users, popup-register, popup-themes
Gerelateerde popupsPOP-BEH-GEN-UNSAVED-CHANGES
PopupregisterOntwerpbronnen — Popup-register
MoSCoWMust

2. Omschrijving

De beheerder wijzigt toegestane popupvelden in de editor. Deze usecase beschrijft de niet-persistente bewerkstaat: de invoer wordt in de UI aangepast, direct gecontroleerd en als wijzigingspayload voorbereid. De database wordt pas gewijzigd wanneer de beheerder opslaat via UC-BEH-POP-004.

Popupbeheer is geen vrije popupbuilder. Het beheer werkt binnen bestaande popuprecords en respecteert de scheiding tussen beheerbare inhoud en codegedreven structuur. Popupteksten, knopteksten, acties, inputvelden en themekeuzes worden niet in usecases gedupliceerd.

3. Scope

Deze usecase beschrijft:

  • Bewerken van beheerbare velden in een bestaand popuprecord.
  • Beschermen van technische read-only velden in de UI en in de wijzigingspayload.
  • Direct tonen van veldvalidatie en dirty state.
  • Voorbereiden van een opslaanpayload voor UC-BEH-POP-004.
  • Waarschuwen bij verlaten met niet-opgeslagen wijzigingen wanneer generiek formuliergedrag actief is.

Deze usecase beschrijft niet:

  • Nieuwe popuprecords aanmaken via de GUI.
  • Popuprecords verwijderen of deactiveren via de GUI.
  • PopupKey, Variant, ThemeKey, knopacties of CustomRendererKey wijzigen.
  • Popup-themes beheren.
  • Runtime bepalen wanneer popups in gebruikersflows verschijnen.
  • Popupteksten of knopteksten buiten het popupregister dupliceren.
  • Onderliggende code, migraties of seeddefinities wijzigen via de beheerinterface.

4. Pre-condities

IDVoorwaarde
PRE-001De gebruiker is ingelogd en heeft een actief intern OefenHub-account.
PRE-002De gebruiker heeft server-side een actieve beheerderrol.
PRE-003De route of actie ligt binnen Site Instellingen > Popups beheren.
PRE-004De frontend gebruikt actuele serverrespons en vertrouwt niet op oude clientstate.
PRE-005Popupregister en popup-themes zijn als bronafspraak beschikbaar voor interpretatie van popuprecords.

5. Post-condities

IDResultaat
POST-001De beheerder heeft één of meer beheerbare velden in de editor aangepast of ongewijzigd gelaten.
POST-002De editor toont dirty state en eventuele invoerfouten.
POST-003Er is geen PopupDetails-record of historyrecord gewijzigd.
POST-004Een geldige wijzigingspayload kan worden aangeboden aan UC-BEH-POP-004.
POST-005Read-only technische velden zijn niet als wijziging geaccepteerd.

6. Trigger

De beheerder kiest na het openen van een popupdetail een beheerbaar veld en past de inhoud aan.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1BeheerderPopupdetailActiveert bewerkmodus.Frontend toont alleen beheerbare velden als invoerveld.UC-BEH-POP-002.
2FrontendEditorHoudt originele serverwaarden vast als vergelijkingsbasis.Dirty state kan worden bepaald.Geen databasewijziging.
3BeheerderEditorWijzigt titel, tekst, knoptekst of inputlabel.Frontend voert directe invoercontrole uit.Voorvalidatie.
4FrontendEditorControleert veldlengtes en lokale veldregels.Ongeldige invoer wordt bij het veld gemarkeerd.Titel 50, tekst 1000, knoptekst 20.
5FrontendEditorBeschermt read-only velden.PopupKey, Variant, ThemeKey, acties en rendererkeys blijven niet-wijzigbaar.Codegedreven velden.
6FrontendEditorBepaalt of een echte wijziging bestaat.Opslaan wordt pas zinvol bij gewijzigde beheerbare velden.Dirty state.
7BeheerderEditorKiest Opslaan.Frontend start UC-BEH-POP-004 met alleen toegestane velden.Vervolgusecase.

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0011De gebruiker verliest beheerdercontext.Bewerken wordt geblokkeerd of beëindigd.Inline melding of veilige redirect.Geen.
ALT-0023Invoer overschrijdt lokale lengtecontrole.Veld wordt gemarkeerd; opslaan blijft geblokkeerd of leidt tot servervalidatie.Inline validatie.Geen.
ALT-0035Een read-only veld wordt via clientmanipulatie meegestuurd.De payload wordt niet vertrouwd; servervalidatie in UC-BEH-POP-004 blokkeert dit.Inline of opslagfout.Geen binnen deze usecase.
ALT-0046De beheerder herstelt alle waarden naar origineel.Dirty state verdwijnt; opslaan wordt niet aangeboden als wijziging.Niet van toepassing.Geen.
ALT-0057De beheerder verlaat de editor met niet-opgeslagen wijzigingen.Generieke verlaten-waarschuwing kan worden getoond.POP-BEH-GEN-UNSAVED-CHANGES.Geen.

9. Business rules

IDRegel
BR-UC-BEH-POP-003-001Deze usecase wijzigt alleen editorstate en slaat niets persistent op.
BR-UC-BEH-POP-003-002Alleen beheerbare velden mogen als invoerveld beschikbaar zijn.
BR-UC-BEH-POP-003-003Read-only velden blijven zichtbaar of beschikbaar als metadata, maar niet wijzigbaar.
BR-UC-BEH-POP-003-004Frontendvalidatie ondersteunt de gebruiker maar vervangt servervalidatie nooit.
BR-UC-BEH-POP-003-005Opslaan en historyregistratie horen uitsluitend bij UC-BEH-POP-004.

10. Datavalidatie

Veld / objectValidatie
BeheerdercontextServer-side actieve beheerderrol verplicht.
PopuprecordHet record moet bestaan en als bestaand popuprecord bekend zijn.
PopupKeyMoet bestaan en blijft read-only.
VariantMoet een bekende PopupVariant zijn en blijft read-only.
ThemeKeyBlijft read-only en moet verwijzen naar een bestaande themedefinitie.
KnopactiesActionCallMethod en technische actie-identifiers zijn read-only.
CustomRendererKeyAlleen relevant bij Custom-popups en blijft read-only.
TitelMaximaal 50 tekens wanneer beheerbaar.
TekstMaximaal 1000 tekens wanneer beheerbaar.
KnoptekstMaximaal 20 tekens per zichtbare knop wanneer beheerbaar.
InputlabelAlleen beheerbaar wanneer de bestaande variant een inputveld ondersteunt.
RenderingBeheerbare tekst mag geen actieve of onveilige inhoud veroorzaken.
TijdstipWijzigingsmomenten worden in UTC vastgelegd.

11. Datamutaties en events

StapTypeEntiteit / eventMutatie
Alle stappenClientstateEditorstateNiet-persistente bewerkstaat voor beheerbare velden.
Alle stappenDatabaseNiet van toepassingEr wordt geen databasewijziging uitgevoerd.

12. Geen datamutaties

EntiteitReden
PopupDetailsWordt pas gewijzigd door UC-BEH-POP-004.
PopupDetailsHistory en PopupDetailsHistoryItemsWorden pas aangemaakt na succesvolle opslag in UC-BEH-POP-004.
PopupKey, Variant, ThemeKey, ActionCallMethod en CustomRendererKeyBlijven read-only en codegedreven.
Popupregister en popup-themesWorden niet door editorstate gewijzigd.
Runtime gebruikersdataNiet geraakt door bewerken van popupvelden.

13. State diagram

Deze usecase heeft geen persistent state diagram. De enige toestand is niet-persistente editorstate in de beheerinterface.

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

17. Popupverwijzingen

Usecases verwijzen alleen naar PopupKey. Popupteksten, knopteksten, acties, inputvelden en themakeuzes worden centraal beheerd in het popupregister en de popup-themes.

PopupKeyMomentDoel
POP-BEH-GEN-UNSAVED-CHANGESBij verlaten met niet-opgeslagen beheerbare wijzigingen.Voorkomen dat editorwijzigingen onbedoeld verloren gaan.

18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification

DoeldocumentAfleiding
Functioneel OntwerpBeschrijft welke popupvelden beheerbaar zijn, welke velden read-only blijven en hoe de beheerder bestaande popuprecords raadpleegt of wijzigt.
Technisch OntwerpTechnisch Ontwerp: domeinmodel en admin-eigenaarschap, databaseontwerp en frontendcompositie beschrijven de technische uitwerking. Beschrijf server-side autorisatie, readmodelopbouw, commandverwerking en historyregistratie, inclusief bescherming van technische sleutels en codegedreven velden.
Software Requirements SpecificatieBeschrijft requirements voor toegangscontrole, validatiegrenzen, veilige foutafhandeling, immutable history en de scheiding tussen beheerbare tekst en technische popupdefinities.
Database-informatieControleer aansluiting van PopupDetails, PopupDetailsHistory en PopupDetailsHistoryItems, inclusief veldlengtes, concurrency en auditvelden.
Ontwerpbronnen en registersHoud popupregister, popup-themes, autorisatiematrix, usecase-popup-matrix en usecase-requirement-matrix consistent met deze usecase.

19. SRS-trace

Deze usecase bevat geen normatieve requirementtekst. De centrale eis en acceptatiecriteria staan in de SRS; onderstaande tabel koppelt de usecase-afleiding alleen aan centrale SRS-*- en AC-*-items.

Usecase-afleidingDektUsecasecontext
REQ-UC-BEH-POP-003-001SRS-ADM-002
SRS-ADM-001
AC-ADM-002
AC-ADM-001
De actie uitsluitend toestaan aan gebruikers met een actieve beheerderrol
REQ-UC-BEH-POP-003-002SRS-AUTH-001
SRS-AUTH-002
SRS-ADM-002
SRS-ADM-001
AC-AUTH-001
AC-AUTH-002
AC-ADM-002
AC-ADM-001
Alle beheerautorisatie server-side controleren en mag niet vertrouwen op clientstate of routeparameters
REQ-UC-BEH-POP-003-003SRS-AUTH-004
SRS-ACC-003
SRS-ACC-005
SRS-ADM-001
SRS-POP-001
SRS-NFR-SEC-001
AC-AUTH-004
AC-ACC-003
AC-ACC-005
AC-ADM-001
AC-POP-001
AC-NFR-SEC-001
Onbekende, ontbrekende of niet-toegankelijke popuprecords veilig afhandelen zonder technische details te tonen
REQ-UC-BEH-POP-003-004SRS-ADM-001
SRS-POP-001
AC-ADM-001
AC-POP-001
PopupKey, Variant, ThemeKey, knopacties en CustomRendererKey read-only houden in de beheerinterface
REQ-UC-BEH-POP-003-005SRS-ADM-001
SRS-POP-001
AC-ADM-001
AC-POP-001
Popupteksten, knopteksten, inputlabels en themekeuzes niet dupliceren buiten het centrale popupregister en popup-themes
REQ-UC-BEH-POP-003-006SRS-ADM-001
AC-ADM-001
Editorwijzigingen als niet-persistente bewerkstaat behandelen totdat de beheerder expliciet opslaat via UC-BEH-POP-004
REQ-UC-BEH-POP-003-007SRS-ADM-001
AC-ADM-001
Alleen beheerbare velden wijzigbaar tonen en read-only velden beschermen tegen aanpassing in de payload
REQ-UC-BEH-POP-003-008SRS-ADM-001
SRS-NFR-AUD-001
AC-ADM-001
AC-NFR-AUD-001
Gewijzigde velden herkenbaar maken zonder database- of historymutatie
REQ-UC-BEH-POP-003-009SRS-ADM-001
AC-ADM-001
Titel, tekst, knopteksten en inputlabels valideren op de vastgestelde maximale lengtes wanneer deze velden beheerbaar zijn
REQ-UC-BEH-POP-003-010SRS-ADM-001
SRS-POP-001
AC-ADM-001
AC-POP-001
De usecase Popupvelden wijzigen uitvoeren binnen de afbakening van Beheerder / Popupbeheer