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.
Files changed (124) hide show
  1. package/assets/styles/base/_functions.scss +0 -0
  2. package/assets/styles/base/_mixins.scss +1 -1
  3. package/assets/styles/global/_button.scss +10 -17
  4. package/assets/styles/global/_form.scss +2 -2
  5. package/assets/styles/global/_labeled-input.scss +2 -6
  6. package/assets/styles/global/_select.scss +7 -6
  7. package/assets/styles/global/_table.scss +2 -3
  8. package/assets/styles/global/_tooltip.scss +1 -8
  9. package/assets/styles/themes/_dark.scss +0 -2
  10. package/assets/styles/themes/_light.scss +2 -5
  11. package/assets/styles/vendor/vue-select.scss +1 -2
  12. package/assets/translations/en-us.yaml +3 -1
  13. package/assets/translations/zh-hans.yaml +28 -51
  14. package/components/ActionDropdown.vue +0 -1
  15. package/components/ActionMenuShell.vue +3 -6
  16. package/components/BrandImage.vue +0 -22
  17. package/components/ClusterIconMenu.vue +1 -1
  18. package/components/CodeMirror.vue +0 -1
  19. package/components/CruResource.vue +1 -1
  20. package/components/CruResourceFooter.vue +1 -1
  21. package/components/ExplorerProjectsNamespaces.vue +24 -4
  22. package/components/GlobalRoleBindings.vue +48 -112
  23. package/components/IndentedPanel.vue +10 -4
  24. package/components/PromptRemove.vue +3 -3
  25. package/components/ResourceDetail/Masthead.vue +242 -190
  26. package/components/ResourceDetail/index.vue +5 -20
  27. package/components/ResourceList/Masthead.vue +84 -146
  28. package/components/ResourceList/ResourceLoadingIndicator.vue +2 -5
  29. package/components/ResourceTable.vue +1 -76
  30. package/components/SideNav.vue +29 -66
  31. package/components/SortableTable/THead.vue +0 -6
  32. package/components/SortableTable/index.vue +388 -481
  33. package/components/Tabbed/index.vue +5 -4
  34. package/components/auth/Principal.vue +2 -3
  35. package/components/auth/RoleDetailEdit.vue +5 -58
  36. package/components/auth/SelectPrincipal.vue +0 -1
  37. package/components/form/BannerSettings.vue +16 -18
  38. package/components/form/ChangePassword.vue +4 -4
  39. package/components/form/ColorInput.vue +8 -32
  40. package/components/form/Footer.vue +1 -1
  41. package/components/form/InputWithSelect.vue +0 -2
  42. package/components/form/KeyValue.vue +7 -31
  43. package/components/form/LabeledSelect.vue +178 -178
  44. package/components/form/Members/ClusterPermissionsEditor.vue +2 -1
  45. package/components/form/Members/MembershipEditor.vue +1 -1
  46. package/components/form/NameNsDescription.vue +11 -24
  47. package/components/form/Password.vue +2 -6
  48. package/components/form/ResourceQuota/Namespace.vue +1 -1
  49. package/components/form/ResourceQuota/NamespaceRow.vue +10 -13
  50. package/components/form/ResourceQuota/ProjectRow.vue +1 -0
  51. package/components/form/Select.vue +2 -2
  52. package/components/nav/Favorite.vue +1 -5
  53. package/components/nav/Group.vue +23 -69
  54. package/components/nav/Header.vue +17 -82
  55. package/components/nav/HeaderPageActionMenu.vue +0 -1
  56. package/components/nav/NamespaceFilter.vue +3 -0
  57. package/components/nav/TopLevelMenu.vue +119 -182
  58. package/components/nav/Type.vue +11 -48
  59. package/components/rancherResourceDetail/Masthead.vue +769 -0
  60. package/components/rancherResourceDetail/__tests__/Masthead.test.ts +65 -0
  61. package/components/rancherResourceDetail/index.vue +591 -0
  62. package/components/rancherResourceList/Masthead.vue +375 -0
  63. package/components/rancherResourceList/ResourceLoadingIndicator.vue +140 -0
  64. package/components/rancherResourceList/index.vue +307 -0
  65. package/components/rancherResourceList/resource-list.config.js +7 -0
  66. package/components/rancherResourceTable.vue +783 -0
  67. package/components/rancherSortableTable/THead.vue +561 -0
  68. package/components/rancherSortableTable/actions.js +153 -0
  69. package/components/rancherSortableTable/advanced-filtering.js +272 -0
  70. package/components/rancherSortableTable/debug.js +117 -0
  71. package/components/rancherSortableTable/filtering.js +290 -0
  72. package/components/rancherSortableTable/grouping.js +48 -0
  73. package/components/rancherSortableTable/index.vue +2712 -0
  74. package/components/rancherSortableTable/paging.js +155 -0
  75. package/components/rancherSortableTable/selection.js +629 -0
  76. package/components/rancherSortableTable/sortable-config.ts +4 -0
  77. package/components/rancherSortableTable/sorting.js +129 -0
  78. package/composables/useClickOutside.ts +1 -1
  79. package/config/product/auth.js +7 -16
  80. package/config/product/explorer.js +1 -1
  81. package/config/product/settings.js +8 -17
  82. package/config/settings.ts +0 -28
  83. package/edit/management.cattle.io.user.vue +4 -17
  84. package/edit/networking.k8s.io.ingress/RulePath.vue +1 -1
  85. package/edit/token.vue +1 -1
  86. package/list/harvesterhci.io.management.cluster.vue +0 -17
  87. package/list/management.cattle.io.setting.vue +13 -22
  88. package/list/management.cattle.io.user.vue +14 -25
  89. package/list/provisioning.cattle.io.cluster.vue +7 -6
  90. package/mixins/brand.js +0 -17
  91. package/package.json +1 -1
  92. package/pages/auth/login.vue +29 -84
  93. package/pages/c/_cluster/auth/roles/index.vue +14 -61
  94. package/pages/c/_cluster/settings/banners.vue +101 -174
  95. package/pages/c/_cluster/settings/brand.vue +301 -348
  96. package/pages/c/_cluster/settings/performance.vue +38 -61
  97. package/pages/home.vue +21 -70
  98. package/pages/prefs.vue +23 -25
  99. package/pkg/tsconfig.json +9 -9
  100. package/pkg/vue.config.js +1 -1
  101. package/promptRemove/mixin/roleDeletionCheck.js +2 -2
  102. package/scripts/clean +0 -0
  103. package/scripts/extension/bundle +0 -0
  104. package/scripts/extension/helm/scripts/package +0 -0
  105. package/scripts/extension/helm/scripts/patch +0 -0
  106. package/scripts/extension/helm/scripts/version +0 -0
  107. package/scripts/extension/helmpatch +0 -0
  108. package/scripts/extension/parse-tag-name +0 -0
  109. package/scripts/extension/publish +0 -0
  110. package/scripts/publish-shell.sh +60 -86
  111. package/scripts/serve-pkgs +0 -0
  112. package/scripts/sync-shell-deps +0 -0
  113. package/scripts/typegen.sh +28 -44
  114. package/store/i18n.js +5 -5
  115. package/store/prefs.js +5 -17
  116. package/store/type-map.js +1 -2
  117. package/types/cloud-shell/index.d.ts +11014 -0
  118. package/types/shell/index.d.ts +1 -1
  119. package/utils/error.js +0 -4
  120. package/utils/router.js +3 -3
  121. package/vue.config.js +6 -1
  122. package/assets/images/action.svg +0 -6
  123. package/assets/images/pl/logo.png +0 -0
  124. /package/components/{ResourceList → rancherResourceList}/Masthead-btn.vue +0 -0
@@ -8,11 +8,6 @@ export default {
8
8
  emits: ['expand', 'close'],
9
9
 
10
10
  props: {
11
- loginName: {
12
- type: String,
13
- default: '',
14
- },
15
-
16
11
  depth: {
17
12
  type: Number,
18
13
  default: 0,
@@ -51,16 +46,8 @@ export default {
51
46
 
52
47
  data() {
53
48
  const id = (this.idPrefix || '') + this.group.name;
54
- const icons = {
55
- '虚拟机管理': 'icon-backupandsnapshot',
56
- '网络管理': 'icon-networks',
57
- '镜像管理': 'icon-imagelist',
58
- '资源管理': 'icon-sorcetype',
59
- '运维管理': 'icon-monitoringandlogging'
60
- }
61
-
62
49
 
63
- return { id, expanded: false, icons };
50
+ return { id, expanded: false };
64
51
  },
65
52
 
66
53
  computed: {
@@ -192,7 +179,8 @@ export default {
192
179
  const withoutQuery = withoutHash.split('?')[0];
193
180
  const itemFullPath = this.$router.resolve(item.route).fullPath;
194
181
 
195
- if (matchesNavLevel || itemFullPath === withoutQuery) {
182
+ // if (matchesNavLevel || itemFullPath === withoutQuery) {
183
+ if (matchesNavLevel || itemFullPath === withoutQuery || withoutQuery.includes(itemFullPath)) {
196
184
  return true;
197
185
  } else if (parentPath && itemFullPath === parentPath) {
198
186
  return true;
@@ -234,7 +222,6 @@ export default {
234
222
  class="accordion"
235
223
  :class="{[`depth-${depth}`]: true, 'expanded': isExpanded, 'has-children': hasChildren, 'group-highlight': isGroupActive}"
236
224
  >
237
- <!-- 分组标题区 -->
238
225
  <div
239
226
  v-if="showHeader"
240
227
  class="header"
@@ -246,37 +233,26 @@ export default {
246
233
  @keyup.enter="groupSelected()"
247
234
  @keyup.space="groupSelected()"
248
235
  >
249
-
250
- <!-- 具名插槽 header,允许外部自定义标题内容 -->
251
236
  <slot name="header">
252
-
253
- <!-- 如果分组有概览页(overview) 跳转到第一个子路由 -->
254
- <h6 v-if="hasOverview">
255
- <router-link
256
- class="menuRouterLink"
257
- :to="group.children[0].route"
258
- :exact="group.children[0].exact"
259
- :tabindex="-1"
260
- >
261
- <i v-if="!group.labelDisplay || (group.labelDisplay && group.labelDisplay.indexOf('</i>') === -1)" class="icon" :class="icons[group.label] ? icons[group.label] + ' init_icon' : 'icon-globe'" style="color: var(--muted);width: 32px;" />
237
+ <router-link
238
+ v-if="hasOverview"
239
+ :to="group.children[0].route"
240
+ :exact="group.children[0].exact"
241
+ :tabindex="-1"
242
+ >
243
+ <h6>
262
244
  <span v-clean-html="group.labelDisplay || group.label" />
263
- </router-link>
264
- </h6>
265
- <!-- 虚拟机管理:icon-backupandsnapshot -->
266
- <!-- 网络管理:icon-networks -->
267
- <!-- 镜像管理:icon-imagelist -->
268
- <!-- 资源管理:icon-sorcetype -->
269
- <!-- 运维管理:icon-monitoringandlogging -->
270
- <!-- 没有概览页的情况 -->
245
+ </h6>
246
+ </router-link>
271
247
  <h6
272
248
  v-else
249
+ @click="peek($event, true)"
273
250
  >
274
- <i v-if="!group.labelDisplay || (group.labelDisplay && group.labelDisplay.indexOf('</i>') === -1)" class="icon" :class="icons[group.label] ? icons[group.label] + ' init_icon' : 'icon-globe'" style="color: var(--muted);width: 32px;" />
275
- <span v-clean-html="group.labelDisplay || group.label" />
251
+ <i :class="'nav-icon icon-'+group.name.replace(/\s+/g, '').toLowerCase()" />
252
+ {{ group.labelDisplay || group.label }}
253
+ <!-- <span v-clean-html="group.labelDisplay || group.label" /> -->
276
254
  </h6>
277
255
  </slot>
278
-
279
- <!-- 折叠/展开图标 -->
280
256
  <i
281
257
  v-if="!onlyHasOverview && canCollapse"
282
258
  class="icon toggle toggle-accordion"
@@ -289,8 +265,6 @@ export default {
289
265
  @keyup.space="peek($event, true)"
290
266
  />
291
267
  </div>
292
-
293
- <!-- 子列表(Accordion 内容) -->
294
268
  <ul
295
269
  v-if="isExpanded"
296
270
  class="list-unstyled body"
@@ -300,7 +274,6 @@ export default {
300
274
  v-for="(child, idx) in group[childrenKey]"
301
275
  :key="idx"
302
276
  >
303
- <!-- <template v-if="!(loginName && loginName !== 'admin' && child.label === '资源大盘')"></template> -->
304
277
  <li
305
278
  v-if="child.divider"
306
279
  :key="idx"
@@ -346,19 +319,14 @@ export default {
346
319
  position: relative;
347
320
  cursor: pointer;
348
321
  color: var(--body-text);
349
- height: 50px;
322
+ height: 33px;
323
+ outline: none;
350
324
 
351
325
  H6 {
352
326
  color: var(--body-text);
353
327
  user-select: none;
354
328
  text-transform: none;
355
329
  font-size: 14px;
356
- .menuRouterLink {
357
- color: var(--body-text);
358
- user-select: none;
359
- text-transform: none;
360
- font-size: 14px;
361
- }
362
330
  }
363
331
 
364
332
  > A {
@@ -399,9 +367,6 @@ export default {
399
367
  /* padding: 8px 0 8px 16px;
400
368
  font-weight: bold; */
401
369
  color: var(--nav-hover-color);
402
- .menuRouterLink {
403
- color: var(--nav-hover-color);
404
- }
405
370
  }
406
371
  I{
407
372
  color: var(--nav-hover-color);
@@ -416,9 +381,6 @@ export default {
416
381
  color: var(--nav-hover-color);
417
382
  h6{
418
383
  color: var(--nav-hover-color);
419
- .menuRouterLink {
420
- color: var(--nav-hover-color);
421
- }
422
384
  }
423
385
  }
424
386
  }
@@ -460,7 +422,6 @@ export default {
460
422
 
461
423
  &.depth-1 {
462
424
  > .header {
463
- line-height: 50px;
464
425
  > H6 {
465
426
  font-size: 13px;
466
427
  line-height: 16px;
@@ -470,13 +431,11 @@ export default {
470
431
  padding: 9px 7px 8px 7px !important;
471
432
  }
472
433
  }
473
-
474
434
  }
475
435
 
476
436
  &:not(.depth-0) {
477
437
  > .header {
478
- padding-left: 30px;
479
- line-height: 50px;
438
+ padding-left: 10px;
480
439
  > H6 {
481
440
  // Child groups that aren't linked themselves
482
441
  display: inline-block;
@@ -487,9 +446,7 @@ export default {
487
446
  position: absolute;
488
447
  right: 0;
489
448
  top: 0;
490
- padding: 0px 20px 0px 0px !important;
491
- user-select: none;
492
- line-height: 50px;
449
+ padding: 6px 8px 6px 8px;
493
450
  }
494
451
  }
495
452
  }
@@ -502,9 +459,6 @@ export default {
502
459
  A, A I {
503
460
  /* color: var(--primary-hover-text); */
504
461
  color: var(--nav-hover-color);
505
- .menuRouterLink {
506
- color: var(--nav-hover-color);
507
- }
508
462
  }
509
463
 
510
464
  A {
@@ -534,9 +488,9 @@ export default {
534
488
  }
535
489
  }
536
490
  }
537
-
538
- .init_icon{
491
+ .nav-icon{
539
492
  font-size: 32px;
540
- padding-left: 0px;
493
+ margin-top: -11px;
494
+ color: #a8abb2;
541
495
  }
542
496
  </style>
@@ -277,18 +277,6 @@ export default {
277
277
  },
278
278
 
279
279
  methods: {
280
-
281
- LogOutfn (type) {
282
- sessionStorage.removeItem('TOPLEVELPERMISSIONS')
283
- if (type === '1') {
284
- this.$router.push({ name: 'account'})
285
- } else if (type === '2') {
286
- this.showSloModal()
287
- } else if (type === '3') {
288
- this.$router.push(this.generateLogoutRoute)
289
- }
290
- },
291
-
292
280
  showSloModal() {
293
281
  this.$store.dispatch('management/promptModal', {
294
282
  component: 'SloDialog',
@@ -409,15 +397,11 @@ export default {
409
397
  </script>
410
398
 
411
399
  <template>
412
-
413
- <!-- 整个页面的顶部 header -->
414
400
  <header
415
401
  ref="header"
416
402
  data-testid="header"
417
403
  >
418
404
  <div>
419
-
420
- <!-- 顶部一级菜单(根据不同产品/集群条件决定是否显示) -->
421
405
  <TopLevelMenu v-if="isRancherInHarvester || isMultiCluster || !isSingleProduct" />
422
406
  </div>
423
407
 
@@ -542,54 +526,34 @@ export default {
542
526
  </div>
543
527
  </div> -->
544
528
 
545
- <!-- ===== 左侧 logo 区域 ===== -->
546
- <div class="menu-spacer">
547
-
548
- <!-- 如果是单产品模式且不是 RancherInHarvester,就显示 logo 路由跳转 -->
529
+ <!-- logo -->
530
+ <div class="menu-spacer">
549
531
  <router-link
550
532
  v-if="isSingleProduct && !isRancherInHarvester"
551
533
  :to="singleProductLogoRoute"
552
534
  >
553
-
554
- <!-- 显示用户头像或 logo 图片 -->
555
- <!-- <img
535
+ <img
556
536
  :src="userIcon"
557
- > -->
537
+ >
558
538
  </router-link>
559
539
  </div>
560
-
561
- <!-- ===== 中间占位符(把左右内容分开) ===== -->
540
+ <!-- 中间 -->
562
541
  <div class="spacer" />
563
542
 
564
- <!-- ===== 右侧功能区域 ===== -->
565
543
  <div class="rd-header-right">
566
-
567
- <!-- 动态插入右侧自定义组件(例如插件扩展的 header) -->
568
544
  <component :is="navHeaderRight" />
569
-
570
- <!-- ===== 集群/命名空间过滤器 ===== -->
571
545
  <div
572
546
  v-if="showFilter"
573
547
  class="top"
574
548
  >
575
-
576
- <!-- 如果集群就绪 + 当前产品支持命名空间过滤器 或 Explorer 模式 -->
577
549
  <NamespaceFilter v-if="clusterReady && currentProduct && (currentProduct.showNamespaceFilter || isExplorer)" />
578
-
579
- <!-- 否则显示工作空间切换器 -->
580
550
  <WorkspaceSwitcher v-else-if="clusterReady && currentProduct && currentProduct.showWorkspaceSwitcher" />
581
551
  </div>
582
-
583
- <!-- ===== 集群相关按钮(仅在有集群且不是 simple 模式下显示) ===== -->
584
552
  <div
585
553
  v-if="currentCluster && !simple"
586
554
  class="header-buttons"
587
555
  >
588
-
589
- <!-- 如果当前产品支持集群切换器 -->
590
556
  <template v-if="currentProduct && currentProduct.showClusterSwitcher">
591
-
592
- <!-- 导入 YAML 按钮 -->
593
557
  <button
594
558
  v-if="showImportYaml"
595
559
  v-clean-tooltip="t('nav.import')"
@@ -604,8 +568,6 @@ export default {
604
568
  >
605
569
  <i class="icon icon-upload icon-lg" />
606
570
  </button>
607
-
608
- <!-- 导入 YAML 弹窗 -->
609
571
  <app-modal
610
572
  v-if="showImportModal"
611
573
  class="import-modal"
@@ -621,7 +583,6 @@ export default {
621
583
  />
622
584
  </app-modal>
623
585
 
624
- <!-- KubeShell 终端按钮 -->
625
586
  <button
626
587
  v-if="showKubeShell"
627
588
  id="btn-kubectl"
@@ -639,7 +600,6 @@ export default {
639
600
  <i class="icon icon-terminal icon-lg" />
640
601
  </button>
641
602
 
642
- <!-- 下载 kubeconfig 按钮 -->
643
603
  <button
644
604
  v-if="showKubeConfig"
645
605
  v-clean-tooltip="t('nav.kubeconfig.download')"
@@ -655,7 +615,6 @@ export default {
655
615
  <i class="icon icon-file icon-lg" />
656
616
  </button>
657
617
 
658
- <!-- 复制 kubeconfig 按钮 -->
659
618
  <button
660
619
  v-if="showCopyConfig"
661
620
  v-clean-tooltip="t('nav.kubeconfig.copy')"
@@ -668,14 +627,10 @@ export default {
668
627
  :aria-label="t('nav.kubeconfig.copy')"
669
628
  @click="copyKubeConfig($event)"
670
629
  >
671
-
672
- <!-- 点击复制后显示对勾 -->
673
630
  <i
674
631
  v-if="kubeConfigCopying"
675
632
  class="icon icon-checkmark icon-lg"
676
633
  />
677
-
678
- <!-- 未复制状态显示复制图标 -->
679
634
  <i
680
635
  v-else
681
636
  class="icon icon-copy icon-lg"
@@ -683,7 +638,6 @@ export default {
683
638
  </button>
684
639
  </template>
685
640
 
686
- <!-- 资源搜索按钮 -->
687
641
  <button
688
642
  v-if="showSearch"
689
643
  id="header-btn-search"
@@ -700,8 +654,6 @@ export default {
700
654
  >
701
655
  <i class="icon icon-search icon-lg" />
702
656
  </button>
703
-
704
- <!-- 搜索弹窗 -->
705
657
  <app-modal
706
658
  v-if="showSearch && showSearchModal"
707
659
  class="search-modal"
@@ -716,7 +668,7 @@ export default {
716
668
  </app-modal>
717
669
  </div>
718
670
 
719
- <!-- ===== 插件扩展按钮区 ===== -->
671
+ <!-- Extension header actions -->
720
672
  <div
721
673
  v-if="extensionHeaderActions.length"
722
674
  class="header-buttons"
@@ -745,16 +697,12 @@ export default {
745
697
  </button>
746
698
  </div>
747
699
 
748
- <!-- ===== 用户菜单(右上角头像 + 下拉) ===== -->
749
700
  <div class="center-self">
750
701
  <header-page-action-menu v-if="showPageActions" />
751
-
752
702
  <rc-dropdown
753
703
  v-if="showUserMenu"
754
704
  :aria-label="t('nav.userMenu.label')"
755
705
  >
756
-
757
- <!-- 头像触发按钮 -->
758
706
  <rc-dropdown-trigger
759
707
  ghost
760
708
  small
@@ -773,11 +721,9 @@ export default {
773
721
  v-else
774
722
  class="icon icon-user icon-3x avatar"
775
723
  /> -->
776
- <i class="icon icon-usericon" style="padding-bottom: 5px;" />
724
+ <i class="icon icon-usericon" />
777
725
  <span class="login-name">{{ principal.loginName }}</span>
778
726
  </rc-dropdown-trigger>
779
-
780
- <!-- 下拉菜单内容 -->
781
727
  <template #dropdownCollection>
782
728
  <!-- <template v-if="authEnabled">
783
729
  <div class="user-info">
@@ -798,27 +744,21 @@ export default {
798
744
  >
799
745
  {{ t('nav.userMenu.preferences') }}
800
746
  </rc-dropdown-item> -->
801
-
802
- <!-- 退出登录(支持 SLO 弹窗) -->
803
747
  <rc-dropdown-item
804
748
  v-if="showAccountAndApiKeyLink"
805
- @click="LogOutfn('1')"
749
+ @click="$router.push({ name: 'account'})"
806
750
  >
807
751
  {{ t('nav.userMenu.accountAndKeys', {}, true) }}
808
752
  </rc-dropdown-item>
809
-
810
- <!-- 普通退出登录 -->
811
753
  <rc-dropdown-item
812
754
  v-if="authEnabled && shouldShowSloLogoutModal"
813
- @click="LogOutfn('2')"
755
+ @click="showSloModal"
814
756
  >
815
757
  {{ t('nav.userMenu.logOut') }}
816
758
  </rc-dropdown-item>
817
-
818
- <!-- 普通退出登录 -->
819
759
  <rc-dropdown-item
820
760
  v-else-if="authEnabled"
821
- @click="LogOutfn('3')"
761
+ @click="$router.push(generateLogoutRoute)"
822
762
  >
823
763
  {{ t('nav.userMenu.logOut') }}
824
764
  </rc-dropdown-item>
@@ -1004,8 +944,6 @@ export default {
1004
944
  // Spacing between header buttons
1005
945
  .btn:not(:last-of-type) {
1006
946
  margin-right: 10px;
1007
- width: 30px;
1008
- min-width: 30px;
1009
947
  }
1010
948
 
1011
949
  .btn:focus {
@@ -1027,8 +965,6 @@ export default {
1027
965
 
1028
966
  .header-btn {
1029
967
  width: 40px;
1030
- display: flex;
1031
- align-items: center;
1032
968
  }
1033
969
 
1034
970
  :deep() div .btn.role-tertiary {
@@ -1036,21 +972,19 @@ export default {
1036
972
  border: none;
1037
973
  background: var(--header-btn-bg);
1038
974
  color: var(--header-btn-text);
1039
- padding: 0 15px 0 10px;
975
+ padding: 0 10px;
1040
976
  line-height: 32px;
1041
977
  min-height: 32px;
1042
- width: 30px;
1043
- min-width: 30px;
1044
978
 
1045
979
  i {
1046
980
  // Ideally same height as the parent button, but this means tooltip needs adjusting (which is it's own can of worms)
1047
981
  line-height: 20px;
1048
982
  }
1049
983
 
1050
- // &:hover {
1051
- // background: var(--primary);
1052
- // color: #fff;
1053
- // }
984
+ &:hover {
985
+ background: var(--primary);
986
+ color: #fff;
987
+ }
1054
988
 
1055
989
  &[disabled=disabled] {
1056
990
  background-color: rgba(0,0,0,0.25) !important;
@@ -1133,6 +1067,7 @@ export default {
1133
1067
  > .center-self {
1134
1068
  align-self: center;
1135
1069
  display: flex;
1070
+ gap: 1rem;
1136
1071
  align-items: center;
1137
1072
  padding-right: 1rem;
1138
1073
  }
@@ -1241,7 +1176,7 @@ export default {
1241
1176
  .login-name{
1242
1177
  font-size: 14px;
1243
1178
  margin-left: 5px;
1244
- // margin-top: 5px;
1179
+ margin-top: 5px;
1245
1180
  line-height: 20px;
1246
1181
  }
1247
1182
  </style>
@@ -17,7 +17,6 @@ const pageAction = (_event: Event, action: string) => {
17
17
  :dropdown-aria-label="t('nav.actionMenu.button.label')"
18
18
  data-testid="page-actions-menu-action-button"
19
19
  button-role="tertiary"
20
- :showIcon="true"
21
20
  @select="pageAction"
22
21
  />
23
22
  </template>
@@ -145,6 +145,9 @@ export default {
145
145
 
146
146
  const params = { ...this.$route.params };
147
147
  let resource = params.resource;
148
+ if (params.resource) {
149
+ resource = resource
150
+ }
148
151
 
149
152
  // Sometimes, different pages may have different namespaces to filter
150
153
  const notFilterNamespaces = this.$store.getters[`type-map/optionsFor`](resource).notFilterNamespace || [];