phase 2 adjustments

This commit is contained in:
overcuriousity 2025-07-27 16:15:11 +02:00
parent 4ba29227ab
commit 1f9df5c1a8
4 changed files with 32 additions and 44 deletions

1
.gitignore vendored
View File

@ -84,3 +84,4 @@ temp/
.astro/settings.json .astro/settings.json
.astro/data-store.json .astro/data-store.json
.astro/content.d.ts .astro/content.d.ts
prompt.md

View File

@ -204,3 +204,10 @@ domain-agnostic-software:
- id: specific-os - id: specific-os
name: Betriebssysteme name: Betriebssysteme
description: Operating Systems which focus on forensics description: Operating Systems which focus on forensics
scenarios:
- id: registry
icon: 🗃️
friendly_name: "Registry-Analyse"
- id: memory-forensics
icon: 🧠
friendly_name: "Memory-Forensik"

View File

@ -8,6 +8,7 @@ import { getToolsData } from '../utils/dataService.js';
const data = await getToolsData(); const data = await getToolsData();
const tools = data.tools; const tools = data.tools;
const phases = data.phases;
--- ---
<BaseLayout title="~/"> <BaseLayout title="~/">
@ -113,41 +114,22 @@ const tools = data.tools;
</div> </div>
<div class="nist-workflow"> <div class="nist-workflow">
<div class="phase-card collection" onclick="selectPhase('data-collection')"> {phases.map((phase: any, index: number) => {
<div class="phase-number">1</div> const phaseTools = tools.filter((tool: any) =>
<div class="phase-title">Datensammlung</div> tool.phases && tool.phases.includes(phase.id)
<p class="phase-description"> );
Beweismittel identifizieren, sichern und für die Analyse vorbereiten
</p> return (
<span class="tool-count">{tools.filter(t => t.phases?.includes('data-collection')).length} Tools</span> <div class={`phase-card phase-${phase.id}`} onclick={`selectPhase('${phase.id}')`}>
</div> <div class="phase-number">{index + 1}</div>
<div class="phase-title">{phase.name}</div>
<div class="phase-card examination" onclick="selectPhase('examination')"> <p class="phase-description">
<div class="phase-number">2</div> {phase.description}
<div class="phase-title">Auswertung</div> </p>
<p class="phase-description"> <span class="tool-count">{phaseTools.length} Tools</span>
Daten extrahieren, strukturiert aufbereiten und zugänglich machen </div>
</p> );
<span class="tool-count">{tools.filter(t => t.phases?.includes('examination')).length} Tools</span> })}
</div>
<div class="phase-card analysis" onclick="selectPhase('analysis')">
<div class="phase-number">3</div>
<div class="phase-title">Analyse</div>
<p class="phase-description">
Beweise bewerten, Zusammenhänge erkennen und Hypothesen prüfen
</p>
<span class="tool-count">{tools.filter(t => t.phases?.includes('analysis')).length} Tools</span>
</div>
<div class="phase-card reporting" onclick="selectPhase('reporting')">
<div class="phase-number">4</div>
<div class="phase-title">Bericht</div>
<p class="phase-description">
Ergebnisse dokumentieren, visualisieren und präsentieren
</p>
<span class="tool-count">{tools.filter(t => t.phases?.includes('reporting')).length} Tools</span>
</div>
</div> </div>
<div class="methodology-tip"> <div class="methodology-tip">
@ -185,7 +167,7 @@ const tools = data.tools;
<ToolMatrix data={data} /> <ToolMatrix data={data} />
</BaseLayout> </BaseLayout>
<script define:vars={{ toolsData: data.tools }}> <script define:vars={{ toolsData: data.tools, phases: data.phases }}>
window.toolsData = toolsData; window.toolsData = toolsData;
// Approach selection functionality // Approach selection functionality
@ -232,10 +214,13 @@ const tools = data.tools;
card.classList.remove('active'); card.classList.remove('active');
}); });
// Add active class to selected phase // Add active class to selected phase card (use actual phase ID)
document.querySelector(`.phase-card.${phase.replace('data-', '')}`).classList.add('active'); const selectedCard = document.querySelector(`.phase-card.phase-${phase}`);
if (selectedCard) {
selectedCard.classList.add('active');
}
// Use existing phase filter functionality // Use existing phase filter functionality with correct phase ID
const existingPhaseButton = document.querySelector(`[data-phase="${phase}"]`); const existingPhaseButton = document.querySelector(`[data-phase="${phase}"]`);
if (existingPhaseButton && !existingPhaseButton.classList.contains('active')) { if (existingPhaseButton && !existingPhaseButton.classList.contains('active')) {
existingPhaseButton.click(); existingPhaseButton.click();

View File

@ -1134,11 +1134,6 @@ input[type="checkbox"] {
background: var(--phase-color); background: var(--phase-color);
} }
.phase-card.collection { --phase-color: #3b82f6; }
.phase-card.examination { --phase-color: #8b5cf6; }
.phase-card.analysis { --phase-color: #f59e0b; }
.phase-card.reporting { --phase-color: #ef4444; }
.phase-card:hover { .phase-card:hover {
transform: translateY(-2px); transform: translateY(-2px);
border-color: var(--phase-color); border-color: var(--phase-color);