dashboard-shell-shell 3.0.5-test.2 → 3.0.5-test.21
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/icons/iconfont.css +4 -1
- package/assets/images/pl/dark/logo.png +0 -0
- package/assets/styles/all.scss +3 -1
- package/assets/styles/base/_variables.scss +5 -5
- package/assets/styles/global/_button.scss +8 -8
- package/assets/styles/global/_select.scss +1 -1
- package/assets/styles/global/_tooltip.scss +9 -5
- package/assets/styles/themes/_light.scss +3 -1
- package/assets/styles/vendor/vue-select.scss +2 -1
- package/assets/translations/zh-hans.yaml +140 -11
- package/components/ActionDropdown.vue +1 -1
- package/components/ButtonDropdown.vue +3 -1
- package/components/CodeMirror.vue +6 -4
- package/components/ContainerResourceLimit.vue +2 -2
- package/components/CopyToClipboard.vue +15 -0
- package/components/Drawer/Chrome.vue +2 -2
- package/components/Drawer/ResourceDetailDrawer/ConfigTab.vue +30 -27
- package/components/Drawer/ResourceDetailDrawer/YamlTab.vue +1 -1
- package/components/Drawer/ResourceDetailDrawer/index.vue +5 -4
- package/components/ExplorerMembers.vue +28 -4
- package/components/GlobalRoleBindings.vue +48 -112
- package/components/PodSecurityAdmission.vue +1 -1
- package/components/Resource/Detail/Metadata/IdentifyingInformation/index.vue +1 -3
- package/components/Resource/Detail/Metadata/KeyValue.vue +8 -4
- package/components/Resource/Detail/Metadata/index.vue +3 -1
- package/components/Resource/Detail/TitleBar/Title.vue +4 -3
- package/components/Resource/Detail/TitleBar/Top.vue +2 -0
- package/components/Resource/Detail/TitleBar/composables.ts +16 -1
- package/components/Resource/Detail/TitleBar/index.vue +113 -25
- package/components/ResourceDetail/Masthead/index.vue +1 -1
- package/components/ResourceDetail/Masthead/latest.vue +1 -1
- package/components/ResourceDetail/Masthead/legacy.vue +236 -165
- package/components/ResourceDetail/legacy.vue +44 -28
- package/components/ResourceList/Masthead.vue +11 -15
- package/components/SideNav.vue +1 -1
- package/components/SortableTable/index.vue +9 -4
- package/components/Tabbed/index.vue +6 -1
- package/components/auth/Principal.vue +42 -13
- package/components/auth/RoleDetailEdit.vue +11 -7
- package/components/breadcrumb/index.vue +124 -0
- package/components/form/ArrayList.vue +164 -147
- package/components/form/ArrayListGrouped.vue +3 -1
- package/components/form/ChangePassword.vue +1 -1
- package/components/form/Command.vue +4 -5
- package/components/form/Footer.vue +1 -0
- package/components/form/HealthCheck.vue +0 -2
- package/components/form/HookOption.vue +87 -58
- package/components/form/InputWithSelect.vue +8 -7
- package/components/form/KeyValue.vue +20 -2
- package/components/form/LabeledSelect.vue +6 -3
- package/components/form/Labels.vue +2 -2
- package/components/form/MatchExpressions.vue +3 -4
- package/components/form/Members/ClusterMembershipEditor.vue +1 -1
- package/components/form/Members/ClusterPermissionsEditor.vue +5 -5
- package/components/form/Members/MembershipEditor.vue +2 -2
- package/components/form/NameNsDescription.vue +1 -1
- package/components/form/Networking.vue +6 -9
- package/components/form/NodeAffinity.vue +29 -28
- package/components/form/PodAffinity.vue +23 -23
- package/components/form/Probe.vue +15 -11
- package/components/form/ResourceQuota/Namespace.vue +4 -4
- package/components/form/ResourceQuota/NamespaceRow.vue +11 -9
- package/components/form/ResourceQuota/Project.vue +4 -4
- package/components/form/ResourceQuota/ProjectRow.vue +36 -30
- package/components/form/ResourceSelector.vue +1 -1
- package/components/form/Security.vue +1 -3
- package/components/form/Select.vue +6 -1
- package/components/form/ServiceNameSelect.vue +2 -5
- package/components/form/ServicePorts.vue +149 -75
- package/components/form/Taints.vue +2 -1
- package/components/form/Tolerations.vue +12 -9
- package/components/form/ValueFromResource.vue +110 -96
- package/components/form/WorkloadPorts.vue +143 -123
- package/components/nav/Header.vue +3 -4
- package/components/nav/NamespaceFilter.vue +15 -21
- package/components/nav/TopLevelMenu.vue +99 -125
- package/components/nav/Type.vue +3 -3
- package/config/product/explorer.js +4 -1
- package/config/router/navigation-guards/index.js +52 -3
- package/detail/node.vue +28 -23
- package/dialog/AddCustomBadgeDialog.vue +17 -9
- package/edit/autoscaling.horizontalpodautoscaler/external-metric.vue +1 -1
- package/edit/autoscaling.horizontalpodautoscaler/hpa-scaling-rule.vue +9 -6
- package/edit/autoscaling.horizontalpodautoscaler/index.vue +3 -1
- package/edit/autoscaling.horizontalpodautoscaler/metric-identifier.vue +2 -2
- package/edit/autoscaling.horizontalpodautoscaler/metric-object-reference.vue +7 -5
- package/edit/autoscaling.horizontalpodautoscaler/metric-target.vue +5 -3
- package/edit/autoscaling.horizontalpodautoscaler/metrics-row.vue +2 -2
- package/edit/autoscaling.horizontalpodautoscaler/object-metric.vue +2 -2
- package/edit/autoscaling.horizontalpodautoscaler/pod-metric.vue +1 -1
- package/edit/autoscaling.horizontalpodautoscaler/resource-metric.vue +2 -2
- package/edit/networking.k8s.io.ingress/Certificate.vue +7 -5
- package/edit/networking.k8s.io.ingress/DefaultBackend.vue +2 -2
- package/edit/networking.k8s.io.ingress/Rule.vue +5 -11
- package/edit/networking.k8s.io.ingress/RulePath.vue +105 -96
- package/edit/networking.k8s.io.networkpolicy/PolicyRule.vue +3 -3
- package/edit/networking.k8s.io.networkpolicy/PolicyRulePort.vue +4 -2
- package/edit/networking.k8s.io.networkpolicy/PolicyRuleTarget.vue +12 -11
- package/edit/networking.k8s.io.networkpolicy/index.vue +1 -1
- package/edit/persistentvolume/index.vue +3 -1
- package/edit/persistentvolumeclaim.vue +2 -0
- package/edit/secret/index.vue +2 -2
- package/edit/service.vue +4 -1
- package/edit/storage.k8s.io.storageclass/index.vue +10 -8
- package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/aws-ebs.vue +34 -27
- package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/gce-pd.vue +15 -13
- package/edit/storage.k8s.io.storageclass/provisioners/kubernetes.io/vsphere-volume.vue +41 -39
- package/edit/workload/Job.vue +31 -34
- package/edit/workload/Upgrading.vue +5 -5
- package/edit/workload/index.vue +21 -17
- package/edit/workload/storage/Mount.vue +1 -0
- package/edit/workload/storage/awsElasticBlockStore.vue +9 -7
- package/edit/workload/storage/azureDisk.vue +14 -10
- package/edit/workload/storage/azureFile.vue +9 -7
- package/edit/workload/storage/csi/index.vue +6 -9
- package/edit/workload/storage/emptyDir.vue +7 -5
- package/edit/workload/storage/gcePersistentDisk.vue +9 -7
- package/edit/workload/storage/hostPath.vue +7 -5
- package/edit/workload/storage/nfs.vue +8 -6
- package/edit/workload/storage/persistentVolumeClaim/index.vue +12 -10
- package/edit/workload/storage/persistentVolumeClaim/persistentvolumeclaim.vue +20 -15
- package/edit/workload/storage/secret.vue +9 -6
- package/edit/workload/storage/vsphereVolume.vue +11 -7
- package/initialize/app-extended.js +7 -1
- package/package.json +1 -1
- package/pages/account/index.vue +95 -115
- package/pages/auth/setup.vue +35 -16
- package/pages/c/_cluster/auth/roles/index.vue +38 -5
- package/pages/c/_cluster/explorer/ConfigBadge.vue +1 -1
- package/pages/c/_cluster/explorer/tools/index.vue +6 -6
- package/pages/home.vue +3 -4
- package/pkg/tsconfig.json +9 -9
- package/pkg/vue.config.js +1 -1
- package/plugins/dashboard-store/resource-class.js +28 -27
- package/rancher-components/BadgeState/BadgeState.vue +33 -52
- package/rancher-components/Banner/Banner.vue +6 -3
- package/rancher-components/LabeledTooltip/LabeledTooltip.vue +31 -2
- package/rancher-components/RcDropdown/RcDropdownMenu.vue +8 -7
- package/scripts/publish-shell.sh +1 -1
- package/store/i18n.js +4 -0
- package/store/type-map.js +1 -1
- package/types/shell/index.d.ts +4 -30
- package/utils/error.js +3 -1
- package/utils/errorTranslate.json +247 -2
- package/vue.config.js +1 -1
package/pages/account/index.vue
CHANGED
|
@@ -3,8 +3,7 @@ import BackLink from '@shell/components/BackLink';
|
|
|
3
3
|
import { MANAGEMENT, NORMAN } from '@shell/config/types';
|
|
4
4
|
import { SETTING } from '@shell/config/settings';
|
|
5
5
|
import Loading from '@shell/components/Loading';
|
|
6
|
-
|
|
7
|
-
import Principal from './pri.vue';
|
|
6
|
+
import Principal from '@shell/components/auth/Principal';
|
|
8
7
|
import BackRoute from '@shell/mixins/back-link';
|
|
9
8
|
import { mapGetters } from 'vuex';
|
|
10
9
|
|
|
@@ -17,7 +16,7 @@ const API_ENDPOINT = '/v3';
|
|
|
17
16
|
|
|
18
17
|
export default {
|
|
19
18
|
components: {
|
|
20
|
-
CopyToClipboardText, BackLink, Banner,
|
|
19
|
+
CopyToClipboardText, BackLink, Banner, Loading, ResourceTable, Principal, TabTitle
|
|
21
20
|
},
|
|
22
21
|
mixins: [BackRoute],
|
|
23
22
|
async fetch() {
|
|
@@ -152,88 +151,39 @@ export default {
|
|
|
152
151
|
<template>
|
|
153
152
|
<Loading v-if="$fetchState.pending" />
|
|
154
153
|
<div v-else>
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
<
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
{{ t('accountAndKeys.title') }}
|
|
154
|
+
<div style="display: flex;align-items: center;margin-bottom: 20px;">
|
|
155
|
+
<!-- <BackLink class="backLinkCls" :link="backLink" /> -->
|
|
156
|
+
<div style="font-size: 26px;">
|
|
157
|
+
<TabTitle breadcrumb="vendor-only">
|
|
158
|
+
{{ t('accountAndKeys.title') }}
|
|
159
|
+
</TabTitle>
|
|
160
|
+
</div>
|
|
163
161
|
</div>
|
|
164
162
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
<div class="account
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
<template #edit>
|
|
177
|
-
<span
|
|
163
|
+
<div class="account_card mb-20">
|
|
164
|
+
<h5 v-t="'accountAndKeys.account.title'" />
|
|
165
|
+
<div class="account">
|
|
166
|
+
<Principal
|
|
167
|
+
:userLogoSize="79"
|
|
168
|
+
:value="principal.id"
|
|
169
|
+
:use-muted="false"
|
|
170
|
+
:show-labels="true"
|
|
171
|
+
/>
|
|
172
|
+
<div>
|
|
173
|
+
<button
|
|
178
174
|
v-if="canChangePassword"
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
role="button"
|
|
189
|
-
:aria-label="t('accountAndKeys.account.change')"
|
|
190
|
-
type="button"
|
|
191
|
-
class="btn role-primary"
|
|
192
|
-
data-testid="account_change_password"
|
|
193
|
-
@click="$refs.promptChangePassword.show(true)"
|
|
194
|
-
>
|
|
195
|
-
{{ t("accountAndKeys.account.change") }}
|
|
196
|
-
</button>
|
|
197
|
-
</div> -->
|
|
198
|
-
</div>
|
|
199
|
-
<PromptChangePassword ref="promptChangePassword" />
|
|
200
|
-
|
|
201
|
-
<!-- <hr role="none"> -->
|
|
202
|
-
<div
|
|
203
|
-
style=" border: 1px solid #d7d7d7;padding: 20px 20px 0px 20px;"
|
|
204
|
-
class="mt-20">
|
|
205
|
-
<div class="keys-header">
|
|
206
|
-
<div>
|
|
207
|
-
<!-- <h2 v-t="'accountAndKeys.apiKeys.title'" /> -->
|
|
208
|
-
<div
|
|
209
|
-
v-t="'accountAndKeys.apiKeys.title'"
|
|
210
|
-
class="account-title mb-20"
|
|
211
|
-
/>
|
|
212
|
-
<div class="api-url">
|
|
213
|
-
<span>{{ t("accountAndKeys.apiKeys.apiEndpoint") }}</span>
|
|
214
|
-
<CopyToClipboardText
|
|
215
|
-
:aria-label="t('accountAndKeys.apiKeys.copyApiEnpoint')"
|
|
216
|
-
:text="apiUrl"
|
|
217
|
-
/>
|
|
175
|
+
role="button"
|
|
176
|
+
:aria-label="t('accountAndKeys.account.change')"
|
|
177
|
+
type="button"
|
|
178
|
+
class="btn role-primary"
|
|
179
|
+
data-testid="account_change_password"
|
|
180
|
+
@click="showChangePasswordDialog"
|
|
181
|
+
>
|
|
182
|
+
{{ t("accountAndKeys.account.change") }}
|
|
183
|
+
</button>
|
|
218
184
|
</div>
|
|
219
185
|
</div>
|
|
220
|
-
|
|
221
|
-
<div
|
|
222
|
-
v-if="apiKeySchema"
|
|
223
|
-
class="keys mb-20"
|
|
224
|
-
>
|
|
225
|
-
<ResourceTable
|
|
226
|
-
:schema="apiKeySchema"
|
|
227
|
-
:rows="apiKeys"
|
|
228
|
-
:headers="apiKeyheaders"
|
|
229
|
-
key-field="id"
|
|
230
|
-
data-testid="api_keys_list"
|
|
231
|
-
:search="true"
|
|
232
|
-
:row-actions="true"
|
|
233
|
-
:table-actions="true"
|
|
234
|
-
>
|
|
235
|
-
<template #header-right>
|
|
236
|
-
<button
|
|
186
|
+
<!-- <button
|
|
237
187
|
v-if="apiKeySchema"
|
|
238
188
|
role="button"
|
|
239
189
|
:aria-label="t('accountAndKeys.apiKeys.add.label')"
|
|
@@ -242,32 +192,82 @@ export default {
|
|
|
242
192
|
@click="addKey"
|
|
243
193
|
>
|
|
244
194
|
{{ t('accountAndKeys.apiKeys.add.label') }}
|
|
245
|
-
</button>
|
|
246
|
-
</template>
|
|
247
|
-
</ResourceTable>
|
|
195
|
+
</button> -->
|
|
248
196
|
</div>
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
197
|
+
|
|
198
|
+
<div class="account_card mb-20">
|
|
199
|
+
<div class="keys-header">
|
|
200
|
+
<div>
|
|
201
|
+
<h5 v-t="'accountAndKeys.apiKeys.title'" />
|
|
202
|
+
<div class="api-url">
|
|
203
|
+
<span>{{ t("accountAndKeys.apiKeys.apiEndpoint") }}</span>
|
|
204
|
+
<CopyToClipboardText
|
|
205
|
+
:aria-label="t('accountAndKeys.apiKeys.copyApiEnpoint')"
|
|
206
|
+
:text="apiUrl"
|
|
207
|
+
/>
|
|
208
|
+
</div>
|
|
209
|
+
</div>
|
|
210
|
+
</div>
|
|
211
|
+
<div
|
|
212
|
+
v-if="apiKeySchema"
|
|
213
|
+
class="keys"
|
|
214
|
+
>
|
|
215
|
+
<ResourceTable
|
|
216
|
+
:schema="apiKeySchema"
|
|
217
|
+
:rows="apiKeys"
|
|
218
|
+
:headers="apiKeyheaders"
|
|
219
|
+
key-field="id"
|
|
220
|
+
data-testid="api_keys_list"
|
|
221
|
+
:search="true"
|
|
222
|
+
:row-actions="true"
|
|
223
|
+
:table-actions="true"
|
|
224
|
+
>
|
|
225
|
+
<template #header-right>
|
|
226
|
+
<button
|
|
227
|
+
style="margin-right: 10px;"
|
|
228
|
+
v-if="apiKeySchema"
|
|
229
|
+
role="button"
|
|
230
|
+
:aria-label="t('accountAndKeys.apiKeys.add.label')"
|
|
231
|
+
class="btn role-primary add"
|
|
232
|
+
data-testid="account_create_api_keys"
|
|
233
|
+
@click="addKey"
|
|
234
|
+
>
|
|
235
|
+
{{ t('accountAndKeys.apiKeys.add.label') }}
|
|
236
|
+
</button>
|
|
237
|
+
</template>
|
|
238
|
+
</ResourceTable>
|
|
239
|
+
</div>
|
|
240
|
+
<div v-else>
|
|
241
|
+
<Banner
|
|
242
|
+
color="warning"
|
|
243
|
+
:label="t('accountAndKeys.apiKeys.notAllowed')"
|
|
244
|
+
/>
|
|
245
|
+
</div>
|
|
254
246
|
</div>
|
|
255
247
|
</div>
|
|
256
|
-
</div>
|
|
257
248
|
</template>
|
|
258
249
|
|
|
259
250
|
<style lang='scss' scoped>
|
|
251
|
+
.account_card {
|
|
252
|
+
border: 1px solid #d7d7d7;
|
|
253
|
+
padding: 20px;
|
|
254
|
+
box-sizing: border-box;
|
|
255
|
+
}
|
|
256
|
+
:deep() .back-link {
|
|
257
|
+
font-size: 26px;
|
|
258
|
+
margin: 0 20px 0 0 !important;
|
|
259
|
+
}
|
|
260
260
|
hr {
|
|
261
261
|
margin: 20px 0;
|
|
262
262
|
}
|
|
263
263
|
|
|
264
264
|
.account {
|
|
265
|
-
|
|
266
|
-
justify-content: space-between
|
|
267
|
-
|
|
268
|
-
padding: 20px;
|
|
269
|
-
box-sizing: border-box;
|
|
265
|
+
display: flex;
|
|
266
|
+
justify-content: space-between
|
|
267
|
+
}
|
|
270
268
|
|
|
269
|
+
.principal .avatar {
|
|
270
|
+
width: 287px !important;
|
|
271
271
|
}
|
|
272
272
|
|
|
273
273
|
.keys-header {
|
|
@@ -280,37 +280,17 @@ export default {
|
|
|
280
280
|
.keys {
|
|
281
281
|
display: flex;
|
|
282
282
|
flex-direction: column;
|
|
283
|
-
margin-top: 20px;
|
|
284
283
|
.add {
|
|
285
284
|
align-self: flex-end;
|
|
286
|
-
margin-left: 10px
|
|
287
285
|
}
|
|
288
286
|
}
|
|
289
287
|
|
|
290
288
|
.api-url {
|
|
291
289
|
display: flex;
|
|
290
|
+
margin: 20px 0;
|
|
292
291
|
|
|
293
292
|
> span {
|
|
294
293
|
margin-right: 6px;
|
|
295
294
|
}
|
|
296
295
|
}
|
|
297
|
-
.api-key-title{
|
|
298
|
-
font-size: 26px;
|
|
299
|
-
/* line-height: 20px; */
|
|
300
|
-
font-weight: 400;
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
.edit-pass-txt{
|
|
304
|
-
cursor: pointer;
|
|
305
|
-
color: var(--primary);
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
.table-account{
|
|
309
|
-
border: 1px solid #d7d7d7;
|
|
310
|
-
}
|
|
311
|
-
.account-title{
|
|
312
|
-
font-size: 14px;
|
|
313
|
-
line-height: 19px;
|
|
314
|
-
margin-bottom: 16px;
|
|
315
|
-
}
|
|
316
296
|
</style>
|
package/pages/auth/setup.vue
CHANGED
|
@@ -21,6 +21,7 @@ import FormValidation from '@shell/mixins/form-validation';
|
|
|
21
21
|
import isUrl from 'is-url';
|
|
22
22
|
import { isLocalhost } from '@shell/utils/validators/setting';
|
|
23
23
|
import Loading from '@shell/components/Loading';
|
|
24
|
+
import { copyTextToClipboard } from '@shell/utils/clipboard';
|
|
24
25
|
|
|
25
26
|
const calcIsFirstLogin = (store) => {
|
|
26
27
|
const firstLoginSetting = store.getters['management/byId'](MANAGEMENT.SETTING, SETTING.FIRST_LOGIN);
|
|
@@ -259,6 +260,14 @@ export default {
|
|
|
259
260
|
this.$router.replace('/');
|
|
260
261
|
},
|
|
261
262
|
|
|
263
|
+
copyPassword(val) {
|
|
264
|
+
copyTextToClipboard(val).then(() => {
|
|
265
|
+
console.log('复制成功')
|
|
266
|
+
}).catch(() => {
|
|
267
|
+
console.log('复制失败')
|
|
268
|
+
});
|
|
269
|
+
},
|
|
270
|
+
|
|
262
271
|
onServerUrlChange(value) {
|
|
263
272
|
this.serverUrl = value.trim();
|
|
264
273
|
},
|
|
@@ -324,13 +333,14 @@ export default {
|
|
|
324
333
|
>
|
|
325
334
|
<div class="mb-20">
|
|
326
335
|
<RadioGroup
|
|
336
|
+
class="setupRadioGroupCls"
|
|
327
337
|
v-model:value="useRandom"
|
|
328
338
|
data-testid="setup-password-mode"
|
|
329
339
|
name="password-mode"
|
|
330
340
|
:options="passwordOptions"
|
|
331
341
|
/>
|
|
332
342
|
</div>
|
|
333
|
-
<div class="mb-20">
|
|
343
|
+
<div class="setup_radom-password mb-20">
|
|
334
344
|
<LabeledInput
|
|
335
345
|
v-if="useRandom"
|
|
336
346
|
ref="password"
|
|
@@ -347,13 +357,9 @@ export default {
|
|
|
347
357
|
>
|
|
348
358
|
<div
|
|
349
359
|
class="addon"
|
|
350
|
-
style="padding:
|
|
360
|
+
style="padding: 4px 0px 0px;"
|
|
351
361
|
>
|
|
352
|
-
<
|
|
353
|
-
:aria-label="t('setup.copyRandom')"
|
|
354
|
-
:text="password"
|
|
355
|
-
class="btn-sm"
|
|
356
|
-
/>
|
|
362
|
+
<a @click="copyPassword(password)" href="javascript:;">复制</a>
|
|
357
363
|
</div>
|
|
358
364
|
</template>
|
|
359
365
|
</LabeledInput>
|
|
@@ -367,15 +373,17 @@ export default {
|
|
|
367
373
|
:required="true"
|
|
368
374
|
/>
|
|
369
375
|
</div>
|
|
370
|
-
<
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
376
|
+
<div class="setup_radom-password">
|
|
377
|
+
<Password
|
|
378
|
+
v-show="!useRandom"
|
|
379
|
+
v-model:value.trim="confirm"
|
|
380
|
+
autocomplete="new-password"
|
|
381
|
+
data-testid="setup-password-confirm"
|
|
382
|
+
class="setup-password"
|
|
383
|
+
:label="t('setup.confirmPassword')"
|
|
384
|
+
:required="true"
|
|
385
|
+
/>
|
|
386
|
+
</div>
|
|
379
387
|
</template>
|
|
380
388
|
|
|
381
389
|
<template v-if="isFirstLogin">
|
|
@@ -467,6 +475,16 @@ export default {
|
|
|
467
475
|
</template>
|
|
468
476
|
|
|
469
477
|
<style lang="scss" scoped>
|
|
478
|
+
.setup_radom-password {
|
|
479
|
+
:deep(.label-input-all) LABEL {
|
|
480
|
+
color: #fff;
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
.setupRadioGroupCls {
|
|
484
|
+
:deep(.radio-label) {
|
|
485
|
+
color: #fff;
|
|
486
|
+
}
|
|
487
|
+
}
|
|
470
488
|
.principal {
|
|
471
489
|
display: block;
|
|
472
490
|
background: var(--box-bg);
|
|
@@ -538,6 +556,7 @@ export default {
|
|
|
538
556
|
}
|
|
539
557
|
|
|
540
558
|
.setup-title {
|
|
559
|
+
color: #fff;
|
|
541
560
|
:deep() code {
|
|
542
561
|
font-size: 12px;
|
|
543
562
|
padding: 0;
|
|
@@ -162,7 +162,7 @@ export default {
|
|
|
162
162
|
</h1>
|
|
163
163
|
<div style="margin: 20px 0;">支持管理员创建与管理不同角色,每个角色可预设特定权限集合,可简化用户权限分配流程,提升权限管理的灵活性与安全性。</div>
|
|
164
164
|
</div>
|
|
165
|
-
<div class="actions-container actions-container-box">
|
|
165
|
+
<!-- <div class="actions-container actions-container-box">
|
|
166
166
|
<div class="actions">
|
|
167
167
|
<router-link
|
|
168
168
|
v-if="canCreate"
|
|
@@ -172,7 +172,7 @@ export default {
|
|
|
172
172
|
{{ createLabel }}
|
|
173
173
|
</router-link>
|
|
174
174
|
</div>
|
|
175
|
-
</div>
|
|
175
|
+
</div> -->
|
|
176
176
|
</header>
|
|
177
177
|
<Tabbed>
|
|
178
178
|
<Tab
|
|
@@ -184,7 +184,18 @@ export default {
|
|
|
184
184
|
<ResourceTable
|
|
185
185
|
:schema="tabs[GLOBAL].schema"
|
|
186
186
|
:rows="globalResources"
|
|
187
|
-
|
|
187
|
+
>
|
|
188
|
+
<template #header-right>
|
|
189
|
+
<router-link
|
|
190
|
+
v-if="canCreate"
|
|
191
|
+
:to="createLocation"
|
|
192
|
+
style="margin-right: 10px;"
|
|
193
|
+
class="btn role-primary"
|
|
194
|
+
>
|
|
195
|
+
{{ createLabel }}
|
|
196
|
+
</router-link>
|
|
197
|
+
</template>
|
|
198
|
+
</ResourceTable>
|
|
188
199
|
</Tab>
|
|
189
200
|
|
|
190
201
|
<Tab
|
|
@@ -197,7 +208,18 @@ export default {
|
|
|
197
208
|
:schema="tabs[CLUSTER].schema"
|
|
198
209
|
:headers="tabs[CLUSTER].headers"
|
|
199
210
|
:rows="clusterResources"
|
|
200
|
-
|
|
211
|
+
>
|
|
212
|
+
<template #header-right>
|
|
213
|
+
<router-link
|
|
214
|
+
v-if="canCreate"
|
|
215
|
+
:to="createLocation"
|
|
216
|
+
style="margin-right: 10px;"
|
|
217
|
+
class="btn role-primary"
|
|
218
|
+
>
|
|
219
|
+
{{ createLabel }}
|
|
220
|
+
</router-link>
|
|
221
|
+
</template>
|
|
222
|
+
</ResourceTable>
|
|
201
223
|
</Tab>
|
|
202
224
|
|
|
203
225
|
<Tab
|
|
@@ -210,7 +232,18 @@ export default {
|
|
|
210
232
|
:schema="tabs[PROJECT].schema"
|
|
211
233
|
:headers="tabs[PROJECT].headers"
|
|
212
234
|
:rows="namespaceResources"
|
|
213
|
-
|
|
235
|
+
>
|
|
236
|
+
<template #header-right>
|
|
237
|
+
<router-link
|
|
238
|
+
v-if="canCreate"
|
|
239
|
+
:to="createLocation"
|
|
240
|
+
style="margin-right: 10px;"
|
|
241
|
+
class="btn role-primary"
|
|
242
|
+
>
|
|
243
|
+
{{ createLabel }}
|
|
244
|
+
</router-link>
|
|
245
|
+
</template>
|
|
246
|
+
</ResourceTable>
|
|
214
247
|
</Tab>
|
|
215
248
|
</Tabbed>
|
|
216
249
|
</div>
|
|
@@ -230,7 +230,7 @@ export default {
|
|
|
230
230
|
|
|
231
231
|
.name {
|
|
232
232
|
white-space: nowrap;
|
|
233
|
-
overflow: hidden;
|
|
233
|
+
// overflow: hidden;
|
|
234
234
|
text-overflow: ellipsis;
|
|
235
235
|
margin: 0;
|
|
236
236
|
}
|
|
@@ -249,7 +249,7 @@ export default {
|
|
|
249
249
|
.version {
|
|
250
250
|
color: var(--muted);
|
|
251
251
|
white-space: nowrap;
|
|
252
|
-
overflow: hidden;
|
|
252
|
+
// overflow: hidden;
|
|
253
253
|
text-overflow: ellipsis;
|
|
254
254
|
font-size: 0.9em;
|
|
255
255
|
margin-top: 4px;
|
|
@@ -262,10 +262,10 @@ export default {
|
|
|
262
262
|
.description-content {
|
|
263
263
|
display: -webkit-box;
|
|
264
264
|
-webkit-box-orient: vertical;
|
|
265
|
-
-webkit-line-clamp: 3;
|
|
266
|
-
line-clamp: 3;
|
|
267
|
-
overflow: hidden;
|
|
268
|
-
text-overflow: ellipsis;
|
|
265
|
+
// -webkit-line-clamp: 3;
|
|
266
|
+
// line-clamp: 3;
|
|
267
|
+
// overflow: hidden;
|
|
268
|
+
// text-overflow: ellipsis;
|
|
269
269
|
color: var(--text-muted);
|
|
270
270
|
}
|
|
271
271
|
|
package/pages/home.vue
CHANGED
|
@@ -486,7 +486,6 @@ export default defineComponent({
|
|
|
486
486
|
|
|
487
487
|
<!-- 页签标题组件,不显示子页面标题和面包屑 -->
|
|
488
488
|
<TabTitle
|
|
489
|
-
v-if="topLevelPermissionsVis"
|
|
490
489
|
:show-child="false"
|
|
491
490
|
:breadcrumb="false"
|
|
492
491
|
>
|
|
@@ -496,14 +495,14 @@ export default defineComponent({
|
|
|
496
495
|
</TabTitle>
|
|
497
496
|
|
|
498
497
|
<!-- 首页欢迎横幅 -->
|
|
499
|
-
<BannerGraphic
|
|
498
|
+
<!-- <BannerGraphic
|
|
500
499
|
v-if="topLevelPermissionsVis"
|
|
501
500
|
:small="true"
|
|
502
501
|
:title="t('landing.welcomeToRancher', {vendor})"
|
|
503
502
|
:pref="HIDE_HOME_PAGE_CARDS"
|
|
504
503
|
pref-key="welcomeBanner"
|
|
505
504
|
data-testid="home-banner-graphic"
|
|
506
|
-
/>
|
|
505
|
+
/> -->
|
|
507
506
|
<IndentedPanel class="mt-20 mb-20">
|
|
508
507
|
|
|
509
508
|
<!-- 主面板布局 -->
|
|
@@ -548,7 +547,7 @@ export default defineComponent({
|
|
|
548
547
|
v-if="canCreateCluster || !!provClusterSchema"
|
|
549
548
|
#header-right
|
|
550
549
|
>
|
|
551
|
-
<div
|
|
550
|
+
<div class="table-heading">
|
|
552
551
|
<router-link
|
|
553
552
|
v-if="!!provClusterSchema"
|
|
554
553
|
:to="manageLocation"
|
package/pkg/tsconfig.json
CHANGED
|
@@ -27,25 +27,25 @@
|
|
|
27
27
|
],
|
|
28
28
|
"paths": {
|
|
29
29
|
"@shell/core/*": [
|
|
30
|
-
"../../node_modules
|
|
30
|
+
"../../node_modules/dashboard-shell-shell/core/*"
|
|
31
31
|
],
|
|
32
32
|
"@shell/config/*": [
|
|
33
|
-
"../../node_modules
|
|
33
|
+
"../../node_modules/dashboard-shell-shell/config/*"
|
|
34
34
|
],
|
|
35
35
|
"@shell/store/*": [
|
|
36
|
-
"../../node_modules
|
|
36
|
+
"../../node_modules/dashboard-shell-shell/store/*"
|
|
37
37
|
],
|
|
38
38
|
"@shell/plugins/*": [
|
|
39
|
-
"../../node_modules
|
|
39
|
+
"../../node_modules/dashboard-shell-shell/plugins/*"
|
|
40
40
|
],
|
|
41
41
|
"@shell/utils/*": [
|
|
42
|
-
"../../node_modules
|
|
42
|
+
"../../node_modules/dashboard-shell-shell/utils/*"
|
|
43
43
|
],
|
|
44
44
|
"@shell/models/*": [
|
|
45
|
-
"../../node_modules
|
|
45
|
+
"../../node_modules/dashboard-shell-shell/models/*"
|
|
46
46
|
],
|
|
47
47
|
"@shell/mixins/*": [
|
|
48
|
-
"../../node_modules
|
|
48
|
+
"../../node_modules/dashboard-shell-shell/mixins/*"
|
|
49
49
|
],
|
|
50
50
|
"@pkg/*": [
|
|
51
51
|
"./*"
|
|
@@ -56,8 +56,8 @@
|
|
|
56
56
|
"**/*.ts",
|
|
57
57
|
"**/*.tsx",
|
|
58
58
|
"**/*.vue",
|
|
59
|
-
"../../node_modules
|
|
60
|
-
"../../node_modules
|
|
59
|
+
"../../node_modules/dashboard-shell-shell/types/*.d.ts",
|
|
60
|
+
"../../node_modules/dashboard-shell-shell/core/types.ts"
|
|
61
61
|
],
|
|
62
62
|
"exclude": [
|
|
63
63
|
"node_modules"
|
package/pkg/vue.config.js
CHANGED
|
@@ -117,7 +117,7 @@ module.exports = function(dir) {
|
|
|
117
117
|
if (p.use) {
|
|
118
118
|
p.use.forEach((u) => {
|
|
119
119
|
if (u.loader.includes('babel-loader')) {
|
|
120
|
-
p.exclude = /node_modules\/(
|
|
120
|
+
p.exclude = /node_modules\/(?!dashboard-shell-shell\/).*/;
|
|
121
121
|
}
|
|
122
122
|
});
|
|
123
123
|
}
|
|
@@ -913,42 +913,42 @@ export default class Resource {
|
|
|
913
913
|
{
|
|
914
914
|
action: this.canUpdate ? 'goToEdit' : 'goToViewConfig',
|
|
915
915
|
label: this.t(this.canUpdate ? 'action.edit' : 'action.view'),
|
|
916
|
-
icon: 'icon icon-edit',
|
|
916
|
+
// icon: 'icon icon-edit',
|
|
917
917
|
enabled: this.canCustomEdit,
|
|
918
918
|
},
|
|
919
|
-
{
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
},
|
|
919
|
+
// {
|
|
920
|
+
// action: this.canEditYaml ? 'goToEditYaml' : 'goToViewYaml',
|
|
921
|
+
// label: this.t(this.canEditYaml ? 'action.editYaml' : 'action.viewYaml'),
|
|
922
|
+
// icon: 'icon icon-file',
|
|
923
|
+
// enabled: this.canYaml,
|
|
924
|
+
// },
|
|
925
925
|
{
|
|
926
926
|
action: (this.canCustomEdit ? 'goToClone' : 'cloneYaml'),
|
|
927
927
|
label: this.t('action.clone'),
|
|
928
|
-
icon: 'icon icon-copy',
|
|
929
|
-
enabled: this.canClone && this.canCreate && (this.canCustomEdit || this.canYaml),
|
|
930
|
-
},
|
|
931
|
-
{ divider: true },
|
|
932
|
-
{
|
|
933
|
-
action: 'download',
|
|
934
|
-
label: this.t('action.download'),
|
|
935
|
-
icon: 'icon icon-download',
|
|
936
|
-
bulkable: true,
|
|
937
|
-
bulkAction: 'downloadBulk',
|
|
938
|
-
enabled: this.canYaml,
|
|
939
|
-
weight: -9,
|
|
940
|
-
},
|
|
941
|
-
{
|
|
942
|
-
action: 'viewInApi',
|
|
943
|
-
label: this.t('action.viewInApi'),
|
|
944
|
-
icon: 'icon icon-external-link',
|
|
945
|
-
enabled: this.canViewInApi,
|
|
928
|
+
// icon: 'icon icon-copy',
|
|
929
|
+
enabled: this.canClone && this.canCreate && (this.canCustomEdit || this.canYaml)&& this.schema.id!=='event',
|
|
946
930
|
},
|
|
931
|
+
// { divider: true },
|
|
932
|
+
// {
|
|
933
|
+
// action: 'download',
|
|
934
|
+
// label: this.t('action.download'),
|
|
935
|
+
// icon: 'icon icon-download',
|
|
936
|
+
// bulkable: true,
|
|
937
|
+
// bulkAction: 'downloadBulk',
|
|
938
|
+
// enabled: this.canYaml,
|
|
939
|
+
// weight: -9,
|
|
940
|
+
// },
|
|
941
|
+
// {
|
|
942
|
+
// action: 'viewInApi',
|
|
943
|
+
// label: this.t('action.viewInApi'),
|
|
944
|
+
// icon: 'icon icon-external-link',
|
|
945
|
+
// enabled: this.canViewInApi,
|
|
946
|
+
// },
|
|
947
947
|
{
|
|
948
948
|
action: 'promptRemove',
|
|
949
949
|
altAction: 'remove',
|
|
950
950
|
label: this.t('action.remove'),
|
|
951
|
-
icon: 'icon icon-trash',
|
|
951
|
+
// icon: 'icon icon-trash',
|
|
952
952
|
bulkable: true,
|
|
953
953
|
enabled: this.canDelete,
|
|
954
954
|
bulkAction: 'promptRemove',
|
|
@@ -1322,7 +1322,8 @@ export default class Resource {
|
|
|
1322
1322
|
}
|
|
1323
1323
|
|
|
1324
1324
|
get detailLocation() {
|
|
1325
|
-
|
|
1325
|
+
let location = this._detailLocation;
|
|
1326
|
+
return location;
|
|
1326
1327
|
}
|
|
1327
1328
|
|
|
1328
1329
|
goToDetail() {
|