@rancher/shell 3.0.5-rc.3 → 3.0.5-rc.5
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/images/icons/document.svg +3 -0
- package/assets/images/vendor/cognito.svg +1 -0
- package/assets/styles/app.scss +1 -0
- package/assets/styles/base/_basic.scss +10 -0
- package/assets/styles/base/_spacing.scss +29 -0
- package/assets/styles/global/_layout.scss +1 -1
- package/assets/styles/themes/_dark.scss +25 -0
- package/assets/styles/themes/_light.scss +65 -0
- package/assets/translations/en-us.yaml +322 -24
- package/assets/translations/zh-hans.yaml +8 -5
- package/components/Certificates.vue +5 -0
- package/components/FilterPanel.vue +156 -0
- package/components/{fleet/ForceDirectedTreeChart/index.vue → ForceDirectedTreeChart.vue} +47 -41
- package/components/IconOrSvg.vue +14 -35
- package/components/PromptRemove.vue +5 -1
- package/components/Resource/Detail/Card/PodsCard/Bubble.vue +13 -0
- package/components/Resource/Detail/Card/PodsCard/composable.ts +30 -0
- package/components/Resource/Detail/Card/PodsCard/index.vue +118 -0
- package/components/Resource/Detail/Card/ResourceUsageCard/composable.ts +51 -0
- package/components/Resource/Detail/Card/ResourceUsageCard/index.vue +79 -0
- package/components/Resource/Detail/Card/Scaler.vue +89 -0
- package/components/Resource/Detail/Card/StateCard/composables.ts +112 -0
- package/components/Resource/Detail/Card/StateCard/index.vue +39 -0
- package/components/Resource/Detail/Card/VerticalGap.vue +11 -0
- package/components/Resource/Detail/Card/__tests__/Card.test.ts +36 -0
- package/components/Resource/Detail/Card/__tests__/PodsCard.test.ts +84 -0
- package/components/Resource/Detail/Card/__tests__/ResourceUsageCard.test.ts +72 -0
- package/components/Resource/Detail/Card/__tests__/Scaler.test.ts +87 -0
- package/components/Resource/Detail/Card/__tests__/StateCard.test.ts +53 -0
- package/components/Resource/Detail/Card/__tests__/VerticalGap.test.ts +14 -0
- package/components/Resource/Detail/Card/__tests__/index.test.ts +36 -0
- package/components/Resource/Detail/Card/index.vue +56 -0
- package/components/Resource/Detail/Metadata/Annotations/__tests__/index.test.ts +19 -0
- package/components/Resource/Detail/Metadata/Annotations/composable.ts +12 -0
- package/components/Resource/Detail/Metadata/Annotations/index.vue +26 -0
- package/components/Resource/Detail/Metadata/IdentifyingInformation/__tests__/index.test.ts +103 -0
- package/components/Resource/Detail/Metadata/IdentifyingInformation/composable.ts +281 -0
- package/components/Resource/Detail/Metadata/IdentifyingInformation/index.vue +111 -0
- package/components/Resource/Detail/Metadata/KeyValue.vue +130 -0
- package/components/Resource/Detail/Metadata/Labels/__tests__/index.test.ts +18 -0
- package/components/Resource/Detail/Metadata/Labels/composable.ts +12 -0
- package/components/Resource/Detail/Metadata/Labels/index.vue +27 -0
- package/components/Resource/Detail/Metadata/Rectangle.vue +32 -0
- package/components/Resource/Detail/Metadata/__tests__/KeyValue.test.ts +107 -0
- package/components/Resource/Detail/Metadata/__tests__/Rectangle.test.ts +24 -0
- package/components/Resource/Detail/Metadata/__tests__/index.test.ts +91 -0
- package/components/Resource/Detail/Metadata/composables.ts +29 -0
- package/components/Resource/Detail/Metadata/index.vue +66 -0
- package/components/Resource/Detail/Page.vue +22 -0
- package/components/Resource/Detail/PercentageBar.vue +40 -0
- package/components/Resource/Detail/ResourceRow.vue +119 -0
- package/components/Resource/Detail/SpacedRow.vue +14 -0
- package/components/Resource/Detail/StatusBar.vue +59 -0
- package/components/Resource/Detail/StatusRow.vue +61 -0
- package/components/Resource/Detail/TitleBar/Title.vue +13 -0
- package/components/Resource/Detail/TitleBar/Top.vue +14 -0
- package/components/Resource/Detail/TitleBar/__tests__/Title.test.ts +17 -0
- package/components/Resource/Detail/TitleBar/__tests__/Top.test.ts +17 -0
- package/components/Resource/Detail/TitleBar/__tests__/index.test.ts +142 -0
- package/components/Resource/Detail/TitleBar/composable.ts +31 -0
- package/components/Resource/Detail/TitleBar/index.vue +124 -0
- package/components/Resource/Detail/Top/index.vue +34 -0
- package/components/Resource/Detail/__tests__/Page.test.ts +32 -0
- package/components/ResourceDetail/__tests__/index.test.ts +114 -0
- package/components/ResourceDetail/index.vue +64 -562
- package/components/ResourceDetail/legacy.vue +545 -0
- package/components/ResourceTable.vue +41 -7
- package/components/SlideInPanelManager.vue +76 -8
- package/components/SortableTable/index.vue +13 -2
- package/components/SortableTable/selection.js +21 -8
- package/components/StatusBadge.vue +6 -4
- package/components/SubtleLink.vue +25 -0
- package/components/Wizard.vue +12 -1
- package/components/YamlEditor.vue +1 -1
- package/components/__tests__/FilterPanel.test.ts +81 -0
- package/components/auth/AuthBanner.vue +2 -3
- package/components/auth/RoleDetailEdit.vue +45 -3
- package/components/auth/login/oidc.vue +6 -1
- package/components/fleet/FleetApplications.vue +181 -0
- package/components/fleet/FleetHelmOps.vue +115 -0
- package/components/fleet/FleetIntro.vue +58 -28
- package/components/fleet/FleetNoWorkspaces.vue +5 -1
- package/components/fleet/FleetOCIStorageSecret.vue +171 -0
- package/components/fleet/FleetRepos.vue +38 -76
- package/components/fleet/FleetResources.vue +50 -22
- package/components/fleet/FleetSummary.vue +26 -51
- package/components/fleet/__tests__/FleetOCIStorageSecret.test.ts +213 -0
- package/components/fleet/__tests__/FleetSummary.test.ts +39 -39
- package/components/fleet/dashboard/Empty.vue +73 -0
- package/components/fleet/dashboard/ResourceCard.vue +183 -0
- package/components/fleet/dashboard/ResourceCardSummary.vue +199 -0
- package/components/fleet/dashboard/ResourceDetails.vue +196 -0
- package/components/fleet/dashboard/ResourcePanel.vue +376 -0
- package/components/form/ArrayList.vue +6 -0
- package/components/form/SimpleSecretSelector.vue +8 -2
- package/components/form/ValueFromResource.vue +31 -19
- package/components/formatter/FleetApplicationClustersReady.vue +77 -0
- package/components/formatter/FleetApplicationSource.vue +71 -0
- package/components/formatter/FleetSummaryGraph.vue +7 -0
- package/components/nav/Header.vue +8 -7
- package/components/nav/TopLevelMenu.helper.ts +55 -34
- package/components/nav/TopLevelMenu.vue +11 -0
- package/components/nav/Type.vue +4 -1
- package/composables/useI18n.ts +12 -11
- package/config/labels-annotations.js +14 -11
- package/config/product/auth.js +1 -0
- package/config/product/fleet.js +70 -17
- package/config/query-params.js +3 -1
- package/config/roles.ts +1 -0
- package/config/router/routes.js +20 -2
- package/config/secret.ts +15 -0
- package/config/settings.ts +3 -2
- package/config/table-headers.js +52 -22
- package/config/types.js +2 -0
- package/core/plugin-helpers.ts +3 -2
- package/detail/fleet.cattle.io.cluster.vue +28 -15
- package/detail/fleet.cattle.io.gitrepo.vue +10 -1
- package/detail/fleet.cattle.io.helmop.vue +157 -0
- package/dialog/HelmOpForceUpdateDialog.vue +132 -0
- package/dialog/RedeployWorkloadDialog.vue +164 -0
- package/edit/__tests__/fleet.cattle.io.gitrepo.test.ts +56 -67
- package/edit/auth/oidc.vue +159 -93
- package/edit/fleet.cattle.io.gitrepo.vue +26 -33
- package/edit/fleet.cattle.io.helmop.vue +997 -0
- package/edit/management.cattle.io.fleetworkspace.vue +43 -10
- package/list/fleet.cattle.io.gitrepo.vue +1 -1
- package/list/fleet.cattle.io.helmop.vue +108 -0
- package/list/namespace.vue +5 -2
- package/mixins/auth-config.js +8 -1
- package/mixins/preset.js +100 -0
- package/mixins/resource-fetch-api-pagination.js +2 -0
- package/mixins/resource-fetch.js +1 -1
- package/mixins/resource-table-watch.js +45 -0
- package/models/__tests__/chart.test.ts +273 -0
- package/models/__tests__/fleet.cattle.io.gitrepo.test.ts +1 -1
- package/models/chart.js +144 -2
- package/models/fleet-application.js +385 -0
- package/models/fleet.cattle.io.bundle.js +9 -8
- package/models/fleet.cattle.io.gitrepo.js +41 -365
- package/models/fleet.cattle.io.helmop.js +228 -0
- package/models/management.cattle.io.authconfig.js +1 -0
- package/models/management.cattle.io.fleetworkspace.js +12 -0
- package/models/workload.js +14 -18
- package/package.json +2 -1
- package/pages/auth/verify.vue +13 -1
- package/pages/c/_cluster/apps/charts/AddRepoLink.vue +37 -0
- package/pages/c/_cluster/apps/charts/AppChartCardFooter.vue +80 -0
- package/pages/c/_cluster/apps/charts/AppChartCardSubHeader.vue +54 -0
- package/pages/c/_cluster/apps/charts/StatusLabel.vue +33 -0
- package/pages/c/_cluster/apps/charts/index.vue +302 -484
- package/pages/c/_cluster/explorer/EventsTable.vue +1 -1
- package/pages/c/_cluster/fleet/__tests__/index.test.ts +426 -0
- package/pages/c/_cluster/fleet/application/_resource/_id.vue +14 -0
- package/pages/c/_cluster/fleet/application/_resource/create.vue +14 -0
- package/pages/c/_cluster/fleet/application/create.vue +340 -0
- package/pages/c/_cluster/fleet/application/index.vue +139 -0
- package/pages/c/_cluster/fleet/graph/config.js +277 -0
- package/pages/c/_cluster/fleet/index.vue +772 -330
- package/pages/explorer/resource/detail/configmap.vue +19 -0
- package/plugins/dashboard-store/actions.js +31 -9
- package/plugins/dashboard-store/getters.js +34 -21
- package/plugins/dashboard-store/mutations.js +51 -7
- package/plugins/dashboard-store/resource-class.js +14 -2
- package/plugins/steve/__tests__/subscribe.spec.ts +66 -1
- package/plugins/steve/actions.js +3 -0
- package/plugins/steve/steve-pagination-utils.ts +14 -13
- package/plugins/steve/subscribe.js +229 -42
- package/rancher-components/BadgeState/BadgeState.vue +3 -1
- package/rancher-components/Form/Checkbox/Checkbox.vue +2 -2
- package/rancher-components/RcItemCard/RcItemCard.test.ts +189 -0
- package/rancher-components/RcItemCard/RcItemCard.vue +425 -0
- package/rancher-components/RcItemCard/RcItemCardAction.vue +24 -0
- package/rancher-components/RcItemCard/index.ts +2 -0
- package/store/auth.js +1 -0
- package/store/catalog.js +62 -24
- package/store/index.js +33 -14
- package/store/slideInPanel.ts +6 -0
- package/store/type-map.js +1 -0
- package/types/fleet.d.ts +35 -0
- package/types/resources/settings.d.ts +19 -1
- package/types/shell/index.d.ts +339 -272
- package/types/store/dashboard-store.types.ts +17 -3
- package/types/store/pagination.types.ts +6 -1
- package/types/store/subscribe.types.ts +50 -0
- package/utils/auth.js +32 -3
- package/utils/fleet-types.ts +0 -0
- package/utils/fleet.ts +200 -1
- package/utils/pagination-utils.ts +26 -1
- package/utils/pagination-wrapper.ts +132 -50
- package/utils/settings.ts +4 -1
- package/utils/style.ts +39 -0
- package/utils/validators/formRules/__tests__/index.test.ts +36 -3
- package/utils/validators/formRules/index.ts +10 -3
- package/utils/window.js +11 -7
- package/components/__tests__/ApplicationCard.test.ts +0 -27
- package/components/cards/ApplicationCard.vue +0 -145
- package/components/fleet/ForceDirectedTreeChart/chartIcons.js +0 -17
- package/config/secret.js +0 -14
- package/pages/c/_cluster/fleet/GitRepoGraphConfig.js +0 -249
- /package/{components/form/SSHKnownHosts → dialog}/__tests__/KnownHostsEditDialog.test.ts +0 -0
|
@@ -119,6 +119,13 @@ generic:
|
|
|
119
119
|
experimental: Experimental
|
|
120
120
|
|
|
121
121
|
deprecated: Deprecated
|
|
122
|
+
upgradeable: Upgradeable
|
|
123
|
+
installed: Installed
|
|
124
|
+
featured: Featured
|
|
125
|
+
shortFeatured: Feat
|
|
126
|
+
category: Category
|
|
127
|
+
tags: Tags
|
|
128
|
+
tag: Tag
|
|
122
129
|
placeholder: "e.g. {text}"
|
|
123
130
|
moreInfo: More Info
|
|
124
131
|
selectors:
|
|
@@ -141,8 +148,16 @@ generic:
|
|
|
141
148
|
genericAddRow: Add a new row
|
|
142
149
|
arrayList: Array list input
|
|
143
150
|
genericRow: row {index}
|
|
151
|
+
showLess: Show less
|
|
152
|
+
showMore: Show more
|
|
153
|
+
opensInNewTab: Opens in a new tab
|
|
144
154
|
|
|
145
155
|
|
|
156
|
+
graph:
|
|
157
|
+
noPermissions: You do not have permission to Graph view
|
|
158
|
+
loading: Loading chart data...
|
|
159
|
+
rendering: Rendering chart...
|
|
160
|
+
|
|
146
161
|
locale:
|
|
147
162
|
menu: Locale selector menu
|
|
148
163
|
en-us: English
|
|
@@ -226,6 +241,7 @@ nav:
|
|
|
226
241
|
Scheduling: Scheduling
|
|
227
242
|
Storage: Storage
|
|
228
243
|
Project: Project
|
|
244
|
+
resources: Resources
|
|
229
245
|
ns:
|
|
230
246
|
all: All Namespaces
|
|
231
247
|
clusterLevel: Only Cluster Resources
|
|
@@ -667,6 +683,7 @@ authConfig:
|
|
|
667
683
|
oidc:
|
|
668
684
|
genericoidc: Configure an OIDC account
|
|
669
685
|
keycloakoidc: Configure a Keycloak OIDC account
|
|
686
|
+
cognito: Configure an Amazon Cognito account
|
|
670
687
|
rancherUrl: Rancher URL
|
|
671
688
|
clientId: Client ID
|
|
672
689
|
clientSecret: Client Secret
|
|
@@ -685,6 +702,8 @@ authConfig:
|
|
|
685
702
|
tokenEndpoint: Token Endpoint
|
|
686
703
|
userInfoEndpoint: User Info Endpoint
|
|
687
704
|
acrValue: Authorization Context Reference
|
|
705
|
+
cognitoIssuer: Issuer URL
|
|
706
|
+
cognitoHelp: "You will need to create an application client in Cognito of type <b>Traditional web application</b> with the Return URL set to the URL shown below."
|
|
688
707
|
scope:
|
|
689
708
|
label: Scopes
|
|
690
709
|
placeholder: openid
|
|
@@ -848,6 +867,10 @@ asyncButton:
|
|
|
848
867
|
action: Resume Orchestration
|
|
849
868
|
success: Resumed Orchestration
|
|
850
869
|
waiting: Resuming Orchestration
|
|
870
|
+
redeploy:
|
|
871
|
+
action: Redeploy
|
|
872
|
+
success: Redeployed
|
|
873
|
+
waiting: Redeploying Workload
|
|
851
874
|
rollback:
|
|
852
875
|
action: Roll Back
|
|
853
876
|
success: Rolled Back
|
|
@@ -1013,9 +1036,6 @@ catalog:
|
|
|
1013
1036
|
experimentalWarning: '{chartName} has been marked as experimental. Use caution when installing this helm chart as it might not function as expected.'
|
|
1014
1037
|
deprecatedAndExperimentalWarning: '{chartName} has been marked as deprecated and experimental. Use caution when installing this helm chart as it might be removed in the future and might not function as expected.'
|
|
1015
1038
|
charts:
|
|
1016
|
-
browseBtn: Browse
|
|
1017
|
-
featuredBtn: Featured
|
|
1018
|
-
featuredAriaLabel: Show Featured Charts Carousel and charts grid
|
|
1019
1039
|
browseAriaLabel: Show only charts grid
|
|
1020
1040
|
iconAlt: Icon for {app} card/grid item
|
|
1021
1041
|
refresh: refresh charts
|
|
@@ -1041,6 +1061,14 @@ catalog:
|
|
|
1041
1061
|
search: Filter charts results
|
|
1042
1062
|
deprecatedChartsFilter:
|
|
1043
1063
|
label: Show deprecated apps
|
|
1064
|
+
addNewRepo:
|
|
1065
|
+
label: Add new
|
|
1066
|
+
ariaLabel: Add a new repository
|
|
1067
|
+
appChartCard:
|
|
1068
|
+
footerItem:
|
|
1069
|
+
ariaLabel: Apply filter
|
|
1070
|
+
experimentalStatus:
|
|
1071
|
+
tooltip: Experimental - using this filter is not yet 100% accurate. Proceed with caution.
|
|
1044
1072
|
install:
|
|
1045
1073
|
action:
|
|
1046
1074
|
goToUpgrade: Edit/Upgrade
|
|
@@ -2475,6 +2503,12 @@ etcdInfoBanner:
|
|
|
2475
2503
|
failedProposals: "Number of failed proposals:"
|
|
2476
2504
|
|
|
2477
2505
|
fleet:
|
|
2506
|
+
tableHeaders:
|
|
2507
|
+
applicationType: Type
|
|
2508
|
+
applicationSource: Source
|
|
2509
|
+
applicationTarget: Target
|
|
2510
|
+
applicationClustersReady: Clusters Ready
|
|
2511
|
+
applicationResourcesSummary: Resources
|
|
2478
2512
|
dashboard:
|
|
2479
2513
|
pageTitle: Continuous Delivery Dashboard
|
|
2480
2514
|
menuLabel: Dashboard
|
|
@@ -2482,15 +2516,31 @@ fleet:
|
|
|
2482
2516
|
gitOpsScale: GitOps at scale.
|
|
2483
2517
|
learnMore: Learn More.
|
|
2484
2518
|
learnMoreLink: https://fleet.rancher.io
|
|
2485
|
-
|
|
2519
|
+
noApplications: "You don't have any App Bundles in your Workspaces"
|
|
2486
2520
|
getStarted: Get started
|
|
2487
|
-
|
|
2488
|
-
|
|
2489
|
-
|
|
2490
|
-
other { There are { count } other workspaces with no repositories}
|
|
2491
|
-
}
|
|
2521
|
+
workspace: Workspace
|
|
2522
|
+
expand: Expand
|
|
2523
|
+
collapse: Collapse
|
|
2492
2524
|
expandAll: Expand All
|
|
2493
2525
|
collapseAll: Collapse All
|
|
2526
|
+
state: State
|
|
2527
|
+
viewMode:
|
|
2528
|
+
table: Show table
|
|
2529
|
+
cards: Show cards
|
|
2530
|
+
cards:
|
|
2531
|
+
filters:
|
|
2532
|
+
gitRepos: Show Git Repos
|
|
2533
|
+
helmOps: Show Helm Ops
|
|
2534
|
+
resourceSummary:
|
|
2535
|
+
part1: in
|
|
2536
|
+
part2: |-
|
|
2537
|
+
{count, plural,
|
|
2538
|
+
=1 { cluster }
|
|
2539
|
+
other { clusters }
|
|
2540
|
+
}
|
|
2541
|
+
noClusters: Not targeting any clusters
|
|
2542
|
+
resources: Resources
|
|
2543
|
+
source: Source
|
|
2494
2544
|
cluster:
|
|
2495
2545
|
summary: Resource Summary
|
|
2496
2546
|
nonReady: Non-Ready Bundles
|
|
@@ -2517,7 +2567,9 @@ fleet:
|
|
|
2517
2567
|
other {# bundles are hidden as they belong to Harvester clusters that can not be used with Continuous Delivery}
|
|
2518
2568
|
}
|
|
2519
2569
|
fleetSummary:
|
|
2520
|
-
|
|
2570
|
+
noClusters:
|
|
2571
|
+
gitRepo: This GitRepo is not targeting any clusters
|
|
2572
|
+
helmOp: This HelmOp is not targeting any clusters
|
|
2521
2573
|
state:
|
|
2522
2574
|
ready: 'Ready'
|
|
2523
2575
|
info: 'Transitioning'
|
|
@@ -2526,8 +2578,30 @@ fleet:
|
|
|
2526
2578
|
unknown: 'Unknown'
|
|
2527
2579
|
notReady: Not Ready
|
|
2528
2580
|
waitApplied: Wait Applied
|
|
2581
|
+
application:
|
|
2582
|
+
pageTitle: App Bundles
|
|
2583
|
+
menuLabel: App Bundles
|
|
2584
|
+
intro:
|
|
2585
|
+
add: Create App Bundle
|
|
2586
|
+
empty: No App Bundles have been created
|
|
2587
|
+
actions:
|
|
2588
|
+
create: Create App Bundle
|
|
2589
|
+
groupBy: Group By Type
|
|
2590
|
+
subTypes:
|
|
2591
|
+
fleet.cattle.io.gitrepo:
|
|
2592
|
+
description: GitRepo describes a git repository that is watched by Fleet. The resource contains the necessary information to deploy the repo, or parts of it, to target clusters.
|
|
2593
|
+
fleet.cattle.io.helmop:
|
|
2594
|
+
description: HelmOp is a simplified way of creating bundles by directly pointing to a Helm repository or to an OCI registry, without needing to set up a git repository.
|
|
2595
|
+
warningTooltip:
|
|
2596
|
+
clusterGroup: There are no clusters in this Cluster Group
|
|
2597
|
+
cluster: There are no clusters available
|
|
2598
|
+
noPermissions: You have no permissions to create {label}
|
|
2529
2599
|
gitRepo:
|
|
2600
|
+
intro:
|
|
2601
|
+
add: Create Git Repo
|
|
2602
|
+
empty: No Git Repos have been added
|
|
2530
2603
|
actions:
|
|
2604
|
+
add: Create Git Repo
|
|
2531
2605
|
forceUpdate:
|
|
2532
2606
|
label: Force Update
|
|
2533
2607
|
promptTitle: Force Update
|
|
@@ -2569,7 +2643,7 @@ fleet:
|
|
|
2569
2643
|
placeholder: e.g. https://github.com/rancher/fleet-examples.git or git@github.com:rancher/fleet-examples.git
|
|
2570
2644
|
addRepo: Add Repository
|
|
2571
2645
|
noRepos: No repositories have been added
|
|
2572
|
-
noWorkspaces: There are no workspaces.
|
|
2646
|
+
noWorkspaces: There are no workspaces.
|
|
2573
2647
|
resources:
|
|
2574
2648
|
label: 'Resource Handling'
|
|
2575
2649
|
keepResources: Always keep resources
|
|
@@ -2584,6 +2658,13 @@ fleet:
|
|
|
2584
2658
|
tooltip: Polling Interval is the time between a push to the Repository and Fleet's reaction to it.
|
|
2585
2659
|
webhookWarning: A webhook is configured in Rancher to reconcile Git updates and GitRepo resources. The Polling Interval will automatically be adjusted to 1 hour.
|
|
2586
2660
|
minimumValuewarning: The recommended minimum Polling Interval is 15 seconds. To avoid performance issues with GitRepos that contain a large amount of resources please consider increasing this value.
|
|
2661
|
+
ociStorageSecret:
|
|
2662
|
+
title: OCI Registry
|
|
2663
|
+
label: OCI Storage Secret
|
|
2664
|
+
tooltip: If 'None' is selected, Fleet will use the 'ocistorage' fallback secret when existing in current workspace.<br>Every changes of the selected OCI storage secret will not be applied until next Git Repo update.
|
|
2665
|
+
options:
|
|
2666
|
+
chooseExisting: "Choose a secret:"
|
|
2667
|
+
chooseCustom: "Choose a custom secret:"
|
|
2587
2668
|
add:
|
|
2588
2669
|
steps:
|
|
2589
2670
|
metadata:
|
|
@@ -2640,13 +2721,155 @@ fleet:
|
|
|
2640
2721
|
verify: Require a valid certificate
|
|
2641
2722
|
specify: Specify additional certificates to be accepted
|
|
2642
2723
|
skip: Accept any certificate (insecure)
|
|
2643
|
-
warningTooltip:
|
|
2644
|
-
clusterGroup: There are no clusters in this Cluster Group
|
|
2645
|
-
cluster: There are no clusters available
|
|
2646
2724
|
workspace:
|
|
2647
2725
|
label: Workspace
|
|
2648
2726
|
addWorkspace: Create a workspace
|
|
2649
2727
|
helmRepoURLRegex: Helm Repos (URL Regex)
|
|
2728
|
+
helmOp:
|
|
2729
|
+
intro:
|
|
2730
|
+
add: Create Helm Op
|
|
2731
|
+
empty: No Helm Ops have been added
|
|
2732
|
+
actions:
|
|
2733
|
+
add: Create Helm Op
|
|
2734
|
+
enablePolling:
|
|
2735
|
+
label: Enable Polling
|
|
2736
|
+
disablePolling:
|
|
2737
|
+
label: Disable Polling
|
|
2738
|
+
forceUpdate:
|
|
2739
|
+
label: Force Update
|
|
2740
|
+
promptTitle: Force Update
|
|
2741
|
+
promptNames: 'You are attempting to update: '
|
|
2742
|
+
promptWarning: |-
|
|
2743
|
+
{
|
|
2744
|
+
count, plural,
|
|
2745
|
+
=1 {Force update could be a long running process.}
|
|
2746
|
+
other {Force update could be a long running process.}
|
|
2747
|
+
}
|
|
2748
|
+
unpause:
|
|
2749
|
+
label: Unpause
|
|
2750
|
+
pause:
|
|
2751
|
+
label: Pause
|
|
2752
|
+
add:
|
|
2753
|
+
steps:
|
|
2754
|
+
metadata:
|
|
2755
|
+
label: Metadata
|
|
2756
|
+
title: Specify the Helm Op name and labels/annotations
|
|
2757
|
+
subtext: 'Define metadata details'
|
|
2758
|
+
description: Helm Op basic info
|
|
2759
|
+
chart:
|
|
2760
|
+
label: Chart
|
|
2761
|
+
title: chart
|
|
2762
|
+
subtext: 'Define Helm Chart source details'
|
|
2763
|
+
description: chart
|
|
2764
|
+
values:
|
|
2765
|
+
label: Values
|
|
2766
|
+
title: values
|
|
2767
|
+
subtext: 'Define Helm Values for the chart'
|
|
2768
|
+
description: values
|
|
2769
|
+
targetInfo:
|
|
2770
|
+
label: Target details
|
|
2771
|
+
title: Specify which target to synchronise this repository to
|
|
2772
|
+
subtext: 'Define target details'
|
|
2773
|
+
description: You can configure which clusters will be used as the target of synchronisation with the resources in the repository.
|
|
2774
|
+
advanced:
|
|
2775
|
+
label: Advanced
|
|
2776
|
+
title: Specify advanced settings like authenticaion credentials and polling
|
|
2777
|
+
subtext: 'Define advanced settings'
|
|
2778
|
+
description: Fleet will use the authentication settings and polling to synchronise the resources contained in it.
|
|
2779
|
+
info: These settings are for advanced usage and optional. You can skip them and finish the creation process.
|
|
2780
|
+
source:
|
|
2781
|
+
title: Source
|
|
2782
|
+
selectLabel: Type
|
|
2783
|
+
types:
|
|
2784
|
+
tarball: Tarball
|
|
2785
|
+
repo: Repository
|
|
2786
|
+
oci: OCI Registry
|
|
2787
|
+
tarball:
|
|
2788
|
+
label: Absolute URL
|
|
2789
|
+
placeholder: e.g. https://github.com/rancher/fleet/helm-chart/helm-chart-0.0.1.tgz
|
|
2790
|
+
repo:
|
|
2791
|
+
repo:
|
|
2792
|
+
label: URL
|
|
2793
|
+
placeholder: e.g. https://github.com/rancher/fleet/helm-chart
|
|
2794
|
+
chart:
|
|
2795
|
+
label: Chart
|
|
2796
|
+
placeholder: The path to the chart name in the repository
|
|
2797
|
+
oci:
|
|
2798
|
+
chart:
|
|
2799
|
+
label: OCI Registry URL
|
|
2800
|
+
placeholder: e.g. oci://ghcr.io/rancher/fleet/helm-chart or oci://ghcr.io/rancher/fleet/helm-chart:0.0.1
|
|
2801
|
+
version:
|
|
2802
|
+
label: Version
|
|
2803
|
+
placeholder: The Chart version
|
|
2804
|
+
release:
|
|
2805
|
+
title: Release
|
|
2806
|
+
label: Name
|
|
2807
|
+
placeholder: The Helm release name
|
|
2808
|
+
values:
|
|
2809
|
+
title: Values
|
|
2810
|
+
selectLabel: Values
|
|
2811
|
+
description: Configure Values used by Helm that help define the App.
|
|
2812
|
+
types:
|
|
2813
|
+
values: Values
|
|
2814
|
+
valuesFiles: Values Files
|
|
2815
|
+
valuesFrom: Values From
|
|
2816
|
+
yaml:
|
|
2817
|
+
options:
|
|
2818
|
+
edit: Edit YAML
|
|
2819
|
+
diff: Compare Changes
|
|
2820
|
+
values:
|
|
2821
|
+
selectLabel: YAML
|
|
2822
|
+
loading: Loading from chart
|
|
2823
|
+
valuesFiles:
|
|
2824
|
+
selectLabel: Files
|
|
2825
|
+
ariaLabel: Enter path for value File
|
|
2826
|
+
placeholder: ''
|
|
2827
|
+
addLabel: Add File path
|
|
2828
|
+
empty: empty
|
|
2829
|
+
valuesFrom:
|
|
2830
|
+
selectLabel: Values From
|
|
2831
|
+
serviceAccount:
|
|
2832
|
+
label: Service Account Name
|
|
2833
|
+
placeholder: "Optional: Use a service account in the target clusters"
|
|
2834
|
+
targetNamespace:
|
|
2835
|
+
label: Target Namespace
|
|
2836
|
+
placeholder: "Optional: Require all resources to be in this namespace"
|
|
2837
|
+
target:
|
|
2838
|
+
selectLabel: Target
|
|
2839
|
+
advanced: Advanced
|
|
2840
|
+
cluster: Cluster
|
|
2841
|
+
clusterGroup: Cluster Group
|
|
2842
|
+
label: Deploy To
|
|
2843
|
+
labelLocal: Deploy With
|
|
2844
|
+
targetDisplay:
|
|
2845
|
+
advanced: Advanced
|
|
2846
|
+
cluster: "Cluster"
|
|
2847
|
+
clusterGroup: "Group"
|
|
2848
|
+
all: All
|
|
2849
|
+
none: None
|
|
2850
|
+
local: Local
|
|
2851
|
+
resources:
|
|
2852
|
+
label: 'Resource Handling'
|
|
2853
|
+
keepResources: Always keep resources
|
|
2854
|
+
keepResourcesTooltip: When enabled, resources will be kept when deleting a HelmOp or Bundle - only Helm release secrets will be deleted.
|
|
2855
|
+
correctDrift: Enable self-healing
|
|
2856
|
+
correctDriftTooltip: When enabled, Fleet will ensure that the cluster resources are kept in sync with the HelmOp. All resource changes made on the cluster will be lost.
|
|
2857
|
+
polling:
|
|
2858
|
+
label: Polling
|
|
2859
|
+
enable: Enable Polling
|
|
2860
|
+
pollingInterval:
|
|
2861
|
+
label: Polling Interval
|
|
2862
|
+
tooltip: Polling Interval is the time between a push to the Repository and Fleet's reaction to it.
|
|
2863
|
+
minimumValuewarning: The recommended minimum Polling Interval is 15 seconds. To avoid performance issues with GitRepos that contain a large amount of resources please consider increasing this value.
|
|
2864
|
+
tls:
|
|
2865
|
+
insecure: Accept any certificate (insecure)
|
|
2866
|
+
auth:
|
|
2867
|
+
title: Authentication
|
|
2868
|
+
label: Authentication
|
|
2869
|
+
helm: Helm Authentication
|
|
2870
|
+
caBundle:
|
|
2871
|
+
label: Certificates
|
|
2872
|
+
placeholder: "Paste in one or more certificates, starting with -----BEGIN CERTIFICATE----"
|
|
2650
2873
|
clusterGroup:
|
|
2651
2874
|
selector:
|
|
2652
2875
|
label: Cluster Selectors
|
|
@@ -2658,8 +2881,6 @@ fleet:
|
|
|
2658
2881
|
other {Matches {matched, number} of {total, number} existing clusters, including "{sample}"}
|
|
2659
2882
|
}
|
|
2660
2883
|
fdc:
|
|
2661
|
-
loadingChart: Loading chart data...
|
|
2662
|
-
renderingChart: Rendering chart...
|
|
2663
2884
|
id: ID
|
|
2664
2885
|
type: Type
|
|
2665
2886
|
state: State
|
|
@@ -2670,6 +2891,7 @@ fleet:
|
|
|
2670
2891
|
workspaces:
|
|
2671
2892
|
tabs:
|
|
2672
2893
|
restrictions: Allowed Target Namespaces
|
|
2894
|
+
ociRegistry: Default OCI Registry
|
|
2673
2895
|
timeout: Workspace creation timeout. It's possible the workspace was created. We suggest checking the workspace page before trying to create another.
|
|
2674
2896
|
remove:
|
|
2675
2897
|
warning: "Deleting a Workspace also deletes all resources in the Workspace. This includes GitRepos but also Clusters.<br><br>Deleted Clusters will be removed from {vendor}, and if {vendor} manages the life-cycle of the Cluster it's underlying infrastructure will also be deleted."
|
|
@@ -3149,6 +3371,9 @@ istio:
|
|
|
3149
3371
|
tracing: Enable Jaeger Tracing (limited)
|
|
3150
3372
|
v1Warning: Please uninstall the current Istio version in the <code>istio-system</code> namespace before attempting to install this version.
|
|
3151
3373
|
|
|
3374
|
+
itemCard:
|
|
3375
|
+
ariaLabel:
|
|
3376
|
+
clickable: Click on card for {cardTitle}
|
|
3152
3377
|
jwt:
|
|
3153
3378
|
title: JWT Authentication
|
|
3154
3379
|
actions:
|
|
@@ -3959,7 +4184,7 @@ namespaceFilter:
|
|
|
3959
4184
|
input: Filter namespace options
|
|
3960
4185
|
button:
|
|
3961
4186
|
clear: Remove applied namespace filters
|
|
3962
|
-
clearFilter: Clear namespace options filter
|
|
4187
|
+
clearFilter: Clear namespace options filter
|
|
3963
4188
|
|
|
3964
4189
|
namespaceList:
|
|
3965
4190
|
selectLabel: Namespace
|
|
@@ -4094,6 +4319,7 @@ networkpolicy:
|
|
|
4094
4319
|
=1 {1 of {totalNamespaces, number} namespaces: "{sampleNamespaces}"}
|
|
4095
4320
|
other {{matchedNamespaces, number} of {totalNamespaces, number} existing namespaces, including "{sampleNamespaces}"}
|
|
4096
4321
|
}
|
|
4322
|
+
|
|
4097
4323
|
node:
|
|
4098
4324
|
list:
|
|
4099
4325
|
pool: Pool
|
|
@@ -4991,6 +5217,10 @@ promptRollback:
|
|
|
4991
5217
|
multipleWorkloadError: "Only one workload can be rolled back at a time."
|
|
4992
5218
|
singleRevisionBanner: There are no revisions to roll back to.
|
|
4993
5219
|
|
|
5220
|
+
promptRedeploy:
|
|
5221
|
+
title: Redeploy {type}?
|
|
5222
|
+
attemptingToRedeploy: "You are attempting to redeploy the {type} {names}<br><br>Redeploying will restart the selected workloads and may cause temporary downtime."
|
|
5223
|
+
|
|
4994
5224
|
promptRotateEncryptionKey:
|
|
4995
5225
|
title: Rotate Encryption Keys
|
|
4996
5226
|
description: The last backup {name} was performed on {date}
|
|
@@ -5039,6 +5269,7 @@ rbac:
|
|
|
5039
5269
|
resources: Resource
|
|
5040
5270
|
nonResourceUrls: Non-Resource URLs
|
|
5041
5271
|
apiGroups: API Groups
|
|
5272
|
+
psaWarning: Granting Project Roles the ability to amend PSA labels could lead to a weaker security posture and allow for privilege escalation. This is only recommended for advanced users who understand the risks involved.
|
|
5042
5273
|
subtypes:
|
|
5043
5274
|
GLOBAL:
|
|
5044
5275
|
createButton: Create Global Role
|
|
@@ -5245,6 +5476,8 @@ resourceTable:
|
|
|
5245
5476
|
notInANodePool: "Not in a Pool"
|
|
5246
5477
|
nodePool: "<span>Pool:</span> {name}"
|
|
5247
5478
|
node: "<span>Node:</span> {name}"
|
|
5479
|
+
autoRefresh:
|
|
5480
|
+
label: Auto Refresh
|
|
5248
5481
|
|
|
5249
5482
|
resourceTabs:
|
|
5250
5483
|
conditions:
|
|
@@ -5951,7 +6184,6 @@ tableHeaders:
|
|
|
5951
6184
|
endpoints: Endpoints
|
|
5952
6185
|
expires: Expires
|
|
5953
6186
|
firstSeen: First Seen
|
|
5954
|
-
fleetBundleType: Type
|
|
5955
6187
|
flow: Flow
|
|
5956
6188
|
fingerprint: Fingerprint
|
|
5957
6189
|
gitRepos: Git Repos
|
|
@@ -6251,7 +6483,9 @@ validation:
|
|
|
6251
6483
|
both: Requires "Output" or "Cluster Output" to be selected.
|
|
6252
6484
|
global: Requires "Cluster Output" to be selected.
|
|
6253
6485
|
git:
|
|
6254
|
-
|
|
6486
|
+
url: URL must be a HTTP(s) or SSH url with no trailing spaces
|
|
6487
|
+
oci:
|
|
6488
|
+
url: URL must be an OCI url with no trailing spaces
|
|
6255
6489
|
output:
|
|
6256
6490
|
logdna:
|
|
6257
6491
|
apiKey: Required an "Api Key" to be set.
|
|
@@ -6632,6 +6866,9 @@ workload:
|
|
|
6632
6866
|
workload: Workload
|
|
6633
6867
|
pods: Pods by State
|
|
6634
6868
|
runs: Runs
|
|
6869
|
+
started: Started
|
|
6870
|
+
duration: Last Scheduled Time
|
|
6871
|
+
image: Image
|
|
6635
6872
|
error: Pod { name } Security Policy Violation { policy }
|
|
6636
6873
|
gaugeStates:
|
|
6637
6874
|
succeeded: Successful
|
|
@@ -6945,6 +7182,7 @@ model:
|
|
|
6945
7182
|
saml: SAML
|
|
6946
7183
|
oauth: OAuth
|
|
6947
7184
|
oidc: OIDC
|
|
7185
|
+
cognito: Amazon Cognito
|
|
6948
7186
|
name:
|
|
6949
7187
|
keycloak: Keycloak (SAML)
|
|
6950
7188
|
keycloakoidc: Keycloak (OIDC)
|
|
@@ -6966,6 +7204,8 @@ model:
|
|
|
6966
7204
|
googleoauth: Google
|
|
6967
7205
|
genericoidc: Generic OIDC
|
|
6968
7206
|
keycloakoidc: Keycloak
|
|
7207
|
+
cognito: Amazon Cognito
|
|
7208
|
+
|
|
6969
7209
|
|
|
6970
7210
|
cluster:
|
|
6971
7211
|
name: Cluster Name
|
|
@@ -7115,11 +7355,21 @@ typeLabel:
|
|
|
7115
7355
|
one { Cluster Group }
|
|
7116
7356
|
other {Cluster Groups }
|
|
7117
7357
|
}
|
|
7358
|
+
fleet.cattle.io.application: |-
|
|
7359
|
+
{count, plural,
|
|
7360
|
+
one { App Bundle }
|
|
7361
|
+
other { App Bundles }
|
|
7362
|
+
}
|
|
7118
7363
|
fleet.cattle.io.gitrepo: |-
|
|
7119
7364
|
{count, plural,
|
|
7120
7365
|
one { Git Repo }
|
|
7121
7366
|
other {Git Repos }
|
|
7122
7367
|
}
|
|
7368
|
+
fleet.cattle.io.helmop: |-
|
|
7369
|
+
{count, plural,
|
|
7370
|
+
one { Helm Op }
|
|
7371
|
+
other { Helm Ops }
|
|
7372
|
+
}
|
|
7123
7373
|
management.cattle.io.authconfig: |-
|
|
7124
7374
|
{count, plural,
|
|
7125
7375
|
one { Authentication Provider }
|
|
@@ -8188,7 +8438,7 @@ errors:
|
|
|
8188
8438
|
maxLimitExceded: is too big
|
|
8189
8439
|
messageAndDetail: '{message} ({detail})'
|
|
8190
8440
|
messageOrDetail: '{val}'
|
|
8191
|
-
failedInApi:
|
|
8441
|
+
failedInApi:
|
|
8192
8442
|
withName:
|
|
8193
8443
|
withCodeExplanation:
|
|
8194
8444
|
withMessageDetail: 'Validation failed in API: {name} {codeExplanation}: {messageDetail}'
|
|
@@ -8196,7 +8446,7 @@ errors:
|
|
|
8196
8446
|
withMessageDetail: 'Validation failed in API: {name} {messageDetail}'
|
|
8197
8447
|
withoutAnythingElse: 'Validation failed in API: {name} '
|
|
8198
8448
|
withoutName:
|
|
8199
|
-
withMessageDetail:
|
|
8449
|
+
withMessageDetail:
|
|
8200
8450
|
withCodeExplanation: 'Validation failed in API: {codeExplanation}: {messageDetail}'
|
|
8201
8451
|
withoutCodeExplanation: 'Validation failed in API: {messageDetail}'
|
|
8202
8452
|
withCode:
|
|
@@ -8206,6 +8456,54 @@ errors:
|
|
|
8206
8456
|
notFound:
|
|
8207
8457
|
withUrl: '{msg}: {url}'
|
|
8208
8458
|
withoutUrl: '{msg}'
|
|
8209
|
-
|
|
8210
|
-
|
|
8211
|
-
|
|
8459
|
+
component:
|
|
8460
|
+
resource:
|
|
8461
|
+
detail:
|
|
8462
|
+
card:
|
|
8463
|
+
resourceUsage:
|
|
8464
|
+
used: Used
|
|
8465
|
+
amount: '{used} of {available}'
|
|
8466
|
+
cpu: CPU
|
|
8467
|
+
memory: Memory
|
|
8468
|
+
pods: Pods
|
|
8469
|
+
resourcesCard:
|
|
8470
|
+
title: Resources
|
|
8471
|
+
rows:
|
|
8472
|
+
services: Services
|
|
8473
|
+
ingresses: Ingresses
|
|
8474
|
+
referredToBy: Referred to by
|
|
8475
|
+
refersTo: Refers to
|
|
8476
|
+
podsCard:
|
|
8477
|
+
title: Pods
|
|
8478
|
+
ariaResourceName: pods
|
|
8479
|
+
insightsCard:
|
|
8480
|
+
title: Insights
|
|
8481
|
+
rows:
|
|
8482
|
+
conditions: Conditions
|
|
8483
|
+
events: Events
|
|
8484
|
+
scaler:
|
|
8485
|
+
ariaLabel:
|
|
8486
|
+
increase: Increase {resourceName}
|
|
8487
|
+
decrease: Decrease {resourceName}
|
|
8488
|
+
titleBar:
|
|
8489
|
+
showConfiguration: Show Configuration
|
|
8490
|
+
ariaLabel:
|
|
8491
|
+
actionMenu: More actions - { resource }
|
|
8492
|
+
showConfiguration: Show the entire configuration of { resource }
|
|
8493
|
+
metadata:
|
|
8494
|
+
labelsAndAnnotations: Labels and Annotations
|
|
8495
|
+
identifyingInformation:
|
|
8496
|
+
namespace: Namespace
|
|
8497
|
+
project: Project
|
|
8498
|
+
age: Age
|
|
8499
|
+
image: Image
|
|
8500
|
+
ready: Ready
|
|
8501
|
+
up-to-date: Up-to-date
|
|
8502
|
+
available: Available
|
|
8503
|
+
annotations:
|
|
8504
|
+
title: Annotations
|
|
8505
|
+
labels:
|
|
8506
|
+
title: Labels
|
|
8507
|
+
keyValue:
|
|
8508
|
+
noRows: There are no {propertyName} configured on this resource.
|
|
8509
|
+
showConfiguration: Show Configuration
|
|
@@ -112,6 +112,10 @@ generic:
|
|
|
112
112
|
other {匹配 {total, number} 中的 {matched, number} 个,包括 "{sample}"}
|
|
113
113
|
}
|
|
114
114
|
|
|
115
|
+
graph:
|
|
116
|
+
loading: 正在加载 Chart 数据...
|
|
117
|
+
rendering: 正在渲染 Chart...
|
|
118
|
+
|
|
115
119
|
locale:
|
|
116
120
|
en-us: English
|
|
117
121
|
zh-hans: 简体中文
|
|
@@ -2088,7 +2092,7 @@ fleet:
|
|
|
2088
2092
|
gitOpsScale: 大规模 GitOps。
|
|
2089
2093
|
learnMore: 了解更多。
|
|
2090
2094
|
learnMoreLink: https://fleet.rancher.io
|
|
2091
|
-
|
|
2095
|
+
noApplications: "工作区中没有任何 Git 仓库"
|
|
2092
2096
|
getStarted: 开始使用
|
|
2093
2097
|
thereIsMore: |-
|
|
2094
2098
|
{count, plural,
|
|
@@ -2120,7 +2124,9 @@ fleet:
|
|
|
2120
2124
|
other {# 个 Bundle 未显示,因为它属于不能与持续交付一起使用的 Harvester 集群。}
|
|
2121
2125
|
}
|
|
2122
2126
|
fleetSummary:
|
|
2123
|
-
|
|
2127
|
+
noClusters:
|
|
2128
|
+
gitRepo: 这个 Git 仓库不针对任何集群
|
|
2129
|
+
helmOp: ''
|
|
2124
2130
|
state:
|
|
2125
2131
|
ready: '就绪'
|
|
2126
2132
|
info: '转换中'
|
|
@@ -2219,8 +2225,6 @@ fleet:
|
|
|
2219
2225
|
other {现有{total, number}个集群,与其中的{matched, number}个匹配,包括"{sample}"}
|
|
2220
2226
|
}
|
|
2221
2227
|
fdc:
|
|
2222
|
-
loadingChart: 正在加载 Chart 数据...
|
|
2223
|
-
renderingChart: 正在渲染 Chart...
|
|
2224
2228
|
id: ID
|
|
2225
2229
|
type: 类型
|
|
2226
2230
|
state: 状态
|
|
@@ -5345,7 +5349,6 @@ tableHeaders:
|
|
|
5345
5349
|
effect: 效果
|
|
5346
5350
|
endpoints: 端点
|
|
5347
5351
|
firstSeen: 首次出现时间
|
|
5348
|
-
fleetBundleType: 类型
|
|
5349
5352
|
flow: Flow
|
|
5350
5353
|
fingerprint: 唯一标识
|
|
5351
5354
|
gitRepos: Git 仓库
|
|
@@ -139,6 +139,10 @@ export default defineComponent({
|
|
|
139
139
|
color="error"
|
|
140
140
|
:label="expiredData.expired"
|
|
141
141
|
/>
|
|
142
|
+
<!--
|
|
143
|
+
It would be nicer if this used PaginatedResourceTable and server-side pagination, however...
|
|
144
|
+
a big sell it sorting by expiration time which is not a server-side property
|
|
145
|
+
-->
|
|
142
146
|
<ResourceTable
|
|
143
147
|
:loading="$fetchState.pending"
|
|
144
148
|
:schema="schema"
|
|
@@ -147,6 +151,7 @@ export default defineComponent({
|
|
|
147
151
|
:paging-label="'secret.certificate.paging'"
|
|
148
152
|
:paging-params="pagingParams"
|
|
149
153
|
:ignore-filter="true"
|
|
154
|
+
:hide-manual-refresh-button="true"
|
|
150
155
|
>
|
|
151
156
|
<template #col:certState="{row}">
|
|
152
157
|
<td>
|