dashboard-shell-shell 1.0.1000000117 → 1.0.1000000118
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/styles/base/_functions.scss +0 -0
- package/assets/styles/base/_mixins.scss +1 -1
- package/assets/styles/global/_button.scss +10 -17
- package/assets/styles/global/_form.scss +2 -2
- package/assets/styles/global/_labeled-input.scss +2 -6
- package/assets/styles/global/_select.scss +7 -6
- package/assets/styles/global/_table.scss +2 -3
- package/assets/styles/global/_tooltip.scss +1 -8
- package/assets/styles/themes/_dark.scss +0 -2
- package/assets/styles/themes/_light.scss +2 -5
- package/assets/styles/vendor/vue-select.scss +1 -2
- package/assets/translations/en-us.yaml +3 -1
- package/assets/translations/zh-hans.yaml +28 -51
- package/components/ActionDropdown.vue +0 -1
- package/components/ActionMenuShell.vue +3 -6
- package/components/BrandImage.vue +0 -22
- package/components/ClusterIconMenu.vue +1 -1
- package/components/CodeMirror.vue +0 -1
- package/components/CruResource.vue +1 -1
- package/components/CruResourceFooter.vue +1 -1
- package/components/ExplorerProjectsNamespaces.vue +24 -4
- package/components/GlobalRoleBindings.vue +48 -112
- package/components/IndentedPanel.vue +10 -4
- package/components/PromptRemove.vue +3 -3
- package/components/ResourceDetail/Masthead.vue +242 -190
- package/components/ResourceDetail/index.vue +5 -20
- package/components/ResourceList/Masthead.vue +84 -146
- package/components/ResourceList/ResourceLoadingIndicator.vue +2 -5
- package/components/ResourceTable.vue +1 -76
- package/components/SideNav.vue +29 -66
- package/components/SortableTable/THead.vue +0 -6
- package/components/SortableTable/index.vue +388 -481
- package/components/Tabbed/index.vue +5 -4
- package/components/auth/Principal.vue +2 -3
- package/components/auth/RoleDetailEdit.vue +5 -58
- package/components/auth/SelectPrincipal.vue +0 -1
- package/components/form/BannerSettings.vue +16 -18
- package/components/form/ChangePassword.vue +4 -4
- package/components/form/ColorInput.vue +8 -32
- package/components/form/Footer.vue +1 -1
- package/components/form/InputWithSelect.vue +0 -2
- package/components/form/KeyValue.vue +7 -31
- package/components/form/LabeledSelect.vue +178 -178
- package/components/form/Members/ClusterPermissionsEditor.vue +2 -1
- package/components/form/Members/MembershipEditor.vue +1 -1
- package/components/form/NameNsDescription.vue +11 -24
- package/components/form/Password.vue +2 -6
- package/components/form/ResourceQuota/Namespace.vue +1 -1
- package/components/form/ResourceQuota/NamespaceRow.vue +10 -13
- package/components/form/ResourceQuota/ProjectRow.vue +1 -0
- package/components/form/Select.vue +2 -2
- package/components/nav/Favorite.vue +1 -5
- package/components/nav/Group.vue +23 -69
- package/components/nav/Header.vue +17 -82
- package/components/nav/HeaderPageActionMenu.vue +0 -1
- package/components/nav/NamespaceFilter.vue +3 -0
- package/components/nav/TopLevelMenu.vue +119 -182
- package/components/nav/Type.vue +11 -48
- package/components/rancherResourceDetail/Masthead.vue +769 -0
- package/components/rancherResourceDetail/__tests__/Masthead.test.ts +65 -0
- package/components/rancherResourceDetail/index.vue +591 -0
- package/components/rancherResourceList/Masthead.vue +375 -0
- package/components/rancherResourceList/ResourceLoadingIndicator.vue +140 -0
- package/components/rancherResourceList/index.vue +307 -0
- package/components/rancherResourceList/resource-list.config.js +7 -0
- package/components/rancherResourceTable.vue +783 -0
- package/components/rancherSortableTable/THead.vue +561 -0
- package/components/rancherSortableTable/actions.js +153 -0
- package/components/rancherSortableTable/advanced-filtering.js +272 -0
- package/components/rancherSortableTable/debug.js +117 -0
- package/components/rancherSortableTable/filtering.js +290 -0
- package/components/rancherSortableTable/grouping.js +48 -0
- package/components/rancherSortableTable/index.vue +2712 -0
- package/components/rancherSortableTable/paging.js +155 -0
- package/components/rancherSortableTable/selection.js +629 -0
- package/components/rancherSortableTable/sortable-config.ts +4 -0
- package/components/rancherSortableTable/sorting.js +129 -0
- package/composables/useClickOutside.ts +1 -1
- package/config/product/auth.js +7 -16
- package/config/product/explorer.js +1 -1
- package/config/product/settings.js +8 -17
- package/config/settings.ts +0 -28
- package/edit/management.cattle.io.user.vue +4 -17
- package/edit/networking.k8s.io.ingress/RulePath.vue +1 -1
- package/edit/token.vue +1 -1
- package/list/harvesterhci.io.management.cluster.vue +0 -17
- package/list/management.cattle.io.setting.vue +13 -22
- package/list/management.cattle.io.user.vue +14 -25
- package/list/provisioning.cattle.io.cluster.vue +7 -6
- package/mixins/brand.js +0 -17
- package/package.json +1 -1
- package/pages/auth/login.vue +29 -84
- package/pages/c/_cluster/auth/roles/index.vue +14 -61
- package/pages/c/_cluster/settings/banners.vue +101 -174
- package/pages/c/_cluster/settings/brand.vue +301 -348
- package/pages/c/_cluster/settings/performance.vue +38 -61
- package/pages/home.vue +21 -70
- package/pages/prefs.vue +23 -25
- package/pkg/tsconfig.json +9 -9
- package/pkg/vue.config.js +1 -1
- package/promptRemove/mixin/roleDeletionCheck.js +2 -2
- package/scripts/clean +0 -0
- package/scripts/extension/bundle +0 -0
- package/scripts/extension/helm/scripts/package +0 -0
- package/scripts/extension/helm/scripts/patch +0 -0
- package/scripts/extension/helm/scripts/version +0 -0
- package/scripts/extension/helmpatch +0 -0
- package/scripts/extension/parse-tag-name +0 -0
- package/scripts/extension/publish +0 -0
- package/scripts/publish-shell.sh +60 -86
- package/scripts/serve-pkgs +0 -0
- package/scripts/sync-shell-deps +0 -0
- package/scripts/typegen.sh +28 -44
- package/store/i18n.js +5 -5
- package/store/prefs.js +5 -17
- package/store/type-map.js +1 -2
- package/types/cloud-shell/index.d.ts +11014 -0
- package/types/shell/index.d.ts +1 -1
- package/utils/error.js +0 -4
- package/utils/router.js +3 -3
- package/vue.config.js +6 -1
- package/assets/images/action.svg +0 -6
- package/assets/images/pl/logo.png +0 -0
- /package/components/{ResourceList → rancherResourceList}/Masthead-btn.vue +0 -0
|
File without changes
|
|
@@ -159,5 +159,5 @@
|
|
|
159
159
|
@mixin focus-outline {
|
|
160
160
|
// Focus for form like elements (not to be confused with basic :focus style)
|
|
161
161
|
// we need to use !important because it needs to superseed other classes that might impact outlines
|
|
162
|
-
|
|
162
|
+
outline: 2px solid var(--primary-keyboard-focus);
|
|
163
163
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
$btn-padding: 0 10px;
|
|
1
|
+
$btn-padding: 0 10px 0 10px;
|
|
2
2
|
$btn-sm-padding: 0 7px 0 7px;
|
|
3
3
|
$btn-height: 32px;
|
|
4
4
|
$btn-sm-height: 32px;
|
|
@@ -20,14 +20,13 @@ button,
|
|
|
20
20
|
-ms-user-select: none;
|
|
21
21
|
user-select: none;
|
|
22
22
|
border: 0;
|
|
23
|
-
padding: $btn-padding;
|
|
23
|
+
// padding: $btn-padding;
|
|
24
24
|
border-radius: var(--border-radius);
|
|
25
|
-
|
|
25
|
+
color: var(--lightest);
|
|
26
26
|
line-height: $btn-height !important;
|
|
27
27
|
height: $btn-height !important;
|
|
28
28
|
min-width: 100px;
|
|
29
29
|
justify-content: center;
|
|
30
|
-
|
|
31
30
|
|
|
32
31
|
> .icon:not(:only-child) {
|
|
33
32
|
margin-right: 6px;
|
|
@@ -35,7 +34,7 @@ button,
|
|
|
35
34
|
|
|
36
35
|
&:hover {
|
|
37
36
|
text-decoration: none;
|
|
38
|
-
|
|
37
|
+
color: var(--lightest);
|
|
39
38
|
}
|
|
40
39
|
|
|
41
40
|
&.bg-transparent {
|
|
@@ -43,10 +42,6 @@ button,
|
|
|
43
42
|
}
|
|
44
43
|
}
|
|
45
44
|
|
|
46
|
-
.bg-primary {
|
|
47
|
-
color: var(--lightest);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
45
|
//icon button
|
|
51
46
|
.icon-btn {
|
|
52
47
|
padding: 0;
|
|
@@ -68,7 +63,7 @@ button,
|
|
|
68
63
|
padding: $btn-sm-padding;
|
|
69
64
|
min-height: $btn-sm-height;
|
|
70
65
|
line-height: 32px;
|
|
71
|
-
|
|
66
|
+
width: 100px;
|
|
72
67
|
}
|
|
73
68
|
|
|
74
69
|
//btn roles
|
|
@@ -99,11 +94,10 @@ button,
|
|
|
99
94
|
// border: solid 1px var(--primary);
|
|
100
95
|
border: solid 1px #d9d9d9;
|
|
101
96
|
line-height: $btn-height - 2px;
|
|
102
|
-
|
|
97
|
+
width: 100px;
|
|
103
98
|
|
|
104
99
|
&:hover, &._hover {
|
|
105
|
-
|
|
106
|
-
color: var(--input-label) !important;
|
|
100
|
+
color: var(--lightest) !important;
|
|
107
101
|
box-shadow: 0 4px 6px 0 rgba(0,0,0,.2)!important;
|
|
108
102
|
}
|
|
109
103
|
|
|
@@ -111,8 +105,7 @@ button,
|
|
|
111
105
|
background: transparent;
|
|
112
106
|
box-shadow: 0 4px 6px 0 rgba(0,0,0,.2)!important;
|
|
113
107
|
// background-color: var(--primary-hover-bg);
|
|
114
|
-
|
|
115
|
-
color: var(--input-label) !important;
|
|
108
|
+
color: var(--lightest) !important;
|
|
116
109
|
// color: var(--primary-text) !important;
|
|
117
110
|
}
|
|
118
111
|
|
|
@@ -169,8 +162,8 @@ button,
|
|
|
169
162
|
}
|
|
170
163
|
|
|
171
164
|
.role-multi-action {
|
|
172
|
-
|
|
173
|
-
|
|
165
|
+
// background: var(--accent-btn);
|
|
166
|
+
border: solid thin var(--primary);
|
|
174
167
|
color: var(--primary) !important;
|
|
175
168
|
border-radius: 2px;
|
|
176
169
|
min-width: 32px;
|
|
@@ -20,11 +20,11 @@ TEXTAREA,
|
|
|
20
20
|
box-sizing: border-box;
|
|
21
21
|
width: 100%;
|
|
22
22
|
// padding: 4px 11px;
|
|
23
|
+
// background-color: var(--input-bg);
|
|
23
24
|
// border-radius: var(--border-radius);
|
|
25
|
+
// border: solid var(--border-width) var(--input-border);
|
|
24
26
|
|
|
25
27
|
color: var(--input-text);
|
|
26
|
-
background-color: var(--input-bg);
|
|
27
|
-
border: solid var(--border-width) var(--input-border);
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
@include input-status-color;
|
|
@@ -10,7 +10,6 @@
|
|
|
10
10
|
|
|
11
11
|
&.compact-input {
|
|
12
12
|
min-height: $unlabeled-input-height;
|
|
13
|
-
// padding: 0 10px;
|
|
14
13
|
|
|
15
14
|
INPUT.no-label {
|
|
16
15
|
line-height: $input-line-height;
|
|
@@ -74,7 +73,7 @@
|
|
|
74
73
|
padding: 0 0 0 0;
|
|
75
74
|
// line-height: calc(#{$input-line-height} + 1px);
|
|
76
75
|
line-height: calc(29px + 1px);
|
|
77
|
-
|
|
76
|
+
border: solid var(--border-width) var(--input-border);
|
|
78
77
|
padding: 0px 11px;
|
|
79
78
|
box-sizing: border-box;
|
|
80
79
|
border-radius: 2px;
|
|
@@ -123,10 +122,7 @@
|
|
|
123
122
|
font-weight: normal;
|
|
124
123
|
line-height: 1;
|
|
125
124
|
text-align: center;
|
|
126
|
-
|
|
127
|
-
top: 5px;
|
|
128
|
-
right: 5px;
|
|
129
|
-
// background-color: #fff;
|
|
125
|
+
background-color: #fff;
|
|
130
126
|
}
|
|
131
127
|
}
|
|
132
128
|
|
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
cursor: text;
|
|
3
3
|
padding: 0;
|
|
4
4
|
width: 100%;
|
|
5
|
-
|
|
5
|
+
&:hover{
|
|
6
|
+
box-shadow: 0 4px 6px 0 var(--input-border-box-shadow);
|
|
7
|
+
}
|
|
6
8
|
.selected {
|
|
7
9
|
padding-top: $input-padding-lg;
|
|
8
10
|
}
|
|
@@ -21,7 +23,7 @@
|
|
|
21
23
|
.labeled-select,
|
|
22
24
|
.unlabeled-select {
|
|
23
25
|
min-width: 75px;
|
|
24
|
-
|
|
26
|
+
height: 32px;
|
|
25
27
|
width: $input-width;
|
|
26
28
|
|
|
27
29
|
.required {
|
|
@@ -104,8 +106,7 @@
|
|
|
104
106
|
width: unset !important;
|
|
105
107
|
|
|
106
108
|
&:not(:only-child) {
|
|
107
|
-
margin-bottom:
|
|
108
|
-
margin-top: 2px;
|
|
109
|
+
margin-bottom: 3px;
|
|
109
110
|
}
|
|
110
111
|
}
|
|
111
112
|
}
|
|
@@ -166,7 +167,7 @@
|
|
|
166
167
|
height: 100%;
|
|
167
168
|
|
|
168
169
|
.vs__dropdown-toggle {
|
|
169
|
-
|
|
170
|
+
height: 100%;
|
|
170
171
|
}
|
|
171
172
|
.vs__actions {
|
|
172
173
|
width: auto;
|
|
@@ -196,6 +197,6 @@
|
|
|
196
197
|
}
|
|
197
198
|
|
|
198
199
|
.labeled-tooltip .status-icon {
|
|
199
|
-
|
|
200
|
+
top: $input-padding-sm;
|
|
200
201
|
}
|
|
201
202
|
}
|
|
@@ -126,7 +126,6 @@
|
|
|
126
126
|
border-radius: var(--border-radius-lg);
|
|
127
127
|
|
|
128
128
|
.v-popper__inner {
|
|
129
|
-
border-radius: 4px;
|
|
130
129
|
background: $color;
|
|
131
130
|
color: var(--popover-text);
|
|
132
131
|
padding: 10px;
|
|
@@ -147,9 +146,7 @@
|
|
|
147
146
|
}
|
|
148
147
|
|
|
149
148
|
.v-popper__popper.v-popper--theme-dropdown {
|
|
150
|
-
border-radius: 4px;
|
|
151
149
|
z-index: z-index('tooltip');
|
|
152
|
-
border: 1px solid #d9d9d9 !important;
|
|
153
150
|
|
|
154
151
|
&.containerLogsDropdown, &.fleet-summary-tooltip{
|
|
155
152
|
.v-popper__arrow-container {
|
|
@@ -206,8 +203,4 @@
|
|
|
206
203
|
.v-popper__inner {
|
|
207
204
|
padding: 0px;
|
|
208
205
|
}
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
// .v-popper__arrow-container {
|
|
212
|
-
// display: none;
|
|
213
|
-
// }
|
|
206
|
+
}
|
|
@@ -6,7 +6,7 @@ $darkest : #333;
|
|
|
6
6
|
$darker : #333;
|
|
7
7
|
|
|
8
8
|
//light disabled
|
|
9
|
-
$dark : #
|
|
9
|
+
$dark : #B6B6C2;
|
|
10
10
|
|
|
11
11
|
//light border and buttons
|
|
12
12
|
$medium : #d7d7d7;
|
|
@@ -30,7 +30,7 @@ $secondary : $darker;
|
|
|
30
30
|
$link : #1890FF;
|
|
31
31
|
|
|
32
32
|
// Status colors
|
|
33
|
-
$success : #
|
|
33
|
+
$success : #5D995D;
|
|
34
34
|
$warning : #DAC342;
|
|
35
35
|
$error : #F64747;
|
|
36
36
|
// $error : #A30014;
|
|
@@ -112,8 +112,6 @@ BODY, .theme-light {
|
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
114
|
|
|
115
|
-
--lightest : #{rgba($lightest, 1)};
|
|
116
|
-
|
|
117
115
|
--default : #{$light};
|
|
118
116
|
--default-text : #{contrast-color($light)};
|
|
119
117
|
--default-hover-bg : #{darken($light, 10%)};
|
|
@@ -339,7 +337,6 @@ BODY, .theme-light {
|
|
|
339
337
|
--nav-hover : #{$medium};
|
|
340
338
|
--nav-hover-color :#1890FF;
|
|
341
339
|
--nav-expander-hover : #{darken($medium, 10%)};
|
|
342
|
-
--nav-icon-badge-bg : #{$dark};
|
|
343
340
|
--nav-border : #{$medium};
|
|
344
341
|
--nav-border-size : 1px;
|
|
345
342
|
|
|
@@ -321,7 +321,6 @@ $transition-duration: 150ms;
|
|
|
321
321
|
}
|
|
322
322
|
.vs__selected {
|
|
323
323
|
color: var(--input-text);
|
|
324
|
-
background-color: rgba(0, 0, 0, 0);
|
|
325
324
|
}
|
|
326
325
|
}
|
|
327
326
|
|
|
@@ -331,7 +330,7 @@ $transition-duration: 150ms;
|
|
|
331
330
|
}
|
|
332
331
|
.vs__dropdown-toggle {
|
|
333
332
|
background-color: var(--input-bg);
|
|
334
|
-
border: none
|
|
333
|
+
border: none;
|
|
335
334
|
padding: none;
|
|
336
335
|
border-radius: var(--border-radius);
|
|
337
336
|
border: 1px solid var(--dropdown-border);
|
|
@@ -7732,7 +7732,9 @@ advancedSettings:
|
|
|
7732
7732
|
'ui-default-landing': 'The default page users land on after login.'
|
|
7733
7733
|
'brand': Folder name for an alternative theme defined in '/assets/brand'
|
|
7734
7734
|
'hide-local-cluster': Hide the local cluster
|
|
7735
|
-
|
|
7735
|
+
'agent-tls-mode': "Rancher Certificate Verification. In `strict` mode the agents (system, cluster, fleet, etc) will only trust Rancher installations which are using a certificate signed by the CABundle in the `cacerts` setting. When the mode is system-store, the agents will trust any certificate signed by a CABundle in the operating system’s trust store."
|
|
7736
|
+
'k3s-based-upgrader-uninstall-concurrency': Defines the maximum number of clusters in which Rancher can concurrently uninstall the legacy `rancher-k3s-upgrader` or `rancher-rke2-upgrader` app from imported K3s or RKE2 clusters.
|
|
7737
|
+
'imported-cluster-version-management': Enables version management for imported RKE2/K3s clusters, and the local cluster if it is an RKE2/K3s cluster. The per-cluster version management setting overrides this global setting at the cluster level. For existing clusters where the cluster-level version management is set to 'system-default', changing this flag will trigger a redeployment of the cluster agent during the next reconciliation (by default every 5 minutes, or as soon as the cluster is edited, whichever comes first).
|
|
7736
7738
|
warnings:
|
|
7737
7739
|
'agent-tls-mode': 'Changing this setting will cause all agents to be redeployed.'
|
|
7738
7740
|
editHelp:
|
|
@@ -118,7 +118,7 @@ locale:
|
|
|
118
118
|
none: (None)
|
|
119
119
|
|
|
120
120
|
nav:
|
|
121
|
-
harvesterDashboard:
|
|
121
|
+
harvesterDashboard: Harvester 仪表板
|
|
122
122
|
backToRancher: Cluster Manager
|
|
123
123
|
clusterTools: 集群工具
|
|
124
124
|
kubeconfig:
|
|
@@ -1212,7 +1212,7 @@ cluster:
|
|
|
1212
1212
|
label: vSphere
|
|
1213
1213
|
note: '<b>重要</b>:在附加配置标签中配置 vSphere 云提供商和存储提供商选项。'
|
|
1214
1214
|
harvester:
|
|
1215
|
-
label:
|
|
1215
|
+
label: Harvester
|
|
1216
1216
|
copyConfig: 将 KubeConfig 复制到剪切板
|
|
1217
1217
|
copiedConfig: 已将 KubeConfig 复制到剪切板
|
|
1218
1218
|
custom:
|
|
@@ -1371,26 +1371,26 @@ cluster:
|
|
|
1371
1371
|
kubeconfigContent:
|
|
1372
1372
|
label: KubeconfigContent
|
|
1373
1373
|
placeholder: '资源组/名称'
|
|
1374
|
-
cluster: 导入的
|
|
1374
|
+
cluster: 导入的 Harvester 集群
|
|
1375
1375
|
installGuestAgent: 安装访客代理
|
|
1376
1376
|
description:
|
|
1377
1377
|
label: 集群描述
|
|
1378
1378
|
placeholder: 输入可以描述该集群的文本
|
|
1379
1379
|
harvester:
|
|
1380
|
-
importNotice: 导入
|
|
1380
|
+
importNotice: 导入 Harvester 集群的方式:
|
|
1381
1381
|
warning:
|
|
1382
|
-
label: 这是一个
|
|
1382
|
+
label: 这是一个 Harvester 集群 - 请启用 Harvester 功能开关以对其进行管理。
|
|
1383
1383
|
state: 警告
|
|
1384
1384
|
cloudProvider:
|
|
1385
1385
|
incompatible:
|
|
1386
|
-
由于当前的
|
|
1386
|
+
由于当前的 Harvester 版本与所选的 RKE2 Kubernetes 版本不兼容,因此你无法选择 Harvester cloud provider。请单击 <a target="_blank" rel="noopener noreferrer nofollow" href="https://www.suse.com/suse-harvester/support-matrix/all-supported-versions">此处</a>查看支持的 Kubernetes 版本。
|
|
1387
1387
|
clusterWarning: |-
|
|
1388
1388
|
还有 {count, plural,
|
|
1389
|
-
=1 {1 个
|
|
1390
|
-
other { # 个
|
|
1389
|
+
=1 {1 个 Harvester 集群未显示}
|
|
1390
|
+
other { # 个 Harvester 集群未显示}
|
|
1391
1391
|
}
|
|
1392
1392
|
registration:
|
|
1393
|
-
step1: "1. 前往目标
|
|
1393
|
+
step1: "1. 前往目标 Harvester UI 的<code>高级设置</code>页面。"
|
|
1394
1394
|
step2: '2. 找到<code>cluster-registration-url</code>设置项,并点击<code><i class="icon icon-actions" ></i></code> -> <code>编辑设置</code>按钮。'
|
|
1395
1395
|
step3: "3. 输入以下注册 URL,并点击<code>保存</code>。"
|
|
1396
1396
|
step4: "注册 URL"
|
|
@@ -1859,7 +1859,7 @@ cluster:
|
|
|
1859
1859
|
google: Google GCE
|
|
1860
1860
|
googlegke: Google GKE
|
|
1861
1861
|
gke: Google GKE
|
|
1862
|
-
harvester:
|
|
1862
|
+
harvester: Harvester
|
|
1863
1863
|
huaweicce: 华为 CCE
|
|
1864
1864
|
import: 通用
|
|
1865
1865
|
imported: 已导入
|
|
@@ -2192,21 +2192,21 @@ fleet:
|
|
|
2192
2192
|
clusters:
|
|
2193
2193
|
harvester: |-
|
|
2194
2194
|
还有 {count, plural,
|
|
2195
|
-
=1 {1个
|
|
2196
|
-
other { #个
|
|
2195
|
+
=1 {1个 Harvester 集群未显示,因为它不能与持续交付一起使用。}
|
|
2196
|
+
other { #个 Harvester 集群未显示,因为它们不能与持续交付一起使用。}
|
|
2197
2197
|
}
|
|
2198
2198
|
tokens:
|
|
2199
2199
|
harvester: |-
|
|
2200
2200
|
{count, plural,
|
|
2201
|
-
=1 {1个 Token 未显示,因为它属于不能与持续交付一起使用的
|
|
2202
|
-
other {#个 Token 未显示,因为它属于不能与持续交付一起使用的
|
|
2201
|
+
=1 {1个 Token 未显示,因为它属于不能与持续交付一起使用的 Harvester 集群。}
|
|
2202
|
+
other {#个 Token 未显示,因为它属于不能与持续交付一起使用的 Harvester 集群。}
|
|
2203
2203
|
}
|
|
2204
2204
|
bundles:
|
|
2205
2205
|
resources: 资源
|
|
2206
2206
|
harvester: |-
|
|
2207
2207
|
{count, plural,
|
|
2208
|
-
=1 {1 个 Bundle 未显示,因为它属于不能与持续交付一起使用的
|
|
2209
|
-
other {# 个 Bundle 未显示,因为它属于不能与持续交付一起使用的
|
|
2208
|
+
=1 {1 个 Bundle 未显示,因为它属于不能与持续交付一起使用的 Harvester 集群。}
|
|
2209
|
+
other {# 个 Bundle 未显示,因为它属于不能与持续交付一起使用的 Harvester 集群。}
|
|
2210
2210
|
}
|
|
2211
2211
|
fleetSummary:
|
|
2212
2212
|
noClustersGitRepo: 这个 Git 仓库不针对任何集群
|
|
@@ -2826,7 +2826,7 @@ landing:
|
|
|
2826
2826
|
bannerImage: Homepage banner image
|
|
2827
2827
|
homepage: Homepage
|
|
2828
2828
|
clusters:
|
|
2829
|
-
title:
|
|
2829
|
+
title: 集群
|
|
2830
2830
|
provider: 提供商
|
|
2831
2831
|
kubernetesVersion: Kubernetes 版本
|
|
2832
2832
|
explorer: 浏览器
|
|
@@ -3845,7 +3845,7 @@ persistentVolume:
|
|
|
3845
3845
|
disk-csi-azure-com: Azure 磁盘 (CSI)
|
|
3846
3846
|
file-csi-azure-com: Azure 文件 (CSI)
|
|
3847
3847
|
driver-longhorn-io: Longhorn (CSI)
|
|
3848
|
-
driver-harvesterhci-io:
|
|
3848
|
+
driver-harvesterhci-io: Harvester (CSI)
|
|
3849
3849
|
nfs-csi-k8s-io: NFS (CSI)
|
|
3850
3850
|
ebs-csi-aws-com: AWS Elastic Block Store (CSI)
|
|
3851
3851
|
rbd-csi-ceph-com: Ceph RBD (CSI)
|
|
@@ -5066,7 +5066,7 @@ setup:
|
|
|
5066
5066
|
defaultPassword:
|
|
5067
5067
|
intro: 这是你第一次访问 {vendor}。如果你预先设置了 Bootstrap 密码,请在此处输入。否则我们会为你生成一个随机密码。找到它:<br/><br/>
|
|
5068
5068
|
dockerPrefix: '"docker run" 安装:'
|
|
5069
|
-
dockerPs: '运行<code
|
|
5069
|
+
dockerPs: '运行<code>docker ps</code>找到你的容器 ID,然后运行:'
|
|
5070
5070
|
dockerSuffix: ""
|
|
5071
5071
|
helmPrefix: 'Helm 安装,运行:'
|
|
5072
5072
|
helmSuffix: ""
|
|
@@ -5405,13 +5405,13 @@ storageClass:
|
|
|
5405
5405
|
title: (已弃用)
|
|
5406
5406
|
warning: '{provisioner} 树内插件已弃用。你可以在<a target="_blank" rel="noopener noreferrer nofollow" href="https://kubernetes-csi.github.io/docs/drivers.html">这里</a>查找 CSI 驱动。'
|
|
5407
5407
|
harvesterhci:
|
|
5408
|
-
title:
|
|
5408
|
+
title: Harvester (CSI)
|
|
5409
5409
|
warning:
|
|
5410
|
-
unSatisfiesVersion: 请升级
|
|
5410
|
+
unSatisfiesVersion: 请升级 Harvester CSI 驱动版本来使用此功能(csi-driver >= v0.1.15)
|
|
5411
5411
|
hostStorageClass:
|
|
5412
5412
|
label: 主机存储类
|
|
5413
|
-
placeholder: 主机
|
|
5414
|
-
tooltip: 默认使用主机
|
|
5413
|
+
placeholder: 主机 Harvester 集群上的存储类名称
|
|
5414
|
+
tooltip: 默认使用主机 Harvester 集群上的默认存储类。
|
|
5415
5415
|
|
|
5416
5416
|
tableHeaders:
|
|
5417
5417
|
assuredConcurrencyShares: 确保并发份额
|
|
@@ -5624,10 +5624,6 @@ tableHeaders:
|
|
|
5624
5624
|
users: 用户
|
|
5625
5625
|
userDisplayName: 显示名称
|
|
5626
5626
|
userId: ID
|
|
5627
|
-
userDeletedIn: 到期删除
|
|
5628
|
-
userDisabledIn: 到期禁用
|
|
5629
|
-
userLastLogin: 最后登录
|
|
5630
|
-
userState: 启用状态
|
|
5631
5627
|
userStatus: 状态
|
|
5632
5628
|
username: 本地用户名
|
|
5633
5629
|
value: 值
|
|
@@ -6597,8 +6593,8 @@ typeLabel:
|
|
|
6597
6593
|
}
|
|
6598
6594
|
management.cattle.io.setting: |-
|
|
6599
6595
|
{count, plural,
|
|
6600
|
-
one {
|
|
6601
|
-
other {
|
|
6596
|
+
one { 设置 }
|
|
6597
|
+
other { 设置 }
|
|
6602
6598
|
}
|
|
6603
6599
|
management.cattle.io.fleetworkspace: |-
|
|
6604
6600
|
{count, plural,
|
|
@@ -6853,8 +6849,8 @@ typeLabel:
|
|
|
6853
6849
|
}
|
|
6854
6850
|
harvesterhci.io.management.cluster: |-
|
|
6855
6851
|
{count, plural,
|
|
6856
|
-
one {
|
|
6857
|
-
other {
|
|
6852
|
+
one { Harvester 集群 }
|
|
6853
|
+
other { Harvester 集群 }
|
|
6858
6854
|
}
|
|
6859
6855
|
harvesterhci.io.cloudtemplate: |-
|
|
6860
6856
|
{count, plural,
|
|
@@ -7169,9 +7165,6 @@ advancedSettings:
|
|
|
7169
7165
|
'ui-default-landing': '用户登录后的默认页面。'
|
|
7170
7166
|
'brand': 在'/assets/brand'中定义,用于替代主题的文件夹名称
|
|
7171
7167
|
'hide-local-cluster': 隐藏 local 集群
|
|
7172
|
-
'agent-tls-mode': "Rancher 证书验证。在 strict(严格)模式下,代理(系统、集群、Fleet 等)将仅信任使用由 cacerts 设置中的 CABundle 签名的证书的 Rancher 安装。当模式为 system-store(系统存储)时,代理将信任由操作系统信任存储中的 CABundle 签名的任何证书。"
|
|
7173
|
-
'k3s-based-upgrader-uninstall-concurrency': "定义 Rancher 可并发从导入的 K3s 或 RKE2 集群中卸载旧版 rancher-k3s-upgrader 或 rancher-rke2-upgrader 应用程序的最大集群数量。"
|
|
7174
|
-
'imported-cluster-version-management': "为导入的 RKE2/K3s 集群启用版本管理,如果本地集群是 RKE2/K3s 集群,则也对其生效。集群级别的版本管理设置会在集群层面覆盖此全局设置。对于集群级别版本管理设置为 'system-default'(系统默认)的现有集群,更改此标志将在下一次协调期间(默认每 5 分钟一次,或一旦编辑集群便立即触发,以先到者为准)触发集群代理的重新部署。"
|
|
7175
7168
|
editHelp:
|
|
7176
7169
|
'ui-banners': 此设置使用包含 3 个根参数的 JSON 对象,分别是<code>banner</code>、<code>showHeader</code>和<code>showFooter</code>。<code>banner</code> 是包含 <code>textColor</code>,<code>background</code>和<code>text</code>的对象,其中<code>textColor</code> 和 <code>background</code>的值可以是任何有效的 CSS 颜色值。
|
|
7177
7170
|
enum:
|
|
@@ -7205,7 +7198,7 @@ featureFlags:
|
|
|
7205
7198
|
title: 等待重启
|
|
7206
7199
|
wait: 重启需要数分钟。
|
|
7207
7200
|
description:
|
|
7208
|
-
harvester: 接入
|
|
7201
|
+
harvester: 接入 Harvester,以导入和管理 Harvester 集群
|
|
7209
7202
|
unsupported-storage-drivers: 允许使用非默认启用的存储提供商和卷插件
|
|
7210
7203
|
legacy: 启用旧版功能
|
|
7211
7204
|
istio-virtual-service-ui: 暴露了一个用户界面,使用户能够创建、读取、更新和删除虚拟服务和目标规则,这是 Istio 的流量管理功能。
|
|
@@ -7323,22 +7316,6 @@ branding:
|
|
|
7323
7316
|
uploadLight: 上传浅色 Logo
|
|
7324
7317
|
uploadDark: 上传深色 Logo
|
|
7325
7318
|
useCustom: 使用自定义 Logo
|
|
7326
|
-
banner:
|
|
7327
|
-
label: 横幅
|
|
7328
|
-
tip: '上传图片以替换仪表板页面中的默认 Rancher 横幅。推荐使用宽高比为 6:1 的 SVG 图像。默认图片尺寸为 4197x633。最大文件大小为 200KB。可接受格式:JPEG、PNG、SVG。'
|
|
7329
|
-
lightPreview: 浅色主题预览
|
|
7330
|
-
darkPreview: 深色主题预览
|
|
7331
|
-
uploadLight: 上传浅色横幅
|
|
7332
|
-
uploadDark: 上传深色横幅
|
|
7333
|
-
useCustom: 使用自定义横幅
|
|
7334
|
-
loginBackground:
|
|
7335
|
-
label: 登录背景
|
|
7336
|
-
tip: '上传图片以替换登录页面的默认 Rancher 背景。推荐使用宽高比为 7:8 的 SVG 图像。默认图片尺寸为 683x768。最大文件大小为 200KB。可接受格式:JPEG、PNG、SVG。'
|
|
7337
|
-
lightPreview: 浅色主题预览
|
|
7338
|
-
darkPreview: 深色主题预览
|
|
7339
|
-
uploadLight: 上传浅色背景
|
|
7340
|
-
uploadDark: 上传深色背景
|
|
7341
|
-
useCustom: 使用自定义背景
|
|
7342
7319
|
favicon:
|
|
7343
7320
|
label: 网站图标
|
|
7344
7321
|
tip: '上传一个网站图标来替换浏览器选项卡中的 Rancher 图标。最大文件大小为 20KB'
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import { computed
|
|
2
|
+
import { computed } from 'vue';
|
|
3
3
|
import { useStore } from 'vuex';
|
|
4
4
|
import { useRoute } from 'vue-router';
|
|
5
5
|
|
|
@@ -18,6 +18,7 @@ type RcDropdownMenuComponentProps = {
|
|
|
18
18
|
dataTestid?: string;
|
|
19
19
|
resource: Object;
|
|
20
20
|
customActions?: DropdownOption[];
|
|
21
|
+
showIcon?: Boolean;
|
|
21
22
|
}
|
|
22
23
|
|
|
23
24
|
const props = defineProps <RcDropdownMenuComponentProps>();
|
|
@@ -83,7 +84,6 @@ const execute = (action: any, event: MouseEvent, args?: any) => {
|
|
|
83
84
|
const options = computed(() => store.getters['action-menu/optionsArray']);
|
|
84
85
|
|
|
85
86
|
const menuOptions = () => {
|
|
86
|
-
|
|
87
87
|
if (props.customActions && props.customActions.length > 0) {
|
|
88
88
|
return props.customActions;
|
|
89
89
|
}
|
|
@@ -91,9 +91,6 @@ const menuOptions = () => {
|
|
|
91
91
|
return options.value;
|
|
92
92
|
};
|
|
93
93
|
|
|
94
|
-
onMounted(() => {
|
|
95
|
-
})
|
|
96
|
-
|
|
97
94
|
</script>
|
|
98
95
|
|
|
99
96
|
<template>
|
|
@@ -104,8 +101,8 @@ onMounted(() => {
|
|
|
104
101
|
:dropdown-aria-label="dropdownAriaLabel"
|
|
105
102
|
:options="menuOptions()"
|
|
106
103
|
:data-testid="dataTestid"
|
|
104
|
+
:showIcon="showIcon"
|
|
107
105
|
@update:open="openChanged"
|
|
108
106
|
@select="(e: MouseEvent, option: object) => execute(option, e)"
|
|
109
|
-
:showIcon="false"
|
|
110
107
|
/>
|
|
111
108
|
</template>
|
|
@@ -79,56 +79,37 @@ export default {
|
|
|
79
79
|
},
|
|
80
80
|
|
|
81
81
|
pathToBrandedImage() {
|
|
82
|
-
|
|
83
|
-
console.log(this.fileName, ' this.fileName;')
|
|
84
|
-
|
|
85
82
|
if (this.fileName === 'rancher-logo.svg' || this.supportCustomLogo) {
|
|
86
83
|
if (this.theme === 'dark' && this.uiLogoDark) {
|
|
87
|
-
|
|
88
|
-
console.log(this.uiLogoDark, ' this.uiLogoDark;')
|
|
89
|
-
|
|
90
84
|
return this.uiLogoDark;
|
|
91
85
|
}
|
|
92
86
|
|
|
93
87
|
if (this.uiLogoLight) {
|
|
94
|
-
console.log(this.uiLogoLight, ' this.uiLogoLight;')
|
|
95
|
-
|
|
96
88
|
return this.uiLogoLight;
|
|
97
89
|
}
|
|
98
90
|
}
|
|
99
91
|
|
|
100
92
|
if (this.fileName === 'banner.svg') {
|
|
101
93
|
if (this.theme === 'dark' && this.uiBannerDark) {
|
|
102
|
-
console.log(this.uiBannerDark, ' this.uiBannerDark;')
|
|
103
|
-
|
|
104
94
|
return this.uiBannerDark;
|
|
105
95
|
}
|
|
106
96
|
|
|
107
97
|
if (this.uiBannerLight) {
|
|
108
|
-
console.log(this.uiBannerLight, ' this.uiBannerLight;')
|
|
109
|
-
|
|
110
98
|
return this.uiBannerLight;
|
|
111
99
|
}
|
|
112
100
|
}
|
|
113
101
|
|
|
114
102
|
if (this.fileName === 'login-landscape.svg') {
|
|
115
103
|
if (this.theme === 'dark' && this.uiLoginBackgroundDark) {
|
|
116
|
-
console.log(this.uiLoginBackgroundDark, ' this.uiLoginBackgroundDark;')
|
|
117
|
-
|
|
118
104
|
return this.uiLoginBackgroundDark;
|
|
119
105
|
}
|
|
120
106
|
|
|
121
107
|
if (this.uiLoginBackgroundLight) {
|
|
122
|
-
console.log(this.uiLoginBackgroundLight, ' this.uiLoginBackgroundLight;')
|
|
123
|
-
|
|
124
108
|
return this.uiLoginBackgroundLight;
|
|
125
109
|
}
|
|
126
110
|
}
|
|
127
111
|
|
|
128
112
|
if (!this.brand) {
|
|
129
|
-
|
|
130
|
-
console.log(this.defaultPathToBrandedImage, ' this.defaultPathToBrandedImage;')
|
|
131
|
-
|
|
132
113
|
return this.defaultPathToBrandedImage;
|
|
133
114
|
} else {
|
|
134
115
|
if (this.theme === 'dark' || this.dark) {
|
|
@@ -140,8 +121,6 @@ export default {
|
|
|
140
121
|
return require(`~shell/assets/brand/${ this.brand }/${ this.fileName }`);
|
|
141
122
|
} catch {}
|
|
142
123
|
|
|
143
|
-
console.log(this.defaultPathToBrandedImage, ' this.defaultPathToBrandedImage;')
|
|
144
|
-
|
|
145
124
|
return this.defaultPathToBrandedImage;
|
|
146
125
|
}
|
|
147
126
|
},
|
|
@@ -152,6 +131,5 @@ export default {
|
|
|
152
131
|
<img
|
|
153
132
|
v-bind="$attrs"
|
|
154
133
|
:src="pathToBrandedImage"
|
|
155
|
-
style="height: 50px;"
|
|
156
134
|
>
|
|
157
135
|
</template>
|
|
@@ -159,7 +159,7 @@ export default {
|
|
|
159
159
|
display: flex;
|
|
160
160
|
align-items: center;
|
|
161
161
|
justify-content: center;
|
|
162
|
-
color: var(--
|
|
162
|
+
color: var(--default-active-text);
|
|
163
163
|
font-weight: bold;
|
|
164
164
|
background: var(--nav-icon-badge-bg);
|
|
165
165
|
border: 1px solid var(--border);
|
|
@@ -823,6 +823,7 @@ export default {
|
|
|
823
823
|
}
|
|
824
824
|
}
|
|
825
825
|
.create-resource-container {
|
|
826
|
+
|
|
826
827
|
.resource-container {
|
|
827
828
|
display: flex; // Ensures content grows in child CruResources
|
|
828
829
|
flex-direction: column;
|
|
@@ -886,7 +887,6 @@ form.create-resource-container .cru {
|
|
|
886
887
|
}
|
|
887
888
|
}
|
|
888
889
|
.cru {
|
|
889
|
-
height: 100%;
|
|
890
890
|
display: flex;
|
|
891
891
|
flex-direction: column;
|
|
892
892
|
flex-grow: 1;
|