From 2cc62d1ee29419dee6cc6cab1ad0b3c10ef42dff Mon Sep 17 00:00:00 2001 From: 0x1d Date: Tue, 14 Oct 2025 22:19:04 +0200 Subject: [PATCH 1/2] feat: memberlist filter --- public/index.html | 16 + .../components/ClusterMembersComponent.js | 313 +++++++++++++++++- public/styles/main.css | 124 ++++++- 3 files changed, 450 insertions(+), 3 deletions(-) diff --git a/public/index.html b/public/index.html index 316c907..9e483a9 100644 --- a/public/index.html +++ b/public/index.html @@ -82,6 +82,22 @@ +
+
+ + + + +
+
+
+ + + +
+ + +
+
Loading detailed information...
+
+ + `; + }).join(''); + + logger.debug('ClusterMembersComponent: Setting HTML, length:', membersHTML.length); + this.setHTML('', membersHTML); + logger.debug('ClusterMembersComponent: HTML set, setting up member cards...'); + this.setupMemberCards(filteredMembers); } setupMemberCards(members) { diff --git a/public/styles/main.css b/public/styles/main.css index abdba88..987e1e2 100644 --- a/public/styles/main.css +++ b/public/styles/main.css @@ -95,7 +95,10 @@ p { } .cluster-header-left { - /* Placeholder for future content if needed */ + display: flex; + align-items: center; + gap: 1rem; + flex-wrap: wrap; } .primary-node-info { @@ -176,6 +179,95 @@ p { background: rgba(255, 255, 255, 0.1); } +/* Cluster Filters */ +.cluster-filters { + display: flex; + align-items: center; +} + +.filter-group { + display: flex; + align-items: center; + gap: 0.5rem; + padding: 0.4rem 0.75rem; + background: rgba(255, 255, 255, 0.05); + border-radius: 6px; + border: 1px solid rgba(255, 255, 255, 0.1); +} + +.filter-label { + font-size: 0.85rem; + color: var(--text-secondary); + white-space: nowrap; +} + +.filter-select { + background: rgba(255, 255, 255, 0.08); + border: 1px solid rgba(255, 255, 255, 0.15); + border-radius: 4px; + color: var(--text-primary); + font-size: 0.85rem; + padding: 0.3rem 0.5rem; + min-width: 120px; + cursor: pointer; + transition: all 0.2s ease; +} + +.filter-select:hover { + background: rgba(255, 255, 255, 0.12); + border-color: rgba(255, 255, 255, 0.2); +} + +.filter-select:focus { + outline: none; + background: rgba(255, 255, 255, 0.15); + border-color: var(--accent-color); + box-shadow: 0 0 0 2px rgba(var(--accent-color-rgb), 0.2); +} + +.filter-select option { + background: #1a202c; + color: var(--text-primary); + padding: 0.75rem 1rem; + font-size: 0.85rem; + font-weight: 500; + border: none; +} + +.filter-select option:hover { + background: #2d3748; +} + +.filter-select option:checked { + background: #667eea; + color: var(--text-primary); + font-weight: 600; +} + +.clear-filters-btn { + background: rgba(255, 255, 255, 0.08); + border: 1px solid rgba(255, 255, 255, 0.15); + border-radius: 4px; + color: var(--text-secondary); + padding: 0.3rem; + cursor: pointer; + transition: all 0.2s ease; + display: flex; + align-items: center; + justify-content: center; +} + +.clear-filters-btn:hover { + background: rgba(255, 255, 255, 0.12); + border-color: rgba(255, 255, 255, 0.2); + color: var(--text-primary); +} + +.clear-filters-btn:disabled { + opacity: 0.5; + cursor: not-allowed; +} + .primary-node-refresh:active { transform: scale(0.95); } @@ -4002,9 +4094,39 @@ select.param-input:focus { .cluster-header-left { display: flex; + flex-direction: column; + gap: 0.75rem; + align-items: stretch; + } + + .cluster-filters { justify-content: center; } + .filter-group { + flex-direction: column; + gap: 0.5rem; + padding: 0.75rem; + width: 100%; + } + + .filter-label { + text-align: center; + font-size: 0.9rem; + } + + .filter-select { + width: 100%; + min-width: auto; + padding: 0.5rem; + font-size: 0.9rem; + } + + .clear-filters-btn { + align-self: center; + padding: 0.5rem; + } + .primary-node-info { flex-direction: row; align-items: center; From 39eae6562cfb68cc38090fb1e8d394bc41572361 Mon Sep 17 00:00:00 2001 From: 0x1d Date: Tue, 14 Oct 2025 23:00:45 +0200 Subject: [PATCH 2/2] fix: cluster view header styling --- public/index.html | 4 ++-- public/scripts/components/ClusterStatusComponent.js | 8 ++++---- public/styles/main.css | 3 +-- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/public/index.html b/public/index.html index 9e483a9..49bc18e 100644 --- a/public/index.html +++ b/public/index.html @@ -62,7 +62,7 @@ -
Cluster Online
+
Cluster
@@ -71,7 +71,7 @@
- Primary Node: + API: Discovering...