- docs/SPEC.md (v1.2: Assets & BIA als ein Modul, Risiko-Detailansicht mit Maßnahmen/betroffenen Assets, Risiko-Verknüpfungen in allen Detailansichten) + UI-Mockup als Referenz - Docker-Compose: app, worker, postgres (pgvector), redis, minio, mailhog - Prisma 7: Fundament-Schema (Tenant, User, RBAC, AuditLog), prisma.config.ts, pg-Treiberadapter - Tenant-Guard (src/server/db.ts): erzwungene Mandanten-Isolation für alle tenant-gebundenen Modelle - AGENTS.md/README mit Projektregeln (Isolation, RBAC, Audit-Log, i18n, Lizenz) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
754 lines
113 KiB
HTML
754 lines
113 KiB
HTML
<!doctype html>
|
||
<html lang="de">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||
<title>GEFIM ISMS – Prototyp</title>
|
||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;500;600;700&family=Open+Sans:wght@300;400;600;700&display=swap" rel="stylesheet">
|
||
<style>
|
||
:root{
|
||
--violet:#5d52a3; --blue:#8dc4e0; --magenta:#812d80; --ink:#3b3b3a;
|
||
--violet-050:#f2f0f9; --violet-100:#e6e2f3; --blue-050:#eef7fb;
|
||
--grad:linear-gradient(135deg,#5d52a3 0%,#812d80 45%,#8dc4e0 100%);
|
||
--grad-soft:linear-gradient(135deg,#5d52a3 0%,#8dc4e0 100%);
|
||
--bg:#f5f6fa; --card:#ffffff; --line:#e7e8ef; --muted:#7a7b86;
|
||
--ok:#2e9e6b; --warn:#e0982e; --risk:#d64c4c; --info:#3a86c8;
|
||
--shadow:0 1px 3px rgba(30,25,60,.06),0 6px 20px rgba(30,25,60,.06);
|
||
}
|
||
*{box-sizing:border-box}
|
||
html,body{margin:0;height:100%}
|
||
body{font-family:"Open Sans",system-ui,sans-serif;color:var(--ink);background:var(--bg);font-weight:400;font-size:14px}
|
||
h1,h2,h3,h4,.h{font-family:"Poppins",sans-serif;font-weight:600;margin:0}
|
||
a{color:inherit;text-decoration:none}
|
||
.app{display:grid;grid-template-columns:250px 1fr;min-height:100vh}
|
||
|
||
/* Sidebar */
|
||
.side{background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
|
||
.brand{padding:20px 18px 14px;border-bottom:1px solid var(--line)}
|
||
.brand img{width:150px;display:block}
|
||
.nav{padding:12px 10px;overflow:auto;flex:1}
|
||
.nav .grp{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:14px 12px 6px;font-weight:700}
|
||
.nav a{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:10px;color:#4b4c57;font-weight:600;font-size:13.5px;cursor:pointer;margin:2px 0}
|
||
.nav a .ic{width:18px;height:18px;flex:0 0 18px;opacity:.85}
|
||
.nav a:hover{background:var(--violet-050)}
|
||
.nav a.active{background:var(--violet-100);color:var(--violet)}
|
||
.nav a.active .ic{opacity:1}
|
||
.side .foot{padding:14px 18px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
|
||
|
||
/* Topbar */
|
||
.main{display:flex;flex-direction:column;min-width:0}
|
||
.top{position:sticky;top:0;z-index:5;background:rgba(255,255,255,.9);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:16px;padding:12px 26px}
|
||
.tenant{display:flex;align-items:center;gap:8px;background:var(--violet-050);border:1px solid var(--violet-100);color:var(--violet);padding:6px 12px;border-radius:10px;font-weight:600;font-size:13px;cursor:pointer}
|
||
.search{flex:1;max-width:420px;display:flex;align-items:center;gap:8px;background:#f1f2f7;border:1px solid var(--line);border-radius:10px;padding:8px 12px;color:var(--muted)}
|
||
.search input{border:0;background:transparent;outline:none;width:100%;font-family:inherit;font-size:13px;color:var(--ink)}
|
||
.top .spacer{flex:1}
|
||
.iconbtn{width:38px;height:38px;border-radius:10px;border:1px solid var(--line);background:#fff;display:grid;place-items:center;cursor:pointer;position:relative}
|
||
.iconbtn .dot{position:absolute;top:7px;right:8px;width:8px;height:8px;border-radius:50%;background:var(--risk);border:2px solid #fff}
|
||
.avatar{width:38px;height:38px;border-radius:50%;background:var(--grad-soft);color:#fff;display:grid;place-items:center;font-weight:700;font-family:Poppins}
|
||
|
||
/* Content */
|
||
.content{padding:26px;max-width:1280px;width:100%}
|
||
.pagehead{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}
|
||
.pagehead .sub{color:var(--muted);margin-top:4px;font-size:13px}
|
||
.crumb{font-size:12px;color:var(--muted);margin-bottom:2px}
|
||
.btn{border:0;border-radius:10px;padding:9px 16px;font-weight:600;font-family:Poppins;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:8px}
|
||
.btn.primary{background:var(--grad-soft);color:#fff}
|
||
.btn.ghost{background:#fff;border:1px solid var(--line);color:var(--ink)}
|
||
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}
|
||
.pad{padding:18px}
|
||
.grid{display:grid;gap:16px}
|
||
.g4{grid-template-columns:repeat(4,1fr)}
|
||
.g3{grid-template-columns:repeat(3,1fr)}
|
||
.g2{grid-template-columns:repeat(2,1fr)}
|
||
.kpi .lbl{color:var(--muted);font-size:12.5px;font-weight:600}
|
||
.kpi .val{font-family:Poppins;font-weight:700;font-size:30px;margin:6px 0 2px;line-height:1}
|
||
.kpi .trend{font-size:12px;font-weight:600}
|
||
.kpi .bar{height:6px;border-radius:6px;background:#eef;overflow:hidden;margin-top:12px}
|
||
.kpi .bar > i{display:block;height:100%;border-radius:6px;background:var(--grad-soft)}
|
||
.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:11.5px;font-weight:700}
|
||
.pill.ok{background:#e7f6ee;color:var(--ok)}
|
||
.pill.warn{background:#fbf1de;color:#a9760f}
|
||
.pill.risk{background:#fbe7e7;color:var(--risk)}
|
||
.pill.info{background:#e7f1fa;color:var(--info)}
|
||
.pill.mut{background:#eef0f4;color:var(--muted)}
|
||
.sect-title{font-family:Poppins;font-weight:600;font-size:15px;margin-bottom:2px}
|
||
.sect-sub{color:var(--muted);font-size:12.5px;margin-bottom:14px}
|
||
|
||
table{width:100%;border-collapse:collapse;font-size:13px}
|
||
th{text-align:left;color:var(--muted);font-weight:700;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;padding:10px 12px;border-bottom:1px solid var(--line)}
|
||
td{padding:11px 12px;border-bottom:1px solid var(--line)}
|
||
tr:last-child td{border-bottom:0}
|
||
tbody tr:hover{background:#faf9fd}
|
||
.tag{display:inline-block;padding:2px 8px;border-radius:6px;font-size:11px;font-weight:700;background:#eef0f4;color:#555}
|
||
.owner{display:inline-flex;align-items:center;gap:8px}
|
||
.mini{width:26px;height:26px;border-radius:50%;background:var(--violet-100);color:var(--violet);display:grid;place-items:center;font-weight:700;font-size:11px;font-family:Poppins}
|
||
.cia{display:inline-flex;gap:3px}
|
||
.cia span{width:20px;height:20px;border-radius:6px;display:grid;place-items:center;font-size:10px;font-weight:700;color:#fff}
|
||
.c1{background:#9db2c9}.c2{background:#5d8fbf}.c3{background:#e0982e}.c4{background:#d64c4c}
|
||
|
||
/* Risk heatmap */
|
||
.heat{display:grid;grid-template-columns:auto repeat(5,1fr);gap:6px;align-items:stretch}
|
||
.heat .axl{display:grid;place-items:center;font-size:11px;color:var(--muted);font-weight:700}
|
||
.heat .cellwrap{position:relative}
|
||
.heat .cell{border-radius:10px;min-height:66px;padding:8px;color:#20303a;font-weight:700;font-size:12px;position:relative;cursor:pointer;transition:transform .08s}
|
||
.heat .cell:hover{transform:translateY(-2px);outline:2px solid rgba(93,82,163,.5)}
|
||
.heat .cell b{position:absolute;bottom:6px;right:8px;font-size:16px;font-family:Poppins}
|
||
.hl{background:#dff3e5}.hm{background:#fdf0cf}.hh{background:#fbdcc0}.hx{background:#f6c3c1}.hxx{background:#ef9a98}
|
||
.legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:14px;font-size:12px;color:var(--muted)}
|
||
.legend i{width:14px;height:14px;border-radius:4px;display:inline-block;margin-right:6px;vertical-align:-2px}
|
||
|
||
/* Kanban */
|
||
.kanban{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;align-items:start}
|
||
.col{background:#f4f5fa;border:1px solid var(--line);border-radius:14px;padding:12px;min-height:120px}
|
||
.col h4{font-size:13px;display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
|
||
.col h4 .n{background:#fff;border:1px solid var(--line);border-radius:999px;padding:1px 9px;font-size:11px;color:var(--muted)}
|
||
.kcard{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px;box-shadow:0 1px 2px rgba(30,25,60,.05);margin-bottom:10px;cursor:grab}
|
||
.kcard.drag{opacity:.4}
|
||
.kcard .t{font-weight:600;font-size:13px;margin-bottom:8px}
|
||
.kcard .meta{display:flex;align-items:center;justify-content:space-between;margin-top:8px}
|
||
.bord-l{border-left:3px solid var(--violet)}
|
||
.col.over{outline:2px dashed var(--violet);outline-offset:-4px}
|
||
|
||
/* Chat */
|
||
.chatwrap{display:grid;grid-template-columns:1fr 300px;gap:16px}
|
||
.chat{display:flex;flex-direction:column;height:560px}
|
||
.msgs{flex:1;overflow:auto;padding:18px;display:flex;flex-direction:column;gap:14px}
|
||
.msg{max-width:76%;padding:12px 14px;border-radius:14px;font-size:13.5px;line-height:1.5}
|
||
.msg.u{align-self:flex-end;background:var(--grad-soft);color:#fff;border-bottom-right-radius:4px}
|
||
.msg.a{align-self:flex-start;background:#f2f3f8;border-bottom-left-radius:4px}
|
||
.msg .src{margin-top:10px;font-size:11.5px;color:var(--violet);background:#fff;border:1px solid var(--violet-100);border-radius:8px;padding:6px 9px;display:flex;gap:8px;align-items:center}
|
||
.chatbar{border-top:1px solid var(--line);padding:12px;display:flex;gap:10px}
|
||
.chatbar input{flex:1;border:1px solid var(--line);border-radius:10px;padding:11px 13px;font-family:inherit;font-size:13.5px;outline:none}
|
||
.side-note{font-size:12.5px;color:var(--muted);line-height:1.6}
|
||
|
||
/* Wizard */
|
||
.steps{display:flex;gap:0;margin-bottom:20px}
|
||
.step{flex:1;text-align:center;position:relative;font-size:12px;color:var(--muted);font-weight:600}
|
||
.step .b{width:30px;height:30px;border-radius:50%;background:#fff;border:2px solid var(--line);display:grid;place-items:center;margin:0 auto 6px;font-family:Poppins;font-weight:700}
|
||
.step.done .b{background:var(--grad-soft);border-color:transparent;color:#fff}
|
||
.step.active .b{border-color:var(--violet);color:var(--violet)}
|
||
.step::before{content:"";position:absolute;top:15px;left:-50%;width:100%;height:2px;background:var(--line);z-index:-1}
|
||
.step:first-child::before{display:none}
|
||
.step.done::before{background:var(--violet)}
|
||
.field{margin-bottom:14px}
|
||
.field label{display:block;font-weight:600;font-size:12.5px;margin-bottom:6px}
|
||
.field input,.field textarea,.field select{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-family:inherit;font-size:13.5px;outline:none}
|
||
.field textarea{min-height:90px;resize:vertical}
|
||
.hint{background:var(--violet-050);border:1px solid var(--violet-100);border-radius:12px;padding:12px 14px;font-size:12.5px;color:#5a4e86}
|
||
|
||
.tabs{display:flex;gap:6px;margin-bottom:14px}
|
||
.tabs button{border:1px solid var(--line);background:#fff;padding:7px 14px;border-radius:999px;font-family:Poppins;font-weight:600;font-size:12.5px;cursor:pointer;color:var(--muted)}
|
||
.tabs button.active{background:var(--violet-100);color:var(--violet);border-color:transparent}
|
||
.progress{height:8px;border-radius:8px;background:#eef;overflow:hidden;width:120px}
|
||
.progress > i{display:block;height:100%;background:var(--grad-soft)}
|
||
.module{display:none}
|
||
.module.show{display:block;animation:fade .2s ease}
|
||
@keyframes fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
|
||
.flex{display:flex;align-items:center;gap:10px}
|
||
.between{display:flex;align-items:center;justify-content:space-between;gap:12px}
|
||
.mt16{margin-top:16px}.mb0{margin-bottom:0}
|
||
.timeline{border-left:2px solid var(--line);margin-left:8px;padding-left:18px}
|
||
.tl{position:relative;padding-bottom:16px}
|
||
.tl::before{content:"";position:absolute;left:-25px;top:2px;width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid var(--violet)}
|
||
.tl .tm{font-size:11.5px;color:var(--muted)}
|
||
.donut{--p:0;width:120px;height:120px;border-radius:50%;background:conic-gradient(var(--violet) calc(var(--p)*1%), #eceaf5 0);display:grid;place-items:center}
|
||
.donut .in{width:86px;height:86px;border-radius:50%;background:#fff;display:grid;place-items:center;font-family:Poppins;font-weight:700;font-size:22px}
|
||
@media(max-width:1100px){.g4{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:1fr}.chatwrap{grid-template-columns:1fr}.kanban{grid-template-columns:repeat(2,1fr)}}
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<div class="app">
|
||
<!-- SIDEBAR -->
|
||
<aside class="side">
|
||
<div class="brand"><img src="data:image/png;base64,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Y0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAXEgAAFxIBZ5/SUgAABlBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDkuMS1jMDAyIDc5LmE2YTYzOTY4YSwgMjAyNC8wMy8wNi0xMTo1MjowNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDI1LjExIChNYWNpbnRvc2gpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAyNC0wOC0yOVQxMDoxNjoyNCswMjowMCIgeG1wOk1vZGlmeURhdGU9IjIwMjQtMDgtMjlUMTA6Mjc6MzcrMDI6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMjQtMDgtMjlUMTA6Mjc6MzcrMDI6MDAiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OWU5OTg4ZmEtYWRlYS00OGQzLWFlNGItOTkzMTk0ZTVkOGZhIiB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6MmZjOGQxYzItY2MwYy1mMzQyLThiNGItMWRjYjVmNWI0MjVlIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6NzRkOWI4YjItOWUwMC00ODUxLTg1ZjYtYTBlNjVmMzBkZmQyIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NGQ5YjhiMi05ZTAwLTQ4NTEtODVmNi1hMGU2NWYzMGRmZDIiIHN0RXZ0OndoZW49IjIwMjQtMDgtMjlUMTA6MTY6MjQrMDI6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyNS4xMSAoTWFjaW50b3NoKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY29udmVydGVkIiBzdEV2dDpwYXJhbWV0ZXJzPSJmcm9tIGltYWdlL2Vwc2YgdG8gaW1hZ2UvcG5nIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo5ZTk5ODhmYS1hZGVhLTQ4ZDMtYWU0Yi05OTMxOTRlNWQ4ZmEiIHN0RXZ0OndoZW49IjIwMjQtMDgtMjlUMTA6Mjc6MzcrMDI6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyNS4xMSAoTWFjaW50b3NoKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7U5Q/XAACNiElEQVR4nO29XZMjSXae+UYN74W5ruE08hc0cs16OAhSbOTFWpntrm2jbvZmLwpZklbkSlRlsodDidSqMm3XKLHnI7OMXFIStUqUUdJKa9xKtEiJLH4liisFyJmLRv+CxBinrxn8AZPYC/cA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" alt="GEFIM"></div>
|
||
<nav class="nav" id="nav">
|
||
<div class="grp">Übersicht</div>
|
||
<a data-m="dashboard" class="active"><svg class="ic" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="7" height="9"/><rect x="14" y="3" width="7" height="5"/><rect x="14" y="12" width="7" height="9"/><rect x="3" y="16" width="7" height="5"/></svg>Dashboard</a>
|
||
<div class="grp">Fachdaten</div>
|
||
<a data-m="assets"><svg class="ic" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M20 7 12 3 4 7l8 4 8-4Z"/><path d="M4 7v10l8 4 8-4V7"/><path d="m12 11v10"/></svg>Asset-Inventar</a>
|
||
<a data-m="bia"><svg class="ic" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 3v18h18"/><path d="m7 14 3-4 3 3 5-6"/></svg>Business Impact</a>
|
||
<a data-m="risk"><svg class="ic" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M10.3 3.4 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.4a2 2 0 0 0-3.4 0Z"/><path d="M12 9v4"/><path d="M12 17h.01"/></svg>Risikoanalyse</a>
|
||
<a data-m="graph"><svg class="ic" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="5" cy="6" r="2.5"/><circle cx="19" cy="6" r="2.5"/><circle cx="12" cy="18" r="2.5"/><path d="M7 7 10.5 16M17 7 13.5 16M7.5 6h9"/></svg>Abhängigkeiten</a>
|
||
<div class="grp">Compliance & Betrieb</div>
|
||
<a data-m="soa"><svg class="ic" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 11l3 3 8-8"/><path d="M20 12v7a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h9"/></svg>SoA / Controls</a>
|
||
<a data-m="tasks"><svg class="ic" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="4" width="18" height="16" rx="2"/><path d="M8 4v16M16 4v16"/></svg>Aufgaben</a>
|
||
<a data-m="incidents"><svg class="ic" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2a10 10 0 1 0 10 10"/><path d="M12 8v4l3 2"/><path d="M17 3l4 4"/></svg>Vorfälle</a>
|
||
<a data-m="evidence"><svg class="ic" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8Z"/><path d="M14 2v6h6"/><path d="M8 13h8M8 17h5"/></svg>Nachweise</a>
|
||
<a data-m="suppliers"><svg class="ic" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="3"/><path d="M22 21v-2a4 4 0 0 0-3-3.9M16 3.1a4 4 0 0 1 0 7.8"/></svg>Lieferanten</a>
|
||
<div class="grp">Steuerung</div>
|
||
<a data-m="review"><svg class="ic" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 3v18h18"/><rect x="7" y="10" width="3" height="7"/><rect x="12" y="6" width="3" height="11"/><rect x="17" y="13" width="3" height="4"/></svg>Management-Review</a>
|
||
<div class="grp">Assistenz</div>
|
||
<a data-m="chat"><svg class="ic" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2Z"/></svg>ISMS-Chat</a>
|
||
<a data-m="policy"><svg class="ic" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8Z"/><path d="M14 2v6h6"/><path d="m9 15 2 2 4-4"/></svg>Richtlinien-Assistent</a>
|
||
</nav>
|
||
<div class="foot">v0.1 · Prototyp · ISO 27001 & TISAX</div>
|
||
</aside>
|
||
|
||
<!-- MAIN -->
|
||
<div class="main">
|
||
<header class="top">
|
||
<div class="tenant">
|
||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 21h18M5 21V7l7-4 7 4v14"/><path d="M9 9h.01M9 13h.01M9 17h.01M15 9h.01M15 13h.01M15 17h.01"/></svg>
|
||
Muster Mittelstand GmbH
|
||
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="m6 9 6 6 6-6"/></svg>
|
||
</div>
|
||
<div class="search">
|
||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="7"/><path d="m21 21-4.3-4.3"/></svg>
|
||
<input placeholder="Assets, Risiken, Controls durchsuchen …">
|
||
</div>
|
||
<div class="spacer"></div>
|
||
<button class="iconbtn" title="Benachrichtigungen"><span class="dot"></span><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"/><path d="M10.3 21a1.9 1.9 0 0 0 3.4 0"/></svg></button>
|
||
<div class="avatar">MS</div>
|
||
</header>
|
||
|
||
<div class="content" id="content"><!-- modules injected --></div>
|
||
</div>
|
||
</div>
|
||
|
||
<script>
|
||
const MOD = {};
|
||
|
||
/* ---------------- DASHBOARD ---------------- */
|
||
MOD.dashboard = `
|
||
<div class="pagehead">
|
||
<div><div class="crumb">Übersicht</div><h1>Dashboard</h1><div class="sub">Willkommen zurück, Martin — Status des ISMS für Muster Mittelstand GmbH.</div></div>
|
||
<div class="flex"><button class="btn ghost">Bericht exportieren</button><button class="btn primary">+ Neuer Eintrag</button></div>
|
||
</div>
|
||
<div class="grid g4">
|
||
<div class="card pad kpi"><div class="lbl">Offene Risiken</div><div class="val">18</div><div class="trend" style="color:var(--risk)">4 hoch · 2 kritisch</div><div class="bar"><i style="width:62%"></i></div></div>
|
||
<div class="card pad kpi"><div class="lbl">SoA-Erfüllungsgrad</div><div class="val">74%</div><div class="trend" style="color:var(--ok)">+6% ggü. Vormonat</div><div class="bar"><i style="width:74%"></i></div></div>
|
||
<div class="card pad kpi"><div class="lbl">Überfällige Aufgaben</div><div class="val">5</div><div class="trend" style="color:var(--warn)">2 Reviews fällig</div><div class="bar"><i style="width:20%"></i></div></div>
|
||
<div class="card pad kpi"><div class="lbl">Offene Vorfälle</div><div class="val">3</div><div class="trend" style="color:var(--info)">1 in Eskalation</div><div class="bar"><i style="width:33%"></i></div></div>
|
||
</div>
|
||
<div class="grid g3 mt16">
|
||
<div class="card pad" style="grid-column:span 2">
|
||
<div class="between"><div><div class="sect-title">Anstehende & wiederkehrende Aufgaben</div><div class="sect-sub">Automatisch geplant durch den Scheduler</div></div><button class="btn ghost" onclick="go('tasks')">Alle ansehen</button></div>
|
||
<table>
|
||
<thead><tr><th>Aufgabe</th><th>Typ</th><th>Verantwortlich</th><th>Fällig</th><th>Status</th></tr></thead>
|
||
<tbody>
|
||
<tr><td>Zugriffs-Review Q3</td><td><span class="tag">Benutzer-Review</span></td><td><span class="owner"><span class="mini">MS</span>M. Solarczek</span></td><td>05.07.2026</td><td><span class="pill warn">Fällig</span></td></tr>
|
||
<tr><td>Internes Audit — Kapitel 5–8</td><td><span class="tag">Internes Audit</span></td><td><span class="owner"><span class="mini">KB</span>K. Braun</span></td><td>18.07.2026</td><td><span class="pill info">Geplant</span></td></tr>
|
||
<tr><td>Management-Review 2026</td><td><span class="tag">Review</span></td><td><span class="owner"><span class="mini">GL</span>Geschäftsltg.</span></td><td>30.09.2026</td><td><span class="pill mut">Offen</span></td></tr>
|
||
<tr><td>Re-Zertifizierung TISAX</td><td><span class="tag">Externes Audit</span></td><td><span class="owner"><span class="mini">EX</span>ext. Prüfer</span></td><td>12.11.2026</td><td><span class="pill mut">Offen</span></td></tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="card pad">
|
||
<div class="sect-title">Reifegrad je Kapitel</div><div class="sect-sub">VDA-ISA 6.0</div>
|
||
${bars([['Informationssicherheit',82],['Physische Sicherheit',68],['IT-Betrieb',75],['Identitäts-Mgmt.',60],['Lieferanten',54],['Datenschutz',71]])}
|
||
</div>
|
||
</div>
|
||
<div class="grid g2 mt16">
|
||
<div class="card pad">
|
||
<div class="sect-title">Risiko-Verteilung</div><div class="sect-sub">Nach aktueller Bewertung</div>
|
||
<div class="flex" style="gap:24px;margin-top:8px">
|
||
<div class="donut" style="--p:72"><div class="in">72%</div></div>
|
||
<div class="side-note">
|
||
<div style="margin-bottom:8px"><span class="pill risk">Kritisch</span> 2 Risiken</div>
|
||
<div style="margin-bottom:8px"><span class="pill warn">Hoch</span> 4 Risiken</div>
|
||
<div style="margin-bottom:8px"><span class="pill info">Mittel</span> 7 Risiken</div>
|
||
<div><span class="pill ok">Gering</span> 5 Risiken</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="card pad">
|
||
<div class="sect-title">Letzte Aktivitäten</div><div class="sect-sub">Audit-Log</div>
|
||
<div class="timeline mt16">
|
||
<div class="tl"><div class="tm">vor 12 Min.</div><b>K. Braun</b> hat Risiko <b>R-014</b> auf „in Behandlung" gesetzt.</div>
|
||
<div class="tl"><div class="tm">vor 1 Std.</div><b>System</b> hat Aufgabe <b>Zugriffs-Review Q3</b> erzeugt.</div>
|
||
<div class="tl"><div class="tm">vor 3 Std.</div><b>M. Solarczek</b> hat Control <b>A.8.16</b> als umgesetzt markiert.</div>
|
||
<div class="tl"><div class="tm">gestern</div><b>Mitarbeiter</b> hat Vorfall <b>V-2026-031</b> gemeldet.</div>
|
||
</div>
|
||
</div>
|
||
</div>`;
|
||
|
||
/* ---------------- ASSETS ---------------- */
|
||
MOD.assets = `
|
||
<div class="pagehead">
|
||
<div><div class="crumb">Fachdaten</div><h1>Asset-Inventar</h1><div class="sub">142 Werte · Schutzbedarf nach C/I/A · verknüpft mit BIA und Risiko</div></div>
|
||
<div class="flex"><button class="btn ghost">Excel-Import</button><button class="btn ghost">Export</button><button class="btn primary">+ Asset</button></div>
|
||
</div>
|
||
<div class="grid g4">
|
||
<div class="card pad kpi"><div class="lbl">Assets gesamt</div><div class="val">142</div><div class="trend" style="color:var(--muted)">8 Typen</div></div>
|
||
<div class="card pad kpi"><div class="lbl">Hoher Schutzbedarf</div><div class="val">27</div><div class="trend" style="color:var(--risk)">C/I/A ≥ 3</div></div>
|
||
<div class="card pad kpi"><div class="lbl">Ohne Owner</div><div class="val">4</div><div class="trend" style="color:var(--warn)">Zuweisung nötig</div></div>
|
||
<div class="card pad kpi"><div class="lbl">Lieferanten</div><div class="val">19</div><div class="trend" style="color:var(--muted)">extern</div></div>
|
||
</div>
|
||
<div class="card mt16">
|
||
<div class="pad between"><div class="tabs mb0"><button class="active">Alle</button><button>Systeme</button><button>Anwendungen</button><button>Informationen</button><button>Lieferanten</button></div><div class="search" style="max-width:260px"><svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="7"/><path d="m21 21-4.3-4.3"/></svg><input placeholder="Filtern …"></div></div>
|
||
<table>
|
||
<thead><tr><th>Asset</th><th>Typ</th><th>Owner</th><th>Schutzbedarf (C/I/A)</th><th>Abhängigkeiten</th><th>Status</th></tr></thead>
|
||
<tbody>
|
||
<tr><td><b>ERP-System (SAP)</b></td><td><span class="tag">Anwendung</span></td><td><span class="owner"><span class="mini">KB</span>K. Braun</span></td><td>${cia(4,4,3)}</td><td>DB-Cluster, AD</td><td><span class="pill ok">Aktiv</span></td></tr>
|
||
<tr><td><b>Kundendatenbank</b></td><td><span class="tag">Information</span></td><td><span class="owner"><span class="mini">MS</span>M. Solarczek</span></td><td>${cia(4,3,3)}</td><td>ERP, Backup</td><td><span class="pill ok">Aktiv</span></td></tr>
|
||
<tr><td><b>Active Directory</b></td><td><span class="tag">System</span></td><td><span class="owner"><span class="mini">IT</span>IT-Betrieb</span></td><td>${cia(3,4,4)}</td><td>alle Systeme</td><td><span class="pill ok">Aktiv</span></td></tr>
|
||
<tr><td><b>Cloud-Backup (extern)</b></td><td><span class="tag">Lieferant</span></td><td><span class="owner"><span class="mini">IT</span>IT-Betrieb</span></td><td>${cia(3,3,4)}</td><td>ERP, DMS</td><td><span class="pill warn">Prüfung</span></td></tr>
|
||
<tr><td><b>Produktions-MES</b></td><td><span class="tag">Anwendung</span></td><td><span class="owner"><span class="mini">PL</span>Produktion</span></td><td>${cia(2,4,4)}</td><td>SPS, Netzwerk</td><td><span class="pill ok">Aktiv</span></td></tr>
|
||
<tr><td><b>Reisekosten-Portal</b></td><td><span class="tag">Anwendung</span></td><td><span class="pill risk">kein Owner</span></td><td>${cia(2,2,1)}</td><td>AD</td><td><span class="pill mut">Review</span></td></tr>
|
||
</tbody>
|
||
</table>
|
||
</div>`;
|
||
|
||
/* ---------------- BIA ---------------- */
|
||
MOD.bia = `
|
||
<div class="pagehead">
|
||
<div><div class="crumb">Fachdaten</div><h1>Business Impact Analyse</h1><div class="sub">Kritikalität der Geschäftsprozesse · RTO / RPO / MTD</div></div>
|
||
<div class="flex"><button class="btn ghost">BIA-Report (PDF)</button><button class="btn primary">+ Prozess</button></div>
|
||
</div>
|
||
<div class="card pad">
|
||
<div class="between"><div class="sect-title">Geführter BIA-Assistent</div><div class="pill info">Schritt 3 von 5 · Prozess „Auftragsabwicklung"</div></div>
|
||
<div class="steps mt16">
|
||
<div class="step done"><div class="b">✓</div>Prozess</div>
|
||
<div class="step done"><div class="b">✓</div>Assets</div>
|
||
<div class="step active"><div class="b">3</div>Schadensszenarien</div>
|
||
<div class="step"><div class="b">4</div>Wiederanlauf</div>
|
||
<div class="step"><div class="b">5</div>Ergebnis</div>
|
||
</div>
|
||
<div class="grid g2">
|
||
<div>
|
||
<div class="field"><label>Maximal tolerierbarer Ausfall (MTD)</label><select><option>4 Stunden</option><option selected>8 Stunden</option><option>24 Stunden</option></select></div>
|
||
<div class="field"><label>Schadenshöhe bei Ausfall > 8 h</label><select><option>gering</option><option>mittel</option><option selected>hoch</option><option>existenzbedrohend</option></select></div>
|
||
<div class="field"><label>Betroffene Schutzziele</label><input value="Verfügbarkeit, Integrität"></div>
|
||
</div>
|
||
<div class="hint">
|
||
<b>Automatische Vorbelegung</b><br>
|
||
Aus den verknüpften Assets (ERP-System C/I/A 4-4-3, Kundendatenbank 4-3-3) wird ein <b>hoher</b> Schutzbedarf abgeleitet. Der ermittelte Wert fließt direkt in die Risikoanalyse und priorisiert die Maßnahmen.
|
||
<div class="mt16 flex"><button class="btn ghost">Zurück</button><button class="btn primary">Weiter zu Wiederanlauf</button></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="card pad mt16">
|
||
<div class="between"><div><div class="sect-title">Prozess-Detail · Auftragsabwicklung</div><div class="sect-sub">Zugeordnete Assets nach Rolle</div></div><span class="pill risk">Kritikalität: Sehr hoch</span></div>
|
||
<div class="grid g2 mt16">
|
||
<div>
|
||
<div class="flex" style="margin-bottom:10px"><span class="pill" style="background:var(--violet-100);color:var(--violet)">★ Primäres Asset</span><span class="side-note">Ergebnis, das im Prozess erzeugt wird</span></div>
|
||
<div class="card pad" style="background:#faf9fd;border-left:3px solid var(--violet)">
|
||
<div class="between"><b>Auftragsdatensatz / Kundenbestellung</b><span>${cia(4,4,3)}</span></div>
|
||
<div class="side-note" style="margin-top:6px">Owner: K. Braun · Typ: Information · vererbt Schutzbedarf an sekundäre Assets</div>
|
||
</div>
|
||
</div>
|
||
<div>
|
||
<div class="flex" style="margin-bottom:10px"><span class="pill info">◆ Sekundäre Assets</span><span class="side-note">Werden zur Bearbeitung benötigt</span></div>
|
||
<table>
|
||
<tbody>
|
||
<tr><td><b>ERP-System (SAP)</b></td><td><span class="tag">Anwendung</span></td><td>${cia(4,4,3)}</td></tr>
|
||
<tr><td><b>Active Directory</b></td><td><span class="tag">System</span></td><td>${cia(3,4,4)}</td></tr>
|
||
<tr><td><b>Cloud-Backup (extern)</b></td><td><span class="tag">Lieferant</span></td><td>${cia(3,3,4)}</td></tr>
|
||
<tr><td><b>Sachbearbeitung Vertrieb</b></td><td><span class="tag">Rolle</span></td><td>${cia(2,3,3)}</td></tr>
|
||
</tbody>
|
||
</table>
|
||
<div class="flex mt16"><button class="btn ghost" onclick="go('graph')">Abhängigkeiten anzeigen →</button></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="card mt16">
|
||
<div class="pad sect-title">Kritikalität der Prozesse</div>
|
||
<table>
|
||
<thead><tr><th>Geschäftsprozess</th><th>RTO</th><th>RPO</th><th>MTD</th><th>Kritikalität</th></tr></thead>
|
||
<tbody>
|
||
<tr><td><b>Auftragsabwicklung</b></td><td>4 h</td><td>1 h</td><td>8 h</td><td><span class="pill risk">Sehr hoch</span></td></tr>
|
||
<tr><td><b>Produktion / Fertigung</b></td><td>2 h</td><td>0 h</td><td>4 h</td><td><span class="pill risk">Sehr hoch</span></td></tr>
|
||
<tr><td><b>Rechnungswesen</b></td><td>24 h</td><td>4 h</td><td>48 h</td><td><span class="pill warn">Hoch</span></td></tr>
|
||
<tr><td><b>Personalverwaltung</b></td><td>72 h</td><td>24 h</td><td>1 Woche</td><td><span class="pill info">Mittel</span></td></tr>
|
||
</tbody>
|
||
</table>
|
||
</div>`;
|
||
|
||
/* ---------------- RISK ---------------- */
|
||
MOD.risk = `
|
||
<div class="pagehead">
|
||
<div><div class="crumb">Fachdaten</div><h1>Risikoanalyse</h1><div class="sub">5×5-Matrix · Ziehe Risiken zur Neubewertung in eine andere Zelle</div></div>
|
||
<div class="flex"><button class="btn ghost">Risikoregister exportieren</button><button class="btn primary">+ Risiko</button></div>
|
||
</div>
|
||
<div class="grid g2">
|
||
<div class="card pad">
|
||
<div class="sect-title">Risiko-Heatmap</div><div class="sect-sub">Auswirkung (Y) × Eintrittswahrscheinlichkeit (X)</div>
|
||
<div class="heat mt16" id="heat"></div>
|
||
<div class="legend"><span><i class="hl" style="background:#dff3e5"></i>Gering</span><span><i style="background:#fdf0cf"></i>Mittel</span><span><i style="background:#fbdcc0"></i>Erhöht</span><span><i style="background:#f6c3c1"></i>Hoch</span><span><i style="background:#ef9a98"></i>Kritisch</span></div>
|
||
</div>
|
||
<div class="card pad">
|
||
<div class="sect-title">Risikoregister</div><div class="sect-sub">Top-Risiken nach Bewertung</div>
|
||
<table class="mt16">
|
||
<thead><tr><th>ID</th><th>Risiko</th><th>Bewertung</th><th>Behandlung</th></tr></thead>
|
||
<tbody>
|
||
<tr><td>R-014</td><td><b>Ransomware</b> auf ERP</td><td><span class="pill risk">20 · Kritisch</span></td><td><span class="tag">Vermindern</span></td></tr>
|
||
<tr><td>R-021</td><td>Ausfall Cloud-Backup</td><td><span class="pill risk">16 · Hoch</span></td><td><span class="tag">Übertragen</span></td></tr>
|
||
<tr><td>R-008</td><td>Fehlkonfiguration AD</td><td><span class="pill warn">12 · Hoch</span></td><td><span class="tag">Vermindern</span></td></tr>
|
||
<tr><td>R-033</td><td>Phishing / Social Eng.</td><td><span class="pill warn">9 · Mittel</span></td><td><span class="tag">Vermindern</span></td></tr>
|
||
<tr><td>R-002</td><td>Verlust mobiler Geräte</td><td><span class="pill info">6 · Mittel</span></td><td><span class="tag">Akzeptieren</span></td></tr>
|
||
</tbody>
|
||
</table>
|
||
<div class="hint mt16"><b>R-014 · Ransomware</b> — Rest-Risiko nach Maßnahmen (EDR, Offline-Backup, Awareness): <b>9 (Mittel)</b>. Verknüpfte Controls: A.8.7, A.8.13, A.5.24. <span class="pill mut">Freigabe ISB ausstehend</span></div>
|
||
</div>
|
||
</div>`;
|
||
|
||
/* ---------------- SoA ---------------- */
|
||
MOD.soa = `
|
||
<div class="pagehead">
|
||
<div><div class="crumb">Compliance</div><h1>Statement of Applicability</h1><div class="sub">ISO 27001:2022 Annex A · 93 Controls · Mapping zu VDA-ISA 6.0</div></div>
|
||
<div class="flex"><button class="btn ghost">SoA exportieren</button><button class="btn primary">Bericht</button></div>
|
||
</div>
|
||
<div class="grid g4">
|
||
<div class="card pad kpi"><div class="lbl">Umgesetzt</div><div class="val" style="color:var(--ok)">69</div><div class="bar"><i style="width:74%"></i></div></div>
|
||
<div class="card pad kpi"><div class="lbl">In Umsetzung</div><div class="val" style="color:var(--warn)">14</div><div class="bar"><i style="width:15%"></i></div></div>
|
||
<div class="card pad kpi"><div class="lbl">Offen</div><div class="val" style="color:var(--risk)">6</div><div class="bar"><i style="width:6%"></i></div></div>
|
||
<div class="card pad kpi"><div class="lbl">Nicht anwendbar</div><div class="val" style="color:var(--muted)">4</div><div class="bar"><i style="width:4%"></i></div></div>
|
||
</div>
|
||
<div class="card mt16">
|
||
<div class="pad"><div class="tabs mb0"><button class="active">A.5 Organisatorisch (37)</button><button>A.6 Personen (8)</button><button>A.7 Physisch (14)</button><button>A.8 Technologisch (34)</button></div></div>
|
||
<table>
|
||
<thead><tr><th>Control</th><th>Titel</th><th>Anwendbar</th><th>Reifegrad</th><th>VDA-ISA</th><th>Status</th></tr></thead>
|
||
<tbody>
|
||
<tr><td><b>A.5.1</b></td><td>Informationssicherheits-Richtlinien</td><td><span class="pill ok">Ja</span></td><td><div class="progress"><i style="width:90%"></i></div></td><td><span class="tag">1.1.1</span></td><td><span class="pill ok">Umgesetzt</span></td></tr>
|
||
<tr><td><b>A.5.7</b></td><td>Threat Intelligence</td><td><span class="pill ok">Ja</span></td><td><div class="progress"><i style="width:45%"></i></div></td><td><span class="tag">1.6.1</span></td><td><span class="pill warn">In Umsetzung</span></td></tr>
|
||
<tr><td><b>A.5.24</b></td><td>Planung Incident Management</td><td><span class="pill ok">Ja</span></td><td><div class="progress"><i style="width:70%"></i></div></td><td><span class="tag">1.5.x</span></td><td><span class="pill warn">In Umsetzung</span></td></tr>
|
||
<tr><td><b>A.8.7</b></td><td>Schutz vor Schadsoftware</td><td><span class="pill ok">Ja</span></td><td><div class="progress"><i style="width:85%"></i></div></td><td><span class="tag">5.2.x</span></td><td><span class="pill ok">Umgesetzt</span></td></tr>
|
||
<tr><td><b>A.8.16</b></td><td>Überwachung von Aktivitäten</td><td><span class="pill ok">Ja</span></td><td><div class="progress"><i style="width:30%"></i></div></td><td><span class="tag">5.3.x</span></td><td><span class="pill risk">Offen</span></td></tr>
|
||
<tr><td><b>A.7.4</b></td><td>Physische Überwachung</td><td><span class="pill mut">N/A</span></td><td><div class="progress"><i style="width:0%"></i></div></td><td><span class="tag">2.x</span></td><td><span class="pill mut">Nicht anwendbar</span></td></tr>
|
||
</tbody>
|
||
</table>
|
||
</div>`;
|
||
|
||
/* ---------------- TASKS (Kanban) ---------------- */
|
||
MOD.tasks = `
|
||
<div class="pagehead">
|
||
<div><div class="crumb">Betrieb</div><h1>Aufgaben & Maßnahmen</h1><div class="sub">Drag & Drop zwischen den Spalten · verknüpft mit Risiken, Controls & Vorfällen</div></div>
|
||
<div class="flex"><button class="btn ghost">Kalenderansicht</button><button class="btn primary">+ Aufgabe</button></div>
|
||
</div>
|
||
<div class="kanban" id="kanban">
|
||
<div class="col" data-col="todo"><h4>Offen <span class="n">3</span></h4>
|
||
${kcard('EDR-Rollout abschließen','R-014','Vermindern','KB','warn','high')}
|
||
${kcard('Offline-Backup einrichten','R-021','Backup','IT','info','mid')}
|
||
${kcard('Logging & Monitoring (A.8.16)','A.8.16','Control','MS','risk','high')}
|
||
</div>
|
||
<div class="col" data-col="prog"><h4>In Arbeit <span class="n">2</span></h4>
|
||
${kcard('Awareness-Kampagne Phishing','R-033','Vermindern','MS','info','mid')}
|
||
${kcard('Zugriffs-Review Q3','Review','Benutzer','KB','warn','high')}
|
||
</div>
|
||
<div class="col" data-col="review"><h4>Prüfung <span class="n">1</span></h4>
|
||
${kcard('Richtlinie Kryptografie aktualisiert','A.8.24','Policy','MS','info','low')}
|
||
</div>
|
||
<div class="col" data-col="done"><h4>Erledigt <span class="n">2</span></h4>
|
||
${kcard('MFA für alle Admins','A.8.5','Control','IT','ok','done')}
|
||
${kcard('Notfallplan getestet','A.5.29','BCM','KB','ok','done')}
|
||
</div>
|
||
</div>`;
|
||
|
||
/* ---------------- INCIDENTS ---------------- */
|
||
MOD.incidents = `
|
||
<div class="pagehead">
|
||
<div><div class="crumb">Betrieb</div><h1>Sicherheitsvorfälle</h1><div class="sub">Meldung · Triage · Bearbeitung · Abschluss · Lessons Learned</div></div>
|
||
<div class="flex"><button class="btn ghost">Vorfall melden</button><button class="btn primary">+ Neuer Vorfall</button></div>
|
||
</div>
|
||
<div class="grid g2">
|
||
<div class="card">
|
||
<div class="pad sect-title">Offene Vorfälle</div>
|
||
<table>
|
||
<thead><tr><th>ID</th><th>Titel</th><th>Schwere</th><th>Status</th></tr></thead>
|
||
<tbody>
|
||
<tr style="background:#faf9fd"><td>V-2026-031</td><td><b>Verdächtige Anmeldungen ERP</b></td><td><span class="pill risk">Kritisch</span></td><td><span class="pill warn">In Eskalation</span></td></tr>
|
||
<tr><td>V-2026-030</td><td>Phishing-Mail an Buchhaltung</td><td><span class="pill warn">Mittel</span></td><td><span class="pill info">In Bearbeitung</span></td></tr>
|
||
<tr><td>V-2026-029</td><td>Verlorenes Notebook (Außendienst)</td><td><span class="pill info">Niedrig</span></td><td><span class="pill info">In Bearbeitung</span></td></tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<div class="card pad">
|
||
<div class="between"><div class="sect-title">V-2026-031 · Verdächtige Anmeldungen ERP</div><span class="pill risk">Kritisch</span></div>
|
||
<div class="side-note mt16"><b>Gemeldet von:</b> Mitarbeiter (Chat) · <b>Betroffene Assets:</b> ERP-System, Active Directory · <b>SLA:</b> Reaktion in 1 h</div>
|
||
<div class="timeline mt16">
|
||
<div class="tl"><div class="tm">08:42 · Meldung</div>Auffällige Logins aus unbekannter Region gemeldet.</div>
|
||
<div class="tl"><div class="tm">08:47 · Triage</div>ISB stuft als <b>kritisch</b> ein, Kategorie „Unbefugter Zugriff".</div>
|
||
<div class="tl"><div class="tm">08:55 · Maßnahme</div>Betroffene Konten gesperrt, Sessions invalidiert.</div>
|
||
<div class="tl"><div class="tm">09:10 · Eskalation</div>Geschäftsleitung informiert · Prüfung Meldepflicht (DSGVO Art. 33).</div>
|
||
</div>
|
||
<div class="mt16 flex"><button class="btn ghost">Aufgabe anlegen</button><button class="btn ghost">Mit Risiko verknüpfen</button><button class="btn primary">Vorfall abschließen</button></div>
|
||
</div>
|
||
</div>`;
|
||
|
||
/* ---------------- CHAT ---------------- */
|
||
MOD.chat = `
|
||
<div class="pagehead">
|
||
<div><div class="crumb">Assistenz</div><h1>ISMS-Chat</h1><div class="sub">Antworten aus eurer Dokumentation — bei Bedarf Eskalation an den ISB</div></div>
|
||
</div>
|
||
<div class="chatwrap">
|
||
<div class="card chat">
|
||
<div class="msgs" id="msgs">
|
||
<div class="msg a">Hallo! Ich durchsuche eure Richtlinien und Dokumentation. Frag mich z. B. nach Passwort-Vorgaben, Meldewegen oder dem Umgang mit mobilen Geräten.</div>
|
||
<div class="msg u">Wie lang muss mein Passwort sein und wie oft muss ich es ändern?</div>
|
||
<div class="msg a">Laut eurer <b>Passwort-Richtlinie</b> gilt: mindestens <b>12 Zeichen</b> mit drei von vier Zeichenarten. Ein turnusmäßiger Wechsel ist <b>nicht</b> gefordert — nur bei Verdacht auf Kompromittierung. Für administrative Zugänge ist zusätzlich <b>MFA</b> verpflichtend.
|
||
<div class="src">📄 Quelle: Passwort-Richtlinie v2.1, Abschnitt 3.2 · Control A.5.17</div>
|
||
</div>
|
||
</div>
|
||
<div class="chatbar"><input id="cin" placeholder="Frage stellen …"><button class="btn ghost" onclick="escalate()">An ISB</button><button class="btn primary" onclick="sendMsg()">Senden</button></div>
|
||
</div>
|
||
<div class="card pad">
|
||
<div class="sect-title">So funktioniert's</div>
|
||
<div class="side-note mt16">
|
||
<p>Der Chat durchsucht <b>ausschließlich die Dokumente eures Mandanten</b> (RAG) und antwortet mit Quellenangabe.</p>
|
||
<p>Findet er keine belastbare Antwort oder fehlt die Berechtigung, wird die Frage als <b>Ticket an den ISB</b> eskaliert und nachverfolgt.</p>
|
||
<div class="hint">💡 Beispiele:<br>„Wie melde ich einen Sicherheitsvorfall?"<br>„Darf ich USB-Sticks nutzen?"<br>„Wer ist unser ISB?"</div>
|
||
</div>
|
||
</div>
|
||
</div>`;
|
||
|
||
/* ---------------- POLICY ASSISTANT ---------------- */
|
||
MOD.policy = `
|
||
<div class="pagehead">
|
||
<div><div class="crumb">Assistenz</div><h1>Richtlinien-Assistent</h1><div class="sub">Muster-Richtlinien geführt an euer Unternehmen anpassen</div></div>
|
||
<div class="flex"><button class="btn ghost">Bibliothek</button></div>
|
||
</div>
|
||
<div class="card pad">
|
||
<div class="between"><div class="sect-title">Richtlinie: Umgang mit mobilen Endgeräten</div><span class="pill info">Vorlage · ISO A.8.1 / A.6.7</span></div>
|
||
<div class="steps mt16">
|
||
<div class="step done"><div class="b">✓</div>Vorlage</div>
|
||
<div class="step active"><div class="b">2</div>Unternehmen</div>
|
||
<div class="step"><div class="b">3</div>Geltungsbereich</div>
|
||
<div class="step"><div class="b">4</div>Freigabe</div>
|
||
</div>
|
||
<div class="grid g2">
|
||
<div>
|
||
<div class="sect-sub">1 · Basisdaten individualisieren</div>
|
||
<div class="field"><label>Unternehmensname</label><input value="Muster Mittelstand GmbH"></div>
|
||
<div class="field"><label>Verantwortliche Rolle</label><select><option selected>Informationssicherheitsbeauftragter (ISB)</option><option>IT-Leitung</option></select></div>
|
||
<div class="field"><label>Erlaubte Geräte</label><input value="Firmen-Notebooks, verwaltete Smartphones (MDM)"></div>
|
||
<div class="field"><label>Besonderheiten (Freitext)</label><textarea>Private Nutzung nur eingeschränkt; Verschlüsselung verpflichtend; Verlustmeldung binnen 24 h an den ISB.</textarea></div>
|
||
<div class="hint"><b>2 · Inhaltliche Klausel-Anpassung durch KI</b><br>Die KI passt auf Basis dieser Angaben die eigentlichen Richtlinientexte an. Wähle eine Klausel im Editor und nutze die KI-Aktionen (umformulieren, kürzen, an Control ausrichten).</div>
|
||
<button class="btn primary mt16" onclick="genPolicy()">Klauseln neu generieren →</button>
|
||
</div>
|
||
<div>
|
||
<div class="between"><div class="sect-sub mb0">In-Tool-Ansicht & Inline-Editor</div><span class="pill info" id="editState">✎ Bearbeiten aktiv</span></div>
|
||
<div class="card pad" id="policyDoc" contenteditable="true" spellcheck="false" style="background:#fbfbfe;font-size:13px;line-height:1.65;outline:none;min-height:240px">
|
||
<b style="font-family:Poppins;font-size:15px">Richtlinie zum Umgang mit mobilen Endgeräten</b><br>
|
||
<span style="color:var(--muted)">Muster Mittelstand GmbH · Version 1.2 (Entwurf)</span>
|
||
<p><b>1. Zweck.</b> Diese Richtlinie regelt den sicheren Einsatz mobiler Endgeräte zum Schutz der Informationswerte der <b>Muster Mittelstand GmbH</b>.</p>
|
||
<p><b>2. Geltungsbereich.</b> Gilt für alle Mitarbeitenden, die Firmen-Notebooks oder verwaltete Smartphones (MDM) nutzen. Private Nutzung ist nur eingeschränkt zulässig.</p>
|
||
<p id="clause3"><b>3. Anforderungen.</b> Alle Geräte sind zu verschlüsseln (Full-Disk-Encryption). Der Verlust eines Geräts ist <b>binnen 24 Stunden dem ISB</b> zu melden. Zugriff nur mit Bildschirmsperre und starkem Kennwort.</p>
|
||
<p><b>4. Verantwortlichkeiten.</b> Der ISB verantwortet Umsetzung und Kontrolle; die IT-Leitung stellt die technische Durchsetzung (MDM) sicher.</p>
|
||
<span class="pill mut">Zuordnung: A.8.1, A.6.7</span>
|
||
</div>
|
||
<div class="flex" style="gap:6px;margin-top:10px;flex-wrap:wrap">
|
||
<button class="btn ghost" onclick="aiClause('umformuliert')">✦ KI: Absatz umformulieren</button>
|
||
<button class="btn ghost" onclick="aiClause('gekürzt')">✦ KI: kürzen</button>
|
||
<button class="btn ghost" onclick="aiClause('an Control A.8.1 ausgerichtet')">✦ KI: an Control ausrichten</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="between mt16" style="border-top:1px solid var(--line);padding-top:14px;flex-wrap:wrap;gap:10px">
|
||
<div class="flex" style="gap:16px;flex-wrap:wrap">
|
||
<span class="pill warn">Status: In Freigabe</span>
|
||
<span class="side-note">Version 1.2 · geändert von M. Solarczek</span>
|
||
<span class="side-note">Lesebestätigung: 34 / 52 Mitarbeitende</span>
|
||
</div>
|
||
<div class="flex"><button class="btn ghost">Versionsverlauf</button><button class="btn ghost">Als DOCX</button><button class="btn ghost">Als PDF</button><button class="btn primary">Zur Freigabe senden</button></div>
|
||
</div>
|
||
</div>`;
|
||
|
||
/* ---------------- DEPENDENCY GRAPH ---------------- */
|
||
MOD.graph = `
|
||
<div class="pagehead">
|
||
<div><div class="crumb">Fachdaten</div><h1>Abhängigkeiten & kritische Pfade</h1><div class="sub">Prozesse und Assets als Netzwerk · kritische Pfade hervorgehoben</div></div>
|
||
<div class="flex"><button class="btn ghost" id="cpToggle" onclick="toggleCP()">Kritische Pfade: an</button><button class="btn primary">Export</button></div>
|
||
</div>
|
||
<div class="chatwrap">
|
||
<div class="card pad">
|
||
<div class="sect-title">Netzwerkgraph</div><div class="sect-sub">Knoten anklicken zum Hervorheben · rote Kanten = kritischer Pfad</div>
|
||
<div id="graphHost" style="margin-top:10px;overflow:auto;border:1px solid var(--line);border-radius:12px;background:#fbfbfe"></div>
|
||
<div class="legend">
|
||
<span><i style="background:#5d52a3"></i>Prozess</span>
|
||
<span><i style="background:#8dc4e0"></i>Sekundäres Asset</span>
|
||
<span><i style="background:#812d80"></i>Primäres Asset</span>
|
||
<span><i style="background:#d64c4c"></i>Kritischer Pfad / SPOF</span>
|
||
</div>
|
||
</div>
|
||
<div class="card pad">
|
||
<div class="sect-title">Analyse</div>
|
||
<div class="side-note mt16">
|
||
<div class="hint" style="margin-bottom:12px"><b>Single Point of Failure erkannt</b><br><b>Active Directory</b> trägt 3 kritische Prozesse. Ausfall unterbricht Auftragsabwicklung, Produktion und Rechnungswesen.</div>
|
||
<p><b>Kritischster Pfad:</b><br>Auftragsabwicklung → ERP (SAP) → Active Directory → Cloud-Backup</p>
|
||
<p style="margin-top:10px"><b>Empfehlung:</b> Redundanz für AD, priorisierte Wiederanlaufplanung, Risiko R-008 hochstufen.</p>
|
||
<button class="btn ghost mt16" onclick="go('risk')">Zu Risiko R-008 →</button>
|
||
</div>
|
||
</div>
|
||
</div>`;
|
||
|
||
/* ---------------- EVIDENCE / DOCS ---------------- */
|
||
MOD.evidence = `
|
||
<div class="pagehead">
|
||
<div><div class="crumb">Compliance</div><h1>Nachweis- & Dokumentenmanagement</h1><div class="sub">Auditfeste Ablage · verknüpft mit Controls, Maßnahmen, Audits</div></div>
|
||
<div class="flex"><button class="btn ghost">Ordnerstruktur</button><button class="btn primary">+ Nachweis hochladen</button></div>
|
||
</div>
|
||
<div class="grid g4">
|
||
<div class="card pad kpi"><div class="lbl">Nachweise</div><div class="val">248</div><div class="trend" style="color:var(--muted)">12 Kategorien</div></div>
|
||
<div class="card pad kpi"><div class="lbl">Laufen bald ab</div><div class="val" style="color:var(--warn)">7</div><div class="trend" style="color:var(--warn)">≤ 30 Tage</div></div>
|
||
<div class="card pad kpi"><div class="lbl">Abgelaufen</div><div class="val" style="color:var(--risk)">2</div><div class="trend" style="color:var(--risk)">Aktualisierung nötig</div></div>
|
||
<div class="card pad kpi"><div class="lbl">Verknüpft mit Controls</div><div class="val" style="color:var(--ok)">83%</div><div class="bar"><i style="width:83%"></i></div></div>
|
||
</div>
|
||
<div class="card mt16">
|
||
<div class="pad between"><div class="tabs mb0"><button class="active">Alle</button><button>Richtlinien</button><button>Protokolle</button><button>Zertifikate</button><button>Screenshots</button></div><div class="search" style="max-width:260px"><svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="7"/><path d="m21 21-4.3-4.3"/></svg><input placeholder="Volltext-Suche …"></div></div>
|
||
<table>
|
||
<thead><tr><th>Nachweis</th><th>Typ</th><th>Verknüpft mit</th><th>Gültig bis</th><th>Status</th></tr></thead>
|
||
<tbody>
|
||
<tr><td><b>Backup-Restore-Protokoll Q2</b></td><td><span class="tag">Protokoll</span></td><td><span class="tag">A.8.13</span> <span class="tag">R-021</span></td><td>30.06.2027</td><td><span class="pill ok">Gültig</span></td></tr>
|
||
<tr><td><b>ISO-27001-Zertifikat Cloud-Anbieter</b></td><td><span class="tag">Zertifikat</span></td><td><span class="tag">Lieferant</span> <span class="tag">A.5.19</span></td><td>28.07.2026</td><td><span class="pill warn">Läuft ab</span></td></tr>
|
||
<tr><td><b>Pen-Test-Bericht 2025</b></td><td><span class="tag">Bericht</span></td><td><span class="tag">A.8.8</span> <span class="tag">Audit</span></td><td>15.05.2026</td><td><span class="pill risk">Abgelaufen</span></td></tr>
|
||
<tr><td><b>Screenshot MFA-Konfiguration</b></td><td><span class="tag">Screenshot</span></td><td><span class="tag">A.8.5</span></td><td>—</td><td><span class="pill ok">Gültig</span></td></tr>
|
||
<tr><td><b>Schulungsnachweis Awareness</b></td><td><span class="tag">Protokoll</span></td><td><span class="tag">A.6.3</span></td><td>31.12.2026</td><td><span class="pill ok">Gültig</span></td></tr>
|
||
</tbody>
|
||
</table>
|
||
</div>`;
|
||
|
||
/* ---------------- SUPPLIERS ---------------- */
|
||
MOD.suppliers = `
|
||
<div class="pagehead">
|
||
<div><div class="crumb">Compliance</div><h1>Lieferanten & Dienstleister</h1><div class="sub">Third-Party-Risiko · AV-Verträge · Zertifikate · Review-Zyklen</div></div>
|
||
<div class="flex"><button class="btn ghost">Fragebogen senden</button><button class="btn primary">+ Lieferant</button></div>
|
||
</div>
|
||
<div class="grid g4">
|
||
<div class="card pad kpi"><div class="lbl">Dienstleister</div><div class="val">19</div><div class="trend" style="color:var(--risk)">5 kritisch</div></div>
|
||
<div class="card pad kpi"><div class="lbl">AV-Vertrag fehlt</div><div class="val" style="color:var(--risk)">2</div><div class="trend" style="color:var(--risk)">DSGVO Art. 28</div></div>
|
||
<div class="card pad kpi"><div class="lbl">Review fällig</div><div class="val" style="color:var(--warn)">3</div><div class="trend" style="color:var(--warn)">Q3/2026</div></div>
|
||
<div class="card pad kpi"><div class="lbl">Zertifiziert</div><div class="val" style="color:var(--ok)">11</div><div class="trend" style="color:var(--ok)">ISO/TISAX</div></div>
|
||
</div>
|
||
<div class="card mt16">
|
||
<table>
|
||
<thead><tr><th>Dienstleister</th><th>Leistung</th><th>Kritikalität</th><th>Nachweis</th><th>AV-Vertrag</th><th>Nächstes Review</th></tr></thead>
|
||
<tbody>
|
||
<tr><td><b>CloudHost AG</b></td><td>Backup / Hosting</td><td><span class="pill risk">Kritisch</span></td><td><span class="pill ok">ISO 27001</span></td><td><span class="pill ok">vorhanden</span></td><td>08/2026</td></tr>
|
||
<tr><td><b>SAP-Partner GmbH</b></td><td>ERP-Wartung</td><td><span class="pill warn">Hoch</span></td><td><span class="pill ok">TISAX AL2</span></td><td><span class="pill ok">vorhanden</span></td><td>10/2026</td></tr>
|
||
<tr><td><b>PrintService KG</b></td><td>Aktenvernichtung</td><td><span class="pill info">Mittel</span></td><td><span class="pill warn">läuft ab</span></td><td><span class="pill ok">vorhanden</span></td><td>07/2026</td></tr>
|
||
<tr><td><b>WebAgentur X</b></td><td>Website-Betrieb</td><td><span class="pill info">Mittel</span></td><td><span class="pill mut">keiner</span></td><td><span class="pill risk">fehlt</span></td><td>überfällig</td></tr>
|
||
</tbody>
|
||
</table>
|
||
</div>`;
|
||
|
||
/* ---------------- MANAGEMENT REVIEW / KPI ---------------- */
|
||
MOD.review = `
|
||
<div class="pagehead">
|
||
<div><div class="crumb">Steuerung</div><h1>Management-Review & Kennzahlen</h1><div class="sub">Wirksamkeitsmessung · KPI-Trends · Review-Protokoll</div></div>
|
||
<div class="flex"><button class="btn ghost">Zeitraum: 2026</button><button class="btn primary">Management-Report</button></div>
|
||
</div>
|
||
<div class="grid g4">
|
||
<div class="card pad kpi"><div class="lbl">SoA-Erfüllungsgrad</div><div class="val">74%</div><div class="trend" style="color:var(--ok)">Ziel 90% · ↑ 6%</div><div class="bar"><i style="width:74%"></i></div></div>
|
||
<div class="card pad kpi"><div class="lbl">Ø Reaktionszeit Vorfall</div><div class="val">42<span style="font-size:15px">min</span></div><div class="trend" style="color:var(--ok)">Ziel < 60 · ↓</div><div class="bar"><i style="width:70%"></i></div></div>
|
||
<div class="card pad kpi"><div class="lbl">Offene kritische Risiken</div><div class="val" style="color:var(--risk)">2</div><div class="trend" style="color:var(--warn)">Ziel 0</div><div class="bar"><i style="width:20%"></i></div></div>
|
||
<div class="card pad kpi"><div class="lbl">Maßnahmen-Quote</div><div class="val">88%</div><div class="trend" style="color:var(--ok)">fristgerecht</div><div class="bar"><i style="width:88%"></i></div></div>
|
||
</div>
|
||
<div class="grid g2 mt16">
|
||
<div class="card pad">
|
||
<div class="sect-title">Reifegrad-Entwicklung</div><div class="sect-sub">Trend über 4 Quartale</div>
|
||
<div style="margin-top:14px">${sparkRows([['Q3/25',58],['Q4/25',63],['Q1/26',69],['Q2/26',74]])}</div>
|
||
</div>
|
||
<div class="card pad">
|
||
<div class="sect-title">Management-Review 2026</div><div class="sect-sub">Strukturierte Vorlage (ISO 27001 Kap. 9.3)</div>
|
||
<div class="timeline mt16">
|
||
<div class="tl"><div class="tm">Eingaben</div>Auditergebnisse, Risikolage, Vorfälle, KPI-Zielerreichung, Rückmeldungen.</div>
|
||
<div class="tl"><div class="tm">Ergebnisse</div>SoA-Ziel auf 90% angehoben; AD-Redundanz beschlossen.</div>
|
||
<div class="tl"><div class="tm">Beschlüsse</div>Budget für EDR & Backup freigegeben · Verantwortlich: IT-Leitung.</div>
|
||
<div class="tl"><div class="tm">Termin</div>Nächstes Review: 30.09.2026</div>
|
||
</div>
|
||
<div class="flex mt16"><button class="btn ghost">Historie</button><button class="btn primary">Review protokollieren</button></div>
|
||
</div>
|
||
</div>`;
|
||
|
||
/* ---------- helpers ---------- */
|
||
function sparkRows(rows){let h='';rows.forEach(r=>{h+='<div style="margin-bottom:12px"><div class="between" style="font-size:12.5px;margin-bottom:5px"><span style="font-weight:600">'+r[0]+'</span><span style="color:var(--muted)">'+r[1]+'%</span></div><div class="bar" style="height:10px;background:#eef;border-radius:8px;overflow:hidden"><i style="display:block;height:100%;width:'+r[1]+'%;background:var(--grad-soft)"></i></div></div>';});return h;}
|
||
function cia(c,i,a){return '<span class="cia"><span class="c'+c+'">'+c+'</span><span class="c'+i+'">'+i+'</span><span class="c'+a+'">'+a+'</span></span>';}
|
||
function bars(rows){let h='<div class="mt16">';rows.forEach(r=>{h+='<div style="margin-bottom:12px"><div class="between" style="font-size:12.5px;margin-bottom:5px"><span style="font-weight:600">'+r[0]+'</span><span style="color:var(--muted)">'+r[1]+'%</span></div><div class="bar" style="height:8px;background:#eef;border-radius:8px;overflow:hidden"><i style="display:block;height:100%;width:'+r[1]+'%;background:var(--grad-soft)"></i></div></div>';});return h+'</div>';}
|
||
function kcard(t,link,cat,who,pill,prio){const dot=prio==='high'?'var(--risk)':prio==='mid'?'var(--warn)':prio==='done'?'var(--ok)':'var(--info)';
|
||
return '<div class="kcard bord-l" draggable="true" style="border-left-color:'+dot+'"><div class="t">'+t+'</div><div class="flex" style="gap:6px"><span class="tag">'+link+'</span><span class="pill '+pill+'">'+cat+'</span></div><div class="meta"><span class="mini">'+who+'</span><span style="width:9px;height:9px;border-radius:50%;background:'+dot+'"></span></div></div>';}
|
||
|
||
/* ---------- router ---------- */
|
||
function go(m){
|
||
document.getElementById('content').innerHTML=MOD[m];
|
||
document.querySelectorAll('#nav a').forEach(a=>a.classList.toggle('active',a.dataset.m===m));
|
||
window.scrollTo(0,0);
|
||
if(m==='risk')buildHeat();
|
||
if(m==='tasks')wireKanban();
|
||
if(m==='chat')wireChat();
|
||
if(m==='graph')buildGraph();
|
||
}
|
||
|
||
/* dependency graph (SVG) */
|
||
let showCP=true;
|
||
function buildGraph(){
|
||
const host=document.getElementById('graphHost');if(!host)return;
|
||
const nodes={
|
||
P1:{x:130,y:70,r:26,c:'#5d52a3',t:'Auftrags-\\nabwicklung',shape:'proc'},
|
||
P2:{x:130,y:250,r:26,c:'#5d52a3',t:'Produktion',shape:'proc'},
|
||
A0:{x:340,y:70,r:22,c:'#812d80',t:'Auftrags-\\ndatensatz',shape:'a'},
|
||
ERP:{x:340,y:170,r:22,c:'#8dc4e0',t:'ERP (SAP)',shape:'a'},
|
||
AD:{x:560,y:170,r:26,c:'#d64c4c',t:'Active\\nDirectory',shape:'a'},
|
||
BK:{x:770,y:100,r:22,c:'#8dc4e0',t:'Cloud-\\nBackup',shape:'a'},
|
||
MES:{x:340,y:260,r:22,c:'#8dc4e0',t:'MES',shape:'a'},
|
||
NET:{x:560,y:280,r:22,c:'#8dc4e0',t:'Netzwerk',shape:'a'}
|
||
};
|
||
const edges=[['P1','A0',0],['P1','ERP',1],['ERP','AD',1],['AD','BK',1],['P2','MES',0],['MES','NET',0],['AD','NET',0],['P2','AD',1]];
|
||
const w=880,h=340;let e='';
|
||
edges.forEach(([a,b,crit])=>{const n1=nodes[a],n2=nodes[b];const on=crit&&showCP;
|
||
e+='<line x1="'+n1.x+'" y1="'+n1.y+'" x2="'+n2.x+'" y2="'+n2.y+'" stroke="'+(on?'#d64c4c':'#c9cbd6')+'" stroke-width="'+(on?3.5:1.6)+'" '+(on?'':'stroke-dasharray="1 0"')+' marker-end="url(#arr'+(on?'r':'g')+')"/>';});
|
||
let nHtml='';
|
||
for(const k in nodes){const n=nodes[k];const lines=n.t.split('\\n');
|
||
const shape=n.shape==='proc'
|
||
? '<rect x="'+(n.x-n.r-6)+'" y="'+(n.y-n.r+4)+'" rx="10" width="'+(2*n.r+12)+'" height="'+(2*n.r-8)+'" fill="'+n.c+'"/>'
|
||
: '<circle cx="'+n.x+'" cy="'+n.y+'" r="'+n.r+'" fill="'+n.c+'"/>';
|
||
let tx='';lines.forEach((l,i)=>{tx+='<text x="'+n.x+'" y="'+(n.y-2+i*11-(lines.length-1)*5)+'" text-anchor="middle" font-size="9.5" fill="#fff" font-weight="700" style="font-family:Poppins">'+l+'</text>';});
|
||
nHtml+='<g style="cursor:pointer" onclick="pulse(this)">'+shape+tx+'</g>';
|
||
}
|
||
host.innerHTML='<svg viewBox="0 0 '+w+' '+h+'" width="'+w+'" height="'+h+'"><defs>'
|
||
+'<marker id="arrg" markerWidth="8" markerHeight="8" refX="7" refY="3" orient="auto"><path d="M0 0 L7 3 L0 6 Z" fill="#c9cbd6"/></marker>'
|
||
+'<marker id="arrr" markerWidth="9" markerHeight="9" refX="7" refY="3" orient="auto"><path d="M0 0 L7 3 L0 6 Z" fill="#d64c4c"/></marker>'
|
||
+'</defs>'+e+nHtml+'</svg>';
|
||
}
|
||
function toggleCP(){showCP=!showCP;const b=document.getElementById('cpToggle');if(b)b.textContent='Kritische Pfade: '+(showCP?'an':'aus');buildGraph();}
|
||
function pulse(g){g.style.transition='transform .15s';g.style.transformOrigin='center';g.style.transform='scale(1.12)';setTimeout(()=>g.style.transform='scale(1)',180);}
|
||
|
||
/* policy assistant */
|
||
function aiClause(kind){const c=document.getElementById('clause3');if(!c)return;c.style.background='#eef7fb';c.innerHTML='<b>3. Anforderungen.</b> <i style="color:var(--violet)">(KI '+kind+'…)</i> Sämtliche mobilen Endgeräte sind vollständig zu verschlüsseln; bei Verlust erfolgt die Meldung unverzüglich, spätestens binnen 24 Stunden, an den ISB. Der Zugriff ist durch Bildschirmsperre und ein starkes Kennwort abzusichern.';setTimeout(()=>c.style.background='transparent',900);}
|
||
function genPolicy(){const d=document.getElementById('policyDoc');if(d){d.style.background='#eef7fb';setTimeout(()=>d.style.background='#fbfbfe',700);}}
|
||
document.getElementById('nav').addEventListener('click',e=>{const a=e.target.closest('a');if(a){go(a.dataset.m);}});
|
||
|
||
/* heatmap */
|
||
function buildHeat(){
|
||
const el=document.getElementById('heat');if(!el)return;
|
||
const impact=['Sehr hoch','Hoch','Mittel','Gering','Sehr gering'];
|
||
const risks={ '5-5':'R-014','4-5':'', '4-4':'R-021','3-4':'R-008','3-3':'R-033','2-2':'R-002' };
|
||
let h='';
|
||
for(let r=5;r>=1;r--){
|
||
h+='<div class="axl">'+impact[5-r]+'</div>';
|
||
for(let c=1;c<=5;c++){
|
||
const v=r*c;const cls=v<=4?'hl':v<=8?'hm':v<=12?'hh':v<=16?'hx':'hxx';
|
||
const key=r+'-'+c;const tag=risks[key]?'<span style="position:absolute;top:6px;left:8px;font-size:11px;background:#fff;border-radius:6px;padding:1px 6px;box-shadow:0 1px 2px rgba(0,0,0,.1)">'+risks[key]+'</span>':'';
|
||
h+='<div class="cellwrap"><div class="cell '+cls+'" title="Wahrscheinlichkeit '+c+' × Auswirkung '+r+' = '+v+'">'+tag+'<b>'+v+'</b></div></div>';
|
||
}
|
||
}
|
||
h+='<div class="axl"></div>';['Sehr gering','Gering','Mittel','Hoch','Sehr hoch'].forEach(x=>h+='<div class="axl">'+x+'</div>');
|
||
el.innerHTML=h;
|
||
}
|
||
/* kanban dnd */
|
||
function wireKanban(){
|
||
let dragged=null;
|
||
document.querySelectorAll('.kcard').forEach(c=>{
|
||
c.addEventListener('dragstart',()=>{dragged=c;c.classList.add('drag');});
|
||
c.addEventListener('dragend',()=>{dragged&&dragged.classList.remove('drag');dragged=null;updateCounts();});
|
||
});
|
||
document.querySelectorAll('.col').forEach(col=>{
|
||
col.addEventListener('dragover',e=>{e.preventDefault();col.classList.add('over');});
|
||
col.addEventListener('dragleave',()=>col.classList.remove('over'));
|
||
col.addEventListener('drop',e=>{e.preventDefault();col.classList.remove('over');if(dragged)col.appendChild(dragged);});
|
||
});
|
||
function updateCounts(){document.querySelectorAll('.col').forEach(col=>{const n=col.querySelectorAll('.kcard').length;col.querySelector('.n').textContent=n;});}
|
||
}
|
||
/* chat */
|
||
function wireChat(){const i=document.getElementById('cin');if(i)i.addEventListener('keydown',e=>{if(e.key==='Enter')sendMsg();});}
|
||
function addMsg(t,cls){const m=document.getElementById('msgs');const d=document.createElement('div');d.className='msg '+cls;d.innerHTML=t;m.appendChild(d);m.scrollTop=m.scrollHeight;}
|
||
function sendMsg(){const i=document.getElementById('cin');const v=i.value.trim();if(!v)return;addMsg(v,'u');i.value='';setTimeout(()=>addMsg('Ich habe in der Dokumentation gesucht … <b>1 relevante Stelle</b> gefunden.<div class="src">📄 Quelle: Informationssicherheits-Leitlinie v3.0 · passender Abschnitt</div>','a'),450);}
|
||
function escalate(){addMsg('Deine Frage wurde als <b>Ticket an den ISB</b> weitergeleitet (T-2026-118). Du erhältst eine Benachrichtigung, sobald sie beantwortet ist.','a');}
|
||
|
||
/* init */
|
||
go('dashboard');
|
||
</script>
|
||
</body>
|
||
</html>
|