Versiehistorie in een tabel, voor site en app

De versiehistorie stond als tekst in zowel de app als de website. Nu staat hij in
tabel version_history, met een beheerpagina (Beheer > Versiehistorie) op de site.
De site leest de tabel rechtstreeks, de app via de nieuwe actie app.versiehistorie.
Startrijen: db/handmatig/22b_versiehistorie_startrijen.sql (als root).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014MGLqt1uKfNARQHut9ifcx
This commit is contained in:
jf
2026-10-20 11:47:06 +00:00
co-authored by Claude Sonnet 5.5
parent 90c58fc42e
commit 5446dd4170
28 changed files with 996 additions and 108 deletions
+1
View File
@@ -55,6 +55,7 @@ GRANT SELECT, INSERT, UPDATE, DELETE ON `mijnbesluit`.`campagne_uren` TO 'm
GRANT SELECT, INSERT, UPDATE, DELETE ON `mijnbesluit`.`sessies` TO 'mijnbesluit_app'@'localhost';
GRANT SELECT, INSERT, UPDATE, DELETE ON `mijnbesluit`.`vault_categories` TO 'mijnbesluit_app'@'localhost';
GRANT SELECT, INSERT, UPDATE, DELETE ON `mijnbesluit`.`vault_category_fields` TO 'mijnbesluit_app'@'localhost';
GRANT SELECT, INSERT, UPDATE, DELETE ON `mijnbesluit`.`version_history` TO 'mijnbesluit_app'@'localhost';
-- Het logboek mag er alleen bij komen en uit gelezen worden, niet uit verdwijnen.
GRANT SELECT, INSERT ON `mijnbesluit`.`audit_log` TO 'mijnbesluit_app'@'localhost';
+45
View File
@@ -0,0 +1,45 @@
-- MijnBesluit - de versiehistorie in de database in plaats van in de code
--
-- De lijst "wat is er nieuw" stond vast in twee bestanden (Versiehistorie.razor in de site en in de
-- app), en moest dus bij elke wijziging op twee plekken worden aangepast. En de app die al in de
-- Play Store staat kon een nieuwe regel nooit tonen. Nu staat de lijst hier: de beheerder
-- onderhoudt hem op de website (/beheer/versiehistorie), de site leest hem uit de database en de
-- app vraagt hem aan de server. Een nieuwe regel is meteen overal te zien.
--
-- version_history een regel per nieuwe of wezenlijk gewijzigde functie. Regels met dezelfde
-- datum (en versie) worden samen onder één kop getoond.
--
-- Regels die de server afdwingt (niet de database):
-- * Alleen een beheerder maakt, wijzigt of verwijdert een regel.
-- * Een verborgen regel (zichtbaar = 0) ziet alleen de beheerder.
-- * Platte tekst: er gaat geen opmaak of HTML door.
--
-- Draaien met:
-- mysql -u root -p mijnbesluit < db\22_versiehistorie.sql
--
-- Opnieuw draaien mag: er gebeurt dan niets.
--
-- Na dit script, eenmalig als root:
-- mysql -u root -p < db\02_applicatiegebruiker.sql (rechten op de nieuwe tabel)
-- mysql -u root -p mijnbesluit < db\handmatig\22b_versiehistorie_startrijen.sql (de bestaande regels)
USE `mijnbesluit`;
CREATE TABLE IF NOT EXISTS `version_history` (
`id` INT NOT NULL AUTO_INCREMENT,
`datum` DATE NOT NULL, -- de dag waarop de functie er kwam
`versie` VARCHAR(20) NULL, -- bijvoorbeeld 1.1; leeg als het geen app-versie betreft
`kop` VARCHAR(120) NOT NULL, -- het vette stukje: wat kun je nu
`tekst` VARCHAR(1000) NOT NULL, -- de uitleg erachter, platte tekst
`zichtbaar` TINYINT(1) NOT NULL DEFAULT 1,
`aangemaakt_op` DATETIME(3) NOT NULL,
`gewijzigd_op` DATETIME(3) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `ux_version_history_datum_kop` (`datum`, `kop`),
KEY `ix_version_history_datum` (`datum`)
) ENGINE=InnoDB;
-- Startrijen staan NIET hier maar in handmatig\22b_versiehistorie_startrijen.sql: de uitrolagent
-- draait dit script met een account dat geen gegevens mag invoegen (zie 21_kluissoorten.sql).
SELECT 'Klaar. De tabel voor de versiehistorie staat klaar. Vergeet handmatig\\22b_versiehistorie_startrijen.sql en 02_applicatiegebruiker.sql niet (als root).' AS melding;
@@ -0,0 +1,38 @@
-- MijnBesluit - de bestaande versiehistorie als startrijen
--
-- Dit zijn de regels die tot nu toe in Versiehistorie.razor stonden, plus die van versie 1.1.
-- Eenmalig te draaien als root, ná db\22_versiehistorie.sql en db\02_applicatiegebruiker.sql:
-- mysql -u root -p mijnbesluit < db\handmatig\22b_versiehistorie_startrijen.sql
--
-- Opnieuw draaien mag: INSERT IGNORE slaat regels over die er al staan (zelfde datum en kop).
-- Daarna onderhoud je de lijst op de website: Beheer > Versiehistorie.
USE `mijnbesluit`;
INSERT IGNORE INTO `version_history` (`datum`, `versie`, `kop`, `tekst`, `zichtbaar`, `aangemaakt_op`, `gewijzigd_op`) VALUES
('2026-09-19', NULL, 'Met mij gedeeld, ook in de app.',
'Heeft iemand een kluisitem rechtstreeks met jou gedeeld om het vast te bespreken - bijvoorbeeld een uitvaartwens - dan zie je dat voortaan ook op je telefoon, niet meer alleen op de website.',
1, UTC_TIMESTAMP(3), UTC_TIMESTAMP(3)),
('2026-09-19', NULL, 'Een gedeeld of nagelaten kluisitem bekijken.',
'Dat opent nu als pop-up in dezelfde opmaak als het invulformulier, inclusief de foto''s en documenten die erbij horen.',
1, UTC_TIMESTAMP(3), UTC_TIMESTAMP(3)),
('2026-09-19', NULL, 'Met de vinger naar beneden trekken ververst het scherm.',
'Werkt op Kluis, Mijn mensen, Momenten en Nalatenschap.',
1, UTC_TIMESTAMP(3), UTC_TIMESTAMP(3)),
('2026-09-20', NULL, 'Rijbewijs en paspoort in de kluis.',
'Twee nieuwe categorieën, met een knop om meteen de voor- en achterkant (rijbewijs) of de foto-pagina (paspoort) te maken of te kiezen.',
1, UTC_TIMESTAMP(3), UTC_TIMESTAMP(3)),
('2026-09-20', NULL, 'Mijn profiel als pop-up.',
'Je eigen profiel bewerk je nu in dezelfde pop-up met vaste "Opslaan"-knop onderin als bij de andere mensen in je familie, in de app en op de website.',
1, UTC_TIMESTAMP(3), UTC_TIMESTAMP(3)),
('2026-09-20', NULL, 'Duidelijker voor de nalatenschapsbeheerder.',
'Bij "Aan mij toevertrouwd" zie je nu meteen hoeveel meldingen er nodig zijn en hoe lang de bezwaartermijn is.',
1, UTC_TIMESTAMP(3), UTC_TIMESTAMP(3)),
('2026-09-20', NULL, 'Muziek en verdere wensen groeien mee.',
'Die velden bij een kluisitem passen zich nu vanzelf aan de lengte van de tekst aan, ook op de website.',
1, UTC_TIMESTAMP(3), UTC_TIMESTAMP(3)),
('2026-10-20', '1.1', 'Meer soorten in de kluis.',
'Naast wachtwoorden, polissen en uitvaartwensen kan er voortaan een nieuwe soort bijkomen, met eigen invulvelden, zonder dat je de app daarvoor opnieuw hoeft te updaten. Je bestaande kluisitems blijven zoals ze waren.',
1, UTC_TIMESTAMP(3), UTC_TIMESTAMP(3));
SELECT COUNT(*) AS aantal_regels FROM `version_history`;