@rancher/shell 0.3.22 → 0.3.24
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/styles/base/_variables.scss +1 -0
- package/assets/styles/themes/_dark.scss +1 -0
- package/assets/styles/themes/_light.scss +6 -5
- package/assets/translations/en-us.yaml +15 -10
- package/assets/translations/zh-hans.yaml +1 -1
- package/babel.config.js +3 -0
- package/components/ClusterProviderIconMenu.vue +161 -0
- package/components/Loading.vue +1 -1
- package/components/SideNav.vue +1 -1
- package/components/SortableTable/paging.js +10 -0
- package/components/form/GitPicker.vue +16 -0
- package/components/form/SelectOrCreateAuthSecret.vue +16 -3
- package/components/nav/Group.vue +54 -24
- package/components/nav/Header.vue +1 -1
- package/components/nav/TopLevelMenu.vue +469 -294
- package/components/nav/Type.vue +31 -5
- package/creators/pkg/init +2 -2
- package/edit/fleet.cattle.io.gitrepo.vue +43 -15
- package/edit/logging.banzaicloud.io.output/index.vue +7 -0
- package/edit/provisioning.cattle.io.cluster/CustomCommand.vue +3 -8
- package/edit/provisioning.cattle.io.cluster/rke2.vue +108 -33
- package/edit/resources.cattle.io.backup.vue +3 -1
- package/edit/resources.cattle.io.restore.vue +3 -1
- package/edit/workload/storage/ContainerMountPaths.vue +7 -5
- package/initialize/App.js +2 -0
- package/initialize/client.js +63 -51
- package/initialize/index.js +2 -0
- package/layouts/default.vue +8 -0
- package/machine-config/amazonec2.vue +1 -0
- package/mixins/fetch.client.js +3 -3
- package/package.json +1 -1
- package/pages/__tests__/prefs.test.ts +1 -1
- package/pages/c/_cluster/explorer/ConfigBadge.vue +1 -0
- package/pages/prefs.vue +3 -13
- package/plugins/dashboard-store/resource-class.js +1 -1
- package/public/index.html +4 -2
- package/rancher-components/Form/LabeledInput/LabeledInput.vue +8 -0
- package/rancher-components/Form/Radio/RadioButton.test.ts +7 -3
- package/scripts/extension/parse-tag-name +0 -0
- package/store/prefs.js +3 -4
- package/store/type-map.js +2 -16
- package/types/shell/index.d.ts +10 -1
- package/utils/__tests__/formatter.test.ts +77 -0
- package/utils/__tests__/sort.test.ts +61 -0
- package/utils/formatter.js +11 -0
- package/utils/string.js +12 -0
- package/vue.config.js +7 -6
- package/yarn-error.log +16 -16
|
@@ -11,7 +11,7 @@ $dark : #B6B6C2;
|
|
|
11
11
|
//light border and buttons
|
|
12
12
|
$medium : #DCDEE7;
|
|
13
13
|
|
|
14
|
-
//light inputs
|
|
14
|
+
//light inputs
|
|
15
15
|
$light : #EEEFF4;
|
|
16
16
|
|
|
17
17
|
//light sidebar and box
|
|
@@ -84,9 +84,9 @@ BODY, .theme-light {
|
|
|
84
84
|
--link-border : #{$link};
|
|
85
85
|
--link-banner-bg : #{rgba($link, 0.15)};
|
|
86
86
|
--link-light-bg : #{rgba($link, 0.05)};
|
|
87
|
-
|
|
88
87
|
|
|
89
|
-
|
|
88
|
+
|
|
89
|
+
|
|
90
90
|
.text-link {
|
|
91
91
|
color: var(--link) !important;
|
|
92
92
|
}
|
|
@@ -301,7 +301,7 @@ BODY, .theme-light {
|
|
|
301
301
|
background: var(--error-active-bg);
|
|
302
302
|
}
|
|
303
303
|
}
|
|
304
|
-
|
|
304
|
+
|
|
305
305
|
|
|
306
306
|
--body-bg : #{$lightest};
|
|
307
307
|
--body-text : #{$darkest};
|
|
@@ -320,13 +320,14 @@ BODY, .theme-light {
|
|
|
320
320
|
--header-height : 55px;
|
|
321
321
|
--header-border : #{$medium};
|
|
322
322
|
--header-border-size : 1px;
|
|
323
|
-
--nav-width :
|
|
323
|
+
--nav-width : 300px;
|
|
324
324
|
--nav-bg : #{$lightest};
|
|
325
325
|
--nav-active : #{$light};
|
|
326
326
|
--nav-hover : #{$medium};
|
|
327
327
|
--nav-expander-hover : #{darken($medium, 10%)};
|
|
328
328
|
--nav-border : #{$medium};
|
|
329
329
|
--nav-border-size : 1px;
|
|
330
|
+
--nav-icon-badge-bg : #{$lightest};
|
|
330
331
|
|
|
331
332
|
--footer-bg : transparent;
|
|
332
333
|
--footer-height : 0px;
|
|
@@ -139,6 +139,8 @@ nav:
|
|
|
139
139
|
rotateEncryptionKeys: Rotate Encryption Keys
|
|
140
140
|
saveAsRKETemplate: Save as RKE Template
|
|
141
141
|
takeSnapshot: Take Snapshot
|
|
142
|
+
seeAllClusters: See all clusters
|
|
143
|
+
seeAllClustersCollapsed: See all
|
|
142
144
|
group:
|
|
143
145
|
cluster: Cluster
|
|
144
146
|
inUse: More Resources
|
|
@@ -185,6 +187,7 @@ nav:
|
|
|
185
187
|
search:
|
|
186
188
|
placeholder: Type to search clusters
|
|
187
189
|
noResults: No matching clusters
|
|
190
|
+
clusters: clusters
|
|
188
191
|
resourceSearch:
|
|
189
192
|
label: Resource Search
|
|
190
193
|
toolTip: Resource Search {key}
|
|
@@ -1637,7 +1640,7 @@ cluster:
|
|
|
1637
1640
|
advanced: These are advanced configuration options. Generally, they should be left as-is.
|
|
1638
1641
|
tolerations: Additional Pod Tolerations will be added to the default Tolerations applied by Rancher.
|
|
1639
1642
|
limits: Pod Requests and Limits do not have a default configuration.
|
|
1640
|
-
windowsCompatibility: "We do not
|
|
1643
|
+
windowsCompatibility: "We do not recommend removing the Node Affinity rule that prevents the <b>agent</b> from running on Windows nodes as this is not a supported configuration."
|
|
1641
1644
|
affinity:
|
|
1642
1645
|
default: Use default affinity rules defined by Rancher
|
|
1643
1646
|
custom: Use custom affinity rules
|
|
@@ -1647,7 +1650,7 @@ cluster:
|
|
|
1647
1650
|
machineSelector:
|
|
1648
1651
|
label: Add Machine Selector
|
|
1649
1652
|
listLabel: Add Argument
|
|
1650
|
-
bannerLabel: 'Note: The last selector that matches wins and only args from it will be used. Args from other matches above will not combined together or merged.'
|
|
1653
|
+
bannerLabel: 'Note: The last selector that matches wins, and only args from it will be used. Args from other matches above will not be combined together or merged.'
|
|
1651
1654
|
title: 'For machines with labels matching:'
|
|
1652
1655
|
subTitle: 'Use the Kubelet args:'
|
|
1653
1656
|
titleAlt: |-
|
|
@@ -1661,14 +1664,14 @@ cluster:
|
|
|
1661
1664
|
agentArgs:
|
|
1662
1665
|
label: Raise error if kernel parameters are different than the expected kubelet defaults
|
|
1663
1666
|
banner:
|
|
1664
|
-
warning: 'This cluster contains a machineSelectorConfig which this form does not fully support; use the YAML editor to manage the full configuration.'
|
|
1665
|
-
os: 'You are
|
|
1667
|
+
warning: 'This cluster contains a machineSelectorConfig, which this form does not fully support; use the YAML editor to manage the full configuration.'
|
|
1668
|
+
os: 'You are attempting to add a {newOS} worker node to a cluster with one or more {existingOS} worker nodes: some installed apps may need to be upgraded or removed.'
|
|
1666
1669
|
rke2-k3-reprovisioning: 'Making changes to cluster configuration may result in nodes reprovisioning. For more information see the <a target="blank" href="{docsBase}/cluster-provisioning/rke-clusters/behavior-differences-between-rke1-and-rke2/" target="_blank" rel="noopener nofollow">documentation</a>.'
|
|
1667
1670
|
desiredNodeGroupWarning: There are 0 nodes available to run the cluster agent. The cluster will not become active until at least one node is available.
|
|
1668
1671
|
invalidPsps: You have one or more PodSecurityPolicy resource(s) in this cluster. Pod Security Policies are not available in Kubernetes v1.25 and will be automatically removed.
|
|
1669
|
-
haveArgInfo: Configuration information is not available for the selected Kubernetes version. The options available
|
|
1672
|
+
haveArgInfo: Configuration information is not available for the selected Kubernetes version. The options available on this screen will be limited; you may want to use the YAML editor.
|
|
1670
1673
|
deprecatedPsp: Pod Security Policies are deprecated as of Kubernetes v1.21, and have been removed in Kubernetes v1.25.
|
|
1671
|
-
removedPsp: Pod Security Policies have been removed in Kubernetes v1.25
|
|
1674
|
+
removedPsp: Pod Security Policies have been removed in Kubernetes v1.25. Use Pod Security Admission instead.
|
|
1672
1675
|
rkeTemplateUpgrade: Template revision {name} available for upgrade
|
|
1673
1676
|
|
|
1674
1677
|
availabilityWarnings:
|
|
@@ -1830,7 +1833,7 @@ cluster:
|
|
|
1830
1833
|
modal:
|
|
1831
1834
|
pspChange:
|
|
1832
1835
|
title: Pod Security Policy deprecation
|
|
1833
|
-
body: Kubernetes has removed support for Pod Security Policies (PSPs) starting with version 1.25. If your cluster has PodSecurityPolicy admission controller enabled via "kube-apiserver-arg.enable-admission-plugins" in Cluster YAML, it has to be <i>manually</i> removed before proceeding with the upgrade. Additionally, any PSPs that may be present in the cluster will no longer be available/enforced. Do you want to proceed
|
|
1836
|
+
body: <p>Kubernetes has removed support for Pod Security Policies (PSPs) starting with version 1.25. If your cluster has PodSecurityPolicy admission controller enabled via "kube-apiserver-arg.enable-admission-plugins" in Cluster YAML, it has to be <i>manually</i> removed before proceeding with the upgrade. Additionally, any PSPs that may be present in the cluster will no longer be available/enforced. Do you want to proceed?</p>
|
|
1834
1837
|
snapshots:
|
|
1835
1838
|
suffix: Snapshots per node
|
|
1836
1839
|
systemService:
|
|
@@ -1846,6 +1849,7 @@ cluster:
|
|
|
1846
1849
|
header: Cloud Provider Config
|
|
1847
1850
|
defaultValue:
|
|
1848
1851
|
label: Default - RKE2 Embedded
|
|
1852
|
+
unsupported: The current Cloud Provider is not supported by this version of Kubernetes. The Cloud Provider has been changed to External. Please use the Cloud Provider Config to supply an out-of-tree configuration as needed.
|
|
1849
1853
|
security:
|
|
1850
1854
|
header: Security
|
|
1851
1855
|
cis:
|
|
@@ -2162,7 +2166,7 @@ fleet:
|
|
|
2162
2166
|
keepResources: Always Keep Resources
|
|
2163
2167
|
keepResourcesBanner: When enabled above, resources will be kept when deleting a GitRepo or Bundle - only Helm release secrets will be deleted.
|
|
2164
2168
|
correctDrift: Enable Self-Healing
|
|
2165
|
-
correctDriftBanner: When enabled, Fleet will ensure that the cluster resources are kept in sync with the git repository. All resource changes made on
|
|
2169
|
+
correctDriftBanner: When enabled, Fleet will ensure that the cluster resources are kept in sync with the git repository. All resource changes made on the cluster will be lost.
|
|
2166
2170
|
add:
|
|
2167
2171
|
steps:
|
|
2168
2172
|
repoInfo:
|
|
@@ -2214,6 +2218,7 @@ fleet:
|
|
|
2214
2218
|
workspace:
|
|
2215
2219
|
label: Workspace
|
|
2216
2220
|
addWorkspace: Create a workspace
|
|
2221
|
+
helmRepoURLRegex: Helm Repos (URL Regex)
|
|
2217
2222
|
clusterGroup:
|
|
2218
2223
|
selector:
|
|
2219
2224
|
label: Cluster Selectors
|
|
@@ -4090,14 +4095,14 @@ plugins:
|
|
|
4090
4095
|
subtitle: Catalogs
|
|
4091
4096
|
imageLoad:
|
|
4092
4097
|
load: Import Extension Catalog
|
|
4093
|
-
prompt: An Extension Catalog contains extension assets bundled into an image, importing will take the image and host a Helm repository to act as a catalog for custom built Extensions.
|
|
4098
|
+
prompt: An Extension Catalog contains extension assets bundled into an image, importing will take the image and host a Helm repository to act as a catalog for custom built Extensions.
|
|
4094
4099
|
fields:
|
|
4095
4100
|
image:
|
|
4096
4101
|
label: Catalog Image Reference
|
|
4097
4102
|
placeholder: "e.g. hub.docker.io/example-org/my-image:latest"
|
|
4098
4103
|
secrets:
|
|
4099
4104
|
banner: "If the registry that hosts the Catalog Image requires Pull Secrets, they must be created in the following namespace:<pre>cattle-ui-plugin-system</pre>"
|
|
4100
|
-
banner: This will create an Deployment, Service, and Helm repository to serve the extension charts.
|
|
4105
|
+
banner: This will create an Deployment, Service, and Helm repository to serve the extension charts.
|
|
4101
4106
|
imageVersion:
|
|
4102
4107
|
title: Image Version Not Found
|
|
4103
4108
|
message: Unable to determine image version from {image}, defaulting to latest
|
|
@@ -1838,7 +1838,7 @@ cluster:
|
|
|
1838
1838
|
modal:
|
|
1839
1839
|
pspChange:
|
|
1840
1840
|
title: 弃用 Pod 安全策略
|
|
1841
|
-
body:
|
|
1841
|
+
body: <p>从 v1.25 版开始,Kubernetes 已经取消了对 Pod 安全策略 (PSP) 的支持。如果你的集群通过集群 YAML 中的 “kube-apiserver-arg.enable-admission-plugins” 启用了 PodSecurityPolicy 准入控制器,你必须在继续升级之前<i>手动</i>删除它。此外,集群中存在的任何 PSP 将不再可用或强制执行。是否继续操作?</p>
|
|
1842
1842
|
snapshots:
|
|
1843
1843
|
suffix: 每个节点的快照
|
|
1844
1844
|
systemService:
|
package/babel.config.js
CHANGED
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
export default {
|
|
3
|
+
props: {
|
|
4
|
+
cluster: {
|
|
5
|
+
type: Object,
|
|
6
|
+
required: true,
|
|
7
|
+
},
|
|
8
|
+
},
|
|
9
|
+
computed: {
|
|
10
|
+
isEnabled() {
|
|
11
|
+
return !!this.cluster?.ready;
|
|
12
|
+
},
|
|
13
|
+
},
|
|
14
|
+
methods: {
|
|
15
|
+
/**
|
|
16
|
+
* Shortens an input string based on the number of segments it contains.
|
|
17
|
+
* @param {string} input - The input string to be shortened.
|
|
18
|
+
* @returns {string} - The shortened string.
|
|
19
|
+
* @example smallIdentifier('local') => 'lcl'
|
|
20
|
+
* @example smallIdentifier('word-wide-web') => 'www'
|
|
21
|
+
*/
|
|
22
|
+
smallIdentifier(input) {
|
|
23
|
+
if (this.cluster.badge?.iconText) {
|
|
24
|
+
return this.cluster.badge?.iconText;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
if (!input) {
|
|
28
|
+
return '';
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
if (input.length <= 3) {
|
|
32
|
+
return input;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const segments = input.match(/([A-Za-z]+|\d+)/g);
|
|
36
|
+
|
|
37
|
+
if (!segments) return ''; // In case no valid segments are found
|
|
38
|
+
|
|
39
|
+
let result = '';
|
|
40
|
+
|
|
41
|
+
switch (segments.length) {
|
|
42
|
+
case 1:
|
|
43
|
+
// eslint-disable-next-line no-case-declarations
|
|
44
|
+
const word = segments[0];
|
|
45
|
+
|
|
46
|
+
result = `${ word[0] }${ word[Math.floor(word.length / 2)] }${ word[word.length - 1] }`;
|
|
47
|
+
break;
|
|
48
|
+
case 2:
|
|
49
|
+
result = `${ segments[0][0] }${ segments[1][0] }${ segments[1][segments[1].length - 1] }`;
|
|
50
|
+
break;
|
|
51
|
+
default:
|
|
52
|
+
result = segments.slice(0, 3).map((segment) => segment[0]).join('');
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return result;
|
|
56
|
+
},
|
|
57
|
+
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
</script>
|
|
61
|
+
|
|
62
|
+
<template>
|
|
63
|
+
<div
|
|
64
|
+
v-if="cluster"
|
|
65
|
+
class="cluster-icon-menu"
|
|
66
|
+
>
|
|
67
|
+
<div
|
|
68
|
+
class="cluster-badge-logo"
|
|
69
|
+
:class="{ 'disabled': !isEnabled }"
|
|
70
|
+
:style="{borderBottom: cluster.badge?.color ? `4px solid ${cluster.badge?.color}` : ''}"
|
|
71
|
+
>
|
|
72
|
+
<span
|
|
73
|
+
class="cluster-badge-logo-text"
|
|
74
|
+
>
|
|
75
|
+
{{ smallIdentifier(cluster.label) }}
|
|
76
|
+
</span>
|
|
77
|
+
<!-- {{ cluster.badge.iconText }} -->
|
|
78
|
+
</div>
|
|
79
|
+
<!-- eslint-enable -->
|
|
80
|
+
<svg
|
|
81
|
+
v-if="cluster.isLocal && !cluster.isHarvester"
|
|
82
|
+
id="local-cluster-icon-menu"
|
|
83
|
+
class="cluster-os-logo"
|
|
84
|
+
version="1.1"
|
|
85
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
86
|
+
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
87
|
+
viewBox="0 0 100 100"
|
|
88
|
+
style="enable-background:new 0 0 100 100;"
|
|
89
|
+
>
|
|
90
|
+
<g>
|
|
91
|
+
<g>
|
|
92
|
+
<path
|
|
93
|
+
class="rancher-icon-fill"
|
|
94
|
+
d="M26.0862026,44.4953918H8.6165142c-5.5818157,0-9.3979139-4.6252708-8.4802637-10.1311035l2.858391-17.210701
|
|
95
|
+
C3.912292,11.6477556,6.1382647,7.1128125,7.8419709,7.1128125s3.1788611,4.5368752,3.1788611,10.1186218v4.4837742
|
|
96
|
+
c0,5.5817471,4.4044495,9.5409164,9.9862652,9.5409164h5.0791054V44.4953918z"
|
|
97
|
+
/>
|
|
98
|
+
</g>
|
|
99
|
+
<path
|
|
100
|
+
class="rancher-icon-fill"
|
|
101
|
+
d="M63.0214729,92.8871841H37.0862045c-6.0751343,0-11.0000019-4.9248657-11.0000019-11V30.3864384
|
|
102
|
+
c0-6.0751324,4.9248676-11,11.0000019-11h25.9352684c6.0751305,0,11.0000038,4.9248676,11.0000038,11v51.5007477
|
|
103
|
+
C74.0214767,87.9623184,69.0966034,92.8871841,63.0214729,92.8871841z"
|
|
104
|
+
/>
|
|
105
|
+
<g>
|
|
106
|
+
<path
|
|
107
|
+
class="rancher-icon-fill"
|
|
108
|
+
d="M73.9137955,44.4953918h17.4696884c5.5818176,0,9.3979187-4.6252708,8.4802628-10.1311035
|
|
109
|
+
l-2.8583908-17.210701c-0.9176483-5.5058317-3.1436234-10.0407753-4.8473282-10.0407753
|
|
110
|
+
s-3.1788635,4.5368752-3.1788635,10.1186218v4.4837742c0,5.5817471-4.4044418,9.5409164-9.9862595,9.5409164h-5.0791092
|
|
111
|
+
V44.4953918z"
|
|
112
|
+
/>
|
|
113
|
+
</g>
|
|
114
|
+
</g>
|
|
115
|
+
</svg>
|
|
116
|
+
<img
|
|
117
|
+
v-else
|
|
118
|
+
class="cluster-os-logo"
|
|
119
|
+
:src="cluster.providerNavLogo"
|
|
120
|
+
>
|
|
121
|
+
</div>
|
|
122
|
+
</template>
|
|
123
|
+
|
|
124
|
+
<style lang="scss" scoped>
|
|
125
|
+
|
|
126
|
+
.cluster-icon-menu {
|
|
127
|
+
position: relative;
|
|
128
|
+
align-items: center;
|
|
129
|
+
display: flex;
|
|
130
|
+
height: 28px;
|
|
131
|
+
justify-content: center;
|
|
132
|
+
width: 42px;
|
|
133
|
+
}
|
|
134
|
+
.cluster-os-logo {
|
|
135
|
+
position: absolute;
|
|
136
|
+
top: -6px;
|
|
137
|
+
right: -4px;
|
|
138
|
+
width: 14px;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
.cluster-badge-logo {
|
|
142
|
+
width: 42px;
|
|
143
|
+
height: 28px;
|
|
144
|
+
display: flex;
|
|
145
|
+
align-items: center;
|
|
146
|
+
justify-content: center;
|
|
147
|
+
color: var(--default-active-text);
|
|
148
|
+
font-weight: bold;
|
|
149
|
+
background: var(--nav-icon-badge-bg);
|
|
150
|
+
border: 1px solid var(--default-border);
|
|
151
|
+
border-radius: 5px;
|
|
152
|
+
padding-top: 2px;
|
|
153
|
+
font-size: 12px;
|
|
154
|
+
text-transform: uppercase;
|
|
155
|
+
|
|
156
|
+
&.disabled {
|
|
157
|
+
filter: grayscale(1);
|
|
158
|
+
color: var(--muted);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
</style>
|
package/components/Loading.vue
CHANGED
package/components/SideNav.vue
CHANGED
|
@@ -103,6 +103,16 @@ export default {
|
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
this.setPage(page);
|
|
106
|
+
},
|
|
107
|
+
|
|
108
|
+
getPageByRow(rowId, getRowId = (x) => x) {
|
|
109
|
+
const pos = this.filteredRows.map(getRowId).indexOf(rowId);
|
|
110
|
+
|
|
111
|
+
if (pos === -1) {
|
|
112
|
+
return null;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
return Math.ceil(pos / this.perPage);
|
|
106
116
|
}
|
|
107
117
|
}
|
|
108
118
|
};
|
|
@@ -347,6 +347,20 @@ export default Vue.extend<Data, any, any, any>({
|
|
|
347
347
|
branchesRules() {
|
|
348
348
|
return this.hasError.branch ? this.t(`gitPicker.${ this.type }.errors.noBranch`) : null;
|
|
349
349
|
},
|
|
350
|
+
|
|
351
|
+
/**
|
|
352
|
+
* Show the page where the commit is, if any
|
|
353
|
+
*/
|
|
354
|
+
onCommitsTableMounted() {
|
|
355
|
+
const commitId = this.$route.query?.commit;
|
|
356
|
+
|
|
357
|
+
if (commitId) {
|
|
358
|
+
const table = this.$refs.commitsTable;
|
|
359
|
+
const page = table.getPageByRow(commitId, ({ commitId }: commit) => commitId);
|
|
360
|
+
|
|
361
|
+
table.setPage(page);
|
|
362
|
+
}
|
|
363
|
+
}
|
|
350
364
|
},
|
|
351
365
|
});
|
|
352
366
|
</script>
|
|
@@ -413,6 +427,7 @@ export default Vue.extend<Data, any, any, any>({
|
|
|
413
427
|
class="commits-table mt-20"
|
|
414
428
|
>
|
|
415
429
|
<SortableTable
|
|
430
|
+
ref="commitsTable"
|
|
416
431
|
:rows="preparedCommits"
|
|
417
432
|
:headers="commitHeaders"
|
|
418
433
|
mode="view"
|
|
@@ -422,6 +437,7 @@ export default Vue.extend<Data, any, any, any>({
|
|
|
422
437
|
:table-actions="false"
|
|
423
438
|
:row-actions="false"
|
|
424
439
|
:rows-per-page="10"
|
|
440
|
+
@hook:mounted="onCommitsTableMounted"
|
|
425
441
|
>
|
|
426
442
|
<template #cell:index="{row}">
|
|
427
443
|
<RadioButton
|
|
@@ -226,10 +226,16 @@ export default {
|
|
|
226
226
|
|
|
227
227
|
return true;
|
|
228
228
|
}).map((x) => {
|
|
229
|
+
const {
|
|
230
|
+
dataPreview, subTypeDisplay, metadata, id
|
|
231
|
+
} = x;
|
|
232
|
+
|
|
233
|
+
const label = subTypeDisplay && dataPreview ? `${ metadata.name } (${ subTypeDisplay }: ${ dataPreview })` : `${ metadata.name } (${ subTypeDisplay })`;
|
|
234
|
+
|
|
229
235
|
return {
|
|
230
|
-
label
|
|
231
|
-
group:
|
|
232
|
-
value:
|
|
236
|
+
label,
|
|
237
|
+
group: metadata.namespace,
|
|
238
|
+
value: id,
|
|
233
239
|
};
|
|
234
240
|
});
|
|
235
241
|
|
|
@@ -471,6 +477,7 @@ export default {
|
|
|
471
477
|
<div :class="firstCol">
|
|
472
478
|
<LabeledSelect
|
|
473
479
|
v-model="selected"
|
|
480
|
+
data-testid="auth-secret-select"
|
|
474
481
|
:mode="mode"
|
|
475
482
|
:label-key="labelKey"
|
|
476
483
|
:loading="$fetchState.pending"
|
|
@@ -482,6 +489,7 @@ export default {
|
|
|
482
489
|
<div :class="moreCols">
|
|
483
490
|
<LabeledInput
|
|
484
491
|
v-model="publicKey"
|
|
492
|
+
data-testid="auth-secret-ssh-public-key"
|
|
485
493
|
:mode="mode"
|
|
486
494
|
type="multiline"
|
|
487
495
|
label-key="selectOrCreateAuthSecret.ssh.publicKey"
|
|
@@ -490,6 +498,7 @@ export default {
|
|
|
490
498
|
<div :class="moreCols">
|
|
491
499
|
<LabeledInput
|
|
492
500
|
v-model="privateKey"
|
|
501
|
+
data-testid="auth-secret-ssh-private-key"
|
|
493
502
|
:mode="mode"
|
|
494
503
|
type="multiline"
|
|
495
504
|
label-key="selectOrCreateAuthSecret.ssh.privateKey"
|
|
@@ -500,6 +509,7 @@ export default {
|
|
|
500
509
|
<div :class="moreCols">
|
|
501
510
|
<LabeledInput
|
|
502
511
|
v-model="publicKey"
|
|
512
|
+
data-testid="auth-secret-basic-public-key"
|
|
503
513
|
:mode="mode"
|
|
504
514
|
label-key="selectOrCreateAuthSecret.basic.username"
|
|
505
515
|
/>
|
|
@@ -507,6 +517,7 @@ export default {
|
|
|
507
517
|
<div :class="moreCols">
|
|
508
518
|
<LabeledInput
|
|
509
519
|
v-model="privateKey"
|
|
520
|
+
data-testid="auth-secret-basic-private-key"
|
|
510
521
|
:mode="mode"
|
|
511
522
|
type="password"
|
|
512
523
|
label-key="selectOrCreateAuthSecret.basic.password"
|
|
@@ -517,6 +528,7 @@ export default {
|
|
|
517
528
|
<div :class="moreCols">
|
|
518
529
|
<LabeledInput
|
|
519
530
|
v-model="publicKey"
|
|
531
|
+
data-testid="auth-secret-s3-public-key"
|
|
520
532
|
:mode="mode"
|
|
521
533
|
label-key="selectOrCreateAuthSecret.s3.accessKey"
|
|
522
534
|
/>
|
|
@@ -524,6 +536,7 @@ export default {
|
|
|
524
536
|
<div :class="moreCols">
|
|
525
537
|
<LabeledInput
|
|
526
538
|
v-model="privateKey"
|
|
539
|
+
data-testid="auth-secret-s3-private-key"
|
|
527
540
|
:mode="mode"
|
|
528
541
|
type="password"
|
|
529
542
|
label-key="selectOrCreateAuthSecret.s3.secretKey"
|