This commit is contained in:
overcuriousity
2025-07-14 23:05:46 +02:00
parent 8540687b47
commit d9c79b3ddc
17 changed files with 1591 additions and 1529 deletions

View File

@@ -15,17 +15,17 @@ const currentPath = Astro.url.pathname;
<ul class="nav-links">
<li>
<a href="/" class={`nav-link ${currentPath === '/' ? 'active' : ''}`}>
Home
~/
</a>
</li>
<li>
<a href="/status" class={`nav-link ${currentPath === '/status' ? 'active' : ''}`}>
Status
~/status
</a>
</li>
<li>
<a href="/about" class={`nav-link ${currentPath === '/about' ? 'active' : ''}`}>
About
~/about
</a>
</li>
<li>

View File

@@ -31,7 +31,7 @@ const sortedTags = Object.entries(tagFrequency)
<input
type="text"
id="search-input"
placeholder="Search tools by name, description, or tags..."
placeholder="Suchfeld: Name der Software, Beschreibung oder Tags..."
style="width: 100%;"
/>
</div>
@@ -41,10 +41,10 @@ const sortedTags = Object.entries(tagFrequency)
<!-- Domain Selection -->
<div class="domain-section">
<label for="domain-select" style="display: block; margin-bottom: 0.5rem; font-weight: 500;">
Forensic Domain
Forensische Domäne
</label>
<select id="domain-select" style="max-width: 300px;">
<option value="">All Domains</option>
<option value="">Alle Domänen</option>
{domains.map((domain: any) => (
<option value={domain.id}>{domain.name}</option>
))}
@@ -54,7 +54,7 @@ const sortedTags = Object.entries(tagFrequency)
<!-- Phase Selection Buttons -->
<div class="phase-section">
<label style="display: block; margin-bottom: 0.75rem; font-weight: 500;">
Investigation Phase
Untersuchungsphase
</label>
<div class="phase-buttons">
{phases.map((phase: any) => (
@@ -73,22 +73,22 @@ const sortedTags = Object.entries(tagFrequency)
<!-- Additional Filters -->
<div style="margin-bottom: 1.5rem;">
<div class="checkbox-wrapper" style="margin-bottom: 1rem;">
<input type="checkbox" id="include-proprietary" checked />
<label for="include-proprietary">Include Proprietary Software</label>
<input type="checkbox" id="include-proprietary" !checked />
<label for="include-proprietary">Proprietäre Software mit einschließen</label>
</div>
<!-- Tag Cloud -->
<div style="margin-bottom: 1rem;">
<div class="tag-header">
<label style="font-weight: 500;">
Filter by Tags
Nach Tags filtern
</label>
<button
id="tag-cloud-toggle"
class="btn-tag-toggle"
data-expanded="false"
>
Show More
Mehr zeigen
</button>
</div>
<div class="tag-cloud" id="tag-cloud">
@@ -109,9 +109,8 @@ const sortedTags = Object.entries(tagFrequency)
<!-- View Toggle -->
<div style="display: flex; gap: 1rem; margin-bottom: 1.5rem;">
<button class="btn btn-secondary view-toggle active" data-view="grid">Grid View</button>
<button class="btn btn-secondary view-toggle" data-view="matrix">Matrix View</button>
<button class="btn btn-secondary view-toggle" data-view="hosted">Self-Hosted Only</button>
<button class="btn btn-secondary view-toggle active" data-view="grid">Kachelansicht</button>
<button class="btn btn-secondary view-toggle" data-view="matrix">Matrix-Ansicht</button>
</div>
</div>
@@ -138,7 +137,7 @@ const sortedTags = Object.entries(tagFrequency)
// Initialize tag cloud state
function initTagCloud() {
const visibleCount = 12; // Show first 12 tags initially
const visibleCount = 22; // Show first 12 tags initially
tagCloudItems.forEach((item, index) => {
if (index >= visibleCount) {
item.style.display = 'none';
@@ -149,11 +148,11 @@ const sortedTags = Object.entries(tagFrequency)
// Toggle tag cloud expansion
function toggleTagCloud() {
isTagCloudExpanded = !isTagCloudExpanded;
const visibleCount = 12;
const visibleCount = 22;
if (isTagCloudExpanded) {
tagCloud.classList.add('expanded');
tagCloudToggle.textContent = 'Show Less';
tagCloudToggle.textContent = 'Weniger zeigen';
tagCloudToggle.setAttribute('data-expanded', 'true');
// Show all filtered tags
@@ -164,7 +163,7 @@ const sortedTags = Object.entries(tagFrequency)
});
} else {
tagCloud.classList.remove('expanded');
tagCloudToggle.textContent = 'Show More';
tagCloudToggle.textContent = 'Mehr zeigen';
tagCloudToggle.setAttribute('data-expanded', 'false');
// Show only first visible tags
@@ -186,7 +185,7 @@ const sortedTags = Object.entries(tagFrequency)
function filterTagCloud() {
const searchTerm = searchInput.value.toLowerCase();
let visibleCount = 0;
const maxVisibleWhenCollapsed = 12;
const maxVisibleWhenCollapsed = 22;
tagCloudItems.forEach(item => {
const tagName = item.getAttribute('data-tag').toLowerCase();

View File

@@ -36,7 +36,7 @@ domains.forEach((domain: any) => {
<div id="matrix-container" class="matrix-wrapper" style="display: none;">
<!-- Collaboration Tools Section (compact horizontal layout for matrix view) -->
<div id="collaboration-tools-section" style="margin-bottom: 1.5rem;">
<h3 style="margin-bottom: 0.75rem; color: var(--color-text); font-size: 1.125rem;">General Tools for Collaboration</h3>
<h3 style="margin-bottom: 0.75rem; color: var(--color-text); font-size: 1.125rem;">Übergreifend & Kollaboration</h3>
<div class="collaboration-tools-compact" id="collaboration-tools-container">
{collaborationTools.map((tool: any) => {
const hasValidProjectUrl = tool.projectUrl !== undefined &&