dashboard-shell-shell 3.0.5-test.5 → 3.0.5-test.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/brand/harvester/favicon.png +0 -0
- package/assets/brand/suse/favicon.png +0 -0
- package/assets/images/pl/half-logo.svg +23 -2
- package/assets/images/pl/harvester.png +0 -0
- package/assets/styles/app.scss +0 -4
- package/assets/styles/base/_basic.scss +2 -2
- package/assets/styles/base/_mixins.scss +1 -1
- package/assets/styles/base/_typography.scss +1 -2
- package/assets/styles/base/_variables.scss +4 -11
- package/assets/styles/global/_button.scss +25 -43
- package/assets/styles/global/_columns.scss +1 -3
- package/assets/styles/global/_form.scss +13 -45
- package/assets/styles/global/_labeled-input.scss +26 -54
- package/assets/styles/global/_layout.scss +3 -8
- package/assets/styles/global/_select.scss +17 -25
- package/assets/styles/global/_table.scss +1 -7
- package/assets/styles/global/_tooltip.scss +8 -56
- package/assets/styles/themes/_dark.scss +0 -3
- package/assets/styles/themes/_light.scss +43 -66
- package/assets/styles/vendor/vue-select.scss +9 -22
- package/assets/translations/en-us.yaml +4 -28
- package/assets/translations/zh-hans.yaml +189 -452
- package/components/ActionDropdown.vue +1 -2
- package/components/ActionMenu.vue +2 -2
- package/components/ActionMenuShell.vue +0 -2
- package/components/AppModal.vue +5 -46
- package/components/BrandImage.vue +0 -1
- package/components/ButtonDropdown.vue +4 -26
- package/components/ButtonMultiAction.vue +0 -1
- package/components/ClusterIconMenu.vue +1 -1
- package/components/CodeMirror.vue +6 -20
- package/components/ConsumptionGauge.vue +5 -24
- package/components/CopyToClipboard.vue +0 -15
- package/components/CruResource.vue +8 -9
- package/components/CruResourceFooter.vue +2 -2
- package/components/DashboardOptions.vue +17 -29
- package/components/Drawer/Chrome.vue +2 -2
- package/components/Drawer/ResourceDetailDrawer/ConfigTab.vue +23 -23
- package/components/Drawer/ResourceDetailDrawer/index.vue +2 -2
- package/components/ExplorerMembers.vue +3 -18
- package/components/ExplorerProjectsNamespaces.vue +5 -19
- package/components/GlobalRoleBindings.vue +48 -112
- package/components/GrafanaDashboard.vue +4 -4
- package/components/GrowlManager.vue +1 -3
- package/components/HardwareResourceGauge.vue +3 -39
- package/components/IndentedPanel.vue +10 -4
- package/components/InfoBox.vue +3 -3
- package/components/InputOrDisplay.vue +2 -28
- package/components/LabelValue.vue +1 -20
- package/components/ModalWithCard.vue +3 -12
- package/components/PodSecurityAdmission.vue +1 -1
- package/components/PromptModal.vue +1 -1
- package/components/PromptRemove.vue +11 -30
- package/components/Resource/Detail/Metadata/IdentifyingInformation/index.vue +3 -1
- package/components/Resource/Detail/Metadata/KeyValue.vue +4 -8
- package/components/Resource/Detail/Metadata/index.vue +1 -2
- package/components/Resource/Detail/TitleBar/Title.vue +3 -4
- package/components/Resource/Detail/TitleBar/index.vue +24 -103
- package/components/ResourceDetail/Masthead/legacy.vue +38 -181
- package/components/ResourceDetail/legacy.vue +14 -32
- package/components/ResourceList/Masthead.vue +54 -226
- package/components/ResourceList/ResourceLoadingIndicator.vue +2 -5
- package/components/ResourceTable.vue +2 -24
- package/components/SideNav.vue +20 -74
- package/components/SortableTable/THead.vue +3 -33
- package/components/SortableTable/index.vue +464 -1017
- package/components/SortableTable/paging.js +16 -26
- package/components/SortableTable/selection.js +2 -2
- package/components/Tabbed/Tab.vue +3 -3
- package/components/Tabbed/index.vue +30 -48
- package/components/YamlEditor.vue +1 -0
- package/components/auth/Principal.vue +13 -37
- package/components/auth/RoleDetailEdit.vue +7 -58
- package/components/auth/SelectPrincipal.vue +0 -1
- package/components/form/ArrayList.vue +33 -41
- package/components/form/ArrayListGrouped.vue +2 -10
- package/components/form/ArrayListSelect.vue +1 -1
- package/components/form/BannerSettings.vue +59 -64
- package/components/form/ChangePassword.vue +4 -4
- package/components/form/ColorInput.vue +8 -32
- package/components/form/Footer.vue +8 -11
- package/components/form/InputWithSelect.vue +5 -8
- package/components/form/KeyValue.vue +7 -47
- package/components/form/LabeledSelect.vue +242 -214
- package/components/form/Labels.vue +3 -3
- package/components/form/MatchExpressions.vue +7 -24
- package/components/form/Members/ClusterPermissionsEditor.vue +2 -1
- package/components/form/Members/MembershipEditor.vue +1 -1
- package/components/form/NameNsDescription.vue +20 -59
- package/components/form/Password.vue +7 -16
- package/components/form/PodAffinity.vue +5 -4
- package/components/form/ResourceQuota/Namespace.vue +4 -4
- package/components/form/ResourceQuota/NamespaceRow.vue +17 -18
- package/components/form/ResourceQuota/Project.vue +4 -4
- package/components/form/ResourceQuota/ProjectRow.vue +6 -3
- package/components/form/Select.vue +2 -5
- package/components/form/SimpleSecretSelector.vue +9 -29
- package/components/form/Taints.vue +1 -2
- package/components/form/UnitInput.vue +3 -8
- package/components/form/WorkloadPorts.vue +123 -143
- package/components/formatter/BadgeStateFormatter.vue +5 -8
- package/components/formatter/LiveDate.vue +3 -3
- package/components/nav/Favorite.vue +1 -5
- package/components/nav/Group.vue +99 -132
- package/components/nav/Header.vue +27 -124
- package/components/nav/HeaderPageActionMenu.vue +0 -1
- package/components/nav/NamespaceFilter.vue +15 -19
- package/components/nav/TopLevelMenu.vue +119 -182
- package/components/nav/Type.vue +41 -63
- package/composables/useClickOutside.ts +1 -1
- package/config/private-label.js +11 -15
- package/config/product/auth.js +7 -17
- package/config/product/settings.js +9 -19
- package/config/settings.ts +0 -28
- package/config/table-headers.js +2 -3
- package/dialog/ForceMachineRemoveDialog.vue +2 -2
- package/dialog/ScalePoolDownDialog.vue +2 -2
- package/edit/management.cattle.io.user.vue +4 -17
- package/edit/monitoring.coreos.com.alertmanagerconfig/auth.vue +19 -19
- package/edit/monitoring.coreos.com.alertmanagerconfig/receiverConfig.vue +31 -31
- package/edit/monitoring.coreos.com.alertmanagerconfig/routeConfig.vue +12 -36
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/email.vue +6 -6
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/opsgenie.vue +10 -10
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/pagerduty.vue +4 -4
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/slack.vue +4 -4
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/webhook.vue +1 -1
- package/edit/monitoring.coreos.com.receiver/types/email.vue +6 -6
- package/edit/monitoring.coreos.com.receiver/types/opsgenie.vue +10 -10
- package/edit/monitoring.coreos.com.receiver/types/pagerduty.vue +5 -5
- package/edit/monitoring.coreos.com.receiver/types/slack.vue +4 -4
- package/edit/namespace.vue +2 -1
- package/edit/token.vue +12 -31
- package/edit/workload/index.vue +4 -4
- package/list/management.cattle.io.setting.vue +13 -22
- package/list/management.cattle.io.user.vue +3 -7
- package/list/namespace.vue +0 -3
- package/list/provisioning.cattle.io.cluster.vue +7 -6
- package/mixins/brand.js +0 -17
- package/package.json +1 -1
- package/pages/account/index.vue +25 -79
- package/pages/auth/login.vue +52 -220
- package/pages/auth/setup.vue +19 -142
- package/pages/c/_cluster/_product/namespaces.vue +5 -5
- package/pages/c/_cluster/auth/roles/index.vue +1 -19
- package/pages/c/_cluster/monitoring/monitor/index.vue +2 -2
- package/pages/c/_cluster/settings/banners.vue +102 -174
- package/pages/c/_cluster/settings/brand.vue +302 -350
- package/pages/c/_cluster/settings/performance.vue +38 -61
- package/pages/home.vue +30 -70
- package/pages/prefs.vue +25 -27
- package/promptRemove/mixin/roleDeletionCheck.js +2 -2
- package/public/index.html +4 -4
- package/rancher-components/BadgeState/BadgeState.vue +55 -38
- package/rancher-components/Banner/Banner.vue +8 -12
- package/rancher-components/Card/Card.vue +8 -7
- package/rancher-components/Form/Checkbox/Checkbox.vue +0 -4
- package/rancher-components/Form/LabeledInput/LabeledInput.vue +3 -42
- package/rancher-components/Form/Radio/RadioButton.vue +11 -35
- package/rancher-components/Form/Radio/RadioGroup.vue +5 -13
- package/rancher-components/Form/TextArea/TextAreaAutoGrow.vue +3 -3
- package/rancher-components/Form/ToggleSwitch/ToggleSwitch.vue +0 -1
- package/rancher-components/LabeledTooltip/LabeledTooltip.vue +4 -12
- package/rancher-components/RcDropdown/RcDropdown.vue +7 -35
- package/rancher-components/RcDropdown/RcDropdownItem.vue +2 -2
- package/rancher-components/RcDropdown/RcDropdownMenu.vue +6 -12
- package/rancher-components/RcDropdown/types.ts +0 -1
- package/rancher-components/StringList/StringList.vue +1 -1
- package/static/favicon.ico +0 -0
- package/static/favicon.png +0 -0
- package/static/loading-indicator.html +3 -3
- package/store/i18n.js +2 -5
- package/store/modal.ts +3 -3
- package/store/prefs.js +4 -11
- package/store/type-map.js +2 -32
- package/types/shell/index.d.ts +67 -74
- package/utils/error.js +8 -87
- package/utils/router.js +0 -21
- package/utils/select.js +3 -26
- package/utils/string.js +5 -8
- package/utils/title.ts +1 -1
- package/assets/icons/demo.css +0 -539
- package/assets/icons/demo.css:Zone.Identifier +0 -0
- package/assets/icons/demo_index.html +0 -1131
- package/assets/icons/demo_index.html:Zone.Identifier +0 -0
- package/assets/icons/iconfont.css +0 -216
- package/assets/icons/iconfont.css:Zone.Identifier +0 -0
- package/assets/icons/iconfont.js +0 -1
- package/assets/icons/iconfont.js:Zone.Identifier +0 -0
- package/assets/icons/iconfont.json +0 -324
- package/assets/icons/iconfont.json:Zone.Identifier +0 -0
- package/assets/icons/iconfont.ttf +0 -0
- package/assets/icons/iconfont.ttf:Zone.Identifier +0 -0
- package/assets/icons/iconfont.woff +0 -0
- package/assets/icons/iconfont.woff2 +0 -0
- package/assets/icons/iconfont.woff2:Zone.Identifier +0 -0
- package/assets/icons/iconfont.woff:Zone.Identifier +0 -0
- package/assets/images/API.svg +0 -3
- package/assets/images/action.svg +0 -6
- package/assets/images/login/password.svg +0 -20
- package/assets/images/login/user.svg +0 -6
- package/assets/images/login-bg.png +0 -0
- package/assets/images/login-left.png +0 -0
- package/assets/images/login-logo.svg +0 -19
- package/assets/images/logo.png +0 -0
- package/assets/images/pl/logo.png +0 -0
- package/assets/images/promp-yellow.svg +0 -5
- package/assets/images/user.png +0 -0
- package/assets/styles/all.scss +0 -63
- package/components/DotState.vue +0 -84
- package/components/breadcrumb/index.vue +0 -340
- package/pages/account/pri.vue +0 -229
- package/utils/errorTranslate.json +0 -1336
|
@@ -12,7 +12,6 @@ import { CATALOG as CATALOG_ANNOTATIONS } from '@shell/config/labels-annotations
|
|
|
12
12
|
import { CATALOG } from '@shell/config/types';
|
|
13
13
|
import { LabeledInput } from '@components/Form/LabeledInput';
|
|
14
14
|
import AppModal from '@shell/components/AppModal.vue';
|
|
15
|
-
import { translateError } from '@shell/utils/error';
|
|
16
15
|
|
|
17
16
|
export default {
|
|
18
17
|
name: 'PromptRemove',
|
|
@@ -215,7 +214,6 @@ export default {
|
|
|
215
214
|
},
|
|
216
215
|
|
|
217
216
|
methods: {
|
|
218
|
-
translateError,
|
|
219
217
|
resourceNames,
|
|
220
218
|
escapeHtml,
|
|
221
219
|
close() {
|
|
@@ -342,7 +340,7 @@ export default {
|
|
|
342
340
|
v-if="showModal"
|
|
343
341
|
custom-class="remove-modal"
|
|
344
342
|
name="promptRemove"
|
|
345
|
-
:width="
|
|
343
|
+
:width="400"
|
|
346
344
|
height="auto"
|
|
347
345
|
styles="max-height: 100vh;"
|
|
348
346
|
:trigger-focus-trap="true"
|
|
@@ -354,11 +352,6 @@ export default {
|
|
|
354
352
|
>
|
|
355
353
|
<template #title>
|
|
356
354
|
<h4 class="text-default-text">
|
|
357
|
-
<img
|
|
358
|
-
src="@shell/assets/images/promp-yellow.svg"
|
|
359
|
-
class="img-span"
|
|
360
|
-
alt=""
|
|
361
|
-
>
|
|
362
355
|
{{ t('promptRemove.title') }}
|
|
363
356
|
</h4>
|
|
364
357
|
</template>
|
|
@@ -390,7 +383,7 @@ export default {
|
|
|
390
383
|
class="mt-10"
|
|
391
384
|
>
|
|
392
385
|
<span
|
|
393
|
-
v-clean-html="t('promptRemove.confirmName', { nameToMatch: escapeHtml(nameToMatch) })"
|
|
386
|
+
v-clean-html="t('promptRemove.confirmName', { nameToMatch: escapeHtml(nameToMatch) }, true)"
|
|
394
387
|
/>
|
|
395
388
|
</div>
|
|
396
389
|
</div>
|
|
@@ -407,14 +400,14 @@ export default {
|
|
|
407
400
|
{{ warning }}
|
|
408
401
|
</div>
|
|
409
402
|
<div class="text-error mb-10 mt-10">
|
|
410
|
-
{{
|
|
403
|
+
{{ error }}
|
|
411
404
|
</div>
|
|
412
|
-
|
|
405
|
+
<div
|
|
413
406
|
v-if="!needsConfirm"
|
|
414
407
|
class="text-info mt-20"
|
|
415
408
|
>
|
|
416
409
|
{{ protip }}
|
|
417
|
-
</div>
|
|
410
|
+
</div>
|
|
418
411
|
</LabeledInput>
|
|
419
412
|
<div v-else-if="!hasCustomRemove">
|
|
420
413
|
<div
|
|
@@ -427,7 +420,7 @@ export default {
|
|
|
427
420
|
v-if="error"
|
|
428
421
|
class="text-error mb-10 mt-10"
|
|
429
422
|
>
|
|
430
|
-
|
|
423
|
+
{{ error }}
|
|
431
424
|
</div>
|
|
432
425
|
</div>
|
|
433
426
|
<Checkbox
|
|
@@ -448,7 +441,7 @@ export default {
|
|
|
448
441
|
<div class="spacer" />
|
|
449
442
|
<AsyncButton
|
|
450
443
|
mode="delete"
|
|
451
|
-
class="btn ml-10"
|
|
444
|
+
class="btn bg-error ml-10"
|
|
452
445
|
:disabled="deleteDisabled"
|
|
453
446
|
:data-testid="componentTestid + '-confirm-button'"
|
|
454
447
|
@click="remove"
|
|
@@ -464,32 +457,20 @@ export default {
|
|
|
464
457
|
box-shadow: none;
|
|
465
458
|
}
|
|
466
459
|
#confirm {
|
|
467
|
-
width:
|
|
468
|
-
|
|
460
|
+
width: 90%;
|
|
461
|
+
margin-left: 3px;
|
|
469
462
|
}
|
|
470
463
|
|
|
471
464
|
.actions {
|
|
472
465
|
text-align: right;
|
|
473
466
|
}
|
|
474
467
|
|
|
475
|
-
|
|
468
|
+
.card-actions {
|
|
476
469
|
display: flex;
|
|
477
470
|
|
|
478
471
|
.spacer {
|
|
479
472
|
flex: 1;
|
|
480
473
|
}
|
|
481
|
-
}
|
|
474
|
+
}
|
|
482
475
|
}
|
|
483
476
|
</style>
|
|
484
|
-
|
|
485
|
-
<style scoped>
|
|
486
|
-
.text-default-text{
|
|
487
|
-
line-height: 20px;
|
|
488
|
-
margin: 0px;
|
|
489
|
-
display: flex;
|
|
490
|
-
align-items: center;
|
|
491
|
-
}
|
|
492
|
-
.img-span{
|
|
493
|
-
margin-right: 8px;
|
|
494
|
-
}
|
|
495
|
-
</style>
|
|
@@ -89,10 +89,12 @@ const getRowValueId = (row:Row): string => `value-${ row.label }:${ row.value }`
|
|
|
89
89
|
flex-direction: column;
|
|
90
90
|
|
|
91
91
|
.row {
|
|
92
|
-
|
|
92
|
+
margin-bottom: 8px;
|
|
93
|
+
|
|
93
94
|
.value {
|
|
94
95
|
display: flex;
|
|
95
96
|
flex-direction: row;
|
|
97
|
+
align-items: center;
|
|
96
98
|
|
|
97
99
|
&, & * {
|
|
98
100
|
max-width: 100%;
|
|
@@ -53,13 +53,13 @@ const showConfigurationMoreFocusSelector = computed(() => `[data-testid="${ show
|
|
|
53
53
|
|
|
54
54
|
<template>
|
|
55
55
|
<div class="key-value">
|
|
56
|
-
<div class="heading
|
|
56
|
+
<div class="heading">
|
|
57
57
|
<span class="title text-deemphasized">{{ propertyName }}</span>
|
|
58
58
|
<span class="count">{{ rows.length }}</span>
|
|
59
59
|
</div>
|
|
60
60
|
<div
|
|
61
61
|
v-if="visibleRows.length === 0"
|
|
62
|
-
class="empty text-deemphasized"
|
|
62
|
+
class="empty mmt-2 text-deemphasized"
|
|
63
63
|
>
|
|
64
64
|
<div class="no-rows">
|
|
65
65
|
{{ i18n.t('component.resource.detail.metadata.keyValue.noRows', {propertyName: lowercasePropertyName}) }}
|
|
@@ -78,7 +78,7 @@ const showConfigurationMoreFocusSelector = computed(() => `[data-testid="${ show
|
|
|
78
78
|
<div
|
|
79
79
|
v-for="row in visibleRows"
|
|
80
80
|
:key="displayValue(row)"
|
|
81
|
-
class="row
|
|
81
|
+
class="row"
|
|
82
82
|
>
|
|
83
83
|
<Rectangle
|
|
84
84
|
v-clean-tooltip="displayValue(row)"
|
|
@@ -104,22 +104,18 @@ const showConfigurationMoreFocusSelector = computed(() => `[data-testid="${ show
|
|
|
104
104
|
display: flex;
|
|
105
105
|
flex-direction: column;
|
|
106
106
|
align-items: flex-start;
|
|
107
|
-
|
|
108
|
-
.h40 {
|
|
109
|
-
min-height: 40px;
|
|
110
|
-
}
|
|
111
107
|
|
|
112
108
|
.count {
|
|
113
109
|
margin-left: 24px;
|
|
114
110
|
}
|
|
115
111
|
|
|
116
112
|
.heading {
|
|
113
|
+
margin-bottom: 8px;
|
|
117
114
|
}
|
|
118
115
|
|
|
119
116
|
.row {
|
|
120
117
|
display: block;
|
|
121
118
|
width: 100%;
|
|
122
|
-
line-height: 40px;
|
|
123
119
|
|
|
124
120
|
&:not(:nth-child(2)) {
|
|
125
121
|
margin-top: 4px;
|
|
@@ -31,11 +31,10 @@ const showBothEmpty = computed(() => labels.length === 0 && annotations.length =
|
|
|
31
31
|
|
|
32
32
|
<template>
|
|
33
33
|
<SpacedRow
|
|
34
|
-
class="metadata ppb-
|
|
34
|
+
class="metadata ppb-3"
|
|
35
35
|
v-bind="$attrs"
|
|
36
36
|
>
|
|
37
37
|
<div
|
|
38
|
-
v-if="identifyingInformation?.length > 0"
|
|
39
38
|
class="identifying-info"
|
|
40
39
|
>
|
|
41
40
|
<IdentifyingInformation :rows="identifyingInformation" />
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
2
|
+
<h1 class="title">
|
|
3
3
|
<slot name="default" />
|
|
4
|
-
</
|
|
4
|
+
</h1>
|
|
5
5
|
</template>
|
|
6
6
|
|
|
7
7
|
<style lang="scss" scoped>
|
|
8
|
-
.title {
|
|
8
|
+
h1.title {
|
|
9
9
|
display: inline-block;
|
|
10
10
|
align-items: center;
|
|
11
11
|
display: flex;
|
|
12
12
|
flex-direction: row;
|
|
13
|
-
font-size: 14px;
|
|
14
13
|
}
|
|
15
14
|
</style>
|
|
@@ -13,7 +13,6 @@ import { _CONFIG, _GRAPH, AS } from '@shell/config/query-params';
|
|
|
13
13
|
import ButtonGroup from '@shell/components/ButtonGroup';
|
|
14
14
|
import { ExtensionPoint, PanelLocation } from '@shell/core/types';
|
|
15
15
|
import ExtensionPanel from '@shell/components/ExtensionPanel.vue';
|
|
16
|
-
import breadcrumb from '@shell/components/breadcrumb/index.vue'
|
|
17
16
|
|
|
18
17
|
export interface Badge {
|
|
19
18
|
color: 'bg-success' | 'bg-error' | 'bg-warning' | 'bg-info';
|
|
@@ -37,8 +36,6 @@ export interface TitleBarProps {
|
|
|
37
36
|
showViewOptions?: boolean;
|
|
38
37
|
|
|
39
38
|
onShowConfiguration?: (returnFocusSelector: string) => void;
|
|
40
|
-
value?: any;
|
|
41
|
-
parentRouteOverride?: string;
|
|
42
39
|
}
|
|
43
40
|
|
|
44
41
|
const showConfigurationIcon = require(`@shell/assets/images/icons/document.svg`);
|
|
@@ -46,7 +43,7 @@ const showConfigurationIcon = require(`@shell/assets/images/icons/document.svg`)
|
|
|
46
43
|
|
|
47
44
|
<script setup lang="ts">
|
|
48
45
|
const {
|
|
49
|
-
|
|
46
|
+
resource, resourceTypeLabel, resourceTo, resourceName, description, badge, showViewOptions, onShowConfiguration,
|
|
50
47
|
} = defineProps<TitleBarProps>();
|
|
51
48
|
|
|
52
49
|
const store = useStore();
|
|
@@ -75,42 +72,6 @@ const viewOptions = computed(() => {
|
|
|
75
72
|
];
|
|
76
73
|
});
|
|
77
74
|
|
|
78
|
-
const Svg = require('~shell/assets/images/API.svg')
|
|
79
|
-
|
|
80
|
-
const parent = computed(() =>{
|
|
81
|
-
const displayName = value?.parentNameOverride || store.getters['type-map/labelFor'](schema);
|
|
82
|
-
const product = store.getters['currentProduct'].name;
|
|
83
|
-
|
|
84
|
-
const defaultLocation = {
|
|
85
|
-
name: 'c-cluster-product-resource',
|
|
86
|
-
params: {
|
|
87
|
-
resource: resource,
|
|
88
|
-
product,
|
|
89
|
-
}
|
|
90
|
-
};
|
|
91
|
-
|
|
92
|
-
const location = value?.parentLocationOverride || defaultLocation;
|
|
93
|
-
|
|
94
|
-
if (parentRouteOverride) {
|
|
95
|
-
location.name = parentRouteOverride;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
const out = {
|
|
99
|
-
location
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
return out;
|
|
103
|
-
})
|
|
104
|
-
|
|
105
|
-
const menuIcon = computed(() => {
|
|
106
|
-
const product = store.getters['productId'];
|
|
107
|
-
|
|
108
|
-
const resources = parent?.location?.params?.resource || ''
|
|
109
|
-
|
|
110
|
-
return store.getters['type-map/groupsForVirTypes'](product, resources);
|
|
111
|
-
})
|
|
112
|
-
|
|
113
|
-
|
|
114
75
|
watch(
|
|
115
76
|
() => currentView.value,
|
|
116
77
|
() => {
|
|
@@ -121,58 +82,33 @@ watch(
|
|
|
121
82
|
|
|
122
83
|
<template>
|
|
123
84
|
<div class="title-bar">
|
|
124
|
-
<breadcrumb :resource="resource"/>
|
|
125
85
|
<Top>
|
|
126
86
|
<Title class="title">
|
|
127
|
-
<span v-if="menuIcon && parentRouteOverride === 'account' && resource=== 'token'" class="detailIcon-span">
|
|
128
|
-
<img
|
|
129
|
-
v-if="parentRouteOverride === 'account' && resource=== 'token'"
|
|
130
|
-
:src="Svg"
|
|
131
|
-
style="margin-top: 4px; margin-left: 5px;"
|
|
132
|
-
>
|
|
133
|
-
<i
|
|
134
|
-
v-else
|
|
135
|
-
:class="'icon-'+ menuIcon + ' detailIcon'"
|
|
136
|
-
/>
|
|
137
|
-
</span>
|
|
138
|
-
<div class="resourceTypeLabelCls">
|
|
139
|
-
{{ resourceTypeLabel }}名称:
|
|
140
|
-
</div>
|
|
141
|
-
<span class="resource-name masthead-resource-title">
|
|
142
|
-
{{ resourceName }}
|
|
143
|
-
</span>
|
|
144
|
-
<BadgeState
|
|
145
|
-
v-if="badge"
|
|
146
|
-
class="badge-state"
|
|
147
|
-
:color="badge.color"
|
|
148
|
-
:label="badge.label"
|
|
149
|
-
/>
|
|
150
|
-
<span
|
|
151
|
-
class="valid"
|
|
152
|
-
>|</span>
|
|
153
87
|
<TabTitle :show-child="false">
|
|
154
|
-
|
|
88
|
+
{{ resourceTypeLabel }}
|
|
155
89
|
</TabTitle>
|
|
156
90
|
<router-link
|
|
157
91
|
v-if="resourceTo"
|
|
158
92
|
:to="resourceTo"
|
|
159
93
|
class="resource-link"
|
|
160
94
|
>
|
|
161
|
-
|
|
95
|
+
{{ resourceTypeLabel }}:
|
|
162
96
|
</router-link>
|
|
163
97
|
<span
|
|
164
98
|
v-else
|
|
165
99
|
class="resource-text"
|
|
166
100
|
>
|
|
167
|
-
|
|
101
|
+
{{ resourceTypeLabel }}:
|
|
168
102
|
</span>
|
|
169
|
-
<
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
103
|
+
<span class="resource-name masthead-resource-title">
|
|
104
|
+
{{ resourceName }}
|
|
105
|
+
</span>
|
|
106
|
+
<BadgeState
|
|
107
|
+
v-if="badge"
|
|
108
|
+
class="badge-state"
|
|
109
|
+
:color="badge.color"
|
|
110
|
+
:label="badge.label"
|
|
111
|
+
/>
|
|
176
112
|
</Title>
|
|
177
113
|
<div class="actions">
|
|
178
114
|
<!-- Please don't expand this pattern, this was a quick fix to resolve a conflict between the new masthead and fleet. -->
|
|
@@ -198,7 +134,6 @@ watch(
|
|
|
198
134
|
</RcButton>
|
|
199
135
|
<ActionMenu
|
|
200
136
|
v-if="actionMenuResource"
|
|
201
|
-
:showIcon="true"
|
|
202
137
|
button-role="multiAction"
|
|
203
138
|
:resource="actionMenuResource"
|
|
204
139
|
data-testid="masthead-action-menu"
|
|
@@ -206,6 +141,12 @@ watch(
|
|
|
206
141
|
/>
|
|
207
142
|
</div>
|
|
208
143
|
</Top>
|
|
144
|
+
<div
|
|
145
|
+
v-if="description"
|
|
146
|
+
class="bottom description text-deemphasized"
|
|
147
|
+
>
|
|
148
|
+
{{ description }}
|
|
149
|
+
</div>
|
|
209
150
|
<ExtensionPanel
|
|
210
151
|
:resource="resource"
|
|
211
152
|
:type="ExtensionPoint.PANEL"
|
|
@@ -215,27 +156,12 @@ watch(
|
|
|
215
156
|
</template>
|
|
216
157
|
|
|
217
158
|
<style lang="scss" scoped>
|
|
218
|
-
.detailIcon-span{
|
|
219
|
-
width: 24px;
|
|
220
|
-
height: 24px;
|
|
221
|
-
display: inline-block;
|
|
222
|
-
position: relative;
|
|
223
|
-
background: var(--primary);
|
|
224
|
-
margin-right: 10px;
|
|
225
|
-
}
|
|
226
|
-
.resourceTypeLabelCls {
|
|
227
|
-
font-weight: 700;
|
|
228
|
-
}
|
|
229
|
-
.valid{
|
|
230
|
-
color: #d7d7d7;
|
|
231
|
-
margin: 0px 10px;
|
|
232
|
-
}
|
|
233
159
|
.title-bar {
|
|
234
160
|
min-width: 740px;
|
|
235
161
|
|
|
236
162
|
.badge-state {
|
|
237
163
|
font-size: 16px;
|
|
238
|
-
margin-left:
|
|
164
|
+
margin-left: 12px;
|
|
239
165
|
position: relative;
|
|
240
166
|
}
|
|
241
167
|
|
|
@@ -244,20 +170,15 @@ watch(
|
|
|
244
170
|
}
|
|
245
171
|
|
|
246
172
|
&:deep() button[data-testid="masthead-action-menu"] {
|
|
247
|
-
border-radius:
|
|
248
|
-
width:
|
|
249
|
-
height:
|
|
250
|
-
margin-left:
|
|
173
|
+
border-radius: 4px;
|
|
174
|
+
width: 35px;
|
|
175
|
+
height: 40px;
|
|
176
|
+
margin-left: 16px;
|
|
251
177
|
|
|
252
178
|
display: inline-flex;
|
|
253
179
|
flex-direction: row;
|
|
254
180
|
justify-content: center;
|
|
255
181
|
align-items: center;
|
|
256
|
-
background-color: var(--primary);
|
|
257
|
-
|
|
258
|
-
a{
|
|
259
|
-
color: #fff;
|
|
260
|
-
}
|
|
261
182
|
}
|
|
262
183
|
|
|
263
184
|
.description {
|