From 375b4b6bdbf701b521c3eba4bbccdaf2b595b89a Mon Sep 17 00:00:00 2001 From: Leo Vasanko Date: Fri, 21 Aug 2026 23:32:46 +0000 Subject: [PATCH] analytics: unify visitor cell across visits, crawlers and abuse tables --- frontend/src/AnalyticsView.vue | 54 ++++++++++---------------------- frontend/src/VisitorCell.vue | 12 +++++-- frontend/src/analytics/format.js | 54 ++++++++++++++++++-------------- 3 files changed, 56 insertions(+), 64 deletions(-) diff --git a/frontend/src/AnalyticsView.vue b/frontend/src/AnalyticsView.vue index 54ac030..5550182 100644 --- a/frontend/src/AnalyticsView.vue +++ b/frontend/src/AnalyticsView.vue @@ -162,15 +162,12 @@ const abuseRows = computed(() => formatAbuseRows(data.value?.abuse || [], client

no visits recorded yet

- -
-

Crawlers

- + @@ -199,15 +196,12 @@ const abuseRows = computed(() => formatAbuseRows(data.value?.abuse || [], client
pagespages crawled visitor last seen

no crawler hits recorded yet

-
-
-

Abuse

-
+
- + @@ -224,19 +218,18 @@ const abuseRows = computed(() => formatAbuseRows(data.value?.abuse || [], client +{{ a.paths.length - ABUSE_MAX_LINES }} more - + @@ -363,7 +356,7 @@ const abuseRows = computed(() => formatAbuseRows(data.value?.abuse || [], client } .visit-table .last-seen { - width: 7.5rem; + width: 5rem; text-align: right; white-space: nowrap; cursor: pointer; @@ -405,18 +398,13 @@ const abuseRows = computed(() => formatAbuseRows(data.value?.abuse || [], client max-width: 22rem; } -.visit-table .abuse-items, -.visit-table .abuse-uas-list { +.visit-table .abuse-items { display: flex; flex-wrap: wrap; gap: 0.15rem 0.5rem; align-items: baseline; } -.visit-table .abuse-uas-list { - justify-content: flex-end; -} - .visit-table .inline-item { max-width: 18rem; min-width: 0; @@ -434,14 +422,6 @@ const abuseRows = computed(() => formatAbuseRows(data.value?.abuse || [], client position: relative; } -.visit-table .ip-ua-cell { - width: 22ch; - max-width: 22ch; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; -} - .visit-table :deep(.copy-popup) { position: absolute; bottom: calc(100% + 0.25rem); diff --git a/frontend/src/VisitorCell.vue b/frontend/src/VisitorCell.vue index 5ada96a..d5d9eb1 100644 --- a/frontend/src/VisitorCell.vue +++ b/frontend/src/VisitorCell.vue @@ -1,7 +1,9 @@
pathspaths abused visitor last seen
-
{{ a.ipDisplay }}
-
- - {{ formatCount(u.count) }}×{{ u.ua }} - - +{{ a.uas.length - ABUSE_MAX_LINES }} more -
-
{{ a.lastSeen }}