dashboard-shell-shell 1.0.1000000116 → 1.0.1000000117

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.
Files changed (124) hide show
  1. package/assets/images/action.svg +6 -0
  2. package/assets/images/pl/logo.png +0 -0
  3. package/assets/styles/base/_functions.scss +0 -0
  4. package/assets/styles/base/_mixins.scss +1 -1
  5. package/assets/styles/global/_button.scss +17 -10
  6. package/assets/styles/global/_form.scss +2 -2
  7. package/assets/styles/global/_labeled-input.scss +6 -2
  8. package/assets/styles/global/_select.scss +6 -7
  9. package/assets/styles/global/_table.scss +3 -2
  10. package/assets/styles/global/_tooltip.scss +8 -1
  11. package/assets/styles/themes/_dark.scss +2 -0
  12. package/assets/styles/themes/_light.scss +5 -2
  13. package/assets/styles/vendor/vue-select.scss +2 -1
  14. package/assets/translations/en-us.yaml +1 -3
  15. package/assets/translations/zh-hans.yaml +51 -28
  16. package/components/ActionDropdown.vue +1 -0
  17. package/components/ActionMenuShell.vue +6 -3
  18. package/components/BrandImage.vue +22 -0
  19. package/components/ClusterIconMenu.vue +1 -1
  20. package/components/CodeMirror.vue +1 -0
  21. package/components/CruResource.vue +1 -1
  22. package/components/CruResourceFooter.vue +1 -1
  23. package/components/ExplorerProjectsNamespaces.vue +4 -24
  24. package/components/GlobalRoleBindings.vue +112 -48
  25. package/components/IndentedPanel.vue +4 -10
  26. package/components/PromptRemove.vue +3 -3
  27. package/components/ResourceDetail/Masthead.vue +190 -242
  28. package/components/ResourceDetail/index.vue +20 -5
  29. package/components/ResourceList/Masthead.vue +146 -84
  30. package/components/ResourceList/ResourceLoadingIndicator.vue +5 -2
  31. package/components/ResourceTable.vue +76 -1
  32. package/components/SideNav.vue +66 -29
  33. package/components/SortableTable/THead.vue +6 -0
  34. package/components/SortableTable/index.vue +481 -388
  35. package/components/Tabbed/index.vue +4 -5
  36. package/components/auth/Principal.vue +3 -2
  37. package/components/auth/RoleDetailEdit.vue +58 -5
  38. package/components/auth/SelectPrincipal.vue +1 -0
  39. package/components/form/BannerSettings.vue +18 -16
  40. package/components/form/ChangePassword.vue +4 -4
  41. package/components/form/ColorInput.vue +32 -8
  42. package/components/form/Footer.vue +1 -1
  43. package/components/form/InputWithSelect.vue +2 -0
  44. package/components/form/KeyValue.vue +31 -7
  45. package/components/form/LabeledSelect.vue +178 -178
  46. package/components/form/Members/ClusterPermissionsEditor.vue +1 -2
  47. package/components/form/Members/MembershipEditor.vue +1 -1
  48. package/components/form/NameNsDescription.vue +24 -11
  49. package/components/form/Password.vue +6 -2
  50. package/components/form/ResourceQuota/Namespace.vue +1 -1
  51. package/components/form/ResourceQuota/NamespaceRow.vue +13 -10
  52. package/components/form/ResourceQuota/ProjectRow.vue +0 -1
  53. package/components/form/Select.vue +2 -2
  54. package/components/nav/Favorite.vue +5 -1
  55. package/components/nav/Group.vue +69 -23
  56. package/components/nav/Header.vue +82 -17
  57. package/components/nav/HeaderPageActionMenu.vue +1 -0
  58. package/components/nav/NamespaceFilter.vue +0 -3
  59. package/components/nav/TopLevelMenu.vue +182 -119
  60. package/components/nav/Type.vue +48 -11
  61. package/composables/useClickOutside.ts +1 -1
  62. package/config/product/auth.js +16 -7
  63. package/config/product/explorer.js +1 -1
  64. package/config/product/settings.js +17 -8
  65. package/config/settings.ts +28 -0
  66. package/edit/management.cattle.io.user.vue +17 -4
  67. package/edit/networking.k8s.io.ingress/RulePath.vue +1 -1
  68. package/edit/token.vue +1 -1
  69. package/list/harvesterhci.io.management.cluster.vue +17 -0
  70. package/list/management.cattle.io.setting.vue +22 -13
  71. package/list/management.cattle.io.user.vue +25 -14
  72. package/list/provisioning.cattle.io.cluster.vue +6 -7
  73. package/mixins/brand.js +17 -0
  74. package/package.json +1 -1
  75. package/pages/auth/login.vue +84 -29
  76. package/pages/c/_cluster/auth/roles/index.vue +61 -14
  77. package/pages/c/_cluster/settings/banners.vue +174 -101
  78. package/pages/c/_cluster/settings/brand.vue +348 -301
  79. package/pages/c/_cluster/settings/performance.vue +61 -38
  80. package/pages/home.vue +70 -21
  81. package/pages/prefs.vue +25 -23
  82. package/pkg/tsconfig.json +9 -9
  83. package/pkg/vue.config.js +1 -1
  84. package/promptRemove/mixin/roleDeletionCheck.js +2 -2
  85. package/scripts/clean +0 -0
  86. package/scripts/extension/bundle +0 -0
  87. package/scripts/extension/helm/scripts/package +0 -0
  88. package/scripts/extension/helm/scripts/patch +0 -0
  89. package/scripts/extension/helm/scripts/version +0 -0
  90. package/scripts/extension/helmpatch +0 -0
  91. package/scripts/extension/parse-tag-name +0 -0
  92. package/scripts/extension/publish +0 -0
  93. package/scripts/publish-shell.sh +86 -60
  94. package/scripts/serve-pkgs +0 -0
  95. package/scripts/sync-shell-deps +0 -0
  96. package/scripts/typegen.sh +44 -28
  97. package/store/i18n.js +5 -5
  98. package/store/prefs.js +17 -5
  99. package/store/type-map.js +2 -1
  100. package/types/shell/index.d.ts +1 -1
  101. package/utils/error.js +4 -0
  102. package/utils/router.js +3 -3
  103. package/vue.config.js +1 -6
  104. package/components/rancherResourceDetail/Masthead.vue +0 -769
  105. package/components/rancherResourceDetail/__tests__/Masthead.test.ts +0 -65
  106. package/components/rancherResourceDetail/index.vue +0 -591
  107. package/components/rancherResourceList/Masthead.vue +0 -375
  108. package/components/rancherResourceList/ResourceLoadingIndicator.vue +0 -140
  109. package/components/rancherResourceList/index.vue +0 -307
  110. package/components/rancherResourceList/resource-list.config.js +0 -7
  111. package/components/rancherResourceTable.vue +0 -783
  112. package/components/rancherSortableTable/THead.vue +0 -561
  113. package/components/rancherSortableTable/actions.js +0 -153
  114. package/components/rancherSortableTable/advanced-filtering.js +0 -272
  115. package/components/rancherSortableTable/debug.js +0 -117
  116. package/components/rancherSortableTable/filtering.js +0 -290
  117. package/components/rancherSortableTable/grouping.js +0 -48
  118. package/components/rancherSortableTable/index.vue +0 -2712
  119. package/components/rancherSortableTable/paging.js +0 -155
  120. package/components/rancherSortableTable/selection.js +0 -629
  121. package/components/rancherSortableTable/sortable-config.ts +0 -4
  122. package/components/rancherSortableTable/sorting.js +0 -129
  123. package/types/cloud-shell/index.d.ts +0 -11014
  124. /package/components/{rancherResourceList → ResourceList}/Masthead-btn.vue +0 -0
@@ -204,14 +204,16 @@ export default {
204
204
  <template>
205
205
  <Loading v-if="$fetchState.pending" />
206
206
  <div v-else>
207
+ <!-- 面包屑 -->
208
+ <div class="excram-list">全局设置 / <span style="color: #1890FF;">性能</span></div>
207
209
  <h1 class="mb-20">
208
210
  {{ t('performance.label') }}
209
211
  </h1>
210
212
  <div>
211
- <div class="ui-perf-setting">
212
- <!-- Inactivity -->
213
- <div class="mt-20">
214
- <h2>{{ t('performance.inactivity.title') }}</h2>
213
+ <div class="ui-perf-setting pb-40">
214
+ <!-- 闲置状态 -->
215
+ <div class="mb-20 p-20" style="border: 1px solid var(--nav-border);">
216
+ <h2 class="mb-20">{{ t('performance.inactivity.title') }}</h2>
215
217
  <p>{{ t('performance.inactivity.description') }}</p>
216
218
  <Checkbox
217
219
  v-model:value="value.inactivity.enabled"
@@ -238,21 +240,21 @@ export default {
238
240
  />
239
241
  </div>
240
242
  </div>
241
- <!-- Websocket Notifications -->
242
- <div class="mt-40">
243
- <h2>{{ t('performance.websocketNotification.label') }}</h2>
243
+ <!-- WebSocket 通知 -->
244
+ <div class="mb-40 p-20" style="border: 1px solid var(--nav-border);">
245
+ <h2 class="mb-20">{{ t('performance.websocketNotification.label') }}</h2>
244
246
  <p>{{ t('performance.websocketNotification.description') }}</p>
245
247
  <Checkbox
246
248
  v-model:value="value.disableWebsocketNotification"
247
249
  :mode="mode"
248
250
  :label="t('performance.websocketNotification.checkboxLabel')"
249
- class="mt-10 mb-20"
251
+ class="mt-10"
250
252
  :primary="true"
251
253
  />
252
254
  </div>
253
255
  <!-- Server Side Pagination -->
254
- <div class="mt-20">
255
- <h2 id="ssp-setting">
256
+ <div class="mb-20 p-20" style="border: 1px solid var(--nav-border);">
257
+ <h2 class="mb-20" id="ssp-setting">
256
258
  {{ t('performance.serverPagination.label') }}
257
259
  </h2>
258
260
  <p>{{ t('performance.serverPagination.description') }}</p>
@@ -286,9 +288,9 @@ export default {
286
288
  />
287
289
  </Collapse>
288
290
  </div>
289
- <!-- Incremental Loading -->
290
- <div class="mt-20">
291
- <h2>{{ t('performance.incrementalLoad.label') }}</h2>
291
+ <!-- 增量加载 -->
292
+ <div class="mb-20 p-20" style="border: 1px solid var(--nav-border);">
293
+ <h2 class="mb-20">{{ t('performance.incrementalLoad.label') }}</h2>
292
294
  <Banner
293
295
  color="warning"
294
296
  >
@@ -318,9 +320,9 @@ export default {
318
320
  />
319
321
  </div>
320
322
  </div>
321
- <!-- Enable manual refresh list views -->
322
- <div class="mt-40">
323
- <h2 v-t="'performance.manualRefresh.label'" />
323
+ <!-- 手动刷新 -->
324
+ <div class="mb-20 p-20" style="border: 1px solid var(--nav-border);">
325
+ <h2 class="mb-20" v-t="'performance.manualRefresh.label'" />
324
326
  <Banner
325
327
  color="warning"
326
328
  >
@@ -350,9 +352,9 @@ export default {
350
352
  />
351
353
  </div>
352
354
  </div>
353
- <!-- Enable GC of resources from store -->
354
- <div class="mt-40">
355
- <h2 v-t="'performance.gc.label'" />
355
+ <!-- 资源垃圾回收 -->
356
+ <div class="mb-20 p-20" style="border: 1px solid var(--nav-border);">
357
+ <h2 class="mb-20" v-t="'performance.gc.label'" />
356
358
  <Banner
357
359
  color="warning"
358
360
  >
@@ -431,9 +433,9 @@ export default {
431
433
  </div>
432
434
  </div>
433
435
  </div>
434
- <!-- Force NS filter -->
435
- <div class="mt-40">
436
- <h2>{{ t('performance.nsFiltering.label') }}</h2>
436
+ <!-- 要求资源组/项目过滤 -->
437
+ <div class="mb-20 p-20" style="border: 1px solid var(--nav-border);">
438
+ <h2 class="mb-20">{{ t('performance.nsFiltering.label') }}</h2>
437
439
  <Banner
438
440
  color="warning"
439
441
  >
@@ -449,9 +451,9 @@ export default {
449
451
  @update:value="compatibleWarning('forceNsFilterV2', $event)"
450
452
  />
451
453
  </div>
452
- <!-- Advanced Websocket Worker -->
453
- <div class="mt-20">
454
- <h2>{{ t('performance.advancedWorker.label') }}</h2>
454
+ <!-- Websocket Web Worker -->
455
+ <div class="mb-20 p-20" style="border: 1px solid var(--nav-border);">
456
+ <h2 class="mb-20">{{ t('performance.advancedWorker.label') }}</h2>
455
457
  <Banner
456
458
  color="warning"
457
459
  >
@@ -477,10 +479,10 @@ export default {
477
479
  :label="err"
478
480
  />
479
481
  </template>
480
- <div v-if="mode === 'edit'">
482
+ <div class="action-btn" v-if="mode === 'edit'">
481
483
  <AsyncButton
482
484
  data-testid="performance__save-btn"
483
- class="pull-right mt-20"
485
+ class="pull-right"
484
486
  mode="apply"
485
487
  :disabled="!canSave"
486
488
  @click="save"
@@ -490,6 +492,17 @@ export default {
490
492
  </template>
491
493
 
492
494
  <style scoped lang='scss'>
495
+ .action-btn {
496
+ padding: 10px 30px;
497
+ position: fixed;
498
+ bottom: 0;
499
+ left: 0;
500
+ width: 100%;
501
+ background: var(--body-bg);
502
+ border-top: 1px solid var(--nav-border);
503
+ }
504
+
505
+
493
506
  .overlay {
494
507
  width: 100%;
495
508
  height: 100%;
@@ -499,17 +512,27 @@ export default {
499
512
  background-color: var(--overlay-bg);
500
513
  z-index: 1;
501
514
  }
502
- .ui-perf-setting {
503
- P {
504
- line-height: 1.25;
505
- margin-bottom: 10px;
506
- }
507
-
508
- .underline {
509
- text-decoration: underline;
510
- }
515
+ .ui-perf-setting {
516
+ P {
517
+ line-height: 1.25;
518
+ margin-bottom: 10px;
511
519
  }
512
- .input {
513
- max-width: 25%;
520
+
521
+ .underline {
522
+ text-decoration: underline;
514
523
  }
524
+ }
525
+ .input {
526
+ max-width: 25%;
527
+ }
528
+ h2{
529
+ font-size: 14px;
530
+ }
531
+
532
+ .excram-list{
533
+ font-size: 14px;
534
+ line-height: 22px;
535
+ margin-bottom: 20px;
536
+ font-family: 'Microsoft YaHei';
537
+ }
515
538
  </style>
package/pages/home.vue CHANGED
@@ -64,7 +64,12 @@ export default defineComponent({
64
64
  query: { [MODE]: _IMPORT }
65
65
  };
66
66
 
67
+ const topLevelPermissions = sessionStorage.getItem('TOPLEVELPERMISSIONS') || ''
68
+
69
+ const topLevelPermissionsVis = topLevelPermissions && topLevelPermissions === 'superadmin'
70
+
67
71
  return {
72
+ topLevelPermissionsVis,
68
73
  HIDE_HOME_PAGE_CARDS,
69
74
  fullVersion: getVersionInfo(this.$store).fullVersion,
70
75
  // Page actions don't change on the Home Page
@@ -504,17 +509,26 @@ export default defineComponent({
504
509
  </script>
505
510
 
506
511
  <template>
512
+ <!-- 当 managementReady 为 true 时才显示首页内容 -->
507
513
  <div
508
514
  v-if="managementReady"
509
515
  class="home-page"
510
516
  >
517
+
518
+ <!-- 页签标题组件,不显示子页面标题和面包屑 -->
511
519
  <TabTitle
520
+ v-if="topLevelPermissionsVis"
512
521
  :show-child="false"
513
522
  :breadcrumb="false"
514
523
  >
524
+
525
+ <!-- 页面标题:{vendor} - 首页 -->
515
526
  {{ `${vendor} - ${t('landing.homepage')}` }}
516
527
  </TabTitle>
528
+
529
+ <!-- 首页欢迎横幅 -->
517
530
  <BannerGraphic
531
+ v-if="topLevelPermissionsVis"
518
532
  :small="true"
519
533
  :title="t('landing.welcomeToRancher', {vendor})"
520
534
  :pref="HIDE_HOME_PAGE_CARDS"
@@ -522,18 +536,28 @@ export default defineComponent({
522
536
  data-testid="home-banner-graphic"
523
537
  />
524
538
  <IndentedPanel class="mt-20 mb-20">
539
+
540
+
541
+
542
+ <!-- 如果用户还没看过“新功能”提示 -->
525
543
  <div
526
- v-if="!readWhatsNewAlready"
544
+ v-if="!readWhatsNewAlready && topLevelPermissionsVis"
527
545
  class="row"
528
546
  >
529
547
  <div class="col span-12">
548
+ <!-- 信息提示横幅,颜色类型 info whats-new -->
530
549
  <Banner
531
550
  data-testid="changelog-banner"
532
551
  color="info whats-new"
533
552
  >
534
553
  <div>
554
+
555
+ <!-- 显示版本更新提示 -->
535
556
  {{ t('landing.seeWhatsNew', { version: CURRENT_RANCHER_VERSION }) }}
536
557
  </div>
558
+
559
+ <!-- 跳转到更新日志链接 -->
560
+ <!-- 链接文本,支持 HTML 清理 -->
537
561
  <a
538
562
  class="hand banner-link"
539
563
  :href="releaseNotesUrl"
@@ -547,13 +571,21 @@ export default defineComponent({
547
571
  </Banner>
548
572
  </div>
549
573
  </div>
574
+
575
+ <!-- 主面板布局 -->
550
576
  <div class="row home-panels">
551
577
  <div class="col main-panel">
578
+ <h2 class="mb-20">
579
+ {{ t('landing.clusters.title') }}
580
+ </h2>
581
+ <!-- 如果不需要显示“设置登录页提示” -->
552
582
  <div
553
- v-if="!showSetLoginBanner"
583
+ v-if="!showSetLoginBanner && topLevelPermissionsVis"
554
584
  class="mb-10 row"
555
585
  >
556
586
  <div class="col span-12">
587
+
588
+ <!-- 可关闭的提示横幅 -->
557
589
  <Banner
558
590
  color="set-login-page mt-0"
559
591
  data-testid="set-login-page-banner"
@@ -563,6 +595,8 @@ export default defineComponent({
563
595
  <div>
564
596
  {{ t('landing.landingPrefs.title') }}
565
597
  </div>
598
+
599
+ <!-- 用户点击后进入偏好设置 -->
566
600
  <a
567
601
  class="hand mr-20"
568
602
  tabindex="0"
@@ -574,11 +608,17 @@ export default defineComponent({
574
608
  </Banner>
575
609
  </div>
576
610
  </div>
611
+
612
+ <!-- 集群列表面板 -->
577
613
  <div class="row panel">
614
+
615
+ <!-- 如果是多集群模式(mcm = multi-cluster management) -->
578
616
  <div
579
617
  v-if="mcm"
580
618
  class="col span-12"
581
619
  >
620
+
621
+ <!-- 分页资源表格 -->
582
622
  <PaginatedResourceTable
583
623
  v-if="provClusterSchema"
584
624
  :schema="provClusterSchema"
@@ -598,27 +638,17 @@ export default defineComponent({
598
638
  :fetchSecondaryResources="fetchSecondaryResources"
599
639
  :fetchPageSecondaryResources="fetchPageSecondaryResources"
600
640
  >
601
- <template #header-left>
602
- <div class="row table-heading">
603
- <h2 class="mb-0">
604
- {{ t('landing.clusters.title') }}
605
- </h2>
606
- <BadgeState
607
- v-if="clusterCount"
608
- :label="clusterCount.toString()"
609
- color="role-tertiary ml-20 mr-20"
610
- />
611
- </div>
612
- </template>
641
+
642
+ <!-- 表头中间:管理、导入、创建按钮 -->
613
643
  <template
614
644
  v-if="canCreateCluster || !!provClusterSchema"
615
- #header-middle
645
+ #header-right
616
646
  >
617
- <div class="table-heading">
647
+ <div v-if="topLevelPermissionsVis" class="table-heading">
618
648
  <router-link
619
649
  v-if="!!provClusterSchema"
620
650
  :to="manageLocation"
621
- class="btn btn-sm role-secondary"
651
+ class="btn btn-sm role-primary"
622
652
  data-testid="cluster-management-manage-button"
623
653
  role="button"
624
654
  :aria-label="t('cluster.manageAction')"
@@ -650,6 +680,8 @@ export default defineComponent({
650
680
  </router-link>
651
681
  </div>
652
682
  </template>
683
+
684
+ <!-- 列渲染:集群名称 -->
653
685
  <template #col:name="{row}">
654
686
  <td class="col-name">
655
687
  <div class="list-cluster-name">
@@ -657,6 +689,8 @@ export default defineComponent({
657
689
  v-if="row.mgmt"
658
690
  class="cluster-name"
659
691
  >
692
+
693
+ <!-- 如果集群就绪且无错误,跳转到集群 Explorer 页面 -->
660
694
  <router-link
661
695
  v-if="row.mgmt.isReady && !row.hasError"
662
696
  :to="{ name: 'c-cluster-explorer', params: { cluster: row.mgmt.id }}"
@@ -665,6 +699,8 @@ export default defineComponent({
665
699
  >
666
700
  {{ row.nameDisplay }}
667
701
  </router-link>
702
+
703
+ <!-- 否则只显示名称 -->
668
704
  <span v-else>{{ row.nameDisplay }}</span>
669
705
  <i
670
706
  v-if="row.unavailableMachines"
@@ -672,6 +708,8 @@ export default defineComponent({
672
708
  class="conditions-alert-icon icon-alert icon"
673
709
  />
674
710
  </p>
711
+
712
+ <!-- 集群描述 -->
675
713
  <p
676
714
  v-if="row.description"
677
715
  class="cluster-description"
@@ -681,6 +719,8 @@ export default defineComponent({
681
719
  </div>
682
720
  </td>
683
721
  </template>
722
+
723
+ <!-- 列渲染:Kubernetes 版本 + 架构 -->
684
724
  <template #col:kubernetesVersion="{row}">
685
725
  <td class="col-name">
686
726
  <span>
@@ -694,6 +734,8 @@ export default defineComponent({
694
734
  </div>
695
735
  </td>
696
736
  </template>
737
+
738
+ <!-- 列渲染:CPU 核数 -->
697
739
  <template #col:cpu="{row}">
698
740
  <td v-if="row.mgmt && cpuAllocatable(row.mgmt)">
699
741
  {{ `${cpuAllocatable(row.mgmt)} ${t('landing.clusters.cores', {count:cpuAllocatable(row.mgmt) })}` }}
@@ -702,6 +744,8 @@ export default defineComponent({
702
744
  &mdash;
703
745
  </td>
704
746
  </template>
747
+
748
+ <!-- 列渲染:内存 -->
705
749
  <template #col:memory="{row}">
706
750
  <td v-if="row.mgmt && memoryAllocatable(row.mgmt) && !memoryAllocatable(row.mgmt).match(/^0 [a-zA-z]/)">
707
751
  {{ memoryAllocatable(row.mgmt) }}
@@ -710,16 +754,20 @@ export default defineComponent({
710
754
  &mdash;
711
755
  </td>
712
756
  </template>
713
- <!-- <template #cell:explorer="{row}">
757
+
758
+ <!-- 列渲染:探索按钮 -->
759
+ <template #cell:explorer="{row}">
714
760
  <router-link v-if="row && row.isReady" class="btn btn-sm role-primary" :to="{name: 'c-cluster', params: {cluster: row.id}}">
715
761
  {{ t('landing.clusters.explore') }}
716
762
  </router-link>
717
763
  <button v-else :disabled="true" class="btn btn-sm role-primary">
718
764
  {{ t('landing.clusters.explore') }}
719
765
  </button>
720
- </template> -->
766
+ </template>
721
767
  </PaginatedResourceTable>
722
768
  </div>
769
+
770
+ <!-- 单集群模式 -->
723
771
  <div
724
772
  v-else
725
773
  class="col span-12"
@@ -728,7 +776,8 @@ export default defineComponent({
728
776
  </div>
729
777
  </div>
730
778
  </div>
731
- <CommunityLinks class="col span-3 side-panel" />
779
+ <!-- 右侧社区链接面板 -->
780
+ <!-- <CommunityLinks class="col span-3 side-panel" /> -->
732
781
  </div>
733
782
  </IndentedPanel>
734
783
  </div>
@@ -776,7 +825,7 @@ export default defineComponent({
776
825
  height: 39px;
777
826
 
778
827
  & > a {
779
- margin-left: 10px;
828
+ margin-right: 10px;
780
829
  }
781
830
  }
782
831
  .panel:not(:first-child) {
package/pages/prefs.vue CHANGED
@@ -191,11 +191,13 @@ export default {
191
191
  <!-- Language -->
192
192
  <div
193
193
  v-if="hasMultipleLocales && !isHarvester"
194
- class="mt-10 mb-10"
194
+ class="mb-20 p-20 pb-0"
195
+ style="border: 1px solid var(--nav-border);"
195
196
  >
196
197
  <h4
197
198
  id="prefs-language"
198
199
  v-t="'prefs.language'"
200
+ class="pb-20"
199
201
  />
200
202
  <div class="row">
201
203
  <div class="col span-4">
@@ -207,36 +209,35 @@ export default {
207
209
  </div>
208
210
  </div>
209
211
  <!-- Theme -->
210
- <div class="mt-10 mb-10">
211
- <h4 v-t="'prefs.theme.label'" />
212
+ <div class="mb-20 p-20" style="border: 1px solid var(--nav-border);">
213
+ <h4 v-t="'prefs.theme.label'" class="mb-20" />
212
214
  <ButtonGroup
213
215
  v-model:value="theme"
214
216
  data-testid="prefs__themeOptions"
215
217
  :options="themeOptions"
216
218
  />
217
- <div class="mt-10">
219
+ <!-- <div class="mt-10">
218
220
  <t
219
221
  k="prefs.theme.autoDetail"
220
222
  :pm="pm"
221
223
  :am="am"
222
224
  />
223
- </div>
225
+ </div> -->
224
226
  </div>
225
227
  <!-- Login landing page -->
226
228
  <div
227
229
  v-if="!isSingleProduct"
228
- class="mt-10 mb-10"
230
+ class="mb-20 p-20"
231
+ style="border: 1px solid var(--nav-border);"
229
232
  >
230
- <hr role="none">
231
- <h4 v-t="'prefs.landing.label'" />
233
+ <h4 v-t="'prefs.landing.label'" class="mb-20" />
232
234
  <LandingPagePreference
233
235
  data-testid="prefs__landingPagePreference"
234
236
  />
235
237
  </div>
236
238
  <!-- Display Settings -->
237
- <div class="mt-10 mb-10">
238
- <hr role="none">
239
- <h4 v-t="'prefs.displaySettings.title'" />
239
+ <div class="mb-20 p-20" style="border: 1px solid var(--nav-border);">
240
+ <h4 v-t="'prefs.displaySettings.title'" class="mb-20" />
240
241
  <p class="set-landing-leadin">
241
242
  {{ t('prefs.displaySettings.detail', {}, raw=true) }}
242
243
  </p>
@@ -277,10 +278,10 @@ export default {
277
278
  <!-- Confirmation setting -->
278
279
  <div
279
280
  v-if="!isSingleProduct"
280
- class="col adv-features mt-10 mb-10"
281
+ class="col adv-features mb-20 p-20"
282
+ style="border: 1px solid var(--nav-border);"
281
283
  >
282
- <hr role="none">
283
- <h4 v-t="'prefs.confirmationSetting.title'" />
284
+ <h4 v-t="'prefs.confirmationSetting.title'" class="mb-20" />
284
285
  <Checkbox
285
286
  v-model:value="scalingDownPrompt"
286
287
  data-testid="prefs__scalingDownPrompt"
@@ -289,9 +290,8 @@ export default {
289
290
  />
290
291
  </div>
291
292
  <!-- Advanced Features -->
292
- <div class="col adv-features mt-10 mb-10">
293
- <hr role="none">
294
- <h4 v-t="'prefs.advFeatures.title'" />
293
+ <div class="col adv-features mb-20 p-20" style="border: 1px solid var(--nav-border);">
294
+ <h4 v-t="'prefs.advFeatures.title'" class="mb-20" />
295
295
  <Checkbox
296
296
  v-model:value="viewInApi"
297
297
  data-testid="prefs__viewInApi"
@@ -332,9 +332,8 @@ export default {
332
332
  </template>
333
333
  </div>
334
334
  <!-- YAML editor key mapping -->
335
- <div class="col mt-10 mb-10">
336
- <hr role="none">
337
- <h4 v-t="'prefs.keymap.label'" />
335
+ <div class="col mb-20 p-20" style="border: 1px solid var(--nav-border);">
336
+ <h4 v-t="'prefs.keymap.label'" class="mb-20" />
338
337
  <ButtonGroup
339
338
  v-model:value="keymap"
340
339
  data-testid="prefs__keymapOptions"
@@ -344,10 +343,10 @@ export default {
344
343
  <!-- Helm Charts -->
345
344
  <div
346
345
  v-if="!isSingleProduct"
347
- class="col mt-10 mb-40"
346
+ class="col mb-40 p-20"
347
+ style="border: 1px solid var(--nav-border);"
348
348
  >
349
- <hr role="none">
350
- <h4 v-t="'prefs.helm.label'" />
349
+ <h4 v-t="'prefs.helm.label'" class="mb-20" />
351
350
  <ButtonGroup
352
351
  v-model:value="showPreRelease"
353
352
  data-testid="prefs__helmOptions"
@@ -366,4 +365,7 @@ export default {
366
365
  max-width: 80vw;
367
366
  color: var(--input-label);
368
367
  }
368
+ h4{
369
+ font-size: 14px;
370
+ }
369
371
  </style>
package/pkg/tsconfig.json CHANGED
@@ -27,25 +27,25 @@
27
27
  ],
28
28
  "paths": {
29
29
  "@shell/core/*": [
30
- "../../node_modules/dashboard-shell-shell/core/*"
30
+ "../../node_modules/@rancher/shell/core/*"
31
31
  ],
32
32
  "@shell/config/*": [
33
- "../../node_modules/dashboard-shell-shell/config/*"
33
+ "../../node_modules/@rancher/shell/config/*"
34
34
  ],
35
35
  "@shell/store/*": [
36
- "../../node_modules/dashboard-shell-shell/store/*"
36
+ "../../node_modules/@rancher/shell/store/*"
37
37
  ],
38
38
  "@shell/plugins/*": [
39
- "../../node_modules/dashboard-shell-shell/plugins/*"
39
+ "../../node_modules/@rancher/shell/plugins/*"
40
40
  ],
41
41
  "@shell/utils/*": [
42
- "../../node_modules/dashboard-shell-shell/utils/*"
42
+ "../../node_modules/@rancher/shell/utils/*"
43
43
  ],
44
44
  "@shell/models/*": [
45
- "../../node_modules/dashboard-shell-shell/models/*"
45
+ "../../node_modules/@rancher/shell/models/*"
46
46
  ],
47
47
  "@shell/mixins/*": [
48
- "../../node_modules/dashboard-shell-shell/mixins/*"
48
+ "../../node_modules/@rancher/shell/mixins/*"
49
49
  ],
50
50
  "@pkg/*": [
51
51
  "./*"
@@ -56,8 +56,8 @@
56
56
  "**/*.ts",
57
57
  "**/*.tsx",
58
58
  "**/*.vue",
59
- "../../node_modules/dashboard-shell-shell/types/*.d.ts",
60
- "../../node_modules/dashboard-shell-shell/core/types.ts"
59
+ "../../node_modules/@rancher/shell/types/*.d.ts",
60
+ "../../node_modules/@rancher/shell/core/types.ts"
61
61
  ],
62
62
  "exclude": [
63
63
  "node_modules"
package/pkg/vue.config.js CHANGED
@@ -117,7 +117,7 @@ module.exports = function(dir) {
117
117
  if (p.use) {
118
118
  p.use.forEach((u) => {
119
119
  if (u.loader.includes('babel-loader')) {
120
- p.exclude = /node_modules\/(?!dashboard-shell-shell\/).*/;
120
+ p.exclude = /node_modules\/(?!@rancher\/shell\/).*/;
121
121
  }
122
122
  });
123
123
  }
@@ -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', null, true);
95
+ this.info = this.t('rbac.globalRoles.notBound');
96
96
  }
97
97
  } else {
98
- this.info = this.t('rbac.globalRoles.notBound', null, true);
98
+ this.info = this.t('rbac.globalRoles.notBound');
99
99
  }
100
100
  } catch (e) {
101
101
  this.info = this.t('rbac.globalRoles.unableToCheck');
package/scripts/clean CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes