dashboard-shell-shell 3.0.5-test.45 → 3.0.5-test.46

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.
@@ -595,7 +595,10 @@ assignTo:
595
595
  workspace: 工作空间
596
596
 
597
597
  stateLabel:
598
+ Wait Check-In: 等待加入
599
+ Provisioning: 配置中
598
600
  Waiting: 等待中
601
+ waiting: 等待中
599
602
  Images preloading: 图像预加载中
600
603
  Images preloaded: 图像已预加载
601
604
  Waiting Reboot: 等待重启
@@ -1879,10 +1882,13 @@ cluster:
1879
1882
  searchPlaceholder: 请输入搜索
1880
1883
  noResults: 没有匹配的结果
1881
1884
  privateRegistry:
1882
- label: Rancher 系统容器镜像启用集群级别的容器镜像仓库
1883
- description: "如果启用,Rancher 将在集群配置期间从该镜像仓库中拉取容器镜像。默认情况下,Rancher 在安装 Rancher 的官方 Helm Chart 应用程序时也会使用此镜像仓库。如果集群级别的镜像仓库被禁用,将从全局设置中的系统默认镜像仓库中拉取系统镜像。"
1884
- docsLinkRke2: "如需配置私有镜像仓库 mirror 的帮助,请参阅 RKE2 <a href=\"https://docs.rke2.io/install/private_registry\" target=\"_blank\">文档</a>。"
1885
- docsLinkK3s: "如需配置私有镜像仓库 mirror 的帮助,请参阅 K3s <a href=\"https://docs.k3s.io/installation/private-registry\" target=\"_blank\">文档</a>。"
1885
+ header: Rancher 系统容器镜像仓库
1886
+ label: Rancher 系统容器镜像启用集群范围容器镜像仓库
1887
+ description: "如果启用,Rancher 将在集群配置期间从此镜像仓库拉取容器镜像。默认情况下,Rancher 在安装官方 Helm Chart 应用时也会使用此镜像仓库。如果禁用集群范围镜像仓库,系统镜像将从全局设置中的系统默认镜像仓库拉取。"
1888
+ importedDescription: "默认情况下,Rancher 在安装官方 Helm Chart 应用时也会使用此镜像仓库。如果禁用集群范围镜像仓库,系统镜像将从全局设置中的系统默认镜像仓库拉取。"
1889
+ docsLinkRke2: "有关配置私有镜像仓库的帮助,请参阅 RKE2 <a href=\"https://docs.rke2.io/install/private_registry\" target=\"_blank\">文档。</a>"
1890
+ docsLinkK3s: "有关配置私有镜像仓库的帮助,请参阅 K3s <a href=\"https://docs.k3s.io/installation/private-registry\" target=\"_blank\">文档。</a>"
1891
+ privateRegistryUrlError: 镜像仓库必须是有效的 URL。协议头可选。
1886
1892
  provider:
1887
1893
  aliyunecs: Aliyun ECS
1888
1894
  aliyunkubernetescontainerservice: Alibaba ACK
@@ -3238,6 +3244,7 @@ managementNode:
3238
3244
 
3239
3245
  members:
3240
3246
  clusterMembers: 集群成员
3247
+ memberRoles: 成员角色
3241
3248
  clusterAndProject: 集群和项目成员
3242
3249
  createActionLabel: 添加
3243
3250
  clusterMembership: 集群成员
@@ -197,11 +197,11 @@ watch(
197
197
  :aria-label="i18n.t('component.resource.detail.titleBar.ariaLabel.showConfiguration', { resource: resourceName })"
198
198
  @click="() => emit('show-configuration', showConfigurationReturnFocusSelector)"
199
199
  >
200
- <img
200
+ <!-- <img
201
201
  :src="showConfigurationIcon"
202
202
  class="mmr-3"
203
203
  aria-hidden="true"
204
- >
204
+ > -->
205
205
  {{ i18n.t('component.resource.detail.titleBar.showConfiguration') }}
206
206
  </RcButton>
207
207
  <ActionMenu
@@ -654,6 +654,14 @@ export default {
654
654
  namespaces() {
655
655
  return this.$store.getters['activeNamespaceCache'];
656
656
  },
657
+
658
+ // 正确的总数显示
659
+ totalCount() {
660
+ if (this.externalPaginationEnabled && this.externalPaginationResult) {
661
+ return this.externalPaginationResult.total || this.externalPaginationResult.count || 0;
662
+ }
663
+ return this.rows ? this.rows.length : 0;
664
+ },
657
665
 
658
666
  initalLoad() {
659
667
  return !!(!this.isLoading && !this._didinit && this.rows?.length);
@@ -884,6 +892,14 @@ export default {
884
892
  // this.$router.replace(route);
885
893
  // }
886
894
  // },
895
+ // 设置当前页码
896
+ setPage(pageNum) {
897
+ if (pageNum >= 1 && pageNum <= this.totalPages) {
898
+ this.page = pageNum;
899
+ this.inputPage = ''; // 清空输入框
900
+ this.debouncedPaginationChanged();
901
+ }
902
+ },
887
903
  onTableScroll(table, e) {
888
904
  // 记录最后滚动的距离
889
905
  let lastScrollTop = 0;
@@ -1854,7 +1870,7 @@ export default {
1854
1870
  class="paging"
1855
1871
  >
1856
1872
  <div style="height: 100%; align-content: center;">
1857
- 共 {{ filteredRows ? filteredRows.length : 0 }} 条
1873
+ 共 {{ totalCount ? totalCount : 0 }} 条
1858
1874
  </div>
1859
1875
 
1860
1876
  <button
@@ -425,128 +425,7 @@ export default {
425
425
  <TopLevelMenu v-if="isRancherInHarvester || isMultiCluster || !isSingleProduct" />
426
426
  </div>
427
427
 
428
- <!-- <div
429
- class="menu-spacer"
430
- :class="{'isSingleProduct': isSingleProduct }"
431
- >
432
- <router-link
433
- v-if="isSingleProduct && !isRancherInHarvester"
434
- :to="singleProductLogoRoute"
435
- role="link"
436
- :alt="t('branding.logos.home')"
437
- >
438
- <BrandImage
439
- v-if="isSingleProduct.supportCustomLogo && isHarvester"
440
- class="side-menu-logo"
441
- file-name="harvester.svg"
442
- :support-custom-logo="true"
443
- :alt="t('branding.logos.label')"
444
- />
445
- <img
446
- v-else
447
- class="side-menu-logo"
448
- :src="isSingleProduct.logo"
449
- :alt="t('branding.logos.label')"
450
- >
451
- </router-link>
452
- </div>
453
-
454
- <div
455
- v-if="!simple"
456
- ref="product"
457
- class="product"
458
- >
459
- <div
460
- v-if="currentProduct && currentProduct.showClusterSwitcher"
461
- v-clean-tooltip="nameTooltip"
462
- class="cluster cluster-clipped"
463
- >
464
- <div
465
- v-if="isSingleProduct && !isRancherInHarvester"
466
- class="product-name"
467
- >
468
- <template v-if="isSingleProduct.supportCustomLogo">
469
- {{ vendor }}
470
- </template>
471
- <template v-else>
472
- {{ t(isSingleProduct.productNameKey) }}
473
- </template>
474
- </div>
475
- <template v-else>
476
- <ClusterProviderIcon
477
- v-if="currentCluster"
478
- :cluster="currentCluster"
479
- class="mr-10"
480
- :alt="t('branding.logos.label')"
481
- />
482
- <div
483
- v-if="currentCluster"
484
- ref="clusterName"
485
- class="cluster-name"
486
- >
487
- {{ currentCluster.spec.displayName }}
488
- </div>
489
- <ClusterBadge
490
- v-if="currentCluster"
491
- :cluster="currentCluster"
492
- class="ml-10"
493
- :alt="t('branding.logos.label')"
494
- />
495
- <div
496
- v-if="!currentCluster"
497
- class="simple-title"
498
- >
499
- <BrandImage
500
- class="side-menu-logo-img"
501
- file-name="rancher-logo.svg"
502
- :alt="t('branding.logos.label')"
503
- />
504
- </div>
505
- </template>
506
- </div>
507
- <div
508
- v-if="currentProduct && !currentProduct.showClusterSwitcher"
509
- class="cluster"
510
- >
511
- <img
512
- v-if="currentProduct.iconHeader"
513
- v-bind="$attrs"
514
- :src="currentProduct.iconHeader"
515
- class="cluster-os-logo mr-10"
516
- style="width: 44px; height: 36px;"
517
- :alt="t('branding.logos.label')"
518
- >
519
- <div class="product-name">
520
- {{ prod }}
521
- </div>
522
- </div>
523
- </div>
524
-
525
- <div
526
- v-else
527
- class="simple-title"
528
- >
529
- <div
530
- v-if="isSingleProduct"
531
- class="product-name"
532
- >
533
- {{ t(isSingleProduct.productNameKey) }}
534
- </div>
535
-
536
- <div
537
- v-else
538
- class="side-menu-logo"
539
- >
540
- <BrandImage
541
- class="side-menu-logo-img"
542
- data-testid="header__brand-img"
543
- file-name="rancher-logo.svg"
544
- :alt="t('branding.logos.label')"
545
- />
546
- </div>
547
- </div> -->
548
-
549
- <!-- ===== 左侧 logo 区域 ===== -->
428
+ <!-- ===== 左侧 logo 区域 ===== -->
550
429
  <div class="menu-spacer">
551
430
  <!-- 如果是单产品模式且不是 RancherInHarvester,就显示 logo 路由跳转 -->
552
431
  <router-link
@@ -593,7 +472,7 @@ export default {
593
472
  <template v-if="currentProduct && currentProduct.showClusterSwitcher">
594
473
 
595
474
  <!-- 导入 YAML 按钮 -->
596
- <button
475
+ <!-- <button
597
476
  v-if="showImportYaml"
598
477
  v-clean-tooltip="t('nav.import')"
599
478
  :disabled="!importEnabled"
@@ -606,9 +485,9 @@ export default {
606
485
  @click="openImport()"
607
486
  >
608
487
  <i class="icon icon-upload icon-lg" />
609
- </button>
488
+ </button> -->
610
489
 
611
- <button
490
+ <!-- <button
612
491
  v-if="showKubeShell"
613
492
  id="btn-kubectl"
614
493
  v-clean-tooltip="t('nav.shellShortcut', {key: shellShortcut})"
@@ -623,10 +502,10 @@ export default {
623
502
  @click="currentCluster.openShell()"
624
503
  >
625
504
  <i class="icon icon-terminal icon-lg" />
626
- </button>
505
+ </button> -->
627
506
 
628
507
  <!-- 下载 kubeconfig 按钮 -->
629
- <button
508
+ <!-- <button
630
509
  v-if="showKubeConfig"
631
510
  v-clean-tooltip="t('nav.kubeconfig.download')"
632
511
  :disabled="!kubeConfigEnabled"
@@ -639,10 +518,10 @@ export default {
639
518
  @click="currentCluster.downloadKubeConfig()"
640
519
  >
641
520
  <i class="icon icon-file icon-lg" />
642
- </button>
521
+ </button> -->
643
522
 
644
523
  <!-- 复制 kubeconfig 按钮 -->
645
- <button
524
+ <!-- <button
646
525
  v-if="showCopyConfig"
647
526
  v-clean-tooltip="t('nav.kubeconfig.copy')"
648
527
  :disabled="!kubeConfigEnabled"
@@ -655,18 +534,16 @@ export default {
655
534
  @click="copyKubeConfig($event)"
656
535
  >
657
536
 
658
- <!-- 点击复制后显示对勾 -->
659
537
  <i
660
538
  v-if="kubeConfigCopying"
661
539
  class="icon icon-checkmark icon-lg"
662
540
  />
663
541
 
664
- <!-- 未复制状态显示复制图标 -->
665
542
  <i
666
543
  v-else
667
544
  class="icon icon-copy icon-lg"
668
545
  />
669
- </button>
546
+ </button> -->
670
547
  </template>
671
548
 
672
549
  <!-- 资源搜索按钮 -->
@@ -1024,7 +901,7 @@ export default {
1024
901
  border: none;
1025
902
  background: var(--header-btn-bg);
1026
903
  color: var(--header-btn-text);
1027
- padding: 0 15px 0 10px;
904
+ padding: 0 10px 0 10px;
1028
905
  line-height: 32px;
1029
906
  min-height: 32px;
1030
907
  width: 30px;
@@ -199,8 +199,8 @@ export default class Workload extends WorkloadService {
199
199
  }
200
200
 
201
201
  this.$dispatch('growl/error', {
202
- title: 'Unavailable',
203
- message: 'There are no running pods to execute a shell in.'
202
+ title: '不可用',
203
+ message: '没有正在运行的 Pod 可用来执行 Shell。'
204
204
  }, { root: true });
205
205
  }
206
206
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dashboard-shell-shell",
3
- "version": "3.0.5-test.45",
3
+ "version": "3.0.5-test.46",
4
4
  "description": "Rancher Dashboard Shell",
5
5
  "repository": "https://github.com/rancherlabs/dashboard",
6
6
  "license": "Apache-2.0",
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env bash
2
2
 
3
3
  # 执行命令示例:
4
- # TAG=shell-pkg-v3.0.5-test.45 ./shell/scripts/publish-shell.sh
4
+ # TAG=shell-pkg-v3.0.5-test.46 ./shell/scripts/publish-shell.sh
5
5
 
6
6
  set -euo pipefail
7
7
 
@@ -1,5 +1,15 @@
1
1
  {
2
2
  "translations": [
3
+ {
4
+ "pattern": "can't delete vlanconfig (\\S+) because the storage network nad (\\S+) is still attached",
5
+ "replacement": "无法删除 VLAN 配置 '$1':存储网络附加定义 '$2' 仍在使用",
6
+ "flags": "gi"
7
+ },
8
+ {
9
+ "pattern": "please stop all workloads before configuring the storage-network setting",
10
+ "replacement": "配置存储网络设置前,请先停止所有工作负载",
11
+ "flags": "gi"
12
+ },
3
13
  {
4
14
  "pattern": "failure while starting vmi: arm64 not support this disk bus type, please use virtio or scsi",
5
15
  "replacement": "启动虚拟机实例失败:ARM64 架构不支持此磁盘总线类型,请使用 virtio 或 scsi",
@@ -1614,10 +1624,6 @@
1614
1624
  "pattern": "nad ",
1615
1625
  "replacement": "虚拟网络"
1616
1626
  },
1617
- {
1618
- "pattern": " is",
1619
- "replacement": "是"
1620
- },
1621
1627
  {
1622
1628
  "pattern": "please ",
1623
1629
  "replacement": "请"
@@ -1706,14 +1712,6 @@
1706
1712
  "pattern": "replicaset",
1707
1713
  "replacement": "副本集"
1708
1714
  },
1709
- {
1710
- "pattern": "Cluster",
1711
- "replacement": "名称"
1712
- },
1713
- {
1714
- "pattern": "name",
1715
- "replacement": "名称"
1716
- },
1717
1715
  {
1718
1716
  "pattern": "%",
1719
1717
  "replacement": ""