dashboard-shell-shell 3.0.5-test.4 → 3.0.5-test.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/brand/harvester/favicon.png +0 -0
- package/assets/brand/suse/favicon.png +0 -0
- package/assets/images/pl/half-logo.svg +23 -2
- package/assets/images/pl/harvester.png +0 -0
- package/assets/styles/app.scss +0 -4
- package/assets/styles/base/_basic.scss +2 -2
- package/assets/styles/base/_mixins.scss +1 -1
- package/assets/styles/base/_typography.scss +1 -2
- package/assets/styles/base/_variables.scss +4 -11
- package/assets/styles/global/_button.scss +27 -45
- package/assets/styles/global/_columns.scss +1 -3
- package/assets/styles/global/_form.scss +13 -45
- package/assets/styles/global/_labeled-input.scss +26 -54
- package/assets/styles/global/_layout.scss +3 -8
- package/assets/styles/global/_select.scss +17 -25
- package/assets/styles/global/_table.scss +1 -7
- package/assets/styles/global/_tooltip.scss +6 -54
- package/assets/styles/themes/_dark.scss +0 -3
- package/assets/styles/themes/_light.scss +42 -63
- package/assets/styles/vendor/vue-select.scss +9 -22
- package/assets/translations/en-us.yaml +4 -28
- package/assets/translations/zh-hans.yaml +189 -376
- package/components/ActionDropdown.vue +1 -2
- package/components/ActionMenu.vue +2 -2
- package/components/ActionMenuShell.vue +0 -2
- package/components/AppModal.vue +5 -46
- package/components/BrandImage.vue +0 -1
- package/components/ButtonDropdown.vue +4 -26
- package/components/ButtonMultiAction.vue +0 -1
- package/components/ClusterIconMenu.vue +1 -1
- package/components/CodeMirror.vue +6 -20
- package/components/ConsumptionGauge.vue +5 -24
- package/components/CruResource.vue +8 -9
- package/components/CruResourceFooter.vue +2 -2
- package/components/DashboardOptions.vue +17 -29
- package/components/ExplorerProjectsNamespaces.vue +5 -19
- package/components/GlobalRoleBindings.vue +48 -112
- package/components/GrafanaDashboard.vue +4 -4
- package/components/GrowlManager.vue +1 -3
- package/components/HardwareResourceGauge.vue +3 -39
- package/components/IndentedPanel.vue +10 -4
- package/components/InfoBox.vue +3 -3
- package/components/InputOrDisplay.vue +2 -28
- package/components/LabelValue.vue +1 -20
- package/components/ModalWithCard.vue +3 -12
- package/components/PodSecurityAdmission.vue +1 -1
- package/components/PromptModal.vue +1 -1
- package/components/PromptRemove.vue +11 -30
- package/components/ResourceDetail/Masthead/legacy.vue +38 -181
- package/components/ResourceDetail/legacy.vue +13 -29
- package/components/ResourceList/Masthead.vue +54 -226
- package/components/ResourceList/ResourceLoadingIndicator.vue +2 -5
- package/components/ResourceTable.vue +2 -24
- package/components/SideNav.vue +20 -74
- package/components/SortableTable/THead.vue +3 -33
- package/components/SortableTable/index.vue +464 -1017
- package/components/SortableTable/paging.js +16 -26
- package/components/SortableTable/selection.js +2 -2
- package/components/Tabbed/Tab.vue +3 -3
- package/components/Tabbed/index.vue +29 -47
- package/components/YamlEditor.vue +1 -0
- package/components/auth/Principal.vue +12 -36
- package/components/auth/RoleDetailEdit.vue +7 -58
- package/components/auth/SelectPrincipal.vue +0 -1
- package/components/form/ArrayList.vue +33 -41
- package/components/form/ArrayListGrouped.vue +2 -10
- package/components/form/ArrayListSelect.vue +1 -1
- package/components/form/BannerSettings.vue +59 -64
- package/components/form/ChangePassword.vue +4 -4
- package/components/form/ColorInput.vue +8 -32
- package/components/form/Footer.vue +8 -11
- package/components/form/InputWithSelect.vue +5 -8
- package/components/form/KeyValue.vue +7 -47
- package/components/form/LabeledSelect.vue +241 -212
- package/components/form/Labels.vue +3 -3
- package/components/form/MatchExpressions.vue +7 -24
- package/components/form/Members/ClusterPermissionsEditor.vue +2 -1
- package/components/form/Members/MembershipEditor.vue +1 -1
- package/components/form/NameNsDescription.vue +20 -59
- package/components/form/Password.vue +7 -16
- package/components/form/PodAffinity.vue +5 -4
- package/components/form/ResourceQuota/Namespace.vue +4 -4
- package/components/form/ResourceQuota/NamespaceRow.vue +17 -18
- package/components/form/ResourceQuota/Project.vue +4 -4
- package/components/form/ResourceQuota/ProjectRow.vue +6 -3
- package/components/form/Select.vue +2 -5
- package/components/form/SimpleSecretSelector.vue +9 -29
- package/components/form/UnitInput.vue +3 -8
- package/components/formatter/BadgeStateFormatter.vue +5 -8
- package/components/formatter/LiveDate.vue +3 -3
- package/components/nav/Favorite.vue +1 -5
- package/components/nav/Group.vue +99 -132
- package/components/nav/Header.vue +27 -124
- package/components/nav/HeaderPageActionMenu.vue +0 -1
- package/components/nav/NamespaceFilter.vue +15 -19
- package/components/nav/TopLevelMenu.vue +119 -182
- package/components/nav/Type.vue +41 -63
- package/composables/useClickOutside.ts +1 -1
- package/config/private-label.js +11 -15
- package/config/product/auth.js +7 -17
- package/config/product/settings.js +9 -19
- package/config/settings.ts +0 -28
- package/config/table-headers.js +2 -3
- package/dialog/ForceMachineRemoveDialog.vue +2 -2
- package/dialog/ScalePoolDownDialog.vue +2 -2
- package/edit/management.cattle.io.user.vue +4 -17
- package/edit/monitoring.coreos.com.alertmanagerconfig/auth.vue +19 -19
- package/edit/monitoring.coreos.com.alertmanagerconfig/receiverConfig.vue +31 -31
- package/edit/monitoring.coreos.com.alertmanagerconfig/routeConfig.vue +12 -36
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/email.vue +6 -6
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/opsgenie.vue +10 -10
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/pagerduty.vue +4 -4
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/slack.vue +4 -4
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/webhook.vue +1 -1
- package/edit/monitoring.coreos.com.receiver/types/email.vue +6 -6
- package/edit/monitoring.coreos.com.receiver/types/opsgenie.vue +10 -10
- package/edit/monitoring.coreos.com.receiver/types/pagerduty.vue +5 -5
- package/edit/monitoring.coreos.com.receiver/types/slack.vue +4 -4
- package/edit/namespace.vue +2 -1
- package/edit/token.vue +12 -31
- package/edit/workload/index.vue +1 -1
- package/list/management.cattle.io.setting.vue +13 -22
- package/list/management.cattle.io.user.vue +3 -7
- package/list/namespace.vue +0 -3
- package/list/provisioning.cattle.io.cluster.vue +7 -6
- package/mixins/brand.js +0 -17
- package/package.json +1 -1
- package/pages/account/index.vue +12 -74
- package/pages/auth/login.vue +51 -214
- package/pages/auth/setup.vue +19 -142
- package/pages/c/_cluster/_product/namespaces.vue +4 -4
- package/pages/c/_cluster/auth/roles/index.vue +1 -19
- package/pages/c/_cluster/monitoring/monitor/index.vue +2 -2
- package/pages/c/_cluster/settings/banners.vue +102 -174
- package/pages/c/_cluster/settings/brand.vue +302 -350
- package/pages/c/_cluster/settings/performance.vue +38 -61
- package/pages/home.vue +30 -70
- package/pages/prefs.vue +25 -27
- package/promptRemove/mixin/roleDeletionCheck.js +2 -2
- package/public/index.html +4 -4
- package/rancher-components/BadgeState/BadgeState.vue +4 -6
- package/rancher-components/Banner/Banner.vue +8 -12
- package/rancher-components/Card/Card.vue +8 -7
- package/rancher-components/Form/Checkbox/Checkbox.vue +0 -4
- package/rancher-components/Form/LabeledInput/LabeledInput.vue +3 -42
- package/rancher-components/Form/Radio/RadioButton.vue +11 -35
- package/rancher-components/Form/Radio/RadioGroup.vue +5 -13
- package/rancher-components/Form/TextArea/TextAreaAutoGrow.vue +3 -3
- package/rancher-components/Form/ToggleSwitch/ToggleSwitch.vue +0 -1
- package/rancher-components/LabeledTooltip/LabeledTooltip.vue +4 -12
- package/rancher-components/RcDropdown/RcDropdown.vue +7 -35
- package/rancher-components/RcDropdown/RcDropdownItem.vue +2 -2
- package/rancher-components/RcDropdown/RcDropdownMenu.vue +4 -9
- package/rancher-components/RcDropdown/types.ts +0 -1
- package/rancher-components/StringList/StringList.vue +1 -1
- package/static/favicon.ico +0 -0
- package/static/favicon.png +0 -0
- package/static/loading-indicator.html +3 -3
- package/store/i18n.js +2 -2
- package/store/modal.ts +3 -3
- package/store/prefs.js +4 -11
- package/store/type-map.js +2 -32
- package/types/shell/index.d.ts +67 -74
- package/utils/error.js +8 -87
- package/utils/router.js +0 -21
- package/utils/select.js +3 -26
- package/utils/string.js +5 -8
- package/utils/title.ts +1 -1
- package/assets/icons/demo.css +0 -539
- package/assets/icons/demo.css:Zone.Identifier +0 -0
- package/assets/icons/demo_index.html +0 -1131
- package/assets/icons/demo_index.html:Zone.Identifier +0 -0
- package/assets/icons/iconfont.css +0 -216
- package/assets/icons/iconfont.css:Zone.Identifier +0 -0
- package/assets/icons/iconfont.js +0 -1
- package/assets/icons/iconfont.js:Zone.Identifier +0 -0
- package/assets/icons/iconfont.json +0 -324
- package/assets/icons/iconfont.json:Zone.Identifier +0 -0
- package/assets/icons/iconfont.ttf +0 -0
- package/assets/icons/iconfont.ttf:Zone.Identifier +0 -0
- package/assets/icons/iconfont.woff +0 -0
- package/assets/icons/iconfont.woff2 +0 -0
- package/assets/icons/iconfont.woff2:Zone.Identifier +0 -0
- package/assets/icons/iconfont.woff:Zone.Identifier +0 -0
- package/assets/images/API.svg +0 -3
- package/assets/images/action.svg +0 -6
- package/assets/images/login/password.svg +0 -20
- package/assets/images/login/user.svg +0 -6
- package/assets/images/login-bg.png +0 -0
- package/assets/images/login-left.png +0 -0
- package/assets/images/login-logo.svg +0 -19
- package/assets/images/logo.png +0 -0
- package/assets/images/pl/logo.png +0 -0
- package/assets/images/promp-yellow.svg +0 -5
- package/assets/images/user.png +0 -0
- package/assets/styles/all.scss +0 -63
- package/components/DotState.vue +0 -84
- package/utils/errorTranslate.json +0 -1336
package/components/nav/Type.vue
CHANGED
|
@@ -112,7 +112,6 @@ export default {
|
|
|
112
112
|
</script>
|
|
113
113
|
|
|
114
114
|
<template>
|
|
115
|
-
<!-- 当 type 有 route 时,渲染一个 Vue Router 自定义链接 -->
|
|
116
115
|
<router-link
|
|
117
116
|
v-if="type.route"
|
|
118
117
|
:key="type.name"
|
|
@@ -120,24 +119,18 @@ export default {
|
|
|
120
119
|
custom
|
|
121
120
|
:to="type.route"
|
|
122
121
|
>
|
|
123
|
-
|
|
124
|
-
<!-- 导航项容器 -->
|
|
125
122
|
<li
|
|
126
123
|
class="child nav-type"
|
|
127
124
|
:class="{'root': isRoot, [`depth-${depth}`]: true, 'router-link-active': isActive, 'router-link-exact-active': isExactActive}"
|
|
128
125
|
@click="navigate"
|
|
129
126
|
@keypress.enter="navigate"
|
|
130
127
|
>
|
|
131
|
-
|
|
132
|
-
<!-- 如果是精确匹配激活状态,则显示 TabTitle 组件 -->
|
|
133
128
|
<TabTitle
|
|
134
129
|
v-if="isExactActive"
|
|
135
130
|
:show-child="false"
|
|
136
131
|
>
|
|
137
132
|
{{ type.labelKey ? t(type.labelKey) : (type.labelDisplay || type.label) }}
|
|
138
133
|
</TabTitle>
|
|
139
|
-
|
|
140
|
-
<!-- 链接主体 -->
|
|
141
134
|
<a
|
|
142
135
|
role="link"
|
|
143
136
|
:aria-label="type.labelKey ? t(type.labelKey) : (type.labelDisplay || type.label)"
|
|
@@ -148,50 +141,38 @@ export default {
|
|
|
148
141
|
@mouseenter="setNear(true)"
|
|
149
142
|
@mouseleave="setNear(false)"
|
|
150
143
|
>
|
|
151
|
-
<!-- 文本标签:优先使用多语言 key -->
|
|
152
144
|
<span
|
|
153
145
|
v-if="type.labelKey"
|
|
154
146
|
class="label"
|
|
155
147
|
><t :k="type.labelKey" /></span>
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
:class="{'no-icon': !type.icon}"
|
|
164
|
-
/>
|
|
165
|
-
</div>
|
|
166
|
-
|
|
167
|
-
<!-- 右侧附加信息(收藏按钮 / 命名空间图标 / 计数) -->
|
|
168
|
-
<!-- <span
|
|
148
|
+
<span
|
|
149
|
+
v-else
|
|
150
|
+
v-clean-html="type.labelDisplay || type.label"
|
|
151
|
+
class="label"
|
|
152
|
+
:class="{'no-icon': !type.icon}"
|
|
153
|
+
/>
|
|
154
|
+
<span
|
|
169
155
|
v-if="showFavorite || namespaceIcon || showCount"
|
|
170
156
|
class="count"
|
|
171
157
|
>
|
|
172
|
-
|
|
173
158
|
<Favorite
|
|
174
159
|
v-if="showFavorite"
|
|
175
160
|
:resource="type.name"
|
|
176
161
|
/>
|
|
177
|
-
|
|
178
162
|
<i
|
|
179
163
|
v-if="namespaceIcon"
|
|
180
164
|
class="icon icon-namespace"
|
|
181
165
|
:class="{'ns-and-icon': showCount}"
|
|
182
166
|
data-testid="type-namespaced"
|
|
183
167
|
/>
|
|
184
|
-
|
|
185
168
|
<span
|
|
186
169
|
v-if="showCount"
|
|
187
170
|
data-testid="type-count"
|
|
188
171
|
>{{ count }}</span>
|
|
189
|
-
</span>
|
|
172
|
+
</span>
|
|
190
173
|
</a>
|
|
191
174
|
</li>
|
|
192
175
|
</router-link>
|
|
193
|
-
|
|
194
|
-
<!-- 当 type 没有 route 但有外部 link 时 -->
|
|
195
176
|
<li
|
|
196
177
|
v-else-if="type.link"
|
|
197
178
|
class="child nav-type nav-link"
|
|
@@ -207,8 +188,6 @@ export default {
|
|
|
207
188
|
<span class="label">{{ type.label }} <i class="icon icon-external-link" /></span>
|
|
208
189
|
</a>
|
|
209
190
|
</li>
|
|
210
|
-
|
|
211
|
-
<!-- 兜底情况:既没有 route,也没有 link -->
|
|
212
191
|
<li v-else>
|
|
213
192
|
{{ type }}?
|
|
214
193
|
</li>
|
|
@@ -235,7 +214,6 @@ export default {
|
|
|
235
214
|
.label {
|
|
236
215
|
align-items: center;
|
|
237
216
|
grid-area: label;
|
|
238
|
-
display: flex;
|
|
239
217
|
overflow: hidden;
|
|
240
218
|
text-overflow: ellipsis;
|
|
241
219
|
|
|
@@ -243,13 +221,13 @@ export default {
|
|
|
243
221
|
padding-left: 3px;
|
|
244
222
|
}
|
|
245
223
|
|
|
246
|
-
|
|
224
|
+
:deep() .highlight {
|
|
247
225
|
background: var(--diff-ins-bg);
|
|
248
226
|
color: var(--body-text);
|
|
249
227
|
padding: 2px;
|
|
250
228
|
}
|
|
251
229
|
|
|
252
|
-
|
|
230
|
+
:deep() .icon {
|
|
253
231
|
position: relative;
|
|
254
232
|
color: var(--muted);
|
|
255
233
|
}
|
|
@@ -258,28 +236,24 @@ export default {
|
|
|
258
236
|
A {
|
|
259
237
|
display: grid;
|
|
260
238
|
grid-template-areas: "label count";
|
|
261
|
-
grid-template-columns: auto
|
|
239
|
+
grid-template-columns: auto auto;
|
|
262
240
|
grid-column-gap: 5px;
|
|
263
241
|
font-size: 14px;
|
|
264
242
|
line-height: 24px;
|
|
265
|
-
|
|
266
|
-
padding: 0px 16px 0px 30px;
|
|
267
|
-
height: 50px;
|
|
243
|
+
padding: 7.5px 7px 7.5px 10px;
|
|
268
244
|
margin: 0 0 0 -3px;
|
|
269
245
|
overflow: hidden;
|
|
270
246
|
text-overflow: ellipsis;
|
|
271
247
|
white-space: nowrap;
|
|
272
248
|
color: var(--body-text);
|
|
249
|
+
height: 33px;
|
|
273
250
|
|
|
274
251
|
&:hover {
|
|
275
|
-
background: var(--nav-
|
|
276
|
-
color: var(--nav-hover-color);
|
|
277
|
-
/* background: var(--nav-hover); */
|
|
252
|
+
background: var(--nav-hover);
|
|
278
253
|
text-decoration: none;
|
|
279
254
|
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
color: var(--nav-hover-color);
|
|
255
|
+
:deep() .icon {
|
|
256
|
+
color: var(--body-text);
|
|
283
257
|
}
|
|
284
258
|
}
|
|
285
259
|
}
|
|
@@ -288,42 +262,46 @@ export default {
|
|
|
288
262
|
grid-area: favorite;
|
|
289
263
|
font-size: 12px;
|
|
290
264
|
position: relative;
|
|
265
|
+
vertical-align: middle;
|
|
266
|
+
margin-right: 4px;
|
|
291
267
|
}
|
|
292
268
|
|
|
293
269
|
.count {
|
|
294
|
-
grid-area: count;
|
|
295
270
|
font-size: 12px;
|
|
296
|
-
text-align: right;
|
|
297
271
|
justify-items: center;
|
|
298
|
-
|
|
272
|
+
padding-right: 4px;
|
|
273
|
+
display: flex;
|
|
274
|
+
align-items: center;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
&.nav-type.nav-link {
|
|
278
|
+
a .label {
|
|
279
|
+
display: flex;
|
|
280
|
+
}
|
|
299
281
|
}
|
|
300
282
|
|
|
301
283
|
&.nav-type:not(.depth-0) {
|
|
302
284
|
A {
|
|
303
|
-
|
|
304
|
-
padding: 5.5px 7px 5.5px 40px;
|
|
285
|
+
padding-left: 16px;
|
|
305
286
|
}
|
|
306
287
|
|
|
307
|
-
|
|
288
|
+
:deep() .label I {
|
|
308
289
|
padding-right: 2px;
|
|
309
290
|
}
|
|
310
291
|
}
|
|
311
|
-
}
|
|
312
292
|
|
|
313
|
-
.
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
i{
|
|
325
|
-
color: var(--nav-hover-color) !important;
|
|
293
|
+
&.nav-type:is(.depth-1) {
|
|
294
|
+
A {
|
|
295
|
+
font-size: 13px;
|
|
296
|
+
padding-left: 23px;
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
&.nav-type:not(.depth-0):not(.depth-1) {
|
|
301
|
+
A {
|
|
302
|
+
padding-left: 14px;
|
|
303
|
+
}
|
|
326
304
|
}
|
|
327
305
|
}
|
|
328
|
-
|
|
306
|
+
|
|
329
307
|
</style>
|
|
@@ -76,6 +76,6 @@ export const useClickOutside = <T extends OnClickOutsideOptions>(
|
|
|
76
76
|
|
|
77
77
|
onBeforeUnmount(() => {
|
|
78
78
|
window.removeEventListener('click', listener as any);
|
|
79
|
-
window.removeEventListener('
|
|
79
|
+
window.removeEventListener('pointerDown', setShouldListen);
|
|
80
80
|
});
|
|
81
81
|
};
|
package/config/private-label.js
CHANGED
|
@@ -58,21 +58,17 @@ export function matches(pl) {
|
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
export function getVendor() {
|
|
61
|
+
if ( vendor === SETTING.PL_RANCHER_VALUE ) {
|
|
62
|
+
// Custom vendor override based on brand
|
|
63
|
+
if (brand && CUSTOM_VENDOR[brand]) {
|
|
64
|
+
return CUSTOM_VENDOR[brand];
|
|
65
|
+
}
|
|
61
66
|
|
|
62
|
-
|
|
63
|
-
}
|
|
64
|
-
// export function getVendor() {
|
|
65
|
-
// if ( vendor === SETTING.PL_RANCHER_VALUE ) {
|
|
66
|
-
// // Custom vendor override based on brand
|
|
67
|
-
// if (brand && CUSTOM_VENDOR[brand]) {
|
|
68
|
-
// return CUSTOM_VENDOR[brand];
|
|
69
|
-
// }
|
|
70
|
-
|
|
71
|
-
// return STANDARD_VENDOR;
|
|
72
|
-
// }
|
|
67
|
+
return STANDARD_VENDOR;
|
|
68
|
+
}
|
|
73
69
|
|
|
74
|
-
|
|
75
|
-
|
|
70
|
+
return vendor;
|
|
71
|
+
}
|
|
76
72
|
|
|
77
73
|
export function getProduct() {
|
|
78
74
|
return product;
|
|
@@ -84,13 +80,13 @@ export function setTitle() {
|
|
|
84
80
|
if (v === 'Harvester') {
|
|
85
81
|
const ico = require(`~shell/assets/images/pl/harvester.png`);
|
|
86
82
|
|
|
87
|
-
document.title = '
|
|
83
|
+
document.title = 'Harvester';
|
|
88
84
|
const link = document.createElement('link');
|
|
89
85
|
|
|
90
86
|
link.hid = 'icon';
|
|
91
87
|
link.rel = 'icon';
|
|
92
88
|
link.type = 'image/x-icon';
|
|
93
|
-
link.
|
|
89
|
+
link.hrefv = ico;
|
|
94
90
|
const head = document.getElementsByTagName('head')[0];
|
|
95
91
|
|
|
96
92
|
head.appendChild(link);
|
package/config/product/auth.js
CHANGED
|
@@ -191,23 +191,13 @@ export function init(store) {
|
|
|
191
191
|
componentForType(`${ MANAGEMENT.AUTH_CONFIG }/genericoidc`, 'auth/oidc');
|
|
192
192
|
componentForType(`${ MANAGEMENT.AUTH_CONFIG }/cognito`, 'auth/oidc');
|
|
193
193
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
ROLES_VIRTUAL_TYPE,
|
|
202
|
-
MANAGEMENT.OIDC_CLIENT
|
|
203
|
-
]);
|
|
204
|
-
} else {
|
|
205
|
-
basicType([
|
|
206
|
-
USERS_VIRTUAL_TYPE,
|
|
207
|
-
ROLES_VIRTUAL_TYPE
|
|
208
|
-
]);
|
|
209
|
-
}
|
|
210
|
-
|
|
194
|
+
basicType([
|
|
195
|
+
'config',
|
|
196
|
+
USERS_VIRTUAL_TYPE,
|
|
197
|
+
NORMAN.SPOOFED.GROUP_PRINCIPAL,
|
|
198
|
+
ROLES_VIRTUAL_TYPE,
|
|
199
|
+
MANAGEMENT.OIDC_CLIENT
|
|
200
|
+
]);
|
|
211
201
|
|
|
212
202
|
headers(NORMAN.SPOOFED.GROUP_PRINCIPAL, [
|
|
213
203
|
GROUP_NAME,
|
|
@@ -112,25 +112,15 @@ export function init(store) {
|
|
|
112
112
|
route: { name: 'c-cluster-settings-fleet' }
|
|
113
113
|
});
|
|
114
114
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
'links',
|
|
125
|
-
'fleet-settings'
|
|
126
|
-
]);
|
|
127
|
-
} else {
|
|
128
|
-
basicType([
|
|
129
|
-
'settings',
|
|
130
|
-
'brand',
|
|
131
|
-
]);
|
|
132
|
-
}
|
|
133
|
-
|
|
115
|
+
basicType([
|
|
116
|
+
'settings',
|
|
117
|
+
'features',
|
|
118
|
+
'brand',
|
|
119
|
+
'banners',
|
|
120
|
+
'performance',
|
|
121
|
+
'links',
|
|
122
|
+
'fleet-settings'
|
|
123
|
+
]);
|
|
134
124
|
|
|
135
125
|
configureType(MANAGEMENT.SETTING, {
|
|
136
126
|
isCreatable: false,
|
package/config/settings.ts
CHANGED
|
@@ -112,34 +112,6 @@ export const SETTING = {
|
|
|
112
112
|
CLUSTER_AGENT_DEFAULT_POD_DISTRIBUTION_BUDGET: 'cluster-agent-default-pod-disruption-budget'
|
|
113
113
|
} as const;
|
|
114
114
|
|
|
115
|
-
export const ALLOWED_SETTINGS_NEW: GlobalSetting = {
|
|
116
|
-
[SETTING.CA_CERTS]: { kind: 'multiline', readOnly: true },
|
|
117
|
-
[SETTING.PASSWORD_MIN_LENGTH]: {
|
|
118
|
-
kind: 'integer',
|
|
119
|
-
ruleSet: [
|
|
120
|
-
{
|
|
121
|
-
name: 'betweenValues',
|
|
122
|
-
key: 'Password',
|
|
123
|
-
factoryArg: [2, 256]
|
|
124
|
-
},
|
|
125
|
-
{
|
|
126
|
-
name: 'isInteger',
|
|
127
|
-
key: 'Password',
|
|
128
|
-
},
|
|
129
|
-
{
|
|
130
|
-
name: 'isPositive',
|
|
131
|
-
key: 'Password',
|
|
132
|
-
},
|
|
133
|
-
{
|
|
134
|
-
name: 'isOctal',
|
|
135
|
-
key: 'Password',
|
|
136
|
-
}
|
|
137
|
-
],
|
|
138
|
-
},
|
|
139
|
-
[SETTING.AUTH_USER_SESSION_TTL_MINUTES]: {},
|
|
140
|
-
[SETTING.AUTH_TOKEN_MAX_TTL_MINUTES]: {},
|
|
141
|
-
}
|
|
142
|
-
|
|
143
115
|
// These are the settings that are allowed to be edited via the UI
|
|
144
116
|
export const ALLOWED_SETTINGS: GlobalSetting = {
|
|
145
117
|
[SETTING.CA_CERTS]: { kind: 'multiline', readOnly: true },
|
package/config/table-headers.js
CHANGED
|
@@ -52,7 +52,6 @@ export const NAME = {
|
|
|
52
52
|
getValue: (row) => row.nameDisplay,
|
|
53
53
|
sort: ['nameSort'],
|
|
54
54
|
formatter: 'LinkDetail',
|
|
55
|
-
width: 200,
|
|
56
55
|
canBeVariable: true,
|
|
57
56
|
};
|
|
58
57
|
|
|
@@ -162,7 +161,7 @@ export const NAMESPACE = {
|
|
|
162
161
|
name: 'namespace',
|
|
163
162
|
labelKey: 'tableHeaders.namespace',
|
|
164
163
|
value: 'namespace',
|
|
165
|
-
getValue: row => row
|
|
164
|
+
getValue: (row) => row.namespace,
|
|
166
165
|
sort: 'namespace',
|
|
167
166
|
dashIfEmpty: true,
|
|
168
167
|
};
|
|
@@ -281,7 +280,7 @@ export const NS_SNAPSHOT_QUOTA = {
|
|
|
281
280
|
labelKey: 'harvester.tableHeaders.totalSnapshotQuota',
|
|
282
281
|
value: 'snapshotSizeQuota',
|
|
283
282
|
sort: 'snapshotSizeQuota',
|
|
284
|
-
align: '
|
|
283
|
+
align: 'center',
|
|
285
284
|
formatter: 'Si',
|
|
286
285
|
formatterOpts: {
|
|
287
286
|
opts: {
|
|
@@ -214,11 +214,7 @@ export default {
|
|
|
214
214
|
</script>
|
|
215
215
|
|
|
216
216
|
<template>
|
|
217
|
-
|
|
218
|
-
<!-- 如果没有获取到 value 数据,则显示加载组件 -->
|
|
219
217
|
<Loading v-if="!value" />
|
|
220
|
-
|
|
221
|
-
<!-- 如果有数据,则进入资源编辑/创建的表单界面 -->
|
|
222
218
|
<CruResource
|
|
223
219
|
v-else
|
|
224
220
|
:done-route="doneRoute"
|
|
@@ -230,14 +226,10 @@ export default {
|
|
|
230
226
|
class="create-edit"
|
|
231
227
|
@finish="save"
|
|
232
228
|
>
|
|
233
|
-
|
|
234
|
-
<!-- 账户凭据区域 -->
|
|
235
229
|
<div class="credentials">
|
|
236
230
|
<h2> {{ t("user.edit.credentials.label") }}</h2>
|
|
237
|
-
|
|
238
|
-
<!-- 用户名 & 显示名 -->
|
|
239
231
|
<div class="row">
|
|
240
|
-
<div class="col span-
|
|
232
|
+
<div class="col span-4">
|
|
241
233
|
<LabeledInput
|
|
242
234
|
ref="name"
|
|
243
235
|
v-model:value="form.username"
|
|
@@ -249,7 +241,7 @@ export default {
|
|
|
249
241
|
:ignore-password-managers="!isCreate"
|
|
250
242
|
/>
|
|
251
243
|
</div>
|
|
252
|
-
<div class="col span-
|
|
244
|
+
<div class="col span-4">
|
|
253
245
|
<LabeledInput
|
|
254
246
|
v-model:value="form.displayName"
|
|
255
247
|
label-key="user.edit.credentials.displayName.label"
|
|
@@ -258,10 +250,8 @@ export default {
|
|
|
258
250
|
/>
|
|
259
251
|
</div>
|
|
260
252
|
</div>
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
<div class="row">
|
|
264
|
-
<div class="col span-6">
|
|
253
|
+
<div class="row mt-20 mb-10">
|
|
254
|
+
<div class="col span-8">
|
|
265
255
|
<LabeledInput
|
|
266
256
|
v-model:value="form.description"
|
|
267
257
|
label-key="user.edit.credentials.userDescription.label"
|
|
@@ -271,7 +261,6 @@ export default {
|
|
|
271
261
|
</div>
|
|
272
262
|
</div>
|
|
273
263
|
|
|
274
|
-
<!-- 修改密码(仅非查看模式显示) -->
|
|
275
264
|
<ChangePassword
|
|
276
265
|
v-if="!isView"
|
|
277
266
|
ref="changePassword"
|
|
@@ -281,8 +270,6 @@ export default {
|
|
|
281
270
|
@valid="validation.password = $event"
|
|
282
271
|
/>
|
|
283
272
|
</div>
|
|
284
|
-
|
|
285
|
-
<!-- 全局角色绑定区域(仅当 showGlobalRoles 为 true 时显示) -->
|
|
286
273
|
<div
|
|
287
274
|
v-if="showGlobalRoles"
|
|
288
275
|
class="global-permissions"
|
|
@@ -243,14 +243,14 @@ export default {
|
|
|
243
243
|
v-model:value="authType"
|
|
244
244
|
:disabled="mode === view"
|
|
245
245
|
:options="authOptions"
|
|
246
|
-
label="
|
|
246
|
+
label="Auth Type"
|
|
247
247
|
@update:value="initializeType(authOptions, authType)"
|
|
248
248
|
/>
|
|
249
249
|
</div>
|
|
250
250
|
</div>
|
|
251
|
-
<div
|
|
252
|
-
v-if="authType === 'basicAuth'"
|
|
253
|
-
class="row mb-20"
|
|
251
|
+
<div
|
|
252
|
+
v-if="authType === 'basicAuth'"
|
|
253
|
+
class="row mb-20"
|
|
254
254
|
>
|
|
255
255
|
<SimpleSecretSelector
|
|
256
256
|
v-if="namespace"
|
|
@@ -265,16 +265,16 @@ export default {
|
|
|
265
265
|
@updateSecretName="updateBasicAuthUsernameSecretName"
|
|
266
266
|
@updateSecretKey="updateBasicAuthUsernameSecretKey"
|
|
267
267
|
/>
|
|
268
|
-
<Banner
|
|
269
|
-
v-else
|
|
270
|
-
color="error"
|
|
268
|
+
<Banner
|
|
269
|
+
v-else
|
|
270
|
+
color="error"
|
|
271
271
|
>
|
|
272
272
|
{{ t("alertmanagerConfigReceiver.namespaceWarning") }}
|
|
273
273
|
</Banner>
|
|
274
274
|
</div>
|
|
275
|
-
<div
|
|
276
|
-
v-if="authType === 'basicAuth'"
|
|
277
|
-
class="row mb-20"
|
|
275
|
+
<div
|
|
276
|
+
v-if="authType === 'basicAuth'"
|
|
277
|
+
class="row mb-20"
|
|
278
278
|
>
|
|
279
279
|
<SimpleSecretSelector
|
|
280
280
|
v-if="namespace"
|
|
@@ -289,16 +289,16 @@ export default {
|
|
|
289
289
|
@updateSecretName="updateBasicAuthPasswordSecretName"
|
|
290
290
|
@updateSecretKey="updateBasicAuthPasswordSecretKey"
|
|
291
291
|
/>
|
|
292
|
-
<Banner
|
|
293
|
-
v-else
|
|
294
|
-
color="error"
|
|
292
|
+
<Banner
|
|
293
|
+
v-else
|
|
294
|
+
color="error"
|
|
295
295
|
>
|
|
296
296
|
{{ t("alertmanagerConfigReceiver.namespaceWarning") }}
|
|
297
297
|
</Banner>
|
|
298
298
|
</div>
|
|
299
|
-
<div
|
|
300
|
-
v-if="authType === 'bearerTokenSecret'"
|
|
301
|
-
class="row mb-20"
|
|
299
|
+
<div
|
|
300
|
+
v-if="authType === 'bearerTokenSecret'"
|
|
301
|
+
class="row mb-20"
|
|
302
302
|
>
|
|
303
303
|
<SimpleSecretSelector
|
|
304
304
|
v-if="namespace"
|
|
@@ -313,9 +313,9 @@ export default {
|
|
|
313
313
|
@updateSecretName="updateBearerTokenSecretName"
|
|
314
314
|
@updateSecretKey="updateBearerTokenSecretKey"
|
|
315
315
|
/>
|
|
316
|
-
<Banner
|
|
317
|
-
v-else
|
|
318
|
-
color="error"
|
|
316
|
+
<Banner
|
|
317
|
+
v-else
|
|
318
|
+
color="error"
|
|
319
319
|
>
|
|
320
320
|
{{ t("alertmanagerConfigReceiver.namespaceWarning") }}
|
|
321
321
|
</Banner>
|
|
@@ -17,14 +17,14 @@ import { fetchAlertManagerConfigSpecs } from '@shell/utils/alertmanagerconfig';
|
|
|
17
17
|
// i18n-uses monitoringReceiver.slack.*, monitoringReceiver.email.*, monitoringReceiver.pagerduty.*
|
|
18
18
|
// i18n-uses monitoringReceiver.opsgenie.*, monitoringReceiver.webhook.*, monitoringReceiver.custom.*
|
|
19
19
|
export const RECEIVERS_TYPES = [
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
20
|
+
{
|
|
21
|
+
name: 'slack',
|
|
22
|
+
label: 'monitoringReceiver.slack.label',
|
|
23
|
+
title: 'monitoringReceiver.slack.title',
|
|
24
|
+
info: 'monitoringReceiver.slack.info',
|
|
25
|
+
key: 'slackConfigs',
|
|
26
|
+
logo: require(`@shell/assets/images/vendor/slack.svg`)
|
|
27
|
+
},
|
|
28
28
|
{
|
|
29
29
|
name: 'email',
|
|
30
30
|
label: 'monitoringReceiver.email.label',
|
|
@@ -32,21 +32,21 @@ export const RECEIVERS_TYPES = [
|
|
|
32
32
|
key: 'emailConfigs',
|
|
33
33
|
logo: require(`@shell/assets/images/vendor/email.svg`)
|
|
34
34
|
},
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
35
|
+
{
|
|
36
|
+
name: 'pagerduty',
|
|
37
|
+
label: 'monitoringReceiver.pagerduty.label',
|
|
38
|
+
title: 'monitoringReceiver.pagerduty.title',
|
|
39
|
+
info: 'monitoringReceiver.pagerduty.info',
|
|
40
|
+
key: 'pagerdutyConfigs',
|
|
41
|
+
logo: require(`@shell/assets/images/vendor/pagerduty.svg`)
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
name: 'opsgenie',
|
|
45
|
+
label: 'monitoringReceiver.opsgenie.label',
|
|
46
|
+
title: 'monitoringReceiver.opsgenie.title',
|
|
47
|
+
key: 'opsgenieConfigs',
|
|
48
|
+
logo: require(`@shell/assets/images/vendor/email.svg`)
|
|
49
|
+
},
|
|
50
50
|
{
|
|
51
51
|
name: 'webhook',
|
|
52
52
|
label: 'monitoringReceiver.webhook.label',
|
|
@@ -54,14 +54,14 @@ export const RECEIVERS_TYPES = [
|
|
|
54
54
|
key: 'webhookConfigs',
|
|
55
55
|
logo: require(`@shell/assets/images/vendor/webhook.svg`),
|
|
56
56
|
},
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
57
|
+
{
|
|
58
|
+
name: 'custom',
|
|
59
|
+
label: 'monitoringReceiver.custom.label',
|
|
60
|
+
title: 'monitoringReceiver.custom.title',
|
|
61
|
+
info: 'monitoringReceiver.custom.info',
|
|
62
|
+
key: 'webhookConfigs',
|
|
63
|
+
logo: require(`@shell/assets/images/vendor/custom.svg`)
|
|
64
|
+
},
|
|
65
65
|
];
|
|
66
66
|
|
|
67
67
|
export default {
|