[FEAT] Gestione documentale ISMS — ciclo di vita ISO 27001 cl.7.5 + export Word (v1.24.0)

Ogni documento del Modello SGSI ha un ciclo di vita completo Bozza->In revisione->Approvato->Pubblicato->Archiviato con tracciamento (revisore/approvatore/pubblicatore, date, entrata in vigore, prossimo riesame) e storico versioni (snapshot). Download Word .doc modificabile per documento.
- mig.060: stati published/archived + 10 colonne tracciamento + tabella isms_document_versions
- IsmsModelController: submit/approve/publish/reject/archive/newVersion/versions/exportWord + listDocuments arricchito
- index.php: 8 route documents/{id}/(submit|approve|publish|reject|archive|newVersion|versions|word)
- isms.js: UI badge stato + pulsanti transizione + download Word + storico (IT/EN inline); cache-buster
- help.js: sezione 'Ciclo di vita dei documenti (cl.7.5)'
- 31 documenti di Nuova Agile pubblicati v1.0 (build_nuova_agile_p6_publish)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
DevEnv nis2-agile
2026-06-20 13:40:21 +02:00
co-authored by Claude Opus 4.8
parent 94e3a4293e
commit 68694a0f38
9 changed files with 416 additions and 11 deletions
+8
View File
@@ -293,6 +293,14 @@ $actionMap = [
'POST:documents' => 'createDocument',
'POST:documents/aiGenerate' => 'aiGenerateDocument',
'PUT:documents/{subId}' => 'updateDocument',
'POST:documents/{subId}/submit' => 'submitDocument', // ciclo di vita: bozza->revisione
'POST:documents/{subId}/approve' => 'approveDocument', // revisione->approvato
'POST:documents/{subId}/publish' => 'publishDocument', // approvato->pubblicato
'POST:documents/{subId}/reject' => 'rejectDocument', // revisione->bozza (con nota)
'POST:documents/{subId}/archive' => 'archiveDocument', // pubblicato->archiviato
'POST:documents/{subId}/newVersion' => 'newVersionDocument', // pubblicato->nuova bozza
'GET:documents/{subId}/versions' => 'documentVersions',
'GET:documents/{subId}/word' => 'exportDocumentWord', // download .doc Word
'GET:readiness' => 'readiness',
'GET:export' => 'export',
],