@xen-orchestra/web-core 0.51.0 → 0.52.0

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.
@@ -25,7 +25,10 @@ h5,
25
25
  h6,
26
26
  p,
27
27
  ol,
28
- ul {
28
+ ul,
29
+ dl,
30
+ dt,
31
+ dd {
29
32
  margin: 0;
30
33
  padding: 0;
31
34
  font-weight: inherit;
@@ -36,6 +39,10 @@ ul {
36
39
  list-style: none;
37
40
  }
38
41
 
42
+ dd {
43
+ margin-inline-start: 0;
44
+ }
45
+
39
46
  img {
40
47
  max-width: 100%;
41
48
  height: auto;
@@ -13,9 +13,13 @@ defineSlots<{
13
13
  <style lang="postcss" scoped>
14
14
  .vts-column {
15
15
  flex: 1;
16
- flex-basis: 0;
17
16
  display: flex;
18
17
  flex-direction: column;
19
18
  gap: 0.8rem;
19
+ min-width: 0;
20
+
21
+ @container vts-columns (max-width: 90rem) {
22
+ flex-basis: 100%;
23
+ }
20
24
  }
21
25
  </style>
@@ -1,16 +1,16 @@
1
1
  <template>
2
- <div class="vts-columns" :class="{ mobile: uiStore.isSmall }">
2
+ <div class="vts-columns" :class="{ 'extra-space-around': extraSpaceAround }">
3
3
  <component :is="nodes[index - 1] ?? VtsColumn" v-for="index of columns" :key="index" />
4
4
  </div>
5
5
  </template>
6
6
 
7
7
  <script lang="ts" setup>
8
8
  import VtsColumn from '@core/components/column/VtsColumn.vue'
9
- import { useUiStore } from '@core/stores/ui.store.ts'
10
9
  import { computed } from 'vue'
11
10
 
12
11
  const { columns: _columns = 2 } = defineProps<{
13
12
  columns?: number
13
+ extraSpaceAround?: boolean
14
14
  }>()
15
15
 
16
16
  const slots = defineSlots<{
@@ -20,19 +20,28 @@ const slots = defineSlots<{
20
20
  const nodes = computed(() => slots.default())
21
21
 
22
22
  const columns = computed(() => Math.max(_columns, nodes.value.length))
23
-
24
- const uiStore = useUiStore()
25
23
  </script>
26
24
 
27
25
  <style lang="postcss" scoped>
28
26
  .vts-columns {
27
+ container-type: inline-size;
28
+ container-name: vts-columns;
29
29
  display: flex;
30
+ flex-wrap: wrap;
30
31
  gap: 0.8rem;
31
- padding: 0.8rem;
32
- flex-direction: row;
33
32
 
34
- &.mobile {
35
- flex-direction: column;
33
+ &.extra-space-around {
34
+ margin: 0.8rem;
35
+ }
36
+
37
+ & > * {
38
+ flex: 1 0 0;
39
+ }
40
+
41
+ @container vts-columns (max-width: 60rem) {
42
+ & > * {
43
+ flex-basis: 100%;
44
+ }
36
45
  }
37
46
  }
38
47
  </style>
@@ -12,10 +12,10 @@ import VncClient from '@novnc/novnc/lib/rfb'
12
12
  import { whenever } from '@vueuse/core'
13
13
  import { promiseTimeout } from '@vueuse/shared'
14
14
  import { fibonacci } from 'iterable-backoff'
15
- import { onBeforeUnmount, ref, useTemplateRef, watchEffect } from 'vue'
15
+ import { onBeforeUnmount, ref, useTemplateRef, watch } from 'vue'
16
16
  import { useI18n } from 'vue-i18n'
17
17
 
18
- const props = defineProps<{
18
+ const { url, isConsoleAvailable } = defineProps<{
19
19
  url: URL
20
20
  isConsoleAvailable: boolean
21
21
  }>()
@@ -35,18 +35,16 @@ let nConnectionAttempts = 0
35
35
 
36
36
  function handleDisconnectionEvent() {
37
37
  clearVncClient()
38
- if (props.isConsoleAvailable) {
38
+ if (isConsoleAvailable) {
39
39
  nConnectionAttempts++
40
40
 
41
41
  if (nConnectionAttempts > N_TOTAL_TRIES) {
42
- console.error('The number of reconnection attempts has been exceeded for:', props.url)
42
+ console.error('The number of reconnection attempts has been exceeded for:', url)
43
43
  return
44
44
  }
45
45
 
46
46
  console.error(
47
- `Connection lost for the remote console: ${props.url}. New attempt in ${
48
- FIBONACCI_MS_ARRAY[nConnectionAttempts - 1]
49
- }ms`
47
+ `Connection lost for the remote console: ${url}. New attempt in ${FIBONACCI_MS_ARRAY[nConnectionAttempts - 1]}ms`
50
48
  )
51
49
  createVncConnection()
52
50
  }
@@ -80,7 +78,7 @@ async function createVncConnection() {
80
78
  }
81
79
  }
82
80
 
83
- vncClient = new VncClient(consoleContainer.value!, props.url.toString(), {
81
+ vncClient = new VncClient(consoleContainer.value!, url.toString(), {
84
82
  wsProtocols: ['binary'],
85
83
  })
86
84
  vncClient.scaleViewport = true
@@ -114,16 +112,20 @@ whenever(
114
112
  }
115
113
  )
116
114
 
117
- watchEffect(() => {
118
- if (consoleContainer.value === null || !props.isConsoleAvailable) {
119
- return
120
- }
115
+ watch(
116
+ [consoleContainer, () => isConsoleAvailable, () => url.toString()],
117
+ ([container, isAvailable]) => {
118
+ if (container === null || !isAvailable) {
119
+ return
120
+ }
121
121
 
122
- nConnectionAttempts = 0
122
+ nConnectionAttempts = 0
123
123
 
124
- clearVncClient()
125
- createVncConnection()
126
- })
124
+ clearVncClient()
125
+ createVncConnection()
126
+ },
127
+ { immediate: true }
128
+ )
127
129
 
128
130
  onBeforeUnmount(() => {
129
131
  clearVncClient()
@@ -1,11 +1,11 @@
1
1
  <template>
2
- <div class="vts-quick-info-column">
2
+ <dl class="vts-key-value-list">
3
3
  <slot />
4
- </div>
4
+ </dl>
5
5
  </template>
6
6
 
7
7
  <style lang="postcss" scoped>
8
- .vts-quick-info-column {
8
+ .vts-key-value-list {
9
9
  display: flex;
10
10
  flex-direction: column;
11
11
  gap: 1.6rem;
@@ -0,0 +1,48 @@
1
+ <template>
2
+ <dt class="typo-body-regular label">
3
+ <slot name="label">
4
+ {{ label }}
5
+ </slot>
6
+ </dt>
7
+ <dd class="typo-body-regular value">
8
+ <span v-tooltip class="text-ellipsis">
9
+ <slot name="value">
10
+ {{ value }}
11
+ </slot>
12
+ </span>
13
+ </dd>
14
+ </template>
15
+
16
+ <script lang="ts" setup>
17
+ import { vTooltip } from '@core/directives/tooltip.directive'
18
+
19
+ defineProps<{
20
+ label?: string
21
+ value?: string
22
+ }>()
23
+
24
+ defineSlots<{
25
+ label?(): any
26
+ value?(): any
27
+ }>()
28
+ </script>
29
+
30
+ <style lang="postcss" scoped>
31
+ .label {
32
+ color: var(--color-neutral-txt-secondary);
33
+ }
34
+
35
+ .value {
36
+ color: var(--color-neutral-txt-primary);
37
+ display: flex;
38
+ align-items: center;
39
+ gap: 0.8rem;
40
+ min-width: 0;
41
+
42
+ .text-ellipsis {
43
+ &:empty::before {
44
+ content: '-';
45
+ }
46
+ }
47
+ }
48
+ </style>
@@ -0,0 +1,45 @@
1
+ <template>
2
+ <div class="vts-key-value-row" :class="{ mobile: uiStore.isSmallOrMedium }">
3
+ <VtsKeyValuePair :label :value>
4
+ <template v-if="slots.label" #label>
5
+ <slot name="label" />
6
+ </template>
7
+ <template v-if="slots.value" #value>
8
+ <slot name="value" />
9
+ </template>
10
+ </VtsKeyValuePair>
11
+ </div>
12
+ </template>
13
+
14
+ <script lang="ts" setup>
15
+ import VtsKeyValuePair from '@core/components/key-value-pair/VtsKeyValuePair.vue'
16
+ import { useUiStore } from '@core/stores/ui.store.ts'
17
+
18
+ defineProps<{
19
+ label?: string
20
+ value?: string
21
+ }>()
22
+
23
+ const slots = defineSlots<{
24
+ label?(): any
25
+ value?(): any
26
+ }>()
27
+
28
+ const uiStore = useUiStore()
29
+ </script>
30
+
31
+ <style lang="postcss" scoped>
32
+ .vts-key-value-row {
33
+ display: flex;
34
+ gap: 2.4rem;
35
+
36
+ &.mobile {
37
+ flex-direction: column;
38
+ gap: 0.8rem;
39
+ }
40
+
41
+ :deep(dt) {
42
+ flex-shrink: 0;
43
+ }
44
+ }
45
+ </style>
@@ -0,0 +1,29 @@
1
+ <template>
2
+ <dl class="vts-tabular-key-value-list" :class="{ 'full-height': fullHeight }">
3
+ <slot />
4
+ </dl>
5
+ </template>
6
+
7
+ <script lang="ts" setup>
8
+ defineProps<{
9
+ fullHeight?: boolean
10
+ }>()
11
+ </script>
12
+
13
+ <style lang="postcss" scoped>
14
+ .vts-tabular-key-value-list {
15
+ container-type: inline-size;
16
+ container-name: vts-tabular-key-value-list;
17
+ display: grid;
18
+ grid-template-columns: minmax(min-content, 20rem) 1fr;
19
+ row-gap: 1.6rem;
20
+ column-gap: 2.4rem;
21
+ align-items: start;
22
+ align-self: flex-start;
23
+ width: 100%;
24
+
25
+ &.full-height {
26
+ height: 100%;
27
+ }
28
+ }
29
+ </style>
@@ -0,0 +1,42 @@
1
+ <template>
2
+ <div class="vts-tabular-key-value-row">
3
+ <VtsKeyValuePair :label :value>
4
+ <template v-if="slots.label" #label>
5
+ <slot name="label" />
6
+ </template>
7
+ <template v-if="slots.value" #value>
8
+ <slot name="value" />
9
+ </template>
10
+ </VtsKeyValuePair>
11
+ </div>
12
+ </template>
13
+
14
+ <script lang="ts" setup>
15
+ import VtsKeyValuePair from '@core/components/key-value-pair/VtsKeyValuePair.vue'
16
+
17
+ defineProps<{
18
+ label?: string
19
+ value?: string
20
+ }>()
21
+
22
+ const slots = defineSlots<{
23
+ label?(): any
24
+ value?(): any
25
+ }>()
26
+ </script>
27
+
28
+ <style lang="postcss" scoped>
29
+ .vts-tabular-key-value-row {
30
+ display: grid;
31
+ grid-template-columns: subgrid;
32
+ grid-column: span 2;
33
+ align-items: start;
34
+
35
+ @container vts-tabular-key-value-list (max-width: 40rem) {
36
+ display: flex;
37
+ flex-direction: column;
38
+ align-items: stretch;
39
+ gap: 0.8rem;
40
+ }
41
+ }
42
+ </style>
@@ -540,7 +540,6 @@
540
540
  "new-vm": "Nový virt. stroj",
541
541
  "new-vm:add": "Přidat nový virt. stroj",
542
542
  "new-vm:description": "Popis virt. stroje",
543
- "new-vm:feature-not-supported": "Toto je nová podoba vytváření virt. stroje. Nastavení přes cloud-init, pokročilé možnosti a správa vTPM zatím ještě nejsou podporovány. Aktualizovaná verze bude k dispozici brzy v roce 2026. Mezitím je úplná sada funkcí k dispozici zde v {xo-5}",
544
543
  "new-vm:install-source": "Instalační zdroj",
545
544
  "new-vm:name": "Název virt. stroje",
546
545
  "new-vm:network-config": "Nastavování sítě je kompatibilní pouze s {noCloudLink}.",
@@ -316,7 +316,6 @@
316
316
  "new-vm": "Ny VM",
317
317
  "new-vm:add": "Tilføj en ny VM",
318
318
  "new-vm:description": "VM beskrivelse",
319
- "new-vm:feature-not-supported": "Dette er vores nye VM oprettelsesformular. Cloud-init konfiguration, avancerede indstillinger og vTPM administration understøttes endnu ikke. En opdateret version vil være tilgængelig snart i 2026. I mellemtiden er hele funktionssættet tilgængeligt her i {xo-5}",
320
319
  "new-vm:name": "VM navn",
321
320
  "news": "Nyheder",
322
321
  "news-name": "{name} nyheder",
@@ -504,7 +504,6 @@
504
504
  "new-vm": "Neue VM",
505
505
  "new-vm:add": "Neue VM hinzufügen",
506
506
  "new-vm:description": "VM-Beschreibung",
507
- "new-vm:feature-not-supported": "Dies ist unser neues Formular zur Erstellung von VMs. Cloud-init-Konfiguration, erweiterte Optionen und vTPM-Management werden noch nicht unterstützt. Die aktualisierte Version wird bald im Jahr 2026 verfügbar sein. In der Zwischenzeit ist der vollständige Funktionsumfang hier in {xo-5} verfügbar",
508
507
  "new-vm:install-source": "Installationsquelle",
509
508
  "new-vm:name": "VM-Name",
510
509
  "new-vm:network-config": "Die Netzwerk-Konfiguration ist nur kompatibel mit {noCloudLink}.",
@@ -20,6 +20,7 @@
20
20
  "action:close": "Close",
21
21
  "action:connect": "Connect",
22
22
  "action:connect-another-pool": "Connect another pool",
23
+ "action:connect-n-vbds": "Connect 1 VBD | Connect {n} VBDs",
23
24
  "action:connect-n-vifs": "Connect 1 VIF | Connect {n} VIFs",
24
25
  "action:connect-pool": "Connect pool",
25
26
  "action:copy": "Copy",
@@ -44,6 +45,7 @@
44
45
  "action:deploy": "Deploy",
45
46
  "action:deploy-xoa": "Deploy XOA",
46
47
  "action:disconnect": "Disconnect",
48
+ "action:disconnect-n-vbds": "Disconnect 1 VBD | Disconnect {n} VBDs",
47
49
  "action:disconnect-n-vifs": "Disconnect 1 VIF | Disconnect {n} VIFs",
48
50
  "action:download-bugtools-archive": "Download bugtools archive",
49
51
  "action:duplicate": "Duplicate",
@@ -399,8 +401,12 @@
399
401
  "job:network-delete:has-n-physical-pif-connected": "The network has one physical PIF connected | The network has {n} physical PIFs connected",
400
402
  "job:network-delete:has-n-vif-attached": "The network has one VIF attached | The network has {n} VIFs attached",
401
403
  "job:snapshot-delete:missing-snapshot": "No snapshots to delete",
404
+ "job:vbd-connect:missing-vbd": "No VBDs to connect",
405
+ "job:vbd-connect:vbd-already-connected": "VBD is already connected",
402
406
  "job:vbd-delete:missing-vbd": "No VBDs to delete",
403
407
  "job:vbd-delete:vbd-attached": "Cannot delete a VBD that is currently attached",
408
+ "job:vbd-disconnect:missing-vbd": "VBD is missing",
409
+ "job:vbd-disconnect:vbd-disconnected": "VBD is disconnected",
404
410
  "job:vdi-delete:missing-vdi": "No VDIs to delete",
405
411
  "job:vdi-delete:vbd-attached": "Cannot delete a VDI with VBD attached",
406
412
  "job:vif-connect:missing-vif": "No VIFs to connect",
@@ -547,6 +553,7 @@
547
553
  "n-selected-of": "{count} selected of {total} objects",
548
554
  "n-snapshots": "1 snapshot | {n} snapshots",
549
555
  "n-subtasks": "1 subtask | {n} subtasks",
556
+ "n-vbds": "1 VBD | {n} VBDs",
550
557
  "n-vdis": "1 VDI | {n} VDIs",
551
558
  "n-vifs": "1 VIF | {n} VIFs",
552
559
  "n-vms": "1 VM | {n} VMs",
@@ -577,7 +584,6 @@
577
584
  "new-vm": "New VM",
578
585
  "new-vm:add": "Add a new VM",
579
586
  "new-vm:description": "VM description",
580
- "new-vm:feature-not-supported": "This is our new VM creation form. Cloud-init configuration, Advanced options and vTPM management are not yet supported. Updated version will be available soon in 2026. In the meanwhile, full feature set is available here in {xo-5}",
581
587
  "new-vm:install-source": "Installation source",
582
588
  "new-vm:name": "VM name",
583
589
  "new-vm:network-config": "Network configuration is only compatible with {noCloudLink}.",
@@ -945,8 +951,11 @@
945
951
  "user-config": "User config",
946
952
  "username": "Username",
947
953
  "uuid": "UUID",
954
+ "vbd-connect-title": "You are about to connect 1 VBD | You are about to connect {n} VBDs",
948
955
  "vbd-delete-info": "This will detach the selected VDI from the VM. The disk will not be deleted and can be reattached later.",
949
956
  "vbd-delete-title": "You are about to delete 1 VBD | You are about to delete {n} VBDs",
957
+ "vbd-disconnect-info": "The VM will no longer have access to the VDI. The disk remains attached and you can reconnect later.",
958
+ "vbd-disconnect-title": "You are about to disconnect 1 VBD | You are about to disconnect {n} VBDs",
950
959
  "vcpu": "vCPU",
951
960
  "vcpus": "vCPUs",
952
961
  "vcpus-assigned": "vCPUs assigned",
@@ -988,6 +997,7 @@
988
997
  "vm-protected-reboot": "This VM is protected against reboot.",
989
998
  "vm-protected-shutdown": "This VM is protected against shutdown.",
990
999
  "vm-protected-suspend": "This VM is protected against suspend.",
1000
+ "vm-running": "VM is running",
991
1001
  "vm-shutdown": "VM is currently shut down",
992
1002
  "vm-tools-missing": "VM tools missing",
993
1003
  "vm:status:active": "@:status:active",
@@ -521,7 +521,6 @@
521
521
  "new-vm": "Nueva VM",
522
522
  "new-vm:add": "Añadir nueva VM",
523
523
  "new-vm:description": "Descripción de la VM",
524
- "new-vm:feature-not-supported": "Aquí hay nuestro formulario de creación de VM. Aún no admite la configuratión Cloud-init, las opciones avancadas, ni la gestión vTPM. Se dispondrá de una versión actualizada proximamente en el 2026. Mientras tanto, estas funciones están disponibles en {xo-5}",
525
524
  "new-vm:install-source": "Origen de instalación",
526
525
  "new-vm:name": "Nombre de la VM",
527
526
  "new-vm:network-config": "La configuración de red sólo es compatible con {noCloudLink}.",
@@ -20,6 +20,7 @@
20
20
  "action:close": "Fermer",
21
21
  "action:connect": "Connecter",
22
22
  "action:connect-another-pool": "Connecter un autre pool",
23
+ "action:connect-n-vbds": "Connecter 1 VBD | Connecter {n} VBDs",
23
24
  "action:connect-n-vifs": "Connecter 1 VIF | Connecter {n} VIFs",
24
25
  "action:connect-pool": "Connecter un pool",
25
26
  "action:copy": "Copier",
@@ -44,6 +45,7 @@
44
45
  "action:deploy": "Déployer",
45
46
  "action:deploy-xoa": "Déployer XOA",
46
47
  "action:disconnect": "Déconnecter",
48
+ "action:disconnect-n-vbds": "Déconnecter 1 VBD | Déconnecter {n} VBDs",
47
49
  "action:disconnect-n-vifs": "Déconnecter 1 VIF | Déconnecter {n} VIFs",
48
50
  "action:download-bugtools-archive": "Télécharger l’archive bugtools",
49
51
  "action:duplicate": "Dupliquer",
@@ -399,8 +401,12 @@
399
401
  "job:network-delete:has-n-physical-pif-connected": "Le réseau a un PIF physique connecté | Le réseau a {n} PIFs physiques connectés",
400
402
  "job:network-delete:has-n-vif-attached": "Le réseau a un VIF attaché | Le réseau a {n} VIFs attachés",
401
403
  "job:snapshot-delete:missing-snapshot": "Aucun instantané à supprimer",
404
+ "job:vbd-connect:missing-vbd": "Aucun VBD à connecter",
405
+ "job:vbd-connect:vbd-already-connected": "Le VBD est déjà connecté",
402
406
  "job:vbd-delete:missing-vbd": "Aucun VBD à supprimer",
403
407
  "job:vbd-delete:vbd-attached": "Impossible de supprimer un VBD actuellement attaché",
408
+ "job:vbd-disconnect:missing-vbd": "Aucun VBD à déconnecter",
409
+ "job:vbd-disconnect:vbd-disconnected": "VBD déconnecté",
404
410
  "job:vdi-delete:missing-vdi": "Aucun VDI à supprimer",
405
411
  "job:vdi-delete:vbd-attached": "Impossible de supprimer un VDI avec un VBD attaché",
406
412
  "job:vif-connect:missing-vif": "Aucun VIF à connecter",
@@ -547,6 +553,7 @@
547
553
  "n-selected-of": "{count} objet sélectionné sur {total} | {count} objet sélectionné sur {total} | {count} objets sélectionnés sur {total}",
548
554
  "n-snapshots": "0 instantané | 1 instantané | {n} instantanés",
549
555
  "n-subtasks": "0 sous-tâche | 1 sous-tâche | {n} sous-tâches",
556
+ "n-vbds": "0 VBD | 1 VBD | {n} VBDs",
550
557
  "n-vdis": "0 VDI | 1 VDI | {n} VDIs",
551
558
  "n-vifs": "0 VIF | 1 VIF | {n} VIFs",
552
559
  "n-vms": "0 VM | 1 VM | {n} VMs",
@@ -577,7 +584,6 @@
577
584
  "new-vm": "Nouvelle VM",
578
585
  "new-vm:add": "Ajouter une nouvelle VM",
579
586
  "new-vm:description": "Description de la VM",
580
- "new-vm:feature-not-supported": "Ceci est notre nouveau formulaire de création de VM. La configuration Cloud-init, les options avancées et la gestion vTPM ne sont pas encore prises en charge. Une version mise à jour sera disponible prochainement en 2026. En attendant, l'ensemble des fonctionnalités est disponible ici sur {xo-5}",
581
587
  "new-vm:install-source": "Source d'installation",
582
588
  "new-vm:name": "Nom de la VM",
583
589
  "new-vm:network-config": "La configuration réseau est uniquement compatible avec {noCloudLink}.",
@@ -945,8 +951,11 @@
945
951
  "user-config": "Configuration utilisateur",
946
952
  "username": "Nom d'utilisateur",
947
953
  "uuid": "UUID",
954
+ "vbd-connect-title": "Vous êtes sur le point de connecter 1 VBD | Vous êtes sur le point de connecter {n} VBDs",
948
955
  "vbd-delete-info": "Cela détachera le VDI sélectionné de la VM. Le disque ne sera pas supprimé et pourra être rattaché ultérieurement.",
949
956
  "vbd-delete-title": "Vous êtes sur le point de supprimer 1 VBD | Vous êtes sur le point de supprimer {n} VBDs",
957
+ "vbd-disconnect-info": "La VM n'aura plus accès au VDI. Le disque reste attaché et vous pourrez le reconnecter ultérieurement.",
958
+ "vbd-disconnect-title": "Vous êtes sur le point de déconnecter 1 VBD | Vous êtes sur le point de déconnecter {n} VBDs",
950
959
  "vcpu": "vCPU",
951
960
  "vcpus": "vCPUs",
952
961
  "vcpus-assigned": "vCPUs assignés",
@@ -988,6 +997,7 @@
988
997
  "vm-protected-reboot": "Cette VM est protégée contre le redémarrage.",
989
998
  "vm-protected-shutdown": "Cette VM est protégée contre l'arrêt.",
990
999
  "vm-protected-suspend": "Cette VM est protégée contre la mise en veille.",
1000
+ "vm-running": "VM en cours d'exécution",
991
1001
  "vm-shutdown": "La VM est actuellement arrêtée",
992
1002
  "vm-tools-missing": "Les VM tools ne sont pas installés",
993
1003
  "vm:status:active": "Active | Active | Actives",
@@ -521,7 +521,6 @@
521
521
  "new-vm": "Nieuwe VM",
522
522
  "new-vm:add": "Voeg nieuwe VM toe",
523
523
  "new-vm:description": "VM omschrijving",
524
- "new-vm:feature-not-supported": "Dit is ons nieuwe formulier voor het aanmaken van VM's. Cloud-init-configuratie, geavanceerde opties en vTPM-beheer worden nog niet ondersteund. Een bijgewerkte versie zal binnenkort beschikbaar zijn in 2026. In de tussentijd is de volledige set functies hier beschikbaar in {xo-5}",
525
524
  "new-vm:install-source": "Installatiebron",
526
525
  "new-vm:name": "VM naam",
527
526
  "new-vm:network-config": "Netwerkconfiguratie is alleen compatibel met {noCloudLink}.",
@@ -490,7 +490,6 @@
490
490
  "n-hosts": "1 servidor | {n} servidores",
491
491
  "n-percent": "{n}%",
492
492
  "new-features-are-coming!": "Novidades em breve!",
493
- "new-vm:feature-not-supported": "Este é o nosso novo formulário de criação de VM. A configuração do Cloud-init, as opções avançadas e a gestão de vTPM ainda não são suportadas. Uma versão atualizada estará disponível em breve, em 2026. Enquanto isso, todas as funcionalidades estão disponíveis aqui em {xo-5}",
494
493
  "news": "Notícias",
495
494
  "no-alarm-detected": "Nenhum alarme detectado",
496
495
  "no-alarm-triggered": "Nenhum alarme foi acionado",
@@ -513,7 +513,6 @@
513
513
  "new-vm": "Nova VM",
514
514
  "new-vm:add": "Adicionar uma nova VM",
515
515
  "new-vm:description": "Descrição da VM",
516
- "new-vm:feature-not-supported": "Este é o nosso novo formulário de criação de VM. A configuração do Cloud-init, as opções avançadas e a gestão de vTPM ainda não são suportadas. Uma versão atualizada estará disponível em breve, em 2026. Enquanto isso, todas as funcionalidades estão disponíveis aqui em {xo-5}",
517
516
  "new-vm:install-source": "Fonte de instalação",
518
517
  "new-vm:name": "Nome da VM",
519
518
  "new-vm:network-config": "A configuração de rede é compatível apenas com o {noCloudLink}.",
@@ -464,7 +464,6 @@
464
464
  "new-vm": "Новая ВМ",
465
465
  "new-vm:add": "Добавить новую ВМ",
466
466
  "new-vm:description": "Описание ВМ",
467
- "new-vm:feature-not-supported": "Это наша новая форма для создания ВМ. Настройки Cloud-init, расширенные настройки и управление vTPM пока что не поддерживаются. Обновленная версия будет доступна вскоре в 2026-м. А пока что, полный функционал доступен здесь, в {xo-5}",
468
467
  "new-vm:name": "Название ВМ",
469
468
  "news": "Новости",
470
469
  "not-found": "Не найдено",
@@ -540,7 +540,6 @@
540
540
  "new-vm": "Nový VM",
541
541
  "new-vm:add": "Pridať nový virt. stroj",
542
542
  "new-vm:description": "Popis VM",
543
- "new-vm:feature-not-supported": "Toto je nová podoba vytvárania virt. stroje. Nastavenia cez cloud-init, pokročilé možnosti a správa vTPM zatiaľ ešte nie sú podporované. Aktualizovaná verzia bude k dispozícii čoskoro v roku 2026. Medzitým je úplná sada funkcií k dispozícii tu v {xo-5}",
544
543
  "new-vm:install-source": "Zdroj inštalácie",
545
544
  "new-vm:name": "Názov VM",
546
545
  "new-vm:network-config": "Konfigurácia siete je kompatibilná iba s {noCloudLink}.",
@@ -505,7 +505,6 @@
505
505
  "new-vm": "Ny VM",
506
506
  "new-vm:add": "Lägg till ny VM",
507
507
  "new-vm:description": "VM-beskrivning",
508
- "new-vm:feature-not-supported": "Det här är vår nya VM-mall. Cloud-init, Avancerade inställningar och vTPM-hantering stöds inte än. En uppdaterad version kommer släppas under 2026. Under tiden finns alla funktioner tillgängliga här i {xo-5}",
509
508
  "new-vm:install-source": "Installationskälla",
510
509
  "new-vm:name": "VM-namn",
511
510
  "new-vm:network-config": "Nätverkskonfiguration stöds endast med {noCloudLink}.",
@@ -531,7 +531,6 @@
531
531
  "new-vm": "新建虚拟机",
532
532
  "new-vm:add": "添加新虚拟机",
533
533
  "new-vm:description": "虚拟机描述",
534
- "new-vm:feature-not-supported": "这是我们新的虚拟机创建表单。暂不支持 Cloud-init 配置、高级选项和 vTPM 管理功能。2026 年内将很快推出更新版本。在此期间,完整功能集可在 {xo-5} 中使用",
535
534
  "new-vm:install-source": "安装源",
536
535
  "new-vm:name": "虚拟机名称",
537
536
  "new-vm:network-config": "网络配置仅与 {noCloudLink} 兼容。",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@xen-orchestra/web-core",
3
3
  "type": "module",
4
- "version": "0.51.0",
4
+ "version": "0.52.0",
5
5
  "private": false,
6
6
  "exports": {
7
7
  "./*": {
@@ -1,59 +0,0 @@
1
- <template>
2
- <div class="vts-quick-info-row" :class="{ mobile: uiStore.isSmall }">
3
- <span v-tooltip class="typo-body-regular label text-ellipsis">
4
- <slot name="label">
5
- {{ label }}
6
- </slot>
7
- </span>
8
- <span v-tooltip class="typo-body-regular value text-ellipsis">
9
- <slot name="value">
10
- {{ value }}
11
- </slot>
12
- </span>
13
- </div>
14
- </template>
15
-
16
- <script lang="ts" setup>
17
- import { vTooltip } from '@core/directives/tooltip.directive'
18
- import { useUiStore } from '@core/stores/ui.store.ts'
19
-
20
- defineProps<{
21
- label?: string
22
- value?: string
23
- }>()
24
-
25
- defineSlots<{
26
- label?(): any
27
- value?(): any
28
- }>()
29
-
30
- const uiStore = useUiStore()
31
- </script>
32
-
33
- <style lang="postcss" scoped>
34
- .vts-quick-info-row {
35
- display: flex;
36
- gap: 2.4rem;
37
-
38
- &.mobile {
39
- flex-direction: column;
40
- gap: 0.8rem;
41
- }
42
-
43
- .label {
44
- flex-shrink: 0;
45
- color: var(--color-neutral-txt-secondary);
46
- }
47
-
48
- .value {
49
- color: var(--color-neutral-txt-primary);
50
- display: flex;
51
- align-items: center;
52
- gap: 0.8rem;
53
-
54
- &:empty::before {
55
- content: '-';
56
- }
57
- }
58
- }
59
- </style>