dashboard-shell-shell 1.0.113 → 1.0.114
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/components/ActionDropdown.vue +1 -1
- package/components/ActionMenu.vue +2 -2
- package/components/ActionMenuShell.vue +0 -1
- package/components/AppModal.vue +6 -78
- package/components/AssignTo.vue +11 -25
- package/components/AsyncButton.vue +7 -24
- package/components/BannerGraphic.vue +0 -1
- package/components/ButtonDropdown.vue +4 -26
- package/components/ButtonGroup.vue +0 -4
- package/components/ButtonMultiAction.vue +0 -1
- package/components/CommunityLinks.vue +3 -3
- package/components/ConsumptionGauge.vue +5 -24
- package/components/CopyToClipboardText.vue +1 -2
- package/components/CruResource.vue +7 -12
- package/components/CruResourceFooter.vue +2 -2
- package/components/DashboardOptions.vue +15 -21
- package/components/DetailText.vue +0 -5
- package/components/DisableAuthProviderModal.vue +0 -1
- package/components/ExplorerMembers.vue +1 -1
- package/components/ExplorerProjectsNamespaces.vue +14 -56
- package/components/FixedBanner.vue +12 -19
- package/components/GlobalRoleBindings.vue +1 -5
- package/components/GrafanaDashboard.vue +4 -4
- package/components/GrowlManager.vue +1 -4
- package/components/HardwareResourceGauge.vue +3 -39
- package/components/InfoBox.vue +3 -3
- package/components/InputOrDisplay.vue +2 -28
- package/components/LabelValue.vue +1 -16
- package/components/LandingPagePreference.vue +3 -5
- package/components/LocaleSelector.vue +93 -39
- package/components/ModalWithCard.vue +0 -2
- package/components/MoveModal.vue +0 -1
- package/components/PromptChangePassword.vue +1 -1
- package/components/PromptModal.vue +2 -15
- package/components/PromptRemove.vue +8 -28
- package/components/PromptRestore.vue +0 -1
- package/components/ResourceCancelModal.vue +0 -1
- package/components/ResourceDetail/Masthead.vue +43 -188
- package/components/ResourceDetail/__tests__/Masthead.test.ts +1 -5
- package/components/ResourceDetail/index.vue +14 -49
- package/components/ResourceList/Masthead.vue +18 -80
- package/components/ResourceTable.vue +19 -60
- package/components/SideNav.vue +12 -32
- package/components/SortableTable/THead.vue +5 -34
- package/components/SortableTable/actions.js +1 -1
- package/components/SortableTable/index.vue +142 -649
- package/components/SortableTable/paging.js +28 -36
- package/components/SortableTable/selection.js +11 -0
- package/components/Tabbed/Tab.vue +3 -3
- package/components/Tabbed/index.vue +26 -44
- package/components/Wizard.vue +2 -2
- package/components/__tests__/AsyncButton.test.ts +2 -2
- package/components/__tests__/FixedBanner.test.ts +3 -3
- package/components/auth/Principal.vue +3 -10
- package/components/auth/__tests__/RoleDetailEdit.test.ts +2 -3
- package/components/form/ArrayList.vue +85 -123
- package/components/form/ArrayListGrouped.vue +2 -10
- package/components/form/Command.vue +15 -6
- package/components/form/EnvVars.vue +8 -16
- package/components/form/Footer.vue +5 -8
- package/components/form/HealthCheck.vue +3 -3
- package/components/form/HookOption.vue +16 -11
- package/components/form/KeyValue.vue +7 -16
- package/components/form/LabeledSelect.vue +76 -59
- package/components/form/LifecycleHooks.vue +3 -3
- package/components/form/MatchExpressions.vue +12 -35
- package/components/form/NameNsDescription.vue +115 -147
- package/components/form/Networking.vue +12 -20
- package/components/form/NodeAffinity.vue +23 -31
- package/components/form/NodeScheduling.vue +3 -13
- package/components/form/Password.vue +5 -11
- package/components/form/PodAffinity.vue +44 -43
- package/components/form/Probe.vue +66 -68
- package/components/form/ResourceQuota/Project.vue +1 -5
- package/components/form/ResourceSelector.vue +9 -7
- package/components/form/SSHKnownHosts/KnownHostsEditDialog.vue +3 -6
- package/components/form/SSHKnownHosts/__tests__/KnownHostsEditDialog.test.ts +1 -12
- package/components/form/SSHKnownHosts/index.vue +2 -16
- package/components/form/Security.vue +56 -54
- package/components/form/Select.vue +7 -41
- package/components/form/ShellInput.vue +1 -5
- package/components/form/Tolerations.vue +1 -5
- package/components/form/UnitInput.vue +2 -2
- package/components/form/ValueFromResource.vue +121 -134
- package/components/form/WorkloadPorts.vue +18 -18
- package/components/form/__tests__/ArrayList.test.ts +2 -5
- package/components/form/__tests__/MatchExpressions.test.ts +12 -12
- package/components/form/__tests__/NameNsDescription.test.ts +14 -115
- package/components/form/__tests__/Probe.test.ts +8 -12
- package/components/form/__tests__/SSHKnownHosts.test.ts +0 -11
- package/components/form/__tests__/Select.test.ts +0 -37
- package/components/form/__tests__/UnitInput.test.ts +5 -4
- package/components/formatter/BadgeStateFormatter.vue +5 -8
- package/components/formatter/ExtensionCache.vue +74 -0
- package/components/formatter/InternalExternalIP.vue +0 -2
- package/components/formatter/Port.vue +24 -0
- package/components/formatter/SecretData.vue +7 -20
- package/components/formatter/SecretType.vue +41 -0
- package/components/nav/Favorite.vue +1 -5
- package/components/nav/Group.vue +27 -60
- package/components/nav/Header.vue +13 -39
- package/components/nav/Jump.vue +0 -7
- package/components/nav/NamespaceFilter.vue +8 -14
- package/components/nav/Pinned.vue +1 -1
- package/components/nav/TopLevelMenu.vue +17 -5
- package/components/nav/Type.vue +35 -32
- package/components/nav/__tests__/TopLevelMenu.test.ts +40 -0
- package/components/templates/blank.vue +1 -4
- package/components/templates/default.vue +0 -8
- package/components/templates/home.vue +1 -10
- package/components/templates/plain.vue +1 -10
- package/package.json +1 -1
- package/components/ActionDropdownShell.vue +0 -71
- package/components/DotState.vue +0 -84
- package/components/ModalManager.vue +0 -55
- package/components/SlideInPanelManager.vue +0 -126
- package/components/StatusBadge.vue +0 -77
- package/components/__tests__/ModalManager.spec.ts +0 -176
- package/components/__tests__/SlideInPanelManager.spec.ts +0 -166
|
@@ -50,10 +50,6 @@ export default {
|
|
|
50
50
|
default: false,
|
|
51
51
|
type: Boolean
|
|
52
52
|
},
|
|
53
|
-
isLabel: {
|
|
54
|
-
default: false,
|
|
55
|
-
type: Boolean
|
|
56
|
-
},
|
|
57
53
|
localizedLabel: {
|
|
58
54
|
default: false,
|
|
59
55
|
type: Boolean
|
|
@@ -231,7 +227,7 @@ export default {
|
|
|
231
227
|
},
|
|
232
228
|
|
|
233
229
|
positionDropdown(dropdownList, component, { width }) {
|
|
234
|
-
calculatePosition(dropdownList, component, width, this.placement
|
|
230
|
+
calculatePosition(dropdownList, component, width, this.placement);
|
|
235
231
|
},
|
|
236
232
|
|
|
237
233
|
get,
|
|
@@ -282,25 +278,6 @@ export default {
|
|
|
282
278
|
</script>
|
|
283
279
|
|
|
284
280
|
<template>
|
|
285
|
-
<div style="display: flex;">
|
|
286
|
-
<div
|
|
287
|
-
:class="{ 'labeled-container': true, raised, empty, [mode]: true, 'is-lable': isLabel }"
|
|
288
|
-
:style="{ border: 'none', width: '160px',lineHeight: '32px' }"
|
|
289
|
-
>
|
|
290
|
-
<label v-if="hasLabel" :id="`labeled-select-uid-${uid}`">
|
|
291
|
-
<t
|
|
292
|
-
v-if="labelKey"
|
|
293
|
-
:k="labelKey"
|
|
294
|
-
/>
|
|
295
|
-
<template v-else-if="label">{{ label }}</template>
|
|
296
|
-
|
|
297
|
-
<span
|
|
298
|
-
v-if="requiredField"
|
|
299
|
-
class="required"
|
|
300
|
-
>*</span>
|
|
301
|
-
</label>
|
|
302
|
-
</div>
|
|
303
|
-
<!-- label -->
|
|
304
281
|
<div
|
|
305
282
|
ref="select"
|
|
306
283
|
class="labeled-select"
|
|
@@ -319,13 +296,12 @@ export default {
|
|
|
319
296
|
}
|
|
320
297
|
]"
|
|
321
298
|
:tabindex="isView || disabled ? -1 : 0"
|
|
322
|
-
role="listbox"
|
|
323
299
|
@click="focusSearch"
|
|
324
300
|
@keydown.enter="focusSearch"
|
|
325
301
|
@keydown.down.prevent="focusSearch"
|
|
326
302
|
@keydown.space.prevent="focusSearch"
|
|
327
303
|
>
|
|
328
|
-
|
|
304
|
+
<div
|
|
329
305
|
:class="{ 'labeled-container': true, raised, empty, [mode]: true }"
|
|
330
306
|
:style="{ border: 'none' }"
|
|
331
307
|
>
|
|
@@ -344,7 +320,7 @@ export default {
|
|
|
344
320
|
class="required"
|
|
345
321
|
>*</span>
|
|
346
322
|
</label>
|
|
347
|
-
</div>
|
|
323
|
+
</div>
|
|
348
324
|
<v-select
|
|
349
325
|
ref="select-input"
|
|
350
326
|
:aria-labelledby="hasLabel ? `labeled-select-uid-${uid}` : ''"
|
|
@@ -368,7 +344,7 @@ export default {
|
|
|
368
344
|
:modelValue="value != null && !loading ? value : ''"
|
|
369
345
|
:dropdown-should-open="dropdownShouldOpen"
|
|
370
346
|
:tabindex="-1"
|
|
371
|
-
role="
|
|
347
|
+
role="listbox"
|
|
372
348
|
@update:modelValue="$emit('selecting', $event); $emit('update:value', $event)"
|
|
373
349
|
@search:blur="onBlur"
|
|
374
350
|
@search:focus="onFocus"
|
|
@@ -378,7 +354,6 @@ export default {
|
|
|
378
354
|
@option:selecting="$emit('selecting', $event)"
|
|
379
355
|
@option:deselecting="$emit('deselecting', $event)"
|
|
380
356
|
>
|
|
381
|
-
|
|
382
357
|
<template #option="option">
|
|
383
358
|
<template v-if="showTagPrompts">
|
|
384
359
|
<div class="only-user-opts">
|
|
@@ -398,9 +373,9 @@ export default {
|
|
|
398
373
|
</div>
|
|
399
374
|
</div>
|
|
400
375
|
</template>
|
|
401
|
-
|
|
402
|
-
<hr
|
|
403
|
-
</template>
|
|
376
|
+
<template v-else-if="option.kind === 'divider'">
|
|
377
|
+
<hr>
|
|
378
|
+
</template>
|
|
404
379
|
<template v-else-if="option.kind === 'highlighted'">
|
|
405
380
|
<div class="option-kind-highlighted">
|
|
406
381
|
{{ option.label }}
|
|
@@ -491,7 +466,6 @@ export default {
|
|
|
491
466
|
:value="validationMessage"
|
|
492
467
|
/>
|
|
493
468
|
</div>
|
|
494
|
-
</div>
|
|
495
469
|
</template>
|
|
496
470
|
|
|
497
471
|
<style lang='scss' scoped>
|
|
@@ -501,11 +475,7 @@ export default {
|
|
|
501
475
|
// Prevent namespace field from wiggling or changing
|
|
502
476
|
// height when it is toggled from a LabeledInput to a
|
|
503
477
|
// LabeledSelect.
|
|
504
|
-
&:deep() .vs__actions:after {
|
|
505
|
-
padding-top: 10px;
|
|
506
|
-
}
|
|
507
478
|
padding-bottom: 1px;
|
|
508
|
-
/* flex: 1; */
|
|
509
479
|
|
|
510
480
|
&.no-label.compact-input {
|
|
511
481
|
:deep() .vs__actions:after {
|
|
@@ -519,7 +489,7 @@ export default {
|
|
|
519
489
|
|
|
520
490
|
&.no-label:not(.compact-input) {
|
|
521
491
|
height: $input-height;
|
|
522
|
-
padding-top:
|
|
492
|
+
padding-top: 4px;
|
|
523
493
|
|
|
524
494
|
:deep() .vs__actions:after {
|
|
525
495
|
top: 0;
|
|
@@ -581,7 +551,6 @@ export default {
|
|
|
581
551
|
|
|
582
552
|
&.taggable {
|
|
583
553
|
:deep() .vs__selected-options {
|
|
584
|
-
|
|
585
554
|
padding: 3px 0;
|
|
586
555
|
.vs__selected {
|
|
587
556
|
border-color: var(--accent-btn);
|
|
@@ -607,7 +576,7 @@ export default {
|
|
|
607
576
|
}
|
|
608
577
|
|
|
609
578
|
:deep() .vs__selected-options {
|
|
610
|
-
margin-top:
|
|
579
|
+
margin-top: -5px;
|
|
611
580
|
}
|
|
612
581
|
|
|
613
582
|
:deep() .v-select:not(.vs--single) {
|
|
@@ -619,7 +588,7 @@ export default {
|
|
|
619
588
|
:deep() .vs__actions {
|
|
620
589
|
&:after {
|
|
621
590
|
position: relative;
|
|
622
|
-
top:
|
|
591
|
+
top: -10px;
|
|
623
592
|
}
|
|
624
593
|
}
|
|
625
594
|
|
|
@@ -657,21 +626,73 @@ export default {
|
|
|
657
626
|
}
|
|
658
627
|
}
|
|
659
628
|
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
629
|
+
$icon-size: 18px;
|
|
630
|
+
|
|
631
|
+
// This represents the drop down area. Note - it might be attached to body and NOT the parent label select div
|
|
632
|
+
.vs__dropdown-menu {
|
|
633
|
+
|
|
634
|
+
// Styling for individual options
|
|
635
|
+
.vs__dropdown-option .vs__option-kind {
|
|
636
|
+
&-group {
|
|
637
|
+
display: flex;
|
|
638
|
+
align-items: center;
|
|
639
|
+
|
|
640
|
+
i { // icon
|
|
641
|
+
width: $icon-size;
|
|
642
|
+
}
|
|
643
|
+
|
|
644
|
+
> b { // group label
|
|
645
|
+
flex: 1;
|
|
646
|
+
}
|
|
647
|
+
|
|
648
|
+
> div { // badge
|
|
649
|
+
background-color: var(--primary);
|
|
650
|
+
border-radius: 4px;
|
|
651
|
+
color: var(--primary-text);
|
|
652
|
+
font-size: 12px;
|
|
653
|
+
height: 18px;
|
|
654
|
+
line-height: 18px;
|
|
655
|
+
margin-top: 1px;
|
|
656
|
+
padding: 0 10px;
|
|
657
|
+
}
|
|
658
|
+
}
|
|
659
|
+
|
|
660
|
+
&.has-icon {
|
|
661
|
+
padding-left: $icon-size;
|
|
662
|
+
}
|
|
665
663
|
}
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
664
|
+
|
|
665
|
+
&.has-icon .vs__option-kind div{
|
|
666
|
+
padding-left: $icon-size;
|
|
667
|
+
}
|
|
668
|
+
|
|
669
|
+
.pagination-slot {
|
|
670
|
+
display: flex;
|
|
671
|
+
align-items: center;
|
|
672
|
+
justify-content: center;
|
|
673
|
+
position: relative;
|
|
674
|
+
margin-top: 5px;
|
|
675
|
+
|
|
676
|
+
.load-more {
|
|
677
|
+
display: flex;
|
|
678
|
+
align-items: center;
|
|
679
|
+
height: 19px;
|
|
680
|
+
|
|
681
|
+
a {
|
|
682
|
+
cursor: pointer;
|
|
683
|
+
}
|
|
684
|
+
}
|
|
685
|
+
|
|
686
|
+
.count {
|
|
687
|
+
position: absolute;
|
|
688
|
+
right: 10px;
|
|
689
|
+
}
|
|
690
|
+
}
|
|
691
|
+
|
|
692
|
+
.no-options-slot .paginating {
|
|
693
|
+
display: flex;
|
|
694
|
+
align-items: center;
|
|
695
|
+
justify-content: center;
|
|
675
696
|
}
|
|
676
697
|
}
|
|
677
698
|
|
|
@@ -699,8 +720,4 @@ export default {
|
|
|
699
720
|
margin: 0px calc(-#{$input-padding-sm}/2);
|
|
700
721
|
padding: 3px 20px;
|
|
701
722
|
}
|
|
702
|
-
|
|
703
|
-
.is-lable{
|
|
704
|
-
width: 0px !important;
|
|
705
|
-
}
|
|
706
723
|
</style>
|
|
@@ -24,10 +24,10 @@ export default {
|
|
|
24
24
|
},
|
|
25
25
|
|
|
26
26
|
data() {
|
|
27
|
+
const { postStart, preStop } = this.value;
|
|
28
|
+
|
|
27
29
|
return {
|
|
28
|
-
postStart:
|
|
29
|
-
preStop: this.value.preStop,
|
|
30
|
-
hookOptions: ['postStart', 'preStop']
|
|
30
|
+
postStart, preStop, hookOptions: ['postStart', 'preStop']
|
|
31
31
|
};
|
|
32
32
|
},
|
|
33
33
|
|
|
@@ -70,14 +70,6 @@ export default {
|
|
|
70
70
|
},
|
|
71
71
|
|
|
72
72
|
data() {
|
|
73
|
-
return {
|
|
74
|
-
ops: [],
|
|
75
|
-
rules: [],
|
|
76
|
-
custom: []
|
|
77
|
-
};
|
|
78
|
-
},
|
|
79
|
-
|
|
80
|
-
created() {
|
|
81
73
|
const t = this.$store.getters['i18n/t'];
|
|
82
74
|
|
|
83
75
|
const podOptions = [
|
|
@@ -96,6 +88,8 @@ export default {
|
|
|
96
88
|
{ label: t('workload.scheduling.affinity.matchExpressions.greaterThan'), value: 'Gt' },
|
|
97
89
|
];
|
|
98
90
|
|
|
91
|
+
const ops = this.type === NODE ? nodeOptions : podOptions;
|
|
92
|
+
|
|
99
93
|
let rules;
|
|
100
94
|
|
|
101
95
|
// special case for matchFields and matchExpressions
|
|
@@ -133,8 +127,11 @@ export default {
|
|
|
133
127
|
rules.push(newRule);
|
|
134
128
|
}
|
|
135
129
|
|
|
136
|
-
|
|
137
|
-
|
|
130
|
+
return {
|
|
131
|
+
ops,
|
|
132
|
+
rules,
|
|
133
|
+
custom: []
|
|
134
|
+
};
|
|
138
135
|
},
|
|
139
136
|
|
|
140
137
|
computed: {
|
|
@@ -245,10 +242,6 @@ export default {
|
|
|
245
242
|
|
|
246
243
|
<template>
|
|
247
244
|
<div>
|
|
248
|
-
<slot
|
|
249
|
-
v-if="rules.length"
|
|
250
|
-
name="header"
|
|
251
|
-
/>
|
|
252
245
|
<button
|
|
253
246
|
v-if="showRemove && !isView"
|
|
254
247
|
type="button"
|
|
@@ -425,20 +418,14 @@ export default {
|
|
|
425
418
|
justify-content: center;
|
|
426
419
|
}
|
|
427
420
|
|
|
428
|
-
.match-expression-header{
|
|
429
|
-
margin-top: 24px;
|
|
430
|
-
}
|
|
431
421
|
.match-expression-row, .match-expression-header {
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
/* grid-template-columns: 1fr 1fr 1fr; */
|
|
422
|
+
display: grid;
|
|
423
|
+
grid-template-columns: 1fr 1fr 1fr;
|
|
435
424
|
margin: 5px 0;
|
|
436
|
-
|
|
437
|
-
grid-gap: 10px;
|
|
425
|
+
grid-gap: $column-gutter;
|
|
438
426
|
|
|
439
427
|
& > LABEL {
|
|
440
428
|
margin: 0;
|
|
441
|
-
width: 400px;
|
|
442
429
|
}
|
|
443
430
|
|
|
444
431
|
&:not(.view){
|
|
@@ -447,13 +434,7 @@ export default {
|
|
|
447
434
|
}
|
|
448
435
|
|
|
449
436
|
.match-expression-row > div > input {
|
|
450
|
-
min-height:
|
|
451
|
-
border: solid var(--border-width) var(--input-border);
|
|
452
|
-
padding: 4px 11px;
|
|
453
|
-
width: 400px;
|
|
454
|
-
&:hover{
|
|
455
|
-
box-shadow: 0 4px 6px 0 var(--input-border-box-shadow);
|
|
456
|
-
}
|
|
437
|
+
min-height: 40px !important;
|
|
457
438
|
}
|
|
458
439
|
.match-expression-row-matching, .match-expression-header-matching {
|
|
459
440
|
grid-template-columns: 1fr 1fr 1fr 1fr;
|
|
@@ -462,8 +443,4 @@ export default {
|
|
|
462
443
|
grid-template-columns: 1fr 1fr 1fr 1fr 100px;
|
|
463
444
|
}
|
|
464
445
|
}
|
|
465
|
-
|
|
466
|
-
.view-item-value{
|
|
467
|
-
width: 400px;
|
|
468
|
-
}
|
|
469
|
-
</style>
|
|
446
|
+
</style>
|