dashboard-shell-shell 3.0.5-test.6 → 3.0.5-test.61
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/csp/favicon.png +0 -0
- 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 +219 -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/iconsNew/demo.css +539 -0
- package/assets/iconsNew/demo.css:Zone.Identifier +0 -0
- package/assets/iconsNew/demo_index.html +303 -0
- package/assets/iconsNew/demo_index.html:Zone.Identifier +0 -0
- package/assets/iconsNew/iconfont.css +43 -0
- package/assets/iconsNew/iconfont.css:Zone.Identifier +0 -0
- package/assets/iconsNew/iconfont.js +1 -0
- package/assets/iconsNew/iconfont.js:Zone.Identifier +0 -0
- package/assets/iconsNew/iconfont.json +44 -0
- package/assets/iconsNew/iconfont.json:Zone.Identifier +0 -0
- package/assets/iconsNew/iconfont.ttf +0 -0
- package/assets/iconsNew/iconfont.ttf:Zone.Identifier +0 -0
- package/assets/iconsNew/iconfont.woff +0 -0
- package/assets/iconsNew/iconfont.woff2 +0 -0
- package/assets/iconsNew/iconfont.woff2:Zone.Identifier +0 -0
- package/assets/iconsNew/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 +44 -0
- package/assets/images/logo.png +0 -0
- package/assets/images/logo.svg +47 -0
- package/assets/images/pl/dark/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 +83 -0
- package/assets/styles/app.scss +5 -0
- package/assets/styles/base/_basic.scss +2 -2
- package/assets/styles/base/_helpers.scss +1 -1
- 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/fonts/_icons.scss +3 -2
- package/assets/styles/global/_button.scss +44 -26
- package/assets/styles/global/_columns.scss +3 -1
- package/assets/styles/global/_form.scss +46 -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 +60 -8
- package/assets/styles/themes/_dark.scss +3 -0
- package/assets/styles/themes/_light.scss +69 -46
- package/assets/styles/vendor/vue-select.scss +24 -10
- package/assets/translations/en-us.yaml +92 -4
- package/assets/translations/zh-hans.yaml +668 -206
- 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 +28 -4
- package/components/ButtonMultiAction.vue +1 -0
- package/components/ClusterIconMenu.vue +2 -2
- package/components/CodeMirror.vue +26 -10
- package/components/ConsumptionGauge.vue +24 -5
- package/components/ContainerResourceLimit.vue +2 -2
- package/components/CopyToClipboard.vue +15 -0
- package/components/CruResource.vue +12 -10
- 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 +30 -27
- package/components/Drawer/ResourceDetailDrawer/YamlTab.vue +1 -1
- package/components/Drawer/ResourceDetailDrawer/index.vue +5 -4
- package/components/ExplorerMembers.vue +28 -4
- package/components/ExplorerProjectsNamespaces.vue +19 -5
- package/components/GlobalRoleBindings.vue +23 -4
- 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 +2 -2
- package/components/PromptModal.vue +1 -1
- package/components/PromptRemove.vue +53 -12
- package/components/RelatedResources.vue +3 -0
- 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/composables.ts +16 -1
- package/components/Resource/Detail/TitleBar/index.vue +125 -27
- package/components/ResourceDetail/Masthead/index.vue +1 -1
- package/components/ResourceDetail/Masthead/latest.vue +1 -1
- package/components/ResourceDetail/Masthead/legacy.vue +183 -39
- package/components/ResourceDetail/legacy.vue +47 -29
- package/components/ResourceList/Masthead.vue +222 -54
- package/components/ResourceList/ResourceLoadingIndicator.vue +5 -2
- package/components/ResourceTable.vue +40 -2
- package/components/SideNav.vue +74 -20
- package/components/SingleClusterInfo.vue +2 -1
- package/components/SortableTable/THead.vue +79 -4
- package/components/SortableTable/index.vue +1053 -464
- 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 +53 -30
- package/components/YamlEditor.vue +0 -1
- package/components/auth/Principal.vue +51 -19
- package/components/auth/RoleDetailEdit.vue +69 -14
- package/components/auth/SelectPrincipal.vue +1 -0
- package/components/breadcrumb/index.vue +119 -0
- package/components/form/ArrayList.vue +177 -152
- package/components/form/ArrayListGrouped.vue +13 -3
- package/components/form/ArrayListSelect.vue +1 -1
- package/components/form/BannerSettings.vue +64 -59
- package/components/form/ChangePassword.vue +5 -5
- package/components/form/ClusterAppearance.vue +4 -3
- package/components/form/ColorInput.vue +32 -8
- package/components/form/Command.vue +4 -5
- package/components/form/Conditions.vue +15 -1
- package/components/form/Footer.vue +12 -8
- package/components/form/HealthCheck.vue +0 -2
- package/components/form/HookOption.vue +87 -58
- package/components/form/InputWithSelect.vue +8 -4
- package/components/form/KeyValue.vue +66 -8
- package/components/form/LabeledSelect.vue +216 -242
- package/components/form/Labels.vue +4 -4
- package/components/form/MatchExpressions.vue +28 -11
- package/components/form/Members/ClusterMembershipEditor.vue +1 -1
- package/components/form/Members/ClusterPermissionsEditor.vue +61 -43
- package/components/form/Members/MembershipEditor.vue +4 -4
- package/components/form/Members/ProjectMembershipEditor.vue +1 -1
- package/components/form/NameNsDescription.vue +62 -22
- package/components/form/Networking.vue +6 -9
- package/components/form/NodeAffinity.vue +29 -28
- package/components/form/Password.vue +16 -7
- package/components/form/PodAffinity.vue +24 -25
- package/components/form/Probe.vue +15 -11
- package/components/form/ProjectMemberEditor.vue +66 -48
- package/components/form/ResourceQuota/Namespace.vue +4 -4
- package/components/form/ResourceQuota/NamespaceRow.vue +26 -23
- package/components/form/ResourceQuota/Project.vue +4 -4
- package/components/form/ResourceQuota/ProjectRow.vue +38 -35
- package/components/form/ResourceSelector.vue +1 -1
- package/components/form/SecretSelector.vue +24 -23
- package/components/form/Security.vue +1 -3
- package/components/form/Select.vue +12 -3
- package/components/form/ServiceNameSelect.vue +2 -5
- package/components/form/ServicePorts.vue +149 -75
- package/components/form/SimpleSecretSelector.vue +29 -9
- package/components/form/Taints.vue +2 -1
- package/components/form/Tolerations.vue +13 -9
- package/components/form/UnitInput.vue +8 -3
- package/components/form/ValueFromResource.vue +110 -96
- package/components/form/WorkloadPorts.vue +143 -123
- package/components/formatter/BadgeStateFormatter.vue +8 -5
- package/components/formatter/LiveDate.vue +3 -3
- package/components/formatter/WorkloadHealthScale.vue +4 -3
- package/components/nav/Favorite.vue +5 -1
- package/components/nav/Group.vue +139 -99
- package/components/nav/Header.vue +138 -164
- package/components/nav/HeaderPageActionMenu.vue +1 -0
- package/components/nav/NamespaceFilter.vue +34 -36
- package/components/nav/TopLevelMenu.vue +62 -25
- package/components/nav/Type.vue +73 -43
- package/composables/useClickOutside.ts +1 -1
- package/config/menuRouteMap.js +10 -0
- package/config/private-label.js +14 -11
- package/config/product/auth.js +17 -7
- package/config/product/explorer.js +32 -10
- package/config/product/manager.js +28 -17
- package/config/product/settings.js +19 -9
- package/config/product/uiplugins.js +13 -10
- package/config/router/navigation-guards/index.js +61 -3
- package/config/settings.ts +28 -0
- package/config/table-headers.js +3 -2
- package/detail/node.vue +28 -23
- package/dialog/AddCustomBadgeDialog.vue +17 -9
- package/dialog/ForceMachineRemoveDialog.vue +2 -2
- package/dialog/RollbackWorkloadDialog.vue +1 -1
- package/dialog/ScalePoolDownDialog.vue +2 -2
- package/edit/autoscaling.horizontalpodautoscaler/external-metric.vue +1 -1
- package/edit/autoscaling.horizontalpodautoscaler/hpa-scaling-rule.vue +9 -6
- package/edit/autoscaling.horizontalpodautoscaler/index.vue +3 -1
- package/edit/autoscaling.horizontalpodautoscaler/metric-identifier.vue +2 -2
- package/edit/autoscaling.horizontalpodautoscaler/metric-object-reference.vue +7 -5
- package/edit/autoscaling.horizontalpodautoscaler/metric-target.vue +5 -3
- package/edit/autoscaling.horizontalpodautoscaler/metrics-row.vue +2 -2
- package/edit/autoscaling.horizontalpodautoscaler/object-metric.vue +2 -2
- package/edit/autoscaling.horizontalpodautoscaler/pod-metric.vue +1 -1
- package/edit/autoscaling.horizontalpodautoscaler/resource-metric.vue +2 -2
- package/edit/configmap.vue +4 -0
- package/edit/logging-flow/index.vue +1 -2
- package/edit/logging.banzaicloud.io.output/providers/awsElasticsearch.vue +3 -3
- package/edit/logging.banzaicloud.io.output/providers/azurestorage.vue +19 -19
- package/edit/logging.banzaicloud.io.output/providers/cloudwatch.vue +23 -23
- package/edit/logging.banzaicloud.io.output/providers/datadog.vue +19 -19
- package/edit/logging.banzaicloud.io.output/providers/elasticsearch.vue +14 -14
- package/edit/logging.banzaicloud.io.output/providers/forward.vue +12 -12
- package/edit/logging.banzaicloud.io.output/providers/gcs.vue +23 -23
- package/edit/logging.banzaicloud.io.output/providers/gelf.vue +6 -6
- package/edit/logging.banzaicloud.io.output/providers/kafka.vue +10 -10
- package/edit/logging.banzaicloud.io.output/providers/kinesisStream.vue +8 -8
- package/edit/logging.banzaicloud.io.output/providers/logdna.vue +17 -17
- package/edit/logging.banzaicloud.io.output/providers/logz.vue +7 -7
- package/edit/logging.banzaicloud.io.output/providers/loki.vue +12 -12
- package/edit/logging.banzaicloud.io.output/providers/newrelic.vue +3 -3
- package/edit/logging.banzaicloud.io.output/providers/opensearch.vue +14 -14
- package/edit/logging.banzaicloud.io.output/providers/redis.vue +6 -6
- package/edit/logging.banzaicloud.io.output/providers/s3.vue +23 -23
- package/edit/logging.banzaicloud.io.output/providers/splunkHec.vue +13 -13
- package/edit/logging.banzaicloud.io.output/providers/sumologic.vue +2 -2
- package/edit/logging.banzaicloud.io.output/providers/syslog.vue +54 -54
- 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 +50 -26
- package/edit/monitoring.coreos.com.alertmanagerconfig/routeConfig.vue +36 -12
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/dingding.vue +32 -0
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/email.vue +6 -6
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/message.vue +52 -0
- 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/snmp.vue +45 -0
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/webhook.vue +1 -1
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/work.vue +31 -0
- 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/networking.k8s.io.ingress/Certificate.vue +14 -5
- package/edit/networking.k8s.io.ingress/DefaultBackend.vue +2 -2
- package/edit/networking.k8s.io.ingress/Rule.vue +5 -11
- package/edit/networking.k8s.io.ingress/RulePath.vue +105 -96
- package/edit/networking.k8s.io.networkpolicy/PolicyRule.vue +3 -3
- package/edit/networking.k8s.io.networkpolicy/PolicyRulePort.vue +4 -2
- package/edit/networking.k8s.io.networkpolicy/PolicyRuleTarget.vue +12 -11
- package/edit/networking.k8s.io.networkpolicy/index.vue +1 -1
- package/edit/persistentvolume/index.vue +3 -1
- package/edit/persistentvolumeclaim.vue +2 -0
- package/edit/provisioning.cattle.io.cluster/tabs/Basics.vue +1 -1
- package/edit/secret/index.vue +2 -2
- package/edit/service.vue +4 -1
- package/edit/storage.k8s.io.storageclass/index.vue +10 -8
- package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/aws-ebs.vue +34 -27
- package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/gce-pd.vue +15 -13
- package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/vsphere-volume.vue +41 -39
- package/edit/token.vue +31 -12
- package/edit/workload/Job.vue +31 -34
- package/edit/workload/Upgrading.vue +5 -5
- package/edit/workload/index.vue +22 -18
- package/edit/workload/storage/Mount.vue +1 -0
- package/edit/workload/storage/awsElasticBlockStore.vue +9 -7
- package/edit/workload/storage/azureDisk.vue +14 -10
- package/edit/workload/storage/azureFile.vue +9 -7
- package/edit/workload/storage/csi/index.vue +6 -9
- package/edit/workload/storage/emptyDir.vue +7 -5
- package/edit/workload/storage/gcePersistentDisk.vue +9 -7
- package/edit/workload/storage/hostPath.vue +7 -5
- package/edit/workload/storage/nfs.vue +8 -6
- package/edit/workload/storage/persistentVolumeClaim/index.vue +12 -10
- package/edit/workload/storage/persistentVolumeClaim/persistentvolumeclaim.vue +20 -15
- package/edit/workload/storage/secret.vue +9 -6
- package/edit/workload/storage/vsphereVolume.vue +11 -7
- package/initialize/app-extended.js +7 -1
- package/list/management.cattle.io.podsecurityadmissionconfigurationtemplate.vue +8 -6
- 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/mixins/create-edit-view/impl.js +10 -0
- package/models/provisioning.cattle.io.cluster.js +19 -18
- package/models/workload.js +2 -2
- package/package.json +1 -1
- package/pages/account/index.vue +93 -58
- package/pages/account/pri.vue +229 -0
- package/pages/auth/login.vue +216 -51
- package/pages/auth/setup.vue +175 -33
- package/pages/c/_cluster/_product/namespaces.vue +5 -5
- package/pages/c/_cluster/auth/roles/index.vue +83 -8
- package/pages/c/_cluster/explorer/ConfigBadge.vue +1 -1
- package/pages/c/_cluster/explorer/index.vue +2 -1
- package/pages/c/_cluster/explorer/tools/index.vue +6 -6
- 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 +119 -37
- package/pages/prefs.vue +27 -25
- package/pkg/tsconfig.json +9 -9
- package/pkg/vue.config.js +1 -1
- package/plugins/dashboard-store/actions.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 +25 -9
- 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 +22 -6
- package/rancher-components/Form/TextArea/TextAreaAutoGrow.vue +3 -3
- package/rancher-components/Form/ToggleSwitch/ToggleSwitch.vue +1 -0
- package/rancher-components/LabeledTooltip/LabeledTooltip.vue +41 -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/build-pkg.sh +18 -23
- 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 +6 -2
- package/store/modal.ts +3 -3
- package/store/prefs.js +11 -4
- package/store/type-map.js +30 -2
- package/types/shell/index.d.ts +86 -97
- package/utils/error.js +109 -8
- package/utils/errorTranslate.json +1740 -0
- package/utils/errorTranslateNew.json +39 -0
- package/utils/roleFiltering.js +33 -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
|
@@ -748,7 +748,7 @@ export default {
|
|
|
748
748
|
data-testid="namespaces-values-label"
|
|
749
749
|
class="ns-values"
|
|
750
750
|
>
|
|
751
|
-
{{ value[0].label }}
|
|
751
|
+
{{ value[0].label.replace('harvester', 'cloud') }}
|
|
752
752
|
</div>
|
|
753
753
|
|
|
754
754
|
<!-- All the selected namespaces -->
|
|
@@ -774,20 +774,18 @@ export default {
|
|
|
774
774
|
:data-testid="`namespaces-value-${j}`"
|
|
775
775
|
class="ns-value"
|
|
776
776
|
>
|
|
777
|
-
<div>{{ ns.label }}</div>
|
|
777
|
+
<div>{{ ns.label.replace('harvester', 'cloud') }}</div>
|
|
778
778
|
<!-- block user from removing the last selection if ns forced filtering is on -->
|
|
779
|
-
<
|
|
779
|
+
<i
|
|
780
780
|
v-if="!namespaceFilterMode || value.length > 1"
|
|
781
781
|
small
|
|
782
782
|
ghost
|
|
783
|
-
class="ns-chip-button"
|
|
783
|
+
class="ns-chip-button icon icon-close"
|
|
784
784
|
:data-testid="`namespaces-values-close-${j}`"
|
|
785
785
|
@click="removeOption(ns, $event)"
|
|
786
786
|
@keydown.enter.space.stop="removeOption(ns, $event)"
|
|
787
787
|
@mousedown="handleValueMouseDown(ns, $event)"
|
|
788
|
-
|
|
789
|
-
<i class="icon icon-close" />
|
|
790
|
-
</RcButton>
|
|
788
|
+
/>
|
|
791
789
|
</div>
|
|
792
790
|
</div>
|
|
793
791
|
|
|
@@ -836,19 +834,15 @@ export default {
|
|
|
836
834
|
@click="focusFilter"
|
|
837
835
|
@keydown="inputKeyHandler($event)"
|
|
838
836
|
>
|
|
839
|
-
<
|
|
837
|
+
<i
|
|
840
838
|
v-if="hasFilter"
|
|
841
839
|
small
|
|
842
840
|
ghost
|
|
843
|
-
class="ns-filter-clear"
|
|
841
|
+
class="ns-filter-clear icon icon-close"
|
|
844
842
|
:aria-label="t('namespaceFilter.button.clearFilter')"
|
|
845
843
|
@click="clearFilter"
|
|
846
844
|
@keydown.enter.stop="clearFilter"
|
|
847
|
-
|
|
848
|
-
<i
|
|
849
|
-
class="icon icon-close"
|
|
850
|
-
/>
|
|
851
|
-
</RcButton>
|
|
845
|
+
/>
|
|
852
846
|
</div>
|
|
853
847
|
<div
|
|
854
848
|
v-if="namespaceFilterMode"
|
|
@@ -859,7 +853,7 @@ export default {
|
|
|
859
853
|
class="icon icon-info"
|
|
860
854
|
/>
|
|
861
855
|
</div>
|
|
862
|
-
<
|
|
856
|
+
<div
|
|
863
857
|
v-else
|
|
864
858
|
small
|
|
865
859
|
ghost
|
|
@@ -871,8 +865,9 @@ export default {
|
|
|
871
865
|
>
|
|
872
866
|
<i
|
|
873
867
|
class="icon icon-close"
|
|
868
|
+
@click="clear()"
|
|
874
869
|
/>
|
|
875
|
-
</
|
|
870
|
+
</div>
|
|
876
871
|
</div>
|
|
877
872
|
<div class="ns-divider mt-0" />
|
|
878
873
|
<div
|
|
@@ -889,12 +884,12 @@ export default {
|
|
|
889
884
|
v-for="(opt, i) in cachedFiltered"
|
|
890
885
|
:key="opt.id"
|
|
891
886
|
>
|
|
892
|
-
<
|
|
887
|
+
<div
|
|
893
888
|
v-if="opt.kind === NAMESPACE_FILTER_KINDS.DIVIDER"
|
|
894
889
|
role="separator"
|
|
895
890
|
aria-orientation="horizontal"
|
|
896
891
|
class="ns-divider"
|
|
897
|
-
|
|
892
|
+
/>
|
|
898
893
|
<div
|
|
899
894
|
v-else
|
|
900
895
|
:id="opt.elementId"
|
|
@@ -919,7 +914,7 @@ export default {
|
|
|
919
914
|
v-if="opt.kind === NAMESPACE_FILTER_KINDS.NAMESPACE"
|
|
920
915
|
class="icon icon-folder"
|
|
921
916
|
/>
|
|
922
|
-
<div>{{ opt.label }}</div>
|
|
917
|
+
<div>{{ opt.label.replace('harvester', 'cloud') }}</div>
|
|
923
918
|
<i
|
|
924
919
|
v-if="opt.selected"
|
|
925
920
|
class="icon icon-checkmark"
|
|
@@ -949,7 +944,6 @@ export default {
|
|
|
949
944
|
.ns-filter {
|
|
950
945
|
width: 280px;
|
|
951
946
|
display: inline-block;
|
|
952
|
-
border-radius: var(--border-radius);
|
|
953
947
|
|
|
954
948
|
.ns-glass {
|
|
955
949
|
top: 0;
|
|
@@ -968,15 +962,19 @@ export default {
|
|
|
968
962
|
}
|
|
969
963
|
|
|
970
964
|
.ns-clear {
|
|
971
|
-
padding: 0 5px;
|
|
972
965
|
&:hover {
|
|
973
966
|
color: var(--primary);
|
|
967
|
+
cursor: pointer;
|
|
974
968
|
}
|
|
975
969
|
}
|
|
976
970
|
|
|
977
971
|
.ns-singleton-info, .ns-clear {
|
|
978
972
|
align-items: center;
|
|
979
973
|
display: flex;
|
|
974
|
+
> i {
|
|
975
|
+
padding-right: 5px;
|
|
976
|
+
font-size: 10px;
|
|
977
|
+
}
|
|
980
978
|
}
|
|
981
979
|
|
|
982
980
|
.ns-input {
|
|
@@ -987,26 +985,24 @@ export default {
|
|
|
987
985
|
|
|
988
986
|
.ns-filter-input {
|
|
989
987
|
height: 24px;
|
|
988
|
+
border: 1px solid #d7d7d7;
|
|
989
|
+
padding: 0px 5px;
|
|
990
990
|
}
|
|
991
991
|
|
|
992
992
|
.ns-filter-clear {
|
|
993
993
|
cursor: pointer;
|
|
994
994
|
position: absolute;
|
|
995
995
|
right: 10px;
|
|
996
|
-
top:
|
|
996
|
+
top: 5px;
|
|
997
997
|
line-height: 24px;
|
|
998
998
|
text-align: center;
|
|
999
|
-
width:
|
|
1000
|
-
min-height: 14px;
|
|
1001
|
-
}
|
|
1002
|
-
|
|
1003
|
-
.ns-chip-button {
|
|
1004
|
-
min-height: 14px;
|
|
999
|
+
width: 24px;
|
|
1005
1000
|
}
|
|
1006
1001
|
|
|
1007
1002
|
.ns-dropdown-menu {
|
|
1008
1003
|
background-color: var(--header-bg);
|
|
1009
|
-
border: 1px solid var(--primary-border);
|
|
1004
|
+
/* border: 1px solid var(--primary-border); */
|
|
1005
|
+
border: 1px solid #d7d7d7;;
|
|
1010
1006
|
border-bottom-left-radius: var(--border-radius);
|
|
1011
1007
|
border-bottom-right-radius: var(--border-radius);
|
|
1012
1008
|
color: var(--header-btn-text);
|
|
@@ -1026,10 +1022,10 @@ export default {
|
|
|
1026
1022
|
}
|
|
1027
1023
|
|
|
1028
1024
|
.ns-divider {
|
|
1029
|
-
border-top: 1px solid var(--border);
|
|
1025
|
+
/* border-top: 1px solid var(--border); */
|
|
1030
1026
|
cursor: default;
|
|
1031
|
-
margin-top: 10px;
|
|
1032
|
-
padding-bottom: 10px;
|
|
1027
|
+
/* margin-top: 10px; */
|
|
1028
|
+
/* padding-bottom: 10px; */
|
|
1033
1029
|
}
|
|
1034
1030
|
|
|
1035
1031
|
.ns-option {
|
|
@@ -1069,7 +1065,7 @@ export default {
|
|
|
1069
1065
|
&.ns-selected:not(:hover) {
|
|
1070
1066
|
.ns-item {
|
|
1071
1067
|
> * {
|
|
1072
|
-
color: var(--primary);
|
|
1068
|
+
/* color: var(--primary); */
|
|
1073
1069
|
}
|
|
1074
1070
|
}
|
|
1075
1071
|
|
|
@@ -1122,7 +1118,7 @@ export default {
|
|
|
1122
1118
|
border-radius: var(--border-radius);
|
|
1123
1119
|
color: var(--header-btn-text);
|
|
1124
1120
|
cursor: pointer;
|
|
1125
|
-
height:
|
|
1121
|
+
height: 32px;
|
|
1126
1122
|
padding: 0 10px;
|
|
1127
1123
|
position: relative;
|
|
1128
1124
|
z-index: z-index('dropdownOverlay');
|
|
@@ -1130,7 +1126,8 @@ export default {
|
|
|
1130
1126
|
&.ns-open {
|
|
1131
1127
|
border-bottom-left-radius: 0;
|
|
1132
1128
|
border-bottom-right-radius: 0;
|
|
1133
|
-
border-color: var(--primary-border);
|
|
1129
|
+
/* border-color: var(--primary-border); */
|
|
1130
|
+
border-color: #d7d7d7;
|
|
1134
1131
|
}
|
|
1135
1132
|
|
|
1136
1133
|
> .ns-values {
|
|
@@ -1169,12 +1166,13 @@ export default {
|
|
|
1169
1166
|
border-radius: 5px;
|
|
1170
1167
|
color: var(--tag-text);
|
|
1171
1168
|
display: flex;
|
|
1172
|
-
line-height: 20px;
|
|
1169
|
+
/* line-height: 20px; */
|
|
1173
1170
|
padding: 2px 5px;
|
|
1174
1171
|
white-space: nowrap;
|
|
1175
1172
|
|
|
1176
1173
|
> i {
|
|
1177
1174
|
margin-left: 5px;
|
|
1175
|
+
font-size: 8px;
|
|
1178
1176
|
|
|
1179
1177
|
&:hover {
|
|
1180
1178
|
color: var(--primary);
|
|
@@ -471,12 +471,14 @@ export default {
|
|
|
471
471
|
|
|
472
472
|
<template>
|
|
473
473
|
<div>
|
|
474
|
-
<!--
|
|
474
|
+
<!-- ====================== 遮罩层(点击可关闭菜单) ====================== -->
|
|
475
475
|
<div
|
|
476
476
|
v-if="shown"
|
|
477
477
|
class="side-menu-glass"
|
|
478
478
|
@click="hide()"
|
|
479
479
|
/>
|
|
480
|
+
|
|
481
|
+
<!-- ====================== 菜单主容器(带淡入淡出过渡) ====================== -->
|
|
480
482
|
<transition name="fade">
|
|
481
483
|
<!-- Side menu -->
|
|
482
484
|
<div
|
|
@@ -487,8 +489,11 @@ export default {
|
|
|
487
489
|
role="navigation"
|
|
488
490
|
:aria-label="t('nav.ariaLabel.topLevelMenu')"
|
|
489
491
|
>
|
|
490
|
-
|
|
492
|
+
|
|
493
|
+
<!-- ====================== 菜单头部(Logo + 菜单按钮) ====================== -->
|
|
491
494
|
<div class="title">
|
|
495
|
+
|
|
496
|
+
<!-- 菜单按钮(汉堡图标) -->
|
|
492
497
|
<div
|
|
493
498
|
data-testid="top-level-menu"
|
|
494
499
|
:aria-label="t('nav.expandCollapseAppBar')"
|
|
@@ -499,6 +504,8 @@ export default {
|
|
|
499
504
|
@keyup.space="toggle()"
|
|
500
505
|
@click="toggle()"
|
|
501
506
|
>
|
|
507
|
+
|
|
508
|
+
<!-- 汉堡菜单SVG图标 -->
|
|
502
509
|
<svg
|
|
503
510
|
class="menu-icon"
|
|
504
511
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -511,19 +518,22 @@ export default {
|
|
|
511
518
|
fill="none"
|
|
512
519
|
/><path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z" /></svg>
|
|
513
520
|
</div>
|
|
521
|
+
|
|
522
|
+
<!-- 品牌Logo -->
|
|
514
523
|
<div class="side-menu-logo">
|
|
515
524
|
<BrandImage
|
|
516
525
|
data-testid="side-menu__brand-img"
|
|
517
526
|
:alt="t('nav.alt.mainMenuRancherLogo')"
|
|
518
|
-
file-name="
|
|
527
|
+
file-name="logo.png"
|
|
519
528
|
/>
|
|
520
529
|
</div>
|
|
521
530
|
</div>
|
|
522
531
|
|
|
523
|
-
<!--
|
|
532
|
+
<!-- ====================== 菜单内容区 ====================== -->
|
|
524
533
|
<div class="body">
|
|
525
534
|
<div>
|
|
526
|
-
|
|
535
|
+
|
|
536
|
+
<!-- 首页按钮 -->
|
|
527
537
|
<div @click="hide()">
|
|
528
538
|
<router-link
|
|
529
539
|
class="option cluster selector home"
|
|
@@ -531,6 +541,8 @@ export default {
|
|
|
531
541
|
role="link"
|
|
532
542
|
:aria-label="t('nav.ariaLabel.homePage')"
|
|
533
543
|
>
|
|
544
|
+
|
|
545
|
+
<!-- 首页图标 -->
|
|
534
546
|
<svg
|
|
535
547
|
v-clean-tooltip="getTooltipConfig(t('nav.home'))"
|
|
536
548
|
class="top-menu-icon"
|
|
@@ -547,12 +559,14 @@ export default {
|
|
|
547
559
|
</div>
|
|
548
560
|
</router-link>
|
|
549
561
|
</div>
|
|
550
|
-
|
|
562
|
+
|
|
563
|
+
<!-- 集群搜索框 -->
|
|
551
564
|
<div
|
|
552
565
|
v-if="showClusterSearch"
|
|
553
566
|
class="clusters-search"
|
|
554
567
|
>
|
|
555
568
|
<div class="clusters-search-count">
|
|
569
|
+
<!-- 当前搜索到的集群数量 -->
|
|
556
570
|
<span>{{ clusterFilterCount }}</span>
|
|
557
571
|
{{ t('nav.search.clusters') }}
|
|
558
572
|
<i
|
|
@@ -571,10 +585,14 @@ export default {
|
|
|
571
585
|
:tabindex="!shown ? -1 : 0"
|
|
572
586
|
:aria-label="t('nav.search.ariaLabel')"
|
|
573
587
|
>
|
|
588
|
+
|
|
589
|
+
<!-- 搜索图标 -->
|
|
574
590
|
<i
|
|
575
591
|
class="magnifier icon icon-search"
|
|
576
592
|
:class="{ active: clusterFilter }"
|
|
577
593
|
/>
|
|
594
|
+
|
|
595
|
+
<!-- 清空按钮 -->
|
|
578
596
|
<i
|
|
579
597
|
v-if="clusterFilter"
|
|
580
598
|
class="icon icon-close"
|
|
@@ -584,9 +602,11 @@ export default {
|
|
|
584
602
|
</div>
|
|
585
603
|
</div>
|
|
586
604
|
|
|
587
|
-
<!-- Harvester
|
|
605
|
+
<!-- ====================== Harvester 相关功能区 ====================== -->
|
|
588
606
|
<template v-if="hciApps.length">
|
|
589
607
|
<div class="category" />
|
|
608
|
+
|
|
609
|
+
<!-- 跳转 Harvester Dashboard -->
|
|
590
610
|
<div>
|
|
591
611
|
<a
|
|
592
612
|
v-if="isRancherInHarvester"
|
|
@@ -602,6 +622,8 @@ export default {
|
|
|
602
622
|
</div>
|
|
603
623
|
</a>
|
|
604
624
|
</div>
|
|
625
|
+
|
|
626
|
+
<!-- Harvester 应用列表 -->
|
|
605
627
|
<div
|
|
606
628
|
v-for="(a, i) in appBar.hciApps"
|
|
607
629
|
:key="i"
|
|
@@ -624,14 +646,14 @@ export default {
|
|
|
624
646
|
</div>
|
|
625
647
|
</template>
|
|
626
648
|
|
|
627
|
-
<!--
|
|
649
|
+
<!-- ====================== 集群列表 ====================== -->
|
|
628
650
|
<template v-if="!!allClustersCount">
|
|
629
651
|
<div
|
|
630
652
|
ref="clusterList"
|
|
631
653
|
class="clusters"
|
|
632
654
|
:style="pinnedClustersHeight"
|
|
633
655
|
>
|
|
634
|
-
<!--
|
|
656
|
+
<!-- 已固定集群 -->
|
|
635
657
|
<div
|
|
636
658
|
v-if="showPinClusters && pinFiltered.length"
|
|
637
659
|
class="clustersPinned"
|
|
@@ -642,11 +664,13 @@ export default {
|
|
|
642
664
|
:data-testid="`pinned-ready-cluster-${index}`"
|
|
643
665
|
@click="hide()"
|
|
644
666
|
>
|
|
645
|
-
|
|
667
|
+
|
|
668
|
+
<!-- 可用集群按钮 -->
|
|
669
|
+
<span
|
|
646
670
|
v-if="c.ready"
|
|
647
671
|
v-shortkey.push="{windows: ['alt'], mac: ['option']}"
|
|
648
672
|
:data-testid="`pinned-menu-cluster-${ c.id }`"
|
|
649
|
-
class="cluster selector option"
|
|
673
|
+
class="clusterBtn cluster selector option"
|
|
650
674
|
:class="{'active-menu-link': c.isMenuActive }"
|
|
651
675
|
:to="c.clusterRoute"
|
|
652
676
|
role="button"
|
|
@@ -676,7 +700,9 @@ export default {
|
|
|
676
700
|
:cluster="c"
|
|
677
701
|
:tab-order="shown ? 0 : -1"
|
|
678
702
|
/>
|
|
679
|
-
</
|
|
703
|
+
</span>
|
|
704
|
+
|
|
705
|
+
<!-- 不可用集群 -->
|
|
680
706
|
<span
|
|
681
707
|
v-else
|
|
682
708
|
class="option cluster selector disabled"
|
|
@@ -705,6 +731,8 @@ export default {
|
|
|
705
731
|
/>
|
|
706
732
|
</span>
|
|
707
733
|
</div>
|
|
734
|
+
|
|
735
|
+
<!-- 分割线 -->
|
|
708
736
|
<div
|
|
709
737
|
v-if="clustersFiltered.length > 0"
|
|
710
738
|
class="category-title"
|
|
@@ -713,7 +741,7 @@ export default {
|
|
|
713
741
|
</div>
|
|
714
742
|
</div>
|
|
715
743
|
|
|
716
|
-
<!--
|
|
744
|
+
<!-- 搜索结果集群列表 -->
|
|
717
745
|
<div class="clustersList">
|
|
718
746
|
<div
|
|
719
747
|
v-for="(c, index) in appBar.clustersFiltered"
|
|
@@ -721,11 +749,13 @@ export default {
|
|
|
721
749
|
:data-testid="`top-level-menu-cluster-${index}`"
|
|
722
750
|
@click="hide()"
|
|
723
751
|
>
|
|
724
|
-
|
|
752
|
+
|
|
753
|
+
<!-- 可用集群 -->
|
|
754
|
+
<span
|
|
725
755
|
v-if="c.ready"
|
|
726
756
|
v-shortkey.push="{windows: ['alt'], mac: ['option']}"
|
|
727
757
|
:data-testid="`menu-cluster-${ c.id }`"
|
|
728
|
-
class="cluster selector option"
|
|
758
|
+
class="cluster selector option clusterBtn"
|
|
729
759
|
:class="{'active-menu-link': c.isMenuActive }"
|
|
730
760
|
:to="c.clusterRoute"
|
|
731
761
|
role="button"
|
|
@@ -756,7 +786,9 @@ export default {
|
|
|
756
786
|
:tab-order="shown ? 0 : -1"
|
|
757
787
|
:cluster="c"
|
|
758
788
|
/>
|
|
759
|
-
</
|
|
789
|
+
</span>
|
|
790
|
+
|
|
791
|
+
<!-- 不可用集群 -->
|
|
760
792
|
<span
|
|
761
793
|
v-else
|
|
762
794
|
class="option cluster selector disabled"
|
|
@@ -788,7 +820,7 @@ export default {
|
|
|
788
820
|
</div>
|
|
789
821
|
</div>
|
|
790
822
|
|
|
791
|
-
<!--
|
|
823
|
+
<!-- 无匹配集群提示 -->
|
|
792
824
|
<div
|
|
793
825
|
v-if="clustersFiltered.length === 0 && searchActive"
|
|
794
826
|
data-testid="top-level-menu-no-results"
|
|
@@ -817,8 +849,9 @@ export default {
|
|
|
817
849
|
</router-link>
|
|
818
850
|
</template>
|
|
819
851
|
|
|
820
|
-
<!--
|
|
852
|
+
<!-- ====================== 多集群应用区 ====================== -->
|
|
821
853
|
<div class="category">
|
|
854
|
+
<!-- 多集群应用 -->
|
|
822
855
|
<template v-if="multiClusterApps.length">
|
|
823
856
|
<div
|
|
824
857
|
class="category-title"
|
|
@@ -834,6 +867,7 @@ export default {
|
|
|
834
867
|
@click="hide()"
|
|
835
868
|
>
|
|
836
869
|
<router-link
|
|
870
|
+
v-if="a.value !== 'fleet'"
|
|
837
871
|
class="option"
|
|
838
872
|
:class="{'active-menu-link': a.isMenuActive }"
|
|
839
873
|
:to="a.to"
|
|
@@ -890,7 +924,7 @@ export default {
|
|
|
890
924
|
<div
|
|
891
925
|
class="footer"
|
|
892
926
|
>
|
|
893
|
-
<div
|
|
927
|
+
<!-- <div
|
|
894
928
|
v-if="canEditSettings"
|
|
895
929
|
class="support"
|
|
896
930
|
@click="hide()"
|
|
@@ -915,7 +949,7 @@ export default {
|
|
|
915
949
|
>
|
|
916
950
|
{{ aboutText }}
|
|
917
951
|
</router-link>
|
|
918
|
-
</div>
|
|
952
|
+
</div> -->
|
|
919
953
|
</div>
|
|
920
954
|
</div>
|
|
921
955
|
</transition>
|
|
@@ -973,6 +1007,10 @@ export default {
|
|
|
973
1007
|
$option-padding-left: 14px;
|
|
974
1008
|
$option-height: $icon-size + $option-padding + $option-padding;
|
|
975
1009
|
|
|
1010
|
+
.clusterBtn {
|
|
1011
|
+
background-color: var(--nav-icon-badge-bg);
|
|
1012
|
+
}
|
|
1013
|
+
|
|
976
1014
|
.side-menu {
|
|
977
1015
|
.menu {
|
|
978
1016
|
position: absolute;
|
|
@@ -1069,7 +1107,6 @@ export default {
|
|
|
1069
1107
|
flex: 1;
|
|
1070
1108
|
display: flex;
|
|
1071
1109
|
flex-direction: column;
|
|
1072
|
-
margin: 10px 0;
|
|
1073
1110
|
width: 300px;
|
|
1074
1111
|
overflow: auto;
|
|
1075
1112
|
|
|
@@ -1077,7 +1114,7 @@ export default {
|
|
|
1077
1114
|
align-items: center;
|
|
1078
1115
|
cursor: pointer;
|
|
1079
1116
|
display: flex;
|
|
1080
|
-
color: var(--
|
|
1117
|
+
color: var(--primary);
|
|
1081
1118
|
font-size: 14px;
|
|
1082
1119
|
height: $option-height;
|
|
1083
1120
|
white-space: nowrap;
|
|
@@ -1087,7 +1124,7 @@ export default {
|
|
|
1087
1124
|
border: none;
|
|
1088
1125
|
|
|
1089
1126
|
.cluster-badge-logo-text {
|
|
1090
|
-
color: var(--
|
|
1127
|
+
color: var(--primary);
|
|
1091
1128
|
font-weight: 500;
|
|
1092
1129
|
}
|
|
1093
1130
|
|
|
@@ -1159,7 +1196,7 @@ export default {
|
|
|
1159
1196
|
.rancher-provider-icon,
|
|
1160
1197
|
svg {
|
|
1161
1198
|
margin-right: 16px;
|
|
1162
|
-
fill: var(--
|
|
1199
|
+
fill: var(--primary);
|
|
1163
1200
|
}
|
|
1164
1201
|
|
|
1165
1202
|
.top-menu-icon {
|
|
@@ -1581,7 +1618,7 @@ export default {
|
|
|
1581
1618
|
}
|
|
1582
1619
|
|
|
1583
1620
|
:deep() .v-popper__arrow-container {
|
|
1584
|
-
display: none;
|
|
1621
|
+
display: none !important;
|
|
1585
1622
|
}
|
|
1586
1623
|
|
|
1587
1624
|
:deep() .v-popper:focus {
|