Skip to content

Commit 61c201b

Browse files
committed
fix(webui): display Kafka key convert from base64 using UTF-8
fix(webui): navigating to event from search result
1 parent f5672ed commit 61c201b

6 files changed

Lines changed: 19 additions & 14 deletions

File tree

webui/e2e/mocks/http_handler.js

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -594,15 +594,15 @@ function getSearchResults() {
594594
type: 'Event',
595595
domain: 'Swagger Petstore',
596596
title: "http://127.0.0.1:18080/pet",
597-
fragments: ['<mark>GET</mark>'],
597+
fragments: ['<mark>POST</mark>'],
598598
time: '2025-05-23T08:49:25.482366+01:00',
599599
params: {
600600
type: 'event',
601601
'traits.namespace': 'http',
602602
'traits.name': 'Swagger Petstore',
603603
'traits.path': '/pet',
604-
'traits.method': 'GET',
605-
id: '4242'
604+
'traits.method': 'POST',
605+
id: '9e058601-562a-4063-a3b2-066ba624893a'
606606
}
607607
},
608608
{
@@ -649,7 +649,7 @@ function getSearchResults() {
649649
'traits.topic': 'mokapi.shop.products',
650650
'traits.type': 'message',
651651
'traits.partition': '0',
652-
id: '123456'
652+
id: '5d549ffe-97cd-477d-8db6-27ed4963c08d'
653653
}
654654
},
655655
{
@@ -667,11 +667,12 @@ function getSearchResults() {
667667
domain: 'Mail Testserver',
668668
title: "A test mail",
669669
fragments: ['<mark>test</mark> <mark>mail</mark>'],
670+
time: '2025-05-01T08:49:25.482366+01:00',
670671
params: {
671672
type: 'event',
672673
'traits.namespace': 'mail',
673674
'traits.name': 'Mail Testserver',
674-
id: '8832'
675+
id: '273cd167-f5a5-4da1-969e-d44213686491'
675676
}
676677
},
677678
{
@@ -689,6 +690,7 @@ function getSearchResults() {
689690
domain: 'LDAP Testserver',
690691
title: "(objectClass=user)",
691692
fragments: ['(objectClass=<mark>user</mark>)'],
693+
time: '2025-05-01T08:49:25.482366+01:00',
692694
params: {
693695
type: 'event',
694696
'traits.namespace': 'ldap',

webui/e2e/mocks/kafka.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -344,7 +344,7 @@ export let events = [
344344
data: {
345345
offset: 1,
346346
key: {
347-
value: 'TEST1'
347+
binary: 'VEVTVDEgw6Qg8JCAgA=='
348348
},
349349
message: {
350350
value: JSON.stringify(

webui/src/components/dashboard/Search.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ async function navigateToSearchResult(result: any) {
8484
case 'ldap':
8585
return router.push({ name: 'ldapService', params: result.params })
8686
case 'event':
87-
switch (result.params.namespace) {
87+
switch (result.params['traits.namespace']) {
8888
case 'http':
8989
return router.push({ name: 'httpRequest', params: result.params })
9090
case 'kafka':

webui/src/components/dashboard/http/Request.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ const operation = computed(() => {
3636
3737
const eventId = computed(() => {
3838
const id = route.params.id
39+
console.log('Route param id:', id)
3940
if (!id) {
4041
return undefined
4142
}
@@ -146,7 +147,7 @@ function isNumber(value: string): boolean {
146147
</div>
147148
</div>
148149
<loading v-if="!data || data?.isLoading"></loading>
149-
<div v-if="data && !data.event && !data.isLoading">
150+
<div v-if="!eventId || (data && !data.event && !data.isLoading)">
150151
<message message="HTTP Request not found"></message>
151152
</div>
152153
</template>

webui/src/components/dashboard/search/Event.vue

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ function isMail() {
3838
<div v-if="item.time" class="text-muted">⏱ {{ format(item.time) }}</div>
3939
<span v-if="isKafka()" class="fw-semibold text-dark">Message received</span>
4040
<span v-if="isHttp()" class="fw-semibold text-dark">Request received</span>
41+
<span v-if="isMail()" class="fw-semibold text-dark">Mail received</span>
42+
<span v-if="isLdap()" class="fw-semibold text-dark">Search received</span>
4143
</div>
4244

4345
<h6 class="mb-1 mt-1">

webui/src/composables/usePrettyText.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,12 @@ export function usePrettyText() {
3939
}
4040

4141
function fromBinary(encoded: string) {
42-
const binary = atob(encoded);
43-
const bytes = new Uint8Array(binary.length);
44-
for (let i = 0; i < bytes.length; i++) {
45-
bytes[i] = binary.charCodeAt(i);
46-
}
47-
return String.fromCharCode(...new Uint16Array(bytes.buffer));
42+
return new TextDecoder().decode(base64ToBytes(encoded))
43+
}
44+
45+
function base64ToBytes(base64: string) {
46+
const binString = atob(base64);
47+
return Uint8Array.from(binString, (m) => m.codePointAt(0)!);
4848
}
4949

5050
return { parseUrls, adaptiveTruncate, fromBinary }

0 commit comments

Comments
 (0)