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
|
@@ -198,16 +198,14 @@ export default {
|
|
|
198
198
|
<template>
|
|
199
199
|
<Loading v-if="$fetchState.pending" />
|
|
200
200
|
<div v-else>
|
|
201
|
-
<!-- 面包屑 -->
|
|
202
|
-
<div class="excram-list">全局设置 / <span style="color: #1890FF;">性能</span></div>
|
|
203
201
|
<h1 class="mb-20">
|
|
204
202
|
{{ t('performance.label') }}
|
|
205
203
|
</h1>
|
|
206
204
|
<div>
|
|
207
|
-
<div class="ui-perf-setting
|
|
208
|
-
<!--
|
|
209
|
-
<div class="
|
|
210
|
-
<h2
|
|
205
|
+
<div class="ui-perf-setting">
|
|
206
|
+
<!-- Inactivity -->
|
|
207
|
+
<div class="mt-20">
|
|
208
|
+
<h2>{{ t('performance.inactivity.title') }}</h2>
|
|
211
209
|
<p>{{ t('performance.inactivity.description') }}</p>
|
|
212
210
|
<Checkbox
|
|
213
211
|
v-model:value="value.inactivity.enabled"
|
|
@@ -234,21 +232,21 @@ export default {
|
|
|
234
232
|
/>
|
|
235
233
|
</div>
|
|
236
234
|
</div>
|
|
237
|
-
<!--
|
|
238
|
-
<div class="
|
|
239
|
-
<h2
|
|
235
|
+
<!-- Websocket Notifications -->
|
|
236
|
+
<div class="mt-40">
|
|
237
|
+
<h2>{{ t('performance.websocketNotification.label') }}</h2>
|
|
240
238
|
<p>{{ t('performance.websocketNotification.description') }}</p>
|
|
241
239
|
<Checkbox
|
|
242
240
|
v-model:value="value.disableWebsocketNotification"
|
|
243
241
|
:mode="mode"
|
|
244
242
|
:label="t('performance.websocketNotification.checkboxLabel')"
|
|
245
|
-
class="mt-10"
|
|
243
|
+
class="mt-10 mb-20"
|
|
246
244
|
:primary="true"
|
|
247
245
|
/>
|
|
248
246
|
</div>
|
|
249
247
|
<!-- Server Side Pagination -->
|
|
250
|
-
<div class="
|
|
251
|
-
<h2
|
|
248
|
+
<div class="mt-20">
|
|
249
|
+
<h2 id="ssp-setting">
|
|
252
250
|
{{ t('performance.serverPagination.label') }}
|
|
253
251
|
</h2>
|
|
254
252
|
<p>{{ t('performance.serverPagination.description') }}</p>
|
|
@@ -269,9 +267,9 @@ export default {
|
|
|
269
267
|
/>
|
|
270
268
|
</Collapse>
|
|
271
269
|
</div>
|
|
272
|
-
<!--
|
|
273
|
-
<div class="
|
|
274
|
-
<h2
|
|
270
|
+
<!-- Incremental Loading -->
|
|
271
|
+
<div class="mt-20">
|
|
272
|
+
<h2>{{ t('performance.incrementalLoad.label') }}</h2>
|
|
275
273
|
<Banner
|
|
276
274
|
color="warning"
|
|
277
275
|
>
|
|
@@ -301,9 +299,9 @@ export default {
|
|
|
301
299
|
/>
|
|
302
300
|
</div>
|
|
303
301
|
</div>
|
|
304
|
-
<!--
|
|
305
|
-
<div class="
|
|
306
|
-
<h2
|
|
302
|
+
<!-- Enable manual refresh list views -->
|
|
303
|
+
<div class="mt-40">
|
|
304
|
+
<h2 v-t="'performance.manualRefresh.label'" />
|
|
307
305
|
<Banner
|
|
308
306
|
color="warning"
|
|
309
307
|
>
|
|
@@ -333,9 +331,9 @@ export default {
|
|
|
333
331
|
/>
|
|
334
332
|
</div>
|
|
335
333
|
</div>
|
|
336
|
-
<!--
|
|
337
|
-
<div class="
|
|
338
|
-
<h2
|
|
334
|
+
<!-- Enable GC of resources from store -->
|
|
335
|
+
<div class="mt-40">
|
|
336
|
+
<h2 v-t="'performance.gc.label'" />
|
|
339
337
|
<Banner
|
|
340
338
|
color="warning"
|
|
341
339
|
>
|
|
@@ -414,9 +412,9 @@ export default {
|
|
|
414
412
|
</div>
|
|
415
413
|
</div>
|
|
416
414
|
</div>
|
|
417
|
-
<!--
|
|
418
|
-
<div class="
|
|
419
|
-
<h2
|
|
415
|
+
<!-- Force NS filter -->
|
|
416
|
+
<div class="mt-40">
|
|
417
|
+
<h2>{{ t('performance.nsFiltering.label') }}</h2>
|
|
420
418
|
<Banner
|
|
421
419
|
color="warning"
|
|
422
420
|
>
|
|
@@ -432,9 +430,9 @@ export default {
|
|
|
432
430
|
@update:value="compatibleWarning('forceNsFilterV2', $event)"
|
|
433
431
|
/>
|
|
434
432
|
</div>
|
|
435
|
-
<!-- Websocket
|
|
436
|
-
<div class="
|
|
437
|
-
<h2
|
|
433
|
+
<!-- Advanced Websocket Worker -->
|
|
434
|
+
<div class="mt-20">
|
|
435
|
+
<h2>{{ t('performance.advancedWorker.label') }}</h2>
|
|
438
436
|
<Banner
|
|
439
437
|
color="warning"
|
|
440
438
|
>
|
|
@@ -460,10 +458,10 @@ export default {
|
|
|
460
458
|
:label="err"
|
|
461
459
|
/>
|
|
462
460
|
</template>
|
|
463
|
-
<div
|
|
461
|
+
<div v-if="mode === 'edit'">
|
|
464
462
|
<AsyncButton
|
|
465
463
|
data-testid="performance__save-btn"
|
|
466
|
-
class="pull-right"
|
|
464
|
+
class="pull-right mt-20"
|
|
467
465
|
mode="apply"
|
|
468
466
|
:disabled="!canSave"
|
|
469
467
|
@click="save"
|
|
@@ -473,17 +471,6 @@ export default {
|
|
|
473
471
|
</template>
|
|
474
472
|
|
|
475
473
|
<style scoped lang='scss'>
|
|
476
|
-
.action-btn {
|
|
477
|
-
padding: 10px 30px;
|
|
478
|
-
position: fixed;
|
|
479
|
-
bottom: 0;
|
|
480
|
-
left: 0;
|
|
481
|
-
width: 100%;
|
|
482
|
-
background: var(--body-bg);
|
|
483
|
-
border-top: 1px solid var(--nav-border);
|
|
484
|
-
}
|
|
485
|
-
|
|
486
|
-
|
|
487
474
|
.overlay {
|
|
488
475
|
width: 100%;
|
|
489
476
|
height: 100%;
|
|
@@ -493,27 +480,17 @@ export default {
|
|
|
493
480
|
background-color: var(--overlay-bg);
|
|
494
481
|
z-index: 1;
|
|
495
482
|
}
|
|
496
|
-
.ui-perf-setting {
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
483
|
+
.ui-perf-setting {
|
|
484
|
+
P {
|
|
485
|
+
line-height: 1.25;
|
|
486
|
+
margin-bottom: 10px;
|
|
487
|
+
}
|
|
501
488
|
|
|
502
|
-
|
|
503
|
-
|
|
489
|
+
.underline {
|
|
490
|
+
text-decoration: underline;
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
.input {
|
|
494
|
+
max-width: 25%;
|
|
504
495
|
}
|
|
505
|
-
}
|
|
506
|
-
.input {
|
|
507
|
-
max-width: 25%;
|
|
508
|
-
}
|
|
509
|
-
h2{
|
|
510
|
-
font-size: 14px;
|
|
511
|
-
}
|
|
512
|
-
|
|
513
|
-
.excram-list{
|
|
514
|
-
font-size: 14px;
|
|
515
|
-
line-height: 22px;
|
|
516
|
-
margin-bottom: 20px;
|
|
517
|
-
font-family: 'Microsoft YaHei';
|
|
518
|
-
}
|
|
519
496
|
</style>
|
package/pages/home.vue
CHANGED
|
@@ -62,12 +62,7 @@ export default defineComponent({
|
|
|
62
62
|
query: { [MODE]: _IMPORT }
|
|
63
63
|
};
|
|
64
64
|
|
|
65
|
-
const topLevelPermissions = sessionStorage.getItem('TOPLEVELPERMISSIONS') || ''
|
|
66
|
-
|
|
67
|
-
const topLevelPermissionsVis = topLevelPermissions && topLevelPermissions === 'superadmin'
|
|
68
|
-
|
|
69
65
|
return {
|
|
70
|
-
topLevelPermissionsVis,
|
|
71
66
|
HIDE_HOME_PAGE_CARDS,
|
|
72
67
|
// Page actions don't change on the Home Page
|
|
73
68
|
pageActions: [
|
|
@@ -478,26 +473,17 @@ export default defineComponent({
|
|
|
478
473
|
</script>
|
|
479
474
|
|
|
480
475
|
<template>
|
|
481
|
-
<!-- 当 managementReady 为 true 时才显示首页内容 -->
|
|
482
476
|
<div
|
|
483
477
|
v-if="managementReady"
|
|
484
478
|
class="home-page"
|
|
485
479
|
>
|
|
486
|
-
|
|
487
|
-
<!-- 页签标题组件,不显示子页面标题和面包屑 -->
|
|
488
480
|
<TabTitle
|
|
489
|
-
v-if="topLevelPermissionsVis"
|
|
490
481
|
:show-child="false"
|
|
491
482
|
:breadcrumb="false"
|
|
492
483
|
>
|
|
493
|
-
|
|
494
|
-
<!-- 页面标题:{vendor} - 首页 -->
|
|
495
484
|
{{ `${vendor} - ${t('landing.homepage')}` }}
|
|
496
485
|
</TabTitle>
|
|
497
|
-
|
|
498
|
-
<!-- 首页欢迎横幅 -->
|
|
499
486
|
<BannerGraphic
|
|
500
|
-
v-if="topLevelPermissionsVis"
|
|
501
487
|
:small="true"
|
|
502
488
|
:title="t('landing.welcomeToRancher', {vendor})"
|
|
503
489
|
:pref="HIDE_HOME_PAGE_CARDS"
|
|
@@ -505,24 +491,13 @@ export default defineComponent({
|
|
|
505
491
|
data-testid="home-banner-graphic"
|
|
506
492
|
/>
|
|
507
493
|
<IndentedPanel class="mt-20 mb-20">
|
|
508
|
-
|
|
509
|
-
<!-- 主面板布局 -->
|
|
510
494
|
<div class="row home-panels">
|
|
511
495
|
<div class="col main-panel">
|
|
512
|
-
<h2 class="mb-20">
|
|
513
|
-
{{ t('landing.clusters.title') }}
|
|
514
|
-
</h2>
|
|
515
|
-
|
|
516
|
-
<!-- 集群列表面板 -->
|
|
517
496
|
<div class="row panel">
|
|
518
|
-
|
|
519
|
-
<!-- 如果是多集群模式(mcm = multi-cluster management) -->
|
|
520
497
|
<div
|
|
521
498
|
v-if="mcm"
|
|
522
499
|
class="col span-12"
|
|
523
500
|
>
|
|
524
|
-
|
|
525
|
-
<!-- 分页资源表格 -->
|
|
526
501
|
<PaginatedResourceTable
|
|
527
502
|
v-if="provClusterSchema"
|
|
528
503
|
:schema="provClusterSchema"
|
|
@@ -542,17 +517,27 @@ export default defineComponent({
|
|
|
542
517
|
:fetchSecondaryResources="fetchSecondaryResources"
|
|
543
518
|
:fetchPageSecondaryResources="fetchPageSecondaryResources"
|
|
544
519
|
>
|
|
545
|
-
|
|
546
|
-
|
|
520
|
+
<template #header-left>
|
|
521
|
+
<div class="row table-heading">
|
|
522
|
+
<h2 class="mb-0">
|
|
523
|
+
{{ t('landing.clusters.title') }}
|
|
524
|
+
</h2>
|
|
525
|
+
<BadgeState
|
|
526
|
+
v-if="clusterCount"
|
|
527
|
+
:label="clusterCount.toString()"
|
|
528
|
+
color="role-tertiary ml-20 mr-20"
|
|
529
|
+
/>
|
|
530
|
+
</div>
|
|
531
|
+
</template>
|
|
547
532
|
<template
|
|
548
533
|
v-if="canCreateCluster || !!provClusterSchema"
|
|
549
|
-
#header-
|
|
534
|
+
#header-middle
|
|
550
535
|
>
|
|
551
|
-
<div
|
|
536
|
+
<div class="table-heading">
|
|
552
537
|
<router-link
|
|
553
538
|
v-if="!!provClusterSchema"
|
|
554
539
|
:to="manageLocation"
|
|
555
|
-
class="btn btn-sm role-
|
|
540
|
+
class="btn btn-sm role-secondary"
|
|
556
541
|
data-testid="cluster-management-manage-button"
|
|
557
542
|
role="button"
|
|
558
543
|
:aria-label="t('cluster.manageAction')"
|
|
@@ -584,8 +569,6 @@ export default defineComponent({
|
|
|
584
569
|
</router-link>
|
|
585
570
|
</div>
|
|
586
571
|
</template>
|
|
587
|
-
|
|
588
|
-
<!-- 列渲染:集群名称 -->
|
|
589
572
|
<template #col:name="{row}">
|
|
590
573
|
<td class="col-name">
|
|
591
574
|
<div class="list-cluster-name">
|
|
@@ -593,8 +576,6 @@ export default defineComponent({
|
|
|
593
576
|
v-if="row.mgmt"
|
|
594
577
|
class="cluster-name"
|
|
595
578
|
>
|
|
596
|
-
|
|
597
|
-
<!-- 如果集群就绪且无错误,跳转到集群 Explorer 页面 -->
|
|
598
579
|
<router-link
|
|
599
580
|
v-if="row.mgmt.isReady && !row.hasError"
|
|
600
581
|
:to="{ name: 'c-cluster-explorer', params: { cluster: row.mgmt.id }}"
|
|
@@ -603,17 +584,18 @@ export default defineComponent({
|
|
|
603
584
|
>
|
|
604
585
|
{{ row.nameDisplay }}
|
|
605
586
|
</router-link>
|
|
606
|
-
|
|
607
|
-
<!-- 否则只显示名称 -->
|
|
608
587
|
<span v-else>{{ row.nameDisplay }}</span>
|
|
609
588
|
<i
|
|
610
589
|
v-if="row.unavailableMachines"
|
|
611
590
|
v-clean-tooltip="row.unavailableMachines"
|
|
612
591
|
class="conditions-alert-icon icon-alert icon"
|
|
613
592
|
/>
|
|
593
|
+
<i
|
|
594
|
+
v-if="row.isRke1"
|
|
595
|
+
v-clean-tooltip="t('cluster.rke1Unsupported')"
|
|
596
|
+
class="rke1-unsupported-icon icon-warning icon"
|
|
597
|
+
/>
|
|
614
598
|
</p>
|
|
615
|
-
|
|
616
|
-
<!-- 集群描述 -->
|
|
617
599
|
<p
|
|
618
600
|
v-if="row.description"
|
|
619
601
|
class="cluster-description"
|
|
@@ -623,8 +605,6 @@ export default defineComponent({
|
|
|
623
605
|
</div>
|
|
624
606
|
</td>
|
|
625
607
|
</template>
|
|
626
|
-
|
|
627
|
-
<!-- 列渲染:Kubernetes 版本 + 架构 -->
|
|
628
608
|
<template #col:kubernetesVersion="{row}">
|
|
629
609
|
<td class="col-name">
|
|
630
610
|
<span>
|
|
@@ -638,8 +618,6 @@ export default defineComponent({
|
|
|
638
618
|
</div>
|
|
639
619
|
</td>
|
|
640
620
|
</template>
|
|
641
|
-
|
|
642
|
-
<!-- 列渲染:CPU 核数 -->
|
|
643
621
|
<template #col:cpu="{row}">
|
|
644
622
|
<td v-if="row.mgmt && cpuAllocatable(row.mgmt)">
|
|
645
623
|
{{ `${cpuAllocatable(row.mgmt)} ${t('landing.clusters.cores', {count:cpuAllocatable(row.mgmt) })}` }}
|
|
@@ -648,8 +626,6 @@ export default defineComponent({
|
|
|
648
626
|
—
|
|
649
627
|
</td>
|
|
650
628
|
</template>
|
|
651
|
-
|
|
652
|
-
<!-- 列渲染:内存 -->
|
|
653
629
|
<template #col:memory="{row}">
|
|
654
630
|
<td v-if="row.mgmt && memoryAllocatable(row.mgmt) && !memoryAllocatable(row.mgmt).match(/^0 [a-zA-z]/)">
|
|
655
631
|
{{ memoryAllocatable(row.mgmt) }}
|
|
@@ -658,20 +634,16 @@ export default defineComponent({
|
|
|
658
634
|
—
|
|
659
635
|
</td>
|
|
660
636
|
</template>
|
|
661
|
-
|
|
662
|
-
<!-- 列渲染:探索按钮 -->
|
|
663
|
-
<template #cell:explorer="{row}">
|
|
637
|
+
<!-- <template #cell:explorer="{row}">
|
|
664
638
|
<router-link v-if="row && row.isReady" class="btn btn-sm role-primary" :to="{name: 'c-cluster', params: {cluster: row.id}}">
|
|
665
639
|
{{ t('landing.clusters.explore') }}
|
|
666
640
|
</router-link>
|
|
667
641
|
<button v-else :disabled="true" class="btn btn-sm role-primary">
|
|
668
642
|
{{ t('landing.clusters.explore') }}
|
|
669
643
|
</button>
|
|
670
|
-
</template>
|
|
644
|
+
</template> -->
|
|
671
645
|
</PaginatedResourceTable>
|
|
672
646
|
</div>
|
|
673
|
-
|
|
674
|
-
<!-- 单集群模式 -->
|
|
675
647
|
<div
|
|
676
648
|
v-else
|
|
677
649
|
class="col span-12"
|
|
@@ -680,8 +652,7 @@ export default defineComponent({
|
|
|
680
652
|
</div>
|
|
681
653
|
</div>
|
|
682
654
|
</div>
|
|
683
|
-
|
|
684
|
-
<!-- <CommunityLinks class="col span-3 side-panel" /> -->
|
|
655
|
+
<CommunityLinks class="col span-3 side-panel" />
|
|
685
656
|
</div>
|
|
686
657
|
</IndentedPanel>
|
|
687
658
|
</div>
|
|
@@ -707,29 +678,13 @@ export default defineComponent({
|
|
|
707
678
|
}
|
|
708
679
|
}
|
|
709
680
|
|
|
710
|
-
.set-login-page, .whats-new {
|
|
711
|
-
> :deep() .banner__content {
|
|
712
|
-
display: flex;
|
|
713
|
-
|
|
714
|
-
> div {
|
|
715
|
-
flex: 1;
|
|
716
|
-
}
|
|
717
|
-
> a {
|
|
718
|
-
align-self: flex-end;
|
|
719
|
-
}
|
|
720
|
-
}
|
|
721
|
-
}
|
|
722
|
-
|
|
723
|
-
.banner.set-login-page {
|
|
724
|
-
border: 1px solid var(--border);
|
|
725
|
-
}
|
|
726
681
|
.table-heading {
|
|
727
682
|
align-items: center;
|
|
728
683
|
display: flex;
|
|
729
684
|
height: 39px;
|
|
730
685
|
|
|
731
686
|
& > a {
|
|
732
|
-
margin-
|
|
687
|
+
margin-left: 10px;
|
|
733
688
|
}
|
|
734
689
|
}
|
|
735
690
|
.panel:not(:first-child) {
|
|
@@ -760,7 +715,7 @@ export default defineComponent({
|
|
|
760
715
|
align-items: center;
|
|
761
716
|
|
|
762
717
|
// Ensure long cluster names truncate with ellipsis
|
|
763
|
-
> A {
|
|
718
|
+
> A, > span {
|
|
764
719
|
overflow: hidden;
|
|
765
720
|
text-overflow: ellipsis;
|
|
766
721
|
}
|
|
@@ -777,6 +732,11 @@ export default defineComponent({
|
|
|
777
732
|
color: var(--error);
|
|
778
733
|
margin-left: 4px;
|
|
779
734
|
}
|
|
735
|
+
|
|
736
|
+
.rke1-unsupported-icon {
|
|
737
|
+
color: var(--warning);
|
|
738
|
+
margin-left: 4px;
|
|
739
|
+
}
|
|
780
740
|
}
|
|
781
741
|
|
|
782
742
|
// Hide the side-panel showing links when the screen is small
|
package/pages/prefs.vue
CHANGED
|
@@ -17,7 +17,6 @@ import LabeledSelect from '@shell/components/form/LabeledSelect';
|
|
|
17
17
|
import { addObject } from '@shell/utils/array';
|
|
18
18
|
import LocaleSelector from '@shell/components/LocaleSelector';
|
|
19
19
|
import TabTitle from '@shell/components/TabTitle';
|
|
20
|
-
import { HARVESTER_NAME as HARVESTER } from '@shell/config/features';
|
|
21
20
|
|
|
22
21
|
export default {
|
|
23
22
|
components: {
|
|
@@ -44,7 +43,7 @@ export default {
|
|
|
44
43
|
...mapGetters({ hasMultipleLocales: 'i18n/hasMultipleLocales' }),
|
|
45
44
|
|
|
46
45
|
isHarvester() {
|
|
47
|
-
return this.isSingleProduct?.productName ===
|
|
46
|
+
return this.isSingleProduct?.productName === 'harvester';
|
|
48
47
|
},
|
|
49
48
|
|
|
50
49
|
theme: {
|
|
@@ -190,13 +189,11 @@ export default {
|
|
|
190
189
|
<!-- Language -->
|
|
191
190
|
<div
|
|
192
191
|
v-if="hasMultipleLocales && !isHarvester"
|
|
193
|
-
class="
|
|
194
|
-
style="border: 1px solid var(--nav-border);"
|
|
192
|
+
class="mt-10 mb-10"
|
|
195
193
|
>
|
|
196
194
|
<h4
|
|
197
195
|
id="prefs-language"
|
|
198
196
|
v-t="'prefs.language'"
|
|
199
|
-
class="pb-20"
|
|
200
197
|
/>
|
|
201
198
|
<div class="row">
|
|
202
199
|
<div class="col span-4">
|
|
@@ -208,35 +205,36 @@ export default {
|
|
|
208
205
|
</div>
|
|
209
206
|
</div>
|
|
210
207
|
<!-- Theme -->
|
|
211
|
-
<div class="
|
|
212
|
-
<h4 v-t="'prefs.theme.label'"
|
|
208
|
+
<div class="mt-10 mb-10">
|
|
209
|
+
<h4 v-t="'prefs.theme.label'" />
|
|
213
210
|
<ButtonGroup
|
|
214
211
|
v-model:value="theme"
|
|
215
212
|
data-testid="prefs__themeOptions"
|
|
216
213
|
:options="themeOptions"
|
|
217
214
|
/>
|
|
218
|
-
|
|
215
|
+
<div class="mt-10">
|
|
219
216
|
<t
|
|
220
217
|
k="prefs.theme.autoDetail"
|
|
221
218
|
:pm="pm"
|
|
222
219
|
:am="am"
|
|
223
220
|
/>
|
|
224
|
-
</div>
|
|
221
|
+
</div>
|
|
225
222
|
</div>
|
|
226
223
|
<!-- Login landing page -->
|
|
227
224
|
<div
|
|
228
225
|
v-if="!isSingleProduct"
|
|
229
|
-
class="
|
|
230
|
-
style="border: 1px solid var(--nav-border);"
|
|
226
|
+
class="mt-10 mb-10"
|
|
231
227
|
>
|
|
232
|
-
<
|
|
228
|
+
<hr role="none">
|
|
229
|
+
<h4 v-t="'prefs.landing.label'" />
|
|
233
230
|
<LandingPagePreference
|
|
234
231
|
data-testid="prefs__landingPagePreference"
|
|
235
232
|
/>
|
|
236
233
|
</div>
|
|
237
234
|
<!-- Display Settings -->
|
|
238
|
-
<div class="
|
|
239
|
-
<
|
|
235
|
+
<div class="mt-10 mb-10">
|
|
236
|
+
<hr role="none">
|
|
237
|
+
<h4 v-t="'prefs.displaySettings.title'" />
|
|
240
238
|
<p class="set-landing-leadin">
|
|
241
239
|
{{ t('prefs.displaySettings.detail', {}, raw=true) }}
|
|
242
240
|
</p>
|
|
@@ -277,10 +275,10 @@ export default {
|
|
|
277
275
|
<!-- Confirmation setting -->
|
|
278
276
|
<div
|
|
279
277
|
v-if="!isSingleProduct"
|
|
280
|
-
class="col adv-features
|
|
281
|
-
style="border: 1px solid var(--nav-border);"
|
|
278
|
+
class="col adv-features mt-10 mb-10"
|
|
282
279
|
>
|
|
283
|
-
<
|
|
280
|
+
<hr role="none">
|
|
281
|
+
<h4 v-t="'prefs.confirmationSetting.title'" />
|
|
284
282
|
<Checkbox
|
|
285
283
|
v-model:value="scalingDownPrompt"
|
|
286
284
|
data-testid="prefs__scalingDownPrompt"
|
|
@@ -289,8 +287,9 @@ export default {
|
|
|
289
287
|
/>
|
|
290
288
|
</div>
|
|
291
289
|
<!-- Advanced Features -->
|
|
292
|
-
<div class="col adv-features
|
|
293
|
-
<
|
|
290
|
+
<div class="col adv-features mt-10 mb-10">
|
|
291
|
+
<hr role="none">
|
|
292
|
+
<h4 v-t="'prefs.advFeatures.title'" />
|
|
294
293
|
<Checkbox
|
|
295
294
|
v-model:value="viewInApi"
|
|
296
295
|
data-testid="prefs__viewInApi"
|
|
@@ -326,13 +325,15 @@ export default {
|
|
|
326
325
|
<Checkbox
|
|
327
326
|
v-model:value="pluginDeveloper"
|
|
328
327
|
:label="t('prefs.advFeatures.pluginDeveloper', {}, true)"
|
|
328
|
+
:tooltip="t('prefs.advFeatures.pluginDeveloperTooltip')"
|
|
329
329
|
class="mt-20"
|
|
330
330
|
/>
|
|
331
331
|
</template>
|
|
332
332
|
</div>
|
|
333
333
|
<!-- YAML editor key mapping -->
|
|
334
|
-
<div class="col
|
|
335
|
-
<
|
|
334
|
+
<div class="col mt-10 mb-10">
|
|
335
|
+
<hr role="none">
|
|
336
|
+
<h4 v-t="'prefs.keymap.label'" />
|
|
336
337
|
<ButtonGroup
|
|
337
338
|
v-model:value="keymap"
|
|
338
339
|
data-testid="prefs__keymapOptions"
|
|
@@ -342,10 +343,10 @@ export default {
|
|
|
342
343
|
<!-- Helm Charts -->
|
|
343
344
|
<div
|
|
344
345
|
v-if="!isSingleProduct"
|
|
345
|
-
class="col mb-40
|
|
346
|
-
style="border: 1px solid var(--nav-border);"
|
|
346
|
+
class="col mt-10 mb-40"
|
|
347
347
|
>
|
|
348
|
-
<
|
|
348
|
+
<hr role="none">
|
|
349
|
+
<h4 v-t="'prefs.helm.label'" />
|
|
349
350
|
<ButtonGroup
|
|
350
351
|
v-model:value="showPreRelease"
|
|
351
352
|
data-testid="prefs__helmOptions"
|
|
@@ -364,7 +365,4 @@ export default {
|
|
|
364
365
|
max-width: 80vw;
|
|
365
366
|
color: var(--input-label);
|
|
366
367
|
}
|
|
367
|
-
h4{
|
|
368
|
-
font-size: 14px;
|
|
369
|
-
}
|
|
370
368
|
</style>
|
|
@@ -92,10 +92,10 @@ export default {
|
|
|
92
92
|
this.info = '';
|
|
93
93
|
this.warning = this.t('rbac.globalRoles.usersBound', { count: uniqueUsersWithBinds.size });
|
|
94
94
|
} else {
|
|
95
|
-
this.info = this.t('rbac.globalRoles.notBound');
|
|
95
|
+
this.info = this.t('rbac.globalRoles.notBound', null, true);
|
|
96
96
|
}
|
|
97
97
|
} else {
|
|
98
|
-
this.info = this.t('rbac.globalRoles.notBound');
|
|
98
|
+
this.info = this.t('rbac.globalRoles.notBound', null, true);
|
|
99
99
|
}
|
|
100
100
|
} catch (e) {
|
|
101
101
|
this.info = this.t('rbac.globalRoles.unableToCheck');
|
package/public/index.html
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
7
7
|
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
|
8
8
|
<link rel="shortcut icon" type="image/x-icon" href="/favicon.png">
|
|
9
|
-
<title>
|
|
9
|
+
<title>Rancher</title>
|
|
10
10
|
</head>
|
|
11
11
|
|
|
12
12
|
<body>
|
|
@@ -49,11 +49,11 @@
|
|
|
49
49
|
|
|
50
50
|
.initial-load-spinner {
|
|
51
51
|
animation: initial-load-animate 1s infinite linear;
|
|
52
|
-
background-color:
|
|
52
|
+
background-color: var(--loading-bg-color);
|
|
53
53
|
box-sizing: border-box;
|
|
54
|
-
border: 5px solid #
|
|
54
|
+
border: 5px solid #008ACF;
|
|
55
55
|
border-radius: 50%;
|
|
56
|
-
border-top-color:
|
|
56
|
+
border-top-color: #00B2E2;
|
|
57
57
|
display: inline-block;
|
|
58
58
|
height: 80px;
|
|
59
59
|
margin: 0 auto;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { PropType, defineComponent } from 'vue';
|
|
3
|
-
import { mapGetters } from 'vuex';
|
|
4
3
|
|
|
5
4
|
interface Badge {
|
|
6
5
|
stateBackground: string;
|
|
@@ -48,15 +47,12 @@ export default defineComponent({
|
|
|
48
47
|
},
|
|
49
48
|
|
|
50
49
|
computed: {
|
|
51
|
-
...mapGetters({ t: 'i18n/t' }),
|
|
52
50
|
bg(): string | null {
|
|
53
51
|
return this.value?.stateBackground || this.color;
|
|
54
52
|
},
|
|
55
53
|
|
|
56
54
|
msg(): string | null {
|
|
57
|
-
|
|
58
|
-
let zhText = this.t(`stateLabel.${ text }`)
|
|
59
|
-
return zhText ? zhText : text
|
|
55
|
+
return this.value?.stateDisplay || this.label;
|
|
60
56
|
}
|
|
61
57
|
}
|
|
62
58
|
});
|
|
@@ -68,7 +64,9 @@ export default defineComponent({
|
|
|
68
64
|
v-if="icon"
|
|
69
65
|
class="icon"
|
|
70
66
|
:class="{[icon]: true, 'mr-5': !!msg}"
|
|
71
|
-
/>
|
|
67
|
+
/>
|
|
68
|
+
<span class="msg">{{ msg }}</span>
|
|
69
|
+
<slot name="content-right" />
|
|
72
70
|
</span>
|
|
73
71
|
</template>
|
|
74
72
|
|