dashboard-shell-shell 3.0.5-test.6 → 3.0.5-test.9
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/icons/demo.css +539 -0
- package/assets/icons/demo.css:Zone.Identifier +0 -0
- package/assets/icons/demo_index.html +1131 -0
- package/assets/icons/demo_index.html:Zone.Identifier +0 -0
- package/assets/icons/iconfont.css +216 -0
- package/assets/icons/iconfont.css:Zone.Identifier +0 -0
- package/assets/icons/iconfont.js +1 -0
- package/assets/icons/iconfont.js:Zone.Identifier +0 -0
- package/assets/icons/iconfont.json +324 -0
- 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 +3 -0
- package/assets/images/action.svg +6 -0
- package/assets/images/login/password.svg +20 -0
- package/assets/images/login/user.svg +6 -0
- package/assets/images/login-bg.png +0 -0
- package/assets/images/login-left.png +0 -0
- package/assets/images/login-logo.svg +19 -0
- package/assets/images/logo.png +0 -0
- package/assets/images/pl/half-logo.svg +2 -23
- package/assets/images/pl/harvester.png +0 -0
- package/assets/images/pl/logo.png +0 -0
- package/assets/images/promp-yellow.svg +5 -0
- package/assets/images/user.png +0 -0
- package/assets/styles/all.scss +63 -0
- package/assets/styles/app.scss +4 -0
- package/assets/styles/base/_basic.scss +2 -2
- package/assets/styles/base/_mixins.scss +1 -1
- package/assets/styles/base/_typography.scss +2 -1
- package/assets/styles/base/_variables.scss +14 -7
- package/assets/styles/global/_button.scss +43 -25
- package/assets/styles/global/_columns.scss +3 -1
- package/assets/styles/global/_form.scss +45 -13
- package/assets/styles/global/_labeled-input.scss +54 -26
- package/assets/styles/global/_layout.scss +8 -3
- package/assets/styles/global/_select.scss +25 -17
- package/assets/styles/global/_table.scss +7 -1
- package/assets/styles/global/_tooltip.scss +56 -8
- package/assets/styles/themes/_dark.scss +3 -0
- package/assets/styles/themes/_light.scss +66 -43
- package/assets/styles/vendor/vue-select.scss +22 -9
- package/assets/translations/en-us.yaml +28 -4
- package/assets/translations/zh-hans.yaml +452 -189
- package/components/ActionDropdown.vue +2 -1
- package/components/ActionMenu.vue +2 -2
- package/components/ActionMenuShell.vue +2 -0
- package/components/AppModal.vue +46 -5
- package/components/BrandImage.vue +1 -0
- package/components/ButtonDropdown.vue +26 -4
- package/components/ButtonMultiAction.vue +1 -0
- package/components/ClusterIconMenu.vue +1 -1
- package/components/CodeMirror.vue +20 -6
- package/components/ConsumptionGauge.vue +24 -5
- package/components/CopyToClipboard.vue +15 -0
- package/components/CruResource.vue +9 -8
- package/components/CruResourceFooter.vue +2 -2
- package/components/DashboardOptions.vue +29 -17
- package/components/DotState.vue +84 -0
- package/components/Drawer/Chrome.vue +2 -2
- package/components/Drawer/ResourceDetailDrawer/ConfigTab.vue +22 -22
- package/components/Drawer/ResourceDetailDrawer/YamlTab.vue +1 -1
- package/components/Drawer/ResourceDetailDrawer/index.vue +2 -1
- package/components/ExplorerMembers.vue +18 -3
- package/components/ExplorerProjectsNamespaces.vue +19 -5
- package/components/GlobalRoleBindings.vue +112 -48
- package/components/GrafanaDashboard.vue +4 -4
- package/components/GrowlManager.vue +3 -1
- package/components/HardwareResourceGauge.vue +39 -3
- package/components/IndentedPanel.vue +4 -10
- package/components/InfoBox.vue +3 -3
- package/components/InputOrDisplay.vue +28 -2
- package/components/LabelValue.vue +20 -1
- package/components/ModalWithCard.vue +12 -3
- package/components/PodSecurityAdmission.vue +1 -1
- package/components/PromptModal.vue +1 -1
- package/components/PromptRemove.vue +30 -11
- package/components/Resource/Detail/Metadata/IdentifyingInformation/index.vue +1 -3
- package/components/Resource/Detail/Metadata/KeyValue.vue +8 -4
- package/components/Resource/Detail/Metadata/index.vue +3 -1
- package/components/Resource/Detail/TitleBar/Title.vue +4 -3
- package/components/Resource/Detail/TitleBar/Top.vue +2 -0
- package/components/Resource/Detail/TitleBar/index.vue +109 -24
- package/components/ResourceDetail/Masthead/legacy.vue +181 -38
- package/components/ResourceDetail/legacy.vue +32 -14
- package/components/ResourceList/Masthead.vue +226 -54
- package/components/ResourceList/ResourceLoadingIndicator.vue +5 -2
- package/components/ResourceTable.vue +24 -2
- package/components/SideNav.vue +74 -20
- package/components/SortableTable/THead.vue +33 -3
- package/components/SortableTable/index.vue +1016 -463
- package/components/SortableTable/paging.js +26 -16
- package/components/SortableTable/selection.js +2 -2
- package/components/Tabbed/Tab.vue +3 -3
- package/components/Tabbed/index.vue +47 -29
- package/components/YamlEditor.vue +0 -1
- package/components/auth/Principal.vue +37 -13
- package/components/auth/RoleDetailEdit.vue +58 -7
- package/components/auth/SelectPrincipal.vue +1 -0
- package/components/breadcrumb/index.vue +316 -0
- package/components/form/ArrayList.vue +41 -33
- package/components/form/ArrayListGrouped.vue +10 -2
- package/components/form/ArrayListSelect.vue +1 -1
- package/components/form/BannerSettings.vue +64 -59
- package/components/form/ChangePassword.vue +4 -4
- package/components/form/ColorInput.vue +32 -8
- package/components/form/Footer.vue +11 -8
- package/components/form/InputWithSelect.vue +8 -5
- package/components/form/KeyValue.vue +47 -7
- package/components/form/LabeledSelect.vue +214 -242
- package/components/form/Labels.vue +3 -3
- package/components/form/MatchExpressions.vue +24 -7
- package/components/form/Members/ClusterPermissionsEditor.vue +1 -2
- package/components/form/Members/MembershipEditor.vue +1 -1
- package/components/form/NameNsDescription.vue +59 -20
- package/components/form/Password.vue +16 -7
- package/components/form/PodAffinity.vue +4 -5
- package/components/form/ResourceQuota/Namespace.vue +4 -4
- package/components/form/ResourceQuota/NamespaceRow.vue +18 -17
- package/components/form/ResourceQuota/Project.vue +4 -4
- package/components/form/ResourceQuota/ProjectRow.vue +3 -6
- package/components/form/Select.vue +5 -2
- package/components/form/SimpleSecretSelector.vue +29 -9
- package/components/form/Taints.vue +2 -1
- package/components/form/UnitInput.vue +8 -3
- package/components/form/WorkloadPorts.vue +143 -123
- package/components/formatter/BadgeStateFormatter.vue +8 -5
- package/components/formatter/LiveDate.vue +3 -3
- package/components/nav/Favorite.vue +5 -1
- package/components/nav/Group.vue +132 -99
- package/components/nav/Header.vue +124 -27
- package/components/nav/HeaderPageActionMenu.vue +1 -0
- package/components/nav/NamespaceFilter.vue +20 -17
- package/components/nav/TopLevelMenu.vue +182 -119
- package/components/nav/Type.vue +63 -41
- package/composables/useClickOutside.ts +1 -1
- package/config/private-label.js +15 -11
- package/config/product/auth.js +17 -7
- package/config/product/settings.js +19 -9
- package/config/settings.ts +28 -0
- package/config/table-headers.js +3 -2
- package/dialog/ForceMachineRemoveDialog.vue +2 -2
- package/dialog/ScalePoolDownDialog.vue +2 -2
- package/edit/management.cattle.io.user.vue +17 -4
- 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 +36 -12
- 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 +1 -2
- package/edit/token.vue +31 -12
- package/edit/workload/index.vue +4 -4
- package/list/management.cattle.io.setting.vue +22 -13
- package/list/management.cattle.io.user.vue +7 -3
- package/list/namespace.vue +3 -0
- package/list/provisioning.cattle.io.cluster.vue +6 -7
- package/mixins/brand.js +17 -0
- package/package.json +1 -1
- package/pages/account/pri.vue +229 -0
- package/pages/auth/login.vue +220 -52
- package/pages/auth/setup.vue +142 -19
- package/pages/c/_cluster/_product/namespaces.vue +5 -5
- package/pages/c/_cluster/auth/roles/index.vue +56 -5
- package/pages/c/_cluster/monitoring/monitor/index.vue +2 -2
- package/pages/c/_cluster/settings/banners.vue +174 -102
- package/pages/c/_cluster/settings/brand.vue +350 -302
- package/pages/c/_cluster/settings/performance.vue +61 -38
- package/pages/home.vue +70 -30
- package/pages/prefs.vue +27 -25
- package/pkg/tsconfig.json +9 -9
- package/pkg/vue.config.js +1 -1
- package/plugins/dashboard-store/resource-class.js +28 -27
- package/promptRemove/mixin/roleDeletionCheck.js +2 -2
- package/public/index.html +4 -4
- package/rancher-components/BadgeState/BadgeState.vue +38 -55
- package/rancher-components/Banner/Banner.vue +12 -8
- package/rancher-components/Card/Card.vue +7 -8
- package/rancher-components/Form/Checkbox/Checkbox.vue +4 -0
- package/rancher-components/Form/LabeledInput/LabeledInput.vue +42 -3
- package/rancher-components/Form/Radio/RadioButton.vue +35 -11
- package/rancher-components/Form/Radio/RadioGroup.vue +13 -5
- package/rancher-components/Form/TextArea/TextAreaAutoGrow.vue +3 -3
- package/rancher-components/Form/ToggleSwitch/ToggleSwitch.vue +1 -0
- package/rancher-components/LabeledTooltip/LabeledTooltip.vue +12 -4
- package/rancher-components/RcDropdown/RcDropdown.vue +35 -7
- package/rancher-components/RcDropdown/RcDropdownItem.vue +2 -2
- package/rancher-components/RcDropdown/RcDropdownMenu.vue +12 -6
- package/rancher-components/RcDropdown/types.ts +1 -0
- package/rancher-components/StringList/StringList.vue +1 -1
- package/scripts/publish-shell.sh +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 +5 -2
- package/store/modal.ts +3 -3
- package/store/prefs.js +11 -4
- package/store/type-map.js +32 -2
- package/types/shell/index.d.ts +78 -97
- package/utils/error.js +89 -8
- package/utils/errorTranslate.json +1351 -0
- package/utils/router.js +21 -0
- package/utils/select.js +26 -3
- package/utils/string.js +8 -5
- package/utils/title.ts +1 -1
- package/vue.config.js +1 -1
|
@@ -77,7 +77,10 @@ export default {
|
|
|
77
77
|
LOGGED_OUT,
|
|
78
78
|
navHeaderRight: null,
|
|
79
79
|
extensionHeaderActions: getApplicableExtensionEnhancements(this, ExtensionPoint.ACTION, ActionLocation.HEADER, this.$route),
|
|
80
|
-
ctx: this
|
|
80
|
+
ctx: this,
|
|
81
|
+
showImportModal: false,
|
|
82
|
+
showSearchModal: false,
|
|
83
|
+
userIcon: require('@shell/assets/images/logo.png'),
|
|
81
84
|
};
|
|
82
85
|
},
|
|
83
86
|
|
|
@@ -273,6 +276,18 @@ export default {
|
|
|
273
276
|
},
|
|
274
277
|
|
|
275
278
|
methods: {
|
|
279
|
+
|
|
280
|
+
LogOutfn (type) {
|
|
281
|
+
sessionStorage.removeItem('TOPLEVELPERMISSIONS')
|
|
282
|
+
if (type === '1') {
|
|
283
|
+
this.$router.push({ name: 'account'})
|
|
284
|
+
} else if (type === '2') {
|
|
285
|
+
this.showSloModal()
|
|
286
|
+
} else if (type === '3') {
|
|
287
|
+
this.$router.push(this.generateLogoutRoute)
|
|
288
|
+
}
|
|
289
|
+
},
|
|
290
|
+
|
|
276
291
|
showSloModal() {
|
|
277
292
|
this.$store.dispatch('management/promptModal', {
|
|
278
293
|
component: 'SloDialog',
|
|
@@ -398,15 +413,19 @@ export default {
|
|
|
398
413
|
</script>
|
|
399
414
|
|
|
400
415
|
<template>
|
|
416
|
+
|
|
417
|
+
<!-- 整个页面的顶部 header -->
|
|
401
418
|
<header
|
|
402
419
|
ref="header"
|
|
403
420
|
data-testid="header"
|
|
404
421
|
>
|
|
405
422
|
<div>
|
|
423
|
+
|
|
424
|
+
<!-- 顶部一级菜单(根据不同产品/集群条件决定是否显示) -->
|
|
406
425
|
<TopLevelMenu v-if="isRancherInHarvester || isMultiCluster || !isSingleProduct" />
|
|
407
426
|
</div>
|
|
408
427
|
|
|
409
|
-
<div
|
|
428
|
+
<!-- <div
|
|
410
429
|
class="menu-spacer"
|
|
411
430
|
:class="{'isSingleProduct': isSingleProduct }"
|
|
412
431
|
>
|
|
@@ -525,24 +544,55 @@ export default {
|
|
|
525
544
|
:alt="t('branding.logos.label')"
|
|
526
545
|
/>
|
|
527
546
|
</div>
|
|
528
|
-
</div>
|
|
547
|
+
</div> -->
|
|
529
548
|
|
|
549
|
+
<!-- ===== 左侧 logo 区域 ===== -->
|
|
550
|
+
<div class="menu-spacer">
|
|
551
|
+
<!-- 如果是单产品模式且不是 RancherInHarvester,就显示 logo 路由跳转 -->
|
|
552
|
+
<router-link
|
|
553
|
+
v-if="isSingleProduct && !isRancherInHarvester"
|
|
554
|
+
:to="singleProductLogoRoute"
|
|
555
|
+
>
|
|
556
|
+
|
|
557
|
+
<!-- 显示用户头像或 logo 图片 -->
|
|
558
|
+
<img
|
|
559
|
+
:src="userIcon"
|
|
560
|
+
>
|
|
561
|
+
</router-link>
|
|
562
|
+
</div>
|
|
563
|
+
|
|
564
|
+
<!-- ===== 中间占位符(把左右内容分开) ===== -->
|
|
530
565
|
<div class="spacer" />
|
|
531
566
|
|
|
567
|
+
<!-- ===== 右侧功能区域 ===== -->
|
|
532
568
|
<div class="rd-header-right">
|
|
569
|
+
|
|
570
|
+
<!-- 动态插入右侧自定义组件(例如插件扩展的 header) -->
|
|
533
571
|
<component :is="navHeaderRight" />
|
|
572
|
+
|
|
573
|
+
<!-- ===== 集群/命名空间过滤器 ===== -->
|
|
534
574
|
<div
|
|
535
575
|
v-if="showFilter"
|
|
536
576
|
class="top"
|
|
537
577
|
>
|
|
578
|
+
|
|
579
|
+
<!-- 如果集群就绪 + 当前产品支持命名空间过滤器 或 Explorer 模式 -->
|
|
538
580
|
<NamespaceFilter v-if="clusterReady && currentProduct && (currentProduct.showNamespaceFilter || isExplorer)" />
|
|
539
|
-
|
|
581
|
+
|
|
582
|
+
<!-- 否则显示工作空间切换器 -->
|
|
583
|
+
<WorkspaceSwitcher v-else-if="clusterReady && currentProduct && currentProduct.showWorkspaceSwitcher" />
|
|
540
584
|
</div>
|
|
585
|
+
|
|
586
|
+
<!-- ===== 集群相关按钮(仅在有集群且不是 simple 模式下显示) ===== -->
|
|
541
587
|
<div
|
|
542
588
|
v-if="currentCluster && !simple"
|
|
543
589
|
class="header-buttons"
|
|
544
590
|
>
|
|
591
|
+
|
|
592
|
+
<!-- 如果当前产品支持集群切换器 -->
|
|
545
593
|
<template v-if="currentProduct && currentProduct.showClusterSwitcher">
|
|
594
|
+
|
|
595
|
+
<!-- 导入 YAML 按钮 -->
|
|
546
596
|
<button
|
|
547
597
|
v-if="showImportYaml"
|
|
548
598
|
v-clean-tooltip="t('nav.import')"
|
|
@@ -575,6 +625,7 @@ export default {
|
|
|
575
625
|
<i class="icon icon-terminal icon-lg" />
|
|
576
626
|
</button>
|
|
577
627
|
|
|
628
|
+
<!-- 下载 kubeconfig 按钮 -->
|
|
578
629
|
<button
|
|
579
630
|
v-if="showKubeConfig"
|
|
580
631
|
v-clean-tooltip="t('nav.kubeconfig.download')"
|
|
@@ -590,6 +641,7 @@ export default {
|
|
|
590
641
|
<i class="icon icon-file icon-lg" />
|
|
591
642
|
</button>
|
|
592
643
|
|
|
644
|
+
<!-- 复制 kubeconfig 按钮 -->
|
|
593
645
|
<button
|
|
594
646
|
v-if="showCopyConfig"
|
|
595
647
|
v-clean-tooltip="t('nav.kubeconfig.copy')"
|
|
@@ -602,10 +654,14 @@ export default {
|
|
|
602
654
|
:aria-label="t('nav.kubeconfig.copy')"
|
|
603
655
|
@click="copyKubeConfig($event)"
|
|
604
656
|
>
|
|
657
|
+
|
|
658
|
+
<!-- 点击复制后显示对勾 -->
|
|
605
659
|
<i
|
|
606
660
|
v-if="kubeConfigCopying"
|
|
607
661
|
class="icon icon-checkmark icon-lg"
|
|
608
662
|
/>
|
|
663
|
+
|
|
664
|
+
<!-- 未复制状态显示复制图标 -->
|
|
609
665
|
<i
|
|
610
666
|
v-else
|
|
611
667
|
class="icon icon-copy icon-lg"
|
|
@@ -613,6 +669,7 @@ export default {
|
|
|
613
669
|
</button>
|
|
614
670
|
</template>
|
|
615
671
|
|
|
672
|
+
<!-- 资源搜索按钮 -->
|
|
616
673
|
<button
|
|
617
674
|
v-if="showSearch"
|
|
618
675
|
id="header-btn-search"
|
|
@@ -629,9 +686,22 @@ export default {
|
|
|
629
686
|
>
|
|
630
687
|
<i class="icon icon-search icon-lg" />
|
|
631
688
|
</button>
|
|
689
|
+
|
|
690
|
+
<!-- 搜索弹窗 -->
|
|
691
|
+
<app-modal
|
|
692
|
+
v-if="showSearch && showSearchModal"
|
|
693
|
+
class="search-modal"
|
|
694
|
+
name="searchModal"
|
|
695
|
+
width="50%"
|
|
696
|
+
height="auto"
|
|
697
|
+
:trigger-focus-trap="true"
|
|
698
|
+
return-focus-selector="#header-btn-search"
|
|
699
|
+
@close="hideSearch()"
|
|
700
|
+
>
|
|
701
|
+
</app-modal>
|
|
632
702
|
</div>
|
|
633
703
|
|
|
634
|
-
<!--
|
|
704
|
+
<!-- ===== 插件扩展按钮区 ===== -->
|
|
635
705
|
<div
|
|
636
706
|
v-if="extensionHeaderActions.length"
|
|
637
707
|
class="header-buttons"
|
|
@@ -647,7 +717,7 @@ export default {
|
|
|
647
717
|
:data-testid="`extension-header-action-${ action.labelKey || action.label }`"
|
|
648
718
|
role="button"
|
|
649
719
|
tabindex="0"
|
|
650
|
-
:aria-label="action.
|
|
720
|
+
:aria-label="action.label"
|
|
651
721
|
@shortkey="handleExtensionAction(action, $event)"
|
|
652
722
|
@click="handleExtensionAction(action, $event)"
|
|
653
723
|
>
|
|
@@ -655,26 +725,28 @@ export default {
|
|
|
655
725
|
class="icon icon-lg"
|
|
656
726
|
:icon="action.icon"
|
|
657
727
|
:src="action.svg"
|
|
658
|
-
:img-alt="action.tooltipKey ? t(action.tooltipKey) : action.labelKey ? t(action.labelKey) : action.label ? action.label : t('generic.imageAlt')"
|
|
659
728
|
color="header"
|
|
660
729
|
/>
|
|
661
730
|
</button>
|
|
662
731
|
</div>
|
|
663
732
|
|
|
733
|
+
<!-- ===== 用户菜单(右上角头像 + 下拉) ===== -->
|
|
664
734
|
<div class="center-self">
|
|
665
735
|
<header-page-action-menu v-if="showPageActions" />
|
|
666
|
-
|
|
736
|
+
|
|
667
737
|
<rc-dropdown
|
|
668
738
|
v-if="showUserMenu"
|
|
669
739
|
:aria-label="t('nav.userMenu.label')"
|
|
670
740
|
>
|
|
741
|
+
|
|
742
|
+
<!-- 头像触发按钮 -->
|
|
671
743
|
<rc-dropdown-trigger
|
|
672
744
|
ghost
|
|
673
745
|
small
|
|
674
746
|
data-testid="nav_header_showUserMenu"
|
|
675
747
|
:aria-label="t('nav.userMenu.button.label')"
|
|
676
748
|
>
|
|
677
|
-
<img
|
|
749
|
+
<!-- <img
|
|
678
750
|
v-if="principal && principal.avatarSrc"
|
|
679
751
|
:src="principal.avatarSrc"
|
|
680
752
|
:class="{'avatar-round': principal.roundAvatar}"
|
|
@@ -685,10 +757,14 @@ export default {
|
|
|
685
757
|
<i
|
|
686
758
|
v-else
|
|
687
759
|
class="icon icon-user icon-3x avatar"
|
|
688
|
-
/>
|
|
760
|
+
/> -->
|
|
761
|
+
<i class="icon icon-usericon" style="padding-bottom: 5px;" />
|
|
762
|
+
<span class="login-name">{{ principal.loginName }}</span>
|
|
689
763
|
</rc-dropdown-trigger>
|
|
764
|
+
|
|
765
|
+
<!-- 下拉菜单内容 -->
|
|
690
766
|
<template #dropdownCollection>
|
|
691
|
-
<template v-if="authEnabled">
|
|
767
|
+
<!-- <template v-if="authEnabled">
|
|
692
768
|
<div class="user-info">
|
|
693
769
|
<div class="user-name">
|
|
694
770
|
<i class="icon icon-lg icon-user" /> {{ principal.loginName }}
|
|
@@ -700,28 +776,34 @@ export default {
|
|
|
700
776
|
</div>
|
|
701
777
|
</div>
|
|
702
778
|
<rc-dropdown-separator />
|
|
703
|
-
</template>
|
|
704
|
-
<rc-dropdown-item
|
|
779
|
+
</template> -->
|
|
780
|
+
<!-- <rc-dropdown-item
|
|
705
781
|
v-if="showPreferencesLink"
|
|
706
782
|
@click="$router.push({ name: 'prefs'})"
|
|
707
783
|
>
|
|
708
784
|
{{ t('nav.userMenu.preferences') }}
|
|
709
|
-
</rc-dropdown-item>
|
|
785
|
+
</rc-dropdown-item> -->
|
|
786
|
+
|
|
787
|
+
<!-- 退出登录(支持 SLO 弹窗) -->
|
|
710
788
|
<rc-dropdown-item
|
|
711
789
|
v-if="showAccountAndApiKeyLink"
|
|
712
|
-
@click="
|
|
790
|
+
@click="LogOutfn('1')"
|
|
713
791
|
>
|
|
714
792
|
{{ t('nav.userMenu.accountAndKeys', {}, true) }}
|
|
715
793
|
</rc-dropdown-item>
|
|
794
|
+
|
|
795
|
+
<!-- 普通退出登录 -->
|
|
716
796
|
<rc-dropdown-item
|
|
717
797
|
v-if="authEnabled && shouldShowSloLogoutModal"
|
|
718
|
-
@click="
|
|
798
|
+
@click="LogOutfn('2')"
|
|
719
799
|
>
|
|
720
800
|
{{ t('nav.userMenu.logOut') }}
|
|
721
801
|
</rc-dropdown-item>
|
|
802
|
+
|
|
803
|
+
<!-- 普通退出登录 -->
|
|
722
804
|
<rc-dropdown-item
|
|
723
805
|
v-else-if="authEnabled"
|
|
724
|
-
@click="
|
|
806
|
+
@click="LogOutfn('3')"
|
|
725
807
|
>
|
|
726
808
|
{{ t('nav.userMenu.logOut') }}
|
|
727
809
|
</rc-dropdown-item>
|
|
@@ -739,6 +821,7 @@ export default {
|
|
|
739
821
|
HEADER {
|
|
740
822
|
display: flex;
|
|
741
823
|
z-index: z-index('mainHeader');
|
|
824
|
+
box-shadow: 0px 3px 3px 1px rgba(0,0,0,0.12);
|
|
742
825
|
|
|
743
826
|
> .spacer {
|
|
744
827
|
flex: 1;
|
|
@@ -856,7 +939,7 @@ export default {
|
|
|
856
939
|
|
|
857
940
|
> * {
|
|
858
941
|
background-color: var(--header-bg);
|
|
859
|
-
border-bottom: var(--header-border-size) solid var(--header-border);
|
|
942
|
+
/* border-bottom: var(--header-border-size) solid var(--header-border); */
|
|
860
943
|
}
|
|
861
944
|
|
|
862
945
|
.rd-header-right {
|
|
@@ -869,7 +952,7 @@ export default {
|
|
|
869
952
|
}
|
|
870
953
|
|
|
871
954
|
> .top {
|
|
872
|
-
padding-top:
|
|
955
|
+
padding-top: 10px;
|
|
873
956
|
|
|
874
957
|
INPUT[type='search']::placeholder,
|
|
875
958
|
.vs__open-indicator,
|
|
@@ -906,6 +989,8 @@ export default {
|
|
|
906
989
|
// Spacing between header buttons
|
|
907
990
|
.btn:not(:last-of-type) {
|
|
908
991
|
margin-right: 10px;
|
|
992
|
+
width: 30px;
|
|
993
|
+
min-width: 30px;
|
|
909
994
|
}
|
|
910
995
|
|
|
911
996
|
.btn:focus {
|
|
@@ -927,6 +1012,8 @@ export default {
|
|
|
927
1012
|
|
|
928
1013
|
.header-btn {
|
|
929
1014
|
width: 40px;
|
|
1015
|
+
display: flex;
|
|
1016
|
+
align-items: center;
|
|
930
1017
|
}
|
|
931
1018
|
|
|
932
1019
|
:deep() div .btn.role-tertiary {
|
|
@@ -934,19 +1021,21 @@ export default {
|
|
|
934
1021
|
border: none;
|
|
935
1022
|
background: var(--header-btn-bg);
|
|
936
1023
|
color: var(--header-btn-text);
|
|
937
|
-
padding: 0 10px;
|
|
1024
|
+
padding: 0 15px 0 10px;
|
|
938
1025
|
line-height: 32px;
|
|
939
1026
|
min-height: 32px;
|
|
1027
|
+
width: 30px;
|
|
1028
|
+
min-width: 30px;
|
|
940
1029
|
|
|
941
1030
|
i {
|
|
942
1031
|
// Ideally same height as the parent button, but this means tooltip needs adjusting (which is it's own can of worms)
|
|
943
1032
|
line-height: 20px;
|
|
944
1033
|
}
|
|
945
1034
|
|
|
946
|
-
&:hover {
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
}
|
|
1035
|
+
// &:hover {
|
|
1036
|
+
// background: var(--primary);
|
|
1037
|
+
// color: #fff;
|
|
1038
|
+
// }
|
|
950
1039
|
|
|
951
1040
|
&[disabled=disabled] {
|
|
952
1041
|
background-color: rgba(0,0,0,0.25) !important;
|
|
@@ -989,7 +1078,7 @@ export default {
|
|
|
989
1078
|
|
|
990
1079
|
> .user {
|
|
991
1080
|
outline: none;
|
|
992
|
-
width: var(--header-height);
|
|
1081
|
+
/* width: var(--header-height); */
|
|
993
1082
|
|
|
994
1083
|
.v-popper {
|
|
995
1084
|
display: flex;
|
|
@@ -1003,6 +1092,10 @@ export default {
|
|
|
1003
1092
|
.user-image {
|
|
1004
1093
|
display: flex;
|
|
1005
1094
|
align-items: center;
|
|
1095
|
+
&:hover{
|
|
1096
|
+
color: var(--primary);
|
|
1097
|
+
}
|
|
1098
|
+
|
|
1006
1099
|
}
|
|
1007
1100
|
|
|
1008
1101
|
&:focus {
|
|
@@ -1025,7 +1118,6 @@ export default {
|
|
|
1025
1118
|
> .center-self {
|
|
1026
1119
|
align-self: center;
|
|
1027
1120
|
display: flex;
|
|
1028
|
-
gap: 1rem;
|
|
1029
1121
|
align-items: center;
|
|
1030
1122
|
padding-right: 1rem;
|
|
1031
1123
|
}
|
|
@@ -1131,5 +1223,10 @@ export default {
|
|
|
1131
1223
|
}
|
|
1132
1224
|
}
|
|
1133
1225
|
}
|
|
1134
|
-
|
|
1226
|
+
.login-name{
|
|
1227
|
+
font-size: 14px;
|
|
1228
|
+
margin-left: 5px;
|
|
1229
|
+
// margin-top: 5px;
|
|
1230
|
+
line-height: 20px;
|
|
1231
|
+
}
|
|
1135
1232
|
</style>
|
|
@@ -949,7 +949,6 @@ export default {
|
|
|
949
949
|
.ns-filter {
|
|
950
950
|
width: 280px;
|
|
951
951
|
display: inline-block;
|
|
952
|
-
border-radius: var(--border-radius);
|
|
953
952
|
|
|
954
953
|
.ns-glass {
|
|
955
954
|
top: 0;
|
|
@@ -968,15 +967,19 @@ export default {
|
|
|
968
967
|
}
|
|
969
968
|
|
|
970
969
|
.ns-clear {
|
|
971
|
-
padding: 0 5px;
|
|
972
970
|
&:hover {
|
|
973
971
|
color: var(--primary);
|
|
972
|
+
cursor: pointer;
|
|
974
973
|
}
|
|
975
974
|
}
|
|
976
975
|
|
|
977
976
|
.ns-singleton-info, .ns-clear {
|
|
978
977
|
align-items: center;
|
|
979
978
|
display: flex;
|
|
979
|
+
> i {
|
|
980
|
+
padding-right: 5px;
|
|
981
|
+
font-size: 10px;
|
|
982
|
+
}
|
|
980
983
|
}
|
|
981
984
|
|
|
982
985
|
.ns-input {
|
|
@@ -987,26 +990,24 @@ export default {
|
|
|
987
990
|
|
|
988
991
|
.ns-filter-input {
|
|
989
992
|
height: 24px;
|
|
993
|
+
border: 1px solid #d7d7d7;
|
|
994
|
+
padding: 0px 5px;
|
|
990
995
|
}
|
|
991
996
|
|
|
992
997
|
.ns-filter-clear {
|
|
993
998
|
cursor: pointer;
|
|
994
999
|
position: absolute;
|
|
995
1000
|
right: 10px;
|
|
996
|
-
top:
|
|
1001
|
+
top: 5px;
|
|
997
1002
|
line-height: 24px;
|
|
998
1003
|
text-align: center;
|
|
999
|
-
width:
|
|
1000
|
-
min-height: 14px;
|
|
1001
|
-
}
|
|
1002
|
-
|
|
1003
|
-
.ns-chip-button {
|
|
1004
|
-
min-height: 14px;
|
|
1004
|
+
width: 24px;
|
|
1005
1005
|
}
|
|
1006
1006
|
|
|
1007
1007
|
.ns-dropdown-menu {
|
|
1008
1008
|
background-color: var(--header-bg);
|
|
1009
|
-
border: 1px solid var(--primary-border);
|
|
1009
|
+
/* border: 1px solid var(--primary-border); */
|
|
1010
|
+
border: 1px solid #d7d7d7;;
|
|
1010
1011
|
border-bottom-left-radius: var(--border-radius);
|
|
1011
1012
|
border-bottom-right-radius: var(--border-radius);
|
|
1012
1013
|
color: var(--header-btn-text);
|
|
@@ -1026,10 +1027,10 @@ export default {
|
|
|
1026
1027
|
}
|
|
1027
1028
|
|
|
1028
1029
|
.ns-divider {
|
|
1029
|
-
border-top: 1px solid var(--border);
|
|
1030
|
+
/* border-top: 1px solid var(--border); */
|
|
1030
1031
|
cursor: default;
|
|
1031
|
-
margin-top: 10px;
|
|
1032
|
-
padding-bottom: 10px;
|
|
1032
|
+
/* margin-top: 10px; */
|
|
1033
|
+
/* padding-bottom: 10px; */
|
|
1033
1034
|
}
|
|
1034
1035
|
|
|
1035
1036
|
.ns-option {
|
|
@@ -1069,7 +1070,7 @@ export default {
|
|
|
1069
1070
|
&.ns-selected:not(:hover) {
|
|
1070
1071
|
.ns-item {
|
|
1071
1072
|
> * {
|
|
1072
|
-
color: var(--primary);
|
|
1073
|
+
/* color: var(--primary); */
|
|
1073
1074
|
}
|
|
1074
1075
|
}
|
|
1075
1076
|
|
|
@@ -1122,7 +1123,7 @@ export default {
|
|
|
1122
1123
|
border-radius: var(--border-radius);
|
|
1123
1124
|
color: var(--header-btn-text);
|
|
1124
1125
|
cursor: pointer;
|
|
1125
|
-
height:
|
|
1126
|
+
height: 32px;
|
|
1126
1127
|
padding: 0 10px;
|
|
1127
1128
|
position: relative;
|
|
1128
1129
|
z-index: z-index('dropdownOverlay');
|
|
@@ -1130,7 +1131,8 @@ export default {
|
|
|
1130
1131
|
&.ns-open {
|
|
1131
1132
|
border-bottom-left-radius: 0;
|
|
1132
1133
|
border-bottom-right-radius: 0;
|
|
1133
|
-
border-color: var(--primary-border);
|
|
1134
|
+
/* border-color: var(--primary-border); */
|
|
1135
|
+
border-color: #d7d7d7;
|
|
1134
1136
|
}
|
|
1135
1137
|
|
|
1136
1138
|
> .ns-values {
|
|
@@ -1169,12 +1171,13 @@ export default {
|
|
|
1169
1171
|
border-radius: 5px;
|
|
1170
1172
|
color: var(--tag-text);
|
|
1171
1173
|
display: flex;
|
|
1172
|
-
line-height: 20px;
|
|
1174
|
+
/* line-height: 20px; */
|
|
1173
1175
|
padding: 2px 5px;
|
|
1174
1176
|
white-space: nowrap;
|
|
1175
1177
|
|
|
1176
1178
|
> i {
|
|
1177
1179
|
margin-left: 5px;
|
|
1180
|
+
font-size: 8px;
|
|
1178
1181
|
|
|
1179
1182
|
&:hover {
|
|
1180
1183
|
color: var(--primary);
|