Skip to content

Commit 4f31fd8

Browse files
committed
Rollback a little
Signed-off-by: John Cowen <[email protected]>
1 parent c68a55d commit 4f31fd8

File tree

7 files changed

+59
-40
lines changed

7 files changed

+59
-40
lines changed

packages/kuma-gui/src/app/kuma/kri.spec.ts

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@ describe('kri', () => {
88
[
99
Kri.fromString('kri_policy_mesh_zone_namespace_name_section'),
1010
{
11-
id: 'name.namespace',
12-
kind: 'policy',
11+
shortName: 'policy',
1312
mesh: 'mesh',
1413
zone: 'zone',
1514
namespace: 'namespace',
@@ -20,8 +19,7 @@ describe('kri', () => {
2019
[
2120
Kri.fromString('kri_policy__zone__name_section'),
2221
{
23-
id: 'name',
24-
kind: 'policy',
22+
shortName: 'policy',
2523
mesh: '',
2624
zone: 'zone',
2725
namespace: '',
@@ -32,8 +30,7 @@ describe('kri', () => {
3230
[
3331
Kri.fromString(''),
3432
{
35-
id: '',
36-
kind: '',
33+
shortName: '',
3734
mesh: '',
3835
zone: '',
3936
namespace: '',
@@ -44,8 +41,7 @@ describe('kri', () => {
4441
[
4542
Kri.fromString('not-kri_foo_bar_baz_qux_quux_corge'),
4643
{
47-
id: '',
48-
kind: '',
44+
shortName: '',
4945
mesh: '',
5046
zone: '',
5147
namespace: '',
@@ -55,7 +51,7 @@ describe('kri', () => {
5551
],
5652
[
5753
Kri.toString({
58-
kind: 'policy',
54+
shortName: 'policy',
5955
mesh: 'mesh',
6056
zone: 'zone',
6157
namespace: 'namespace',
@@ -66,7 +62,7 @@ describe('kri', () => {
6662
],
6763
[
6864
Kri.toString({
69-
kind: 'policy',
65+
shortName: 'policy',
7066
zone: 'zone',
7167
name: 'name',
7268
sectionName: 'section',

packages/kuma-gui/src/app/kuma/kri.ts

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,35 +8,40 @@ export class Kri {
88
static fromString(kri: string) {
99
if(!Kri.isKriString(kri)) {
1010
return {
11-
id: '',
12-
kind: '',
11+
shortName: '',
1312
mesh: '',
1413
zone: '',
1514
namespace: '',
1615
name: '',
1716
sectionName: '',
1817
}
1918
}
20-
const [_kriProtocol, kind, mesh, zone, namespace, name, sectionName] = kri.split('_')
19+
20+
const [
21+
shortName = '',
22+
mesh = '',
23+
zone = '',
24+
namespace = '',
25+
name = '',
26+
sectionName = '',
27+
] = kri.split('_').slice(1)
2128

2229
return {
23-
id: `${name}${namespace !== '' ? `.${namespace}`: '' }`,
24-
kind,
30+
shortName,
2531
mesh,
2632
zone,
2733
namespace,
2834
name,
2935
sectionName,
3036
}
31-
3237
}
3338

3439
static isKriString(kri: string): kri is KriString {
3540
return kri.startsWith('kri_') && kri.split('_').length === 7
3641
}
3742

3843
static toString(kri: Partial<ReturnType<typeof Kri.fromString>>) {
39-
const { kind = '', mesh = '', zone = '', namespace = '', name = '', sectionName = '' } = kri
40-
return `kri_${kind}_${mesh}_${zone}_${namespace}_${name}_${sectionName}` satisfies KriString
44+
const { shortName = '', mesh = '', zone = '', namespace = '', name = '', sectionName = '' } = kri
45+
return `kri_${shortName}_${mesh}_${zone}_${namespace}_${name}_${sectionName}` satisfies KriString
4146
}
4247
}

packages/kuma-gui/src/app/resources/data/MeshIdentity.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ type PartialMeshIdentity = components['schemas']['MeshIdentityItem']
77
export const MeshIdentity = {
88
fromObject: (item: PartialMeshIdentity) => {
99
return {
10-
kri: Kri.toString({ kind: 'mid', mesh: item.mesh, name: item.name}),
10+
kri: Kri.toString({ shortName: 'mid', mesh: item.mesh, name: item.name}),
1111
...item,
1212
raw: item,
1313
}

packages/kuma-gui/src/app/resources/data/MeshTrust.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ type PartialMeshTrust = components['schemas']['MeshTrustItem']
77
export const MeshTrust = {
88
fromObject: (item: PartialMeshTrust) => {
99
return {
10-
kri: Kri.toString({ kind: 'mtrust', mesh: item.mesh, name: item.name }),
10+
kri: Kri.toString({ shortName: 'mtrust', mesh: item.mesh, name: item.name }),
1111
...item,
1212
spec: {
1313
...item.spec,

packages/kuma-gui/src/app/service-mesh/index.ts

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -53,39 +53,42 @@ const protocolHandler = (router: Router, doc = document) => {
5353
const kriProto = 'kri://'
5454
switch (true) {
5555
case href.startsWith(kriProto): {
56-
const kri = Kri.fromString(href.substring(kriProto.length))
56+
const { mesh, zone, name, namespace, shortName } = Kri.fromString(href.substring(kriProto.length))
57+
const id = `${name}${namespace !== '' ? `.${namespace}`: '' }`
58+
if(zone !== '') {
59+
return ''
60+
}
5761

58-
const to = ((kri) => {
62+
const to = (() => {
5963
switch (true) {
60-
case kri.kind === 'msvc':
64+
case shortName === 'msvc':
6165
return {
6266
name: 'mesh-service-detail-view',
6367
params: {
64-
mesh: kri.mesh,
65-
service: kri.id,
68+
mesh,
69+
service: id,
6670
},
6771
}
68-
case kri.kind === 'mzsvc':
72+
case shortName === 'mzsvc':
6973
return {
7074
name: 'mesh-multi-zone-service-detail-view',
7175
params: {
72-
mesh: kri.mesh,
73-
service: kri.id,
76+
mesh: mesh,
77+
service: id,
7478
},
7579
}
76-
case kri.kind === 'extsvc':
80+
case shortName === 'extsvc':
7781
return {
7882
name: 'mesh-external-service-detail-view',
7983
params: {
80-
mesh: kri.mesh,
81-
service: kri.id,
84+
mesh: mesh,
85+
service: id,
8286
},
8387
}
8488
default:
8589
return
8690
}
87-
})(kri)
88-
91+
})()
8992
if (to) {
9093
const link = useLink({ to })
9194
return link.href.value

packages/kuma-gui/src/app/services/locales/en-us/index.yaml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,4 @@
11
services:
2-
kri:
3-
msvc: MeshService
4-
mzsvc: MeshMultiZoneService
5-
extsvc: MeshExternalService
62
x-empty-state:
73
title: There are no services present
84
routes:

packages/x/src/components/x-action/XAction.vue

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@
153153
</KButton>
154154

155155
<button
156-
v-else
156+
v-else-if="typeof attrs.onClick === 'function'"
157157
:class="`x-action-appearance-${props.appearance}`"
158158
data-testid="x-action"
159159
v-bind="$attrs"
@@ -169,12 +169,20 @@
169169
</template>
170170
<span><slot name="default" /></span>
171171
</button>
172+
<template
173+
v-else
174+
>
175+
<slot
176+
name="default"
177+
:inactive="true"
178+
/>
179+
</template>
172180
</template>
173181
</template>
174182
<script lang="ts" setup>
175183
import { KUI_ICON_SIZE_40 } from '@kong/design-tokens'
176184
import { KDropdownItem, KButton } from '@kong/kongponents'
177-
import { computed, watch, inject, provide } from 'vue'
185+
import { computed, watch, inject, provide, useAttrs } from 'vue'
178186
import { RouterLink, useRouter } from 'vue-router'
179187
180188
import { useProtocolHandler } from '../../'
@@ -189,6 +197,12 @@ type RouteLocationRawWithBooleanQuery = Omit<RouteLocationNamedRaw, 'query'> & {
189197
const emit = defineEmits<{
190198
(event: 'click'): Event
191199
}>()
200+
201+
defineSlots<{
202+
default(props: {
203+
inactive?: boolean
204+
}): any
205+
}>()
192206
const props = withDefaults(defineProps<{
193207
action?: 'default' | 'docs' | 'create' | 'copy' | 'action' | 'expand' | 'refresh' | 'progress'
194208
appearance?: 'primary' | 'secondary' | 'tertiary' | 'danger' | 'anchor'
@@ -205,7 +219,8 @@ const props = withDefaults(defineProps<{
205219
for: '',
206220
})
207221
208-
provide('x-action', {})
222+
const attrs = useAttrs()
223+
209224
const group = inject<{
210225
expanded: boolean
211226
} | undefined>('x-action-group', undefined)
@@ -217,6 +232,10 @@ const href = computed(() => props.href.includes('://') ? protocolHandler(props.h
217232
const target = computed(() => props.href.length > 0 && props.href === href.value ? '_blank' : undefined)
218233
const rel = computed(() => target.value === '_blank' ? 'noopener noreferrer' : href.value.length > 0 && props.href === href.value ? undefined : 'x-internal')
219234
235+
if(href.value.length > 0 || typeof attrs.onClick === 'function' || props.for) {
236+
provide('x-action', {})
237+
}
238+
220239
const query = computed(() => {
221240
return Object.entries(props.to.query ?? {}).reduce<Record<string, string | number | null | undefined>>((prev, [key, value]) => {
222241
switch (true) {

0 commit comments

Comments
 (0)