dashboard-shell-shell 1.0.1000000117 → 1.0.1000000118
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/styles/base/_functions.scss +0 -0
- package/assets/styles/base/_mixins.scss +1 -1
- package/assets/styles/global/_button.scss +10 -17
- package/assets/styles/global/_form.scss +2 -2
- package/assets/styles/global/_labeled-input.scss +2 -6
- package/assets/styles/global/_select.scss +7 -6
- package/assets/styles/global/_table.scss +2 -3
- package/assets/styles/global/_tooltip.scss +1 -8
- package/assets/styles/themes/_dark.scss +0 -2
- package/assets/styles/themes/_light.scss +2 -5
- package/assets/styles/vendor/vue-select.scss +1 -2
- package/assets/translations/en-us.yaml +3 -1
- package/assets/translations/zh-hans.yaml +28 -51
- package/components/ActionDropdown.vue +0 -1
- package/components/ActionMenuShell.vue +3 -6
- package/components/BrandImage.vue +0 -22
- package/components/ClusterIconMenu.vue +1 -1
- package/components/CodeMirror.vue +0 -1
- package/components/CruResource.vue +1 -1
- package/components/CruResourceFooter.vue +1 -1
- package/components/ExplorerProjectsNamespaces.vue +24 -4
- package/components/GlobalRoleBindings.vue +48 -112
- package/components/IndentedPanel.vue +10 -4
- package/components/PromptRemove.vue +3 -3
- package/components/ResourceDetail/Masthead.vue +242 -190
- package/components/ResourceDetail/index.vue +5 -20
- package/components/ResourceList/Masthead.vue +84 -146
- package/components/ResourceList/ResourceLoadingIndicator.vue +2 -5
- package/components/ResourceTable.vue +1 -76
- package/components/SideNav.vue +29 -66
- package/components/SortableTable/THead.vue +0 -6
- package/components/SortableTable/index.vue +388 -481
- package/components/Tabbed/index.vue +5 -4
- package/components/auth/Principal.vue +2 -3
- package/components/auth/RoleDetailEdit.vue +5 -58
- package/components/auth/SelectPrincipal.vue +0 -1
- package/components/form/BannerSettings.vue +16 -18
- package/components/form/ChangePassword.vue +4 -4
- package/components/form/ColorInput.vue +8 -32
- package/components/form/Footer.vue +1 -1
- package/components/form/InputWithSelect.vue +0 -2
- package/components/form/KeyValue.vue +7 -31
- package/components/form/LabeledSelect.vue +178 -178
- package/components/form/Members/ClusterPermissionsEditor.vue +2 -1
- package/components/form/Members/MembershipEditor.vue +1 -1
- package/components/form/NameNsDescription.vue +11 -24
- package/components/form/Password.vue +2 -6
- package/components/form/ResourceQuota/Namespace.vue +1 -1
- package/components/form/ResourceQuota/NamespaceRow.vue +10 -13
- package/components/form/ResourceQuota/ProjectRow.vue +1 -0
- package/components/form/Select.vue +2 -2
- package/components/nav/Favorite.vue +1 -5
- package/components/nav/Group.vue +23 -69
- package/components/nav/Header.vue +17 -82
- package/components/nav/HeaderPageActionMenu.vue +0 -1
- package/components/nav/NamespaceFilter.vue +3 -0
- package/components/nav/TopLevelMenu.vue +119 -182
- package/components/nav/Type.vue +11 -48
- package/components/rancherResourceDetail/Masthead.vue +769 -0
- package/components/rancherResourceDetail/__tests__/Masthead.test.ts +65 -0
- package/components/rancherResourceDetail/index.vue +591 -0
- package/components/rancherResourceList/Masthead.vue +375 -0
- package/components/rancherResourceList/ResourceLoadingIndicator.vue +140 -0
- package/components/rancherResourceList/index.vue +307 -0
- package/components/rancherResourceList/resource-list.config.js +7 -0
- package/components/rancherResourceTable.vue +783 -0
- package/components/rancherSortableTable/THead.vue +561 -0
- package/components/rancherSortableTable/actions.js +153 -0
- package/components/rancherSortableTable/advanced-filtering.js +272 -0
- package/components/rancherSortableTable/debug.js +117 -0
- package/components/rancherSortableTable/filtering.js +290 -0
- package/components/rancherSortableTable/grouping.js +48 -0
- package/components/rancherSortableTable/index.vue +2712 -0
- package/components/rancherSortableTable/paging.js +155 -0
- package/components/rancherSortableTable/selection.js +629 -0
- package/components/rancherSortableTable/sortable-config.ts +4 -0
- package/components/rancherSortableTable/sorting.js +129 -0
- package/composables/useClickOutside.ts +1 -1
- package/config/product/auth.js +7 -16
- package/config/product/explorer.js +1 -1
- package/config/product/settings.js +8 -17
- package/config/settings.ts +0 -28
- package/edit/management.cattle.io.user.vue +4 -17
- package/edit/networking.k8s.io.ingress/RulePath.vue +1 -1
- package/edit/token.vue +1 -1
- package/list/harvesterhci.io.management.cluster.vue +0 -17
- package/list/management.cattle.io.setting.vue +13 -22
- package/list/management.cattle.io.user.vue +14 -25
- package/list/provisioning.cattle.io.cluster.vue +7 -6
- package/mixins/brand.js +0 -17
- package/package.json +1 -1
- package/pages/auth/login.vue +29 -84
- package/pages/c/_cluster/auth/roles/index.vue +14 -61
- package/pages/c/_cluster/settings/banners.vue +101 -174
- package/pages/c/_cluster/settings/brand.vue +301 -348
- package/pages/c/_cluster/settings/performance.vue +38 -61
- package/pages/home.vue +21 -70
- package/pages/prefs.vue +23 -25
- package/pkg/tsconfig.json +9 -9
- package/pkg/vue.config.js +1 -1
- package/promptRemove/mixin/roleDeletionCheck.js +2 -2
- package/scripts/clean +0 -0
- package/scripts/extension/bundle +0 -0
- package/scripts/extension/helm/scripts/package +0 -0
- package/scripts/extension/helm/scripts/patch +0 -0
- package/scripts/extension/helm/scripts/version +0 -0
- package/scripts/extension/helmpatch +0 -0
- package/scripts/extension/parse-tag-name +0 -0
- package/scripts/extension/publish +0 -0
- package/scripts/publish-shell.sh +60 -86
- package/scripts/serve-pkgs +0 -0
- package/scripts/sync-shell-deps +0 -0
- package/scripts/typegen.sh +28 -44
- package/store/i18n.js +5 -5
- package/store/prefs.js +5 -17
- package/store/type-map.js +1 -2
- package/types/cloud-shell/index.d.ts +11014 -0
- package/types/shell/index.d.ts +1 -1
- package/utils/error.js +0 -4
- package/utils/router.js +3 -3
- package/vue.config.js +6 -1
- package/assets/images/action.svg +0 -6
- package/assets/images/pl/logo.png +0 -0
- /package/components/{ResourceList → rancherResourceList}/Masthead-btn.vue +0 -0
|
@@ -290,7 +290,7 @@ export default {
|
|
|
290
290
|
</script>
|
|
291
291
|
|
|
292
292
|
<template>
|
|
293
|
-
|
|
293
|
+
<div style="display: flex;">
|
|
294
294
|
<div
|
|
295
295
|
:class="{ 'labeled-container': true, raised, empty, [mode]: true, 'is-lable': isLabel }"
|
|
296
296
|
:style="{ border: 'none', width: selectWidth===''?'160px':selectWidth,lineHeight: '32px' }"
|
|
@@ -309,196 +309,196 @@ export default {
|
|
|
309
309
|
</label>
|
|
310
310
|
</div>
|
|
311
311
|
<!-- label -->
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
312
|
+
<div
|
|
313
|
+
ref="select"
|
|
314
|
+
class="labeled-select"
|
|
315
|
+
:class="[
|
|
316
|
+
$attrs.class,
|
|
317
|
+
{
|
|
318
|
+
disabled: isView || disabled,
|
|
319
|
+
focused,
|
|
320
|
+
[mode]: true,
|
|
321
|
+
[status]: status,
|
|
322
|
+
taggable: $attrs.taggable,
|
|
323
|
+
taggable: $attrs.multiple,
|
|
324
|
+
hoverable: hoverTooltip,
|
|
325
|
+
'compact-input': isCompact,
|
|
326
|
+
'no-label': !hasLabel
|
|
327
|
+
}
|
|
328
|
+
]"
|
|
329
|
+
:tabindex="isView || disabled ? -1 : 0"
|
|
330
|
+
role="listbox"
|
|
331
|
+
@click="focusSearch"
|
|
332
|
+
@keydown.enter="focusSearch"
|
|
333
|
+
@keydown.down.prevent="focusSearch"
|
|
334
|
+
@keydown.space.prevent="focusSearch"
|
|
335
|
+
>
|
|
336
|
+
<!-- <div
|
|
337
|
+
:class="{ 'labeled-container': true, raised, empty, [mode]: true }"
|
|
338
|
+
:style="{ border: 'none' }"
|
|
335
339
|
>
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
:
|
|
340
|
+
<label
|
|
341
|
+
v-if="hasLabel"
|
|
342
|
+
:id="`labeled-select-uid-${uid}`"
|
|
339
343
|
>
|
|
340
|
-
<
|
|
341
|
-
v-if="
|
|
342
|
-
:
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
</div>
|
|
395
|
-
</template>
|
|
396
|
-
<template v-else-if="option.kind === 'group'">
|
|
397
|
-
<div class="vs__option-kind-group">
|
|
398
|
-
<i
|
|
399
|
-
v-if="option.icon"
|
|
400
|
-
class="icon"
|
|
401
|
-
:class="{ [option.icon]: true}"
|
|
402
|
-
/>
|
|
403
|
-
<b>{{ getOptionLabel(option) }}</b>
|
|
404
|
-
<div v-if="option.badge">
|
|
405
|
-
{{ option.badge }}
|
|
406
|
-
</div>
|
|
407
|
-
</div>
|
|
408
|
-
</template>
|
|
409
|
-
<!-- <template v-else-if="option.kind === 'divider'">
|
|
410
|
-
<hr role="none">
|
|
411
|
-
</template> -->
|
|
412
|
-
<template v-else-if="option.kind === 'highlighted'">
|
|
413
|
-
<div class="option-kind-highlighted">
|
|
414
|
-
{{ option.label }}
|
|
415
|
-
</div>
|
|
416
|
-
</template>
|
|
417
|
-
<div
|
|
418
|
-
v-else
|
|
419
|
-
class="vs__option-kind"
|
|
420
|
-
:class="{ 'has-icon' : hasGroupIcon}"
|
|
421
|
-
@mousedown="(e) => onClickOption(option, e)"
|
|
422
|
-
>
|
|
423
|
-
{{ getOptionLabel(option) }}
|
|
344
|
+
<t
|
|
345
|
+
v-if="labelKey"
|
|
346
|
+
:k="labelKey"
|
|
347
|
+
/>
|
|
348
|
+
<template v-else-if="label">{{ label }}</template>
|
|
349
|
+
|
|
350
|
+
<span
|
|
351
|
+
v-if="requiredField"
|
|
352
|
+
class="required"
|
|
353
|
+
>*</span>
|
|
354
|
+
</label>
|
|
355
|
+
</div> -->
|
|
356
|
+
<v-select
|
|
357
|
+
ref="select-input"
|
|
358
|
+
:aria-labelledby="hasLabel ? `labeled-select-uid-${uid}` : ''"
|
|
359
|
+
v-bind="filteredAttrs"
|
|
360
|
+
class="inline"
|
|
361
|
+
:append-to-body="appendToBody"
|
|
362
|
+
:calculate-position="positionDropdown"
|
|
363
|
+
:class="{ 'no-label': !(label || '').length}"
|
|
364
|
+
:clearable="clearable"
|
|
365
|
+
:disabled="isView || disabled || loading"
|
|
366
|
+
:get-option-key="getOptionKey"
|
|
367
|
+
:get-option-label="(opt) => getOptionLabel(opt)"
|
|
368
|
+
:label="optionLabel"
|
|
369
|
+
:options="_options"
|
|
370
|
+
:map-keydown="mappedKeys"
|
|
371
|
+
:placeholder="placeholder"
|
|
372
|
+
:reduce="(x) => reduce(x)"
|
|
373
|
+
:filterable="isFilterable"
|
|
374
|
+
:searchable="isSearchable"
|
|
375
|
+
:selectable="selectable"
|
|
376
|
+
:modelValue="value != null && !loading ? value : ''"
|
|
377
|
+
:dropdown-should-open="dropdownShouldOpen"
|
|
378
|
+
:tabindex="-1"
|
|
379
|
+
role="listitem"
|
|
380
|
+
@update:modelValue="$emit('selecting', $event); $emit('update:value', $event)"
|
|
381
|
+
@search:blur="onBlur"
|
|
382
|
+
@search:focus="onFocus"
|
|
383
|
+
@search="onSearch"
|
|
384
|
+
@open="onOpen"
|
|
385
|
+
@close="onClose"
|
|
386
|
+
@option:selecting="$emit('selecting', $event)"
|
|
387
|
+
@option:deselecting="$emit('deselecting', $event)"
|
|
388
|
+
>
|
|
389
|
+
|
|
390
|
+
<template #option="option">
|
|
391
|
+
<template v-if="showTagPrompts">
|
|
392
|
+
<div class="only-user-opts">
|
|
393
|
+
{{ t('labeledSelect.pressEnter', {input:getOptionLabel(option.label)}) }}
|
|
394
|
+
</div>
|
|
395
|
+
</template>
|
|
396
|
+
<template v-else-if="option.kind === 'group'">
|
|
397
|
+
<div class="vs__option-kind-group">
|
|
424
398
|
<i
|
|
425
|
-
v-if="option.
|
|
426
|
-
class="icon
|
|
427
|
-
|
|
399
|
+
v-if="option.icon"
|
|
400
|
+
class="icon"
|
|
401
|
+
:class="{ [option.icon]: true}"
|
|
428
402
|
/>
|
|
403
|
+
<b>{{ getOptionLabel(option) }}</b>
|
|
404
|
+
<div v-if="option.badge">
|
|
405
|
+
{{ option.badge }}
|
|
406
|
+
</div>
|
|
429
407
|
</div>
|
|
430
408
|
</template>
|
|
431
|
-
<!--
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
409
|
+
<!-- <template v-else-if="option.kind === 'divider'">
|
|
410
|
+
<hr role="none">
|
|
411
|
+
</template> -->
|
|
412
|
+
<template v-else-if="option.kind === 'highlighted'">
|
|
413
|
+
<div class="option-kind-highlighted">
|
|
414
|
+
{{ option.label }}
|
|
415
|
+
</div>
|
|
416
|
+
</template>
|
|
417
|
+
<div
|
|
418
|
+
v-else
|
|
419
|
+
class="vs__option-kind"
|
|
420
|
+
:class="{ 'has-icon' : hasGroupIcon}"
|
|
421
|
+
@mousedown="(e) => onClickOption(option, e)"
|
|
436
422
|
>
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
v-
|
|
423
|
+
{{ getOptionLabel(option) }}
|
|
424
|
+
<i
|
|
425
|
+
v-if="option.error"
|
|
426
|
+
class="icon icon-warning pull-right"
|
|
427
|
+
style="font-size: 20px;"
|
|
440
428
|
/>
|
|
441
|
-
</
|
|
429
|
+
</div>
|
|
430
|
+
</template>
|
|
431
|
+
<!-- Pass down templates provided by the caller -->
|
|
432
|
+
<template
|
|
433
|
+
v-for="(_, slot) of $slots"
|
|
434
|
+
:key="slot"
|
|
435
|
+
#[slot]="scope"
|
|
436
|
+
>
|
|
437
|
+
<slot
|
|
438
|
+
:name="slot"
|
|
439
|
+
v-bind="scope"
|
|
440
|
+
/>
|
|
441
|
+
</template>
|
|
442
442
|
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
</div>
|
|
443
|
+
<template #list-footer>
|
|
444
|
+
<div
|
|
445
|
+
v-if="canPaginate && totalResults && pages > 1"
|
|
446
|
+
class="pagination-slot"
|
|
447
|
+
>
|
|
448
|
+
<div class="load-more">
|
|
449
|
+
<i
|
|
450
|
+
v-if="paginating"
|
|
451
|
+
class="icon icon-spinner icon-spin"
|
|
452
|
+
/>
|
|
453
|
+
<div v-else>
|
|
454
|
+
<a
|
|
455
|
+
v-if="canLoadMore"
|
|
456
|
+
@click="loadMore"
|
|
457
|
+
> {{ t('labelSelect.pagination.more') }}</a>
|
|
459
458
|
</div>
|
|
459
|
+
</div>
|
|
460
460
|
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
</div>
|
|
461
|
+
<div class="count">
|
|
462
|
+
{{ optionCounts }}
|
|
464
463
|
</div>
|
|
465
|
-
</
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
</
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
<template v-else-if="search">
|
|
478
|
-
{{ t('labelSelect.noOptions.noMatch') }}
|
|
479
|
-
</template>
|
|
480
|
-
<template v-else>
|
|
481
|
-
{{ t(noOptionsLabelKey) }}
|
|
482
|
-
</template>
|
|
464
|
+
</div>
|
|
465
|
+
</template>
|
|
466
|
+
<template #no-options="{ search }">
|
|
467
|
+
<div class="no-options-slot">
|
|
468
|
+
<template v-if="showTagPrompts">
|
|
469
|
+
<span v-if="!searching">{{ t('labeledSelect.startTyping') }}</span>
|
|
470
|
+
</template>
|
|
471
|
+
<div
|
|
472
|
+
v-else-if="paginating"
|
|
473
|
+
class="paginating"
|
|
474
|
+
>
|
|
475
|
+
<i class="icon icon-spinner icon-spin" />
|
|
483
476
|
</div>
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
477
|
+
<template v-else-if="search">
|
|
478
|
+
{{ t('labelSelect.noOptions.noMatch') }}
|
|
479
|
+
</template>
|
|
480
|
+
<template v-else>
|
|
481
|
+
{{ t(noOptionsLabelKey) }}
|
|
482
|
+
</template>
|
|
483
|
+
</div>
|
|
484
|
+
</template>
|
|
485
|
+
</v-select>
|
|
486
|
+
<i
|
|
487
|
+
v-if="loading"
|
|
488
|
+
class="icon icon-spinner icon-spin icon-lg"
|
|
489
|
+
/>
|
|
490
|
+
<LabeledTooltip
|
|
491
|
+
v-if="tooltip && !focused"
|
|
492
|
+
:hover="hoverTooltip"
|
|
493
|
+
:value="tooltip"
|
|
494
|
+
:status="status"
|
|
495
|
+
/>
|
|
496
|
+
<LabeledTooltip
|
|
497
|
+
v-if="!!validationMessage"
|
|
498
|
+
:hover="hoverTooltip"
|
|
499
|
+
:value="validationMessage"
|
|
500
|
+
/>
|
|
501
|
+
</div>
|
|
502
502
|
</div>
|
|
503
503
|
</template>
|
|
504
504
|
|
|
@@ -232,10 +232,11 @@ export default {
|
|
|
232
232
|
v-else
|
|
233
233
|
class="cluster-permissions-editor"
|
|
234
234
|
>
|
|
235
|
-
<div class="row mt-10
|
|
235
|
+
<div class="row mt-10">
|
|
236
236
|
<div class="col span-12">
|
|
237
237
|
<SelectPrincipal
|
|
238
238
|
v-focus
|
|
239
|
+
class="mb-20"
|
|
239
240
|
:mode="mode"
|
|
240
241
|
:retain-selection="true"
|
|
241
242
|
data-testid="cluster-member-select"
|
|
@@ -170,7 +170,7 @@ export default {
|
|
|
170
170
|
>
|
|
171
171
|
<template #column-headers>
|
|
172
172
|
<div class="box mb-0">
|
|
173
|
-
<div class="column-headers row"
|
|
173
|
+
<div class="column-headers row">
|
|
174
174
|
<div class="col span-6">
|
|
175
175
|
<label class="text-label">{{ t('membershipEditor.user') }}</label>
|
|
176
176
|
</div>
|
|
@@ -356,7 +356,7 @@ export default {
|
|
|
356
356
|
|
|
357
357
|
colSpan() {
|
|
358
358
|
if (!this.horizontal) {
|
|
359
|
-
return `span-
|
|
359
|
+
return `span-6`;
|
|
360
360
|
}
|
|
361
361
|
// Name and namespace take up two columns.
|
|
362
362
|
// let cols = (this.nameNsHidden ? 0 : 2) + (this.descriptionHidden ? 0 : 1) + this.extraColumns.length;
|
|
@@ -430,17 +430,12 @@ export default {
|
|
|
430
430
|
|
|
431
431
|
<template>
|
|
432
432
|
<div class="row">
|
|
433
|
-
|
|
434
|
-
<!-- 命名空间创建输入框 -->
|
|
435
433
|
<div
|
|
436
434
|
v-if="namespaced && !nameNsHidden && createNamespace"
|
|
437
435
|
:data-testid="componentTestid + '-namespace-create'"
|
|
438
|
-
class="col span-
|
|
439
|
-
:class=" isDialog? 'namespace-item-row mb-20': 'col span-
|
|
440
|
-
style="display: flex;"
|
|
436
|
+
class="col span-6"
|
|
437
|
+
:class=" isDialog? 'namespace-item-row mb-20': 'col span-6'"
|
|
441
438
|
>
|
|
442
|
-
|
|
443
|
-
<!-- 输入命名空间名称 -->
|
|
444
439
|
<LabeledInput
|
|
445
440
|
ref="namespaceInput"
|
|
446
441
|
v-model:value="namespace"
|
|
@@ -452,8 +447,6 @@ export default {
|
|
|
452
447
|
:required="nameRequired"
|
|
453
448
|
:rules="rules.namespace"
|
|
454
449
|
/>
|
|
455
|
-
|
|
456
|
-
<!-- 取消创建命名空间按钮 -->
|
|
457
450
|
<button
|
|
458
451
|
aria="Cancel create"
|
|
459
452
|
@click="cancelCreateNamespace"
|
|
@@ -464,12 +457,10 @@ export default {
|
|
|
464
457
|
/>
|
|
465
458
|
</button>
|
|
466
459
|
</div>
|
|
467
|
-
|
|
468
|
-
<!-- 命名空间选择下拉框 -->
|
|
469
460
|
<div
|
|
470
461
|
v-if="namespaced && !nameNsHidden && !createNamespace"
|
|
471
462
|
:data-testid="componentTestid + '-namespace'"
|
|
472
|
-
:class=" isDialog? 'namespace-item-row mb-20': 'col span-
|
|
463
|
+
:class=" isDialog? 'namespace-item-row mb-20': 'col span-6'"
|
|
473
464
|
>
|
|
474
465
|
<LabeledSelect
|
|
475
466
|
v-show="!createNamespace"
|
|
@@ -488,7 +479,6 @@ export default {
|
|
|
488
479
|
/>
|
|
489
480
|
</div>
|
|
490
481
|
|
|
491
|
-
<!-- 名称输入框 -->
|
|
492
482
|
<div
|
|
493
483
|
v-if="!nameNsHidden"
|
|
494
484
|
:data-testid="componentTestid + '-name'"
|
|
@@ -509,15 +499,12 @@ export default {
|
|
|
509
499
|
/>
|
|
510
500
|
</div>
|
|
511
501
|
|
|
512
|
-
<!-- 自定义插槽,可插入额外内容 -->
|
|
513
502
|
<slot name="customize" />
|
|
514
503
|
<!-- <div
|
|
515
504
|
v-show="!descriptionHidden"
|
|
516
505
|
:data-testid="componentTestid + '-description'"
|
|
517
|
-
:class="['col', extraColumns.length > 0 ? 'span-3' : 'span-
|
|
506
|
+
:class="['col', extraColumns.length > 0 ? 'span-3' : 'span-6']"
|
|
518
507
|
> -->
|
|
519
|
-
|
|
520
|
-
<!-- 额外的动态列 -->
|
|
521
508
|
<div
|
|
522
509
|
v-for="(slot, i) in extraColumns"
|
|
523
510
|
:key="i"
|
|
@@ -525,8 +512,6 @@ export default {
|
|
|
525
512
|
>
|
|
526
513
|
<slot :name="slot" />
|
|
527
514
|
</div>
|
|
528
|
-
|
|
529
|
-
<!-- 描述输入框 -->
|
|
530
515
|
<div
|
|
531
516
|
v-show="!descriptionHidden"
|
|
532
517
|
:data-testid="componentTestid + '-description'"
|
|
@@ -544,15 +529,12 @@ export default {
|
|
|
544
529
|
/>
|
|
545
530
|
</div>
|
|
546
531
|
|
|
547
|
-
<!-- 底部插槽 -->
|
|
548
532
|
<div
|
|
549
533
|
v-if="$slots.bottom"
|
|
550
534
|
style="width: 100%;"
|
|
551
535
|
>
|
|
552
536
|
<slot name="bottom" />
|
|
553
537
|
</div>
|
|
554
|
-
|
|
555
|
-
<!-- 间隔占位符 -->
|
|
556
538
|
<div
|
|
557
539
|
v-if="showSpacer"
|
|
558
540
|
class="spacer"
|
|
@@ -563,8 +545,13 @@ export default {
|
|
|
563
545
|
<style lang="scss" scoped>
|
|
564
546
|
button {
|
|
565
547
|
all: unset;
|
|
548
|
+
height: 0;
|
|
549
|
+
position: relative;
|
|
550
|
+
top: -35px;
|
|
551
|
+
float: right;
|
|
552
|
+
margin-right: 7px;
|
|
553
|
+
|
|
566
554
|
cursor: pointer;
|
|
567
|
-
margin-left: 10px;
|
|
568
555
|
|
|
569
556
|
.align-value {
|
|
570
557
|
padding-top: 7px;
|
|
@@ -153,13 +153,12 @@ export default {
|
|
|
153
153
|
</LabeledInput>
|
|
154
154
|
<div
|
|
155
155
|
v-if="isRandom"
|
|
156
|
-
class="genPassword"
|
|
156
|
+
class="mt-10 genPassword"
|
|
157
157
|
>
|
|
158
158
|
<a
|
|
159
159
|
href="#"
|
|
160
160
|
@click.prevent.stop="generatePassword"
|
|
161
|
-
|
|
162
|
-
><i class="icon icon-refresh mr-5 pl-5" /> {{ t('changePassword.newGeneratedPassword') }}</a>
|
|
161
|
+
><i class="icon icon-refresh" /> {{ t('changePassword.newGeneratedPassword') }}</a>
|
|
163
162
|
</div>
|
|
164
163
|
</div>
|
|
165
164
|
</template>
|
|
@@ -171,9 +170,6 @@ export default {
|
|
|
171
170
|
|
|
172
171
|
.labeled-input {
|
|
173
172
|
.addon {
|
|
174
|
-
position: absolute;
|
|
175
|
-
top: 6px;
|
|
176
|
-
right: 6px;
|
|
177
173
|
/* display: flex;
|
|
178
174
|
align-items: center;
|
|
179
175
|
justify-content: center;
|
|
@@ -78,7 +78,7 @@ export default {
|
|
|
78
78
|
<div style="width: 400px;">
|
|
79
79
|
<label>{{ t('resourceQuota.headers.projectResourceAvailability') }}</label>
|
|
80
80
|
</div>
|
|
81
|
-
<div style="width:
|
|
81
|
+
<div style="width: 400px;">
|
|
82
82
|
<label>{{ t('resourceQuota.headers.limit') }}</label>
|
|
83
83
|
</div>
|
|
84
84
|
</div>
|
|
@@ -190,18 +190,16 @@ export default {
|
|
|
190
190
|
:color-stops="{'100': '--primary'}"
|
|
191
191
|
/>
|
|
192
192
|
</div>
|
|
193
|
-
<
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
/>
|
|
204
|
-
</div>
|
|
193
|
+
<UnitInput
|
|
194
|
+
:value="value.limit[type]"
|
|
195
|
+
:mode="mode"
|
|
196
|
+
:placeholder="typeOption.placeholder"
|
|
197
|
+
:increment="typeOption.increment"
|
|
198
|
+
:input-exponent="typeOption.inputExponent"
|
|
199
|
+
:base-unit="typeOption.baseUnit"
|
|
200
|
+
:output-modifier="true"
|
|
201
|
+
@update:value="update"
|
|
202
|
+
/>
|
|
205
203
|
</div>
|
|
206
204
|
</template>
|
|
207
205
|
|
|
@@ -210,7 +208,6 @@ export default {
|
|
|
210
208
|
align-self: center;
|
|
211
209
|
}
|
|
212
210
|
.rowNew {
|
|
213
|
-
margin-bottom: 10px;
|
|
214
211
|
display: flex;
|
|
215
212
|
justify-content: space-between;
|
|
216
213
|
|
|
@@ -44,13 +44,9 @@ export default {
|
|
|
44
44
|
|
|
45
45
|
<style lang="scss" scoped>
|
|
46
46
|
.favorite {
|
|
47
|
-
display: flex;
|
|
48
|
-
align-items: center;
|
|
49
47
|
position: relative;
|
|
50
48
|
cursor: pointer;
|
|
51
|
-
font-size:
|
|
52
|
-
margin-top: 4px;
|
|
53
|
-
margin-left: 10px;
|
|
49
|
+
font-size: 20px;
|
|
54
50
|
transform: ease-in-out-all 1s;
|
|
55
51
|
|
|
56
52
|
&.icon-star-open {
|