Compare commits

..

1 Commits

Author SHA1 Message Date
a070898cab feat: rollout 2025-10-22 19:00:26 +02:00
2 changed files with 47 additions and 7 deletions

View File

@@ -168,8 +168,13 @@ class FirmwareComponent extends Component {
return `
<div class="firmware-group">
<div class="firmware-group-header">
<h3 class="firmware-group-name">${this.escapeHtml(group.name)}</h3>
<span class="firmware-group-count">${group.firmware.length} version${group.firmware.length !== 1 ? 's' : ''}</span>
<div class="firmware-group-header-content">
<h3 class="firmware-group-name">${this.escapeHtml(group.name)}</h3>
<span class="firmware-group-count">${group.firmware.length} version${group.firmware.length !== 1 ? 's' : ''}</span>
</div>
<svg class="firmware-group-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="20" height="20">
<polyline points="6 9 12 15 18 9"/>
</svg>
</div>
<div class="firmware-versions">
${versionsHTML}
@@ -273,6 +278,15 @@ class FirmwareComponent extends Component {
}
setupFirmwareItemListeners() {
// Firmware group header clicks (for expand/collapse)
const groupHeaders = this.findAllElements('.firmware-group-header');
groupHeaders.forEach(header => {
this.addEventListener(header, 'click', (e) => {
const group = header.closest('.firmware-group');
group.classList.toggle('expanded');
});
});
// Version item clicks (for editing)
const versionItems = this.findAllElements('.firmware-version-item.clickable');
versionItems.forEach(item => {

View File

@@ -701,10 +701,6 @@ p {
display: flex;
align-items: center;
gap: 0.5rem;
padding: 0.75rem;
background: var(--bg-tertiary);
border: 1px solid var(--border-primary);
border-radius: 8px;
}
.label-key-input,
@@ -2311,11 +2307,27 @@ p {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 0;
padding-bottom: 0;
border-bottom: none;
cursor: pointer;
position: relative;
z-index: 2;
user-select: none;
}
.firmware-group.expanded .firmware-group-header {
margin-bottom: 1rem;
padding-bottom: 0.75rem;
border-bottom: 1px solid var(--border-primary);
}
.firmware-group-header-content {
display: flex;
align-items: center;
gap: 1rem;
}
.firmware-group-name {
margin: 0;
font-size: 1.125rem;
@@ -2332,11 +2344,25 @@ p {
font-weight: 500;
}
.firmware-group-chevron {
color: var(--text-secondary);
transition: transform 0.3s ease;
flex-shrink: 0;
}
.firmware-group.expanded .firmware-group-chevron {
transform: rotate(180deg);
}
.firmware-versions {
display: flex;
display: none;
flex-direction: column;
}
.firmware-group.expanded .firmware-versions {
display: flex;
}
.firmware-version-item {
display: flex;
align-items: center;