@xen-orchestra/web-core 0.56.0 → 0.58.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.
Files changed (80) hide show
  1. package/lib/assets/css/base.pcss +5 -0
  2. package/lib/components/copy-all-menu-item/VtsCopyAllMenuItem.vue +48 -0
  3. package/lib/components/copy-button/VtsCopyButton.vue +2 -2
  4. package/lib/components/input-wrapper/VtsInputWrapper.vue +2 -2
  5. package/lib/components/layout/VtsLayoutSidebar.vue +116 -43
  6. package/lib/components/menu/MenuItem.vue +9 -1
  7. package/lib/components/menu/MenuList.vue +4 -2
  8. package/lib/components/menu/VtsActionsMenu.vue +24 -24
  9. package/lib/components/modal/VtsActionModal.vue +44 -9
  10. package/lib/components/modal/VtsBlockedModal.vue +1 -1
  11. package/lib/components/modal/VtsDeleteModal.vue +1 -1
  12. package/lib/components/overlay/VtsOverlayButton.vue +35 -0
  13. package/lib/components/overlay/VtsOverlayCancelButton.vue +16 -0
  14. package/lib/components/overlay/VtsOverlayConfirmButton.vue +25 -0
  15. package/lib/components/overlay/VtsOverlayList.vue +82 -0
  16. package/lib/components/progress-bar/VtsProgressBar.vue +5 -3
  17. package/lib/components/select/VtsSelect.vue +0 -3
  18. package/lib/components/space-card/VtsSpaceCard.vue +1 -1
  19. package/lib/components/table/cells/VtsProgressBarCell.vue +1 -1
  20. package/lib/components/table/cells/VtsUserNameCell.vue +29 -0
  21. package/lib/components/task/VtsQuickTaskButton.vue +1 -1
  22. package/lib/components/task/VtsQuickTaskList.vue +1 -1
  23. package/lib/components/tree/VtsTreeItem.vue +4 -4
  24. package/lib/components/ui/head-bar/UiHeadBar.vue +1 -1
  25. package/lib/components/ui/input/UiInput.vue +53 -9
  26. package/lib/components/ui/query-search-bar/UiQuerySearchBar.vue +1 -15
  27. package/lib/components/ui/quick-task-item/UiQuickTaskItem.vue +1 -1
  28. package/lib/components/ui/quick-task-panel/UiQuickTaskPanel.vue +1 -1
  29. package/lib/components/ui/task-item/UiTaskItem.vue +14 -6
  30. package/lib/components/ui/task-list/UiTaskList.vue +1 -1
  31. package/lib/components/ui/text-area/UiTextarea.vue +12 -14
  32. package/lib/components/ui/tree-item-label/UiTreeItemLabel.vue +34 -14
  33. package/lib/components/vif-connection-toggle-modal/VtsVifConnectionToggleModal.vue +43 -0
  34. package/lib/composables/copy.composable.ts +6 -0
  35. package/lib/composables/table/multi-select.composable.md +33 -0
  36. package/lib/layouts/CoreLayout.vue +74 -62
  37. package/lib/locales/cs.json +50 -2
  38. package/lib/locales/de.json +3 -0
  39. package/lib/locales/en.json +63 -2
  40. package/lib/locales/fr.json +63 -2
  41. package/lib/locales/ko.json +2 -0
  42. package/lib/locales/nl.json +132 -1
  43. package/lib/locales/pt.json +1 -1
  44. package/lib/locales/sk.json +50 -2
  45. package/lib/packages/form-validation/custom-rules/ip-addresses.rule.ts +15 -0
  46. package/lib/packages/form-validation/custom-rules/ip.regex.ts +26 -0
  47. package/lib/packages/form-validation/custom-rules/ipv4-or-cidr.rule.ts +2 -3
  48. package/lib/packages/form-validation/index.ts +2 -0
  49. package/lib/packages/hide-permanently/README.md +60 -0
  50. package/lib/packages/hide-permanently/types.ts +3 -0
  51. package/lib/packages/hide-permanently/use-hide-permanently.ts +15 -0
  52. package/lib/packages/overlay/OverlayComponent.vue +18 -0
  53. package/lib/packages/overlay/README.md +300 -0
  54. package/lib/packages/overlay/create-event-handler.ts +73 -0
  55. package/lib/packages/overlay/injection-keys.ts +3 -0
  56. package/lib/packages/overlay/is-thenable.ts +3 -0
  57. package/lib/packages/overlay/symbols.ts +5 -0
  58. package/lib/packages/overlay/types.ts +95 -0
  59. package/lib/packages/overlay/use-overlay-escape.ts +34 -0
  60. package/lib/packages/overlay/use-overlay-store.ts +38 -0
  61. package/lib/packages/overlay/use-overlay-trigger.ts +33 -0
  62. package/lib/packages/overlay/use-overlay.ts +114 -0
  63. package/lib/packages/progress/use-progress.ts +12 -2
  64. package/lib/packages/remote-resource/define-remote-resource.ts +55 -26
  65. package/lib/packages/remote-resource/sse.store.ts +4 -4
  66. package/lib/packages/sidebar/index.ts +2 -0
  67. package/lib/packages/sidebar/sidebar.store.ts +55 -0
  68. package/lib/packages/sidebar/types.ts +21 -0
  69. package/lib/packages/sidebar/use-sidebar-resize.ts +47 -0
  70. package/lib/packages/sidebar/use-sidebar-responsive-expand.ts +19 -0
  71. package/lib/tables/column-definitions/user-name-column.ts +10 -0
  72. package/lib/tables/column-sets/server-columns.ts +2 -2
  73. package/lib/tables/column-sets/user-columns.ts +16 -0
  74. package/lib/types/object.type.ts +9 -1
  75. package/lib/types/task.type.ts +5 -12
  76. package/lib/utils/injection-keys.util.ts +3 -1
  77. package/lib/utils/ip-address.utils.ts +7 -0
  78. package/lib/utils/sr.utils.ts +4 -0
  79. package/package.json +2 -1
  80. package/lib/stores/sidebar.store.ts +0 -79
@@ -1,20 +1,12 @@
1
1
  <template>
2
2
  <div class="core-layout">
3
3
  <header v-if="uiStore.hasUi" class="header">
4
- <slot name="app-logo" />
5
- <UiButtonIcon
6
- v-tooltip="{
7
- content: sidebarStore.isExpanded ? t('action:sidebar-close') : t('action:sidebar-open'),
8
- placement: 'right',
9
- }"
10
- accent="brand"
11
- size="medium"
12
- icon="fa:bars"
13
- class="sidebar-toggle"
14
- :target-scale="1.8"
15
- @click="sidebarStore.toggleExpand()"
16
- />
17
- <slot name="app-header" />
4
+ <div v-if="slots['header-start']" class="header-start">
5
+ <slot name="header-start" />
6
+ </div>
7
+ <div v-if="slots['header-end']" class="header-end">
8
+ <slot name="header-end" />
9
+ </div>
18
10
  </header>
19
11
  <VtsBanner v-if="showBanner" accent="danger">
20
12
  <UiInfo accent="danger">
@@ -27,26 +19,12 @@
27
19
  </template>
28
20
  </VtsBanner>
29
21
  <div class="container">
30
- <template v-if="uiStore.hasUi">
31
- <VtsBackdrop
32
- v-if="sidebarStore.isExpanded && !sidebarStore.isLocked"
33
- @click="sidebarStore.toggleExpand(false)"
34
- />
35
- <VtsLayoutSidebar class="sidebar">
36
- <template #header>
37
- <slot name="sidebar-header" />
38
- </template>
39
- <template #default>
40
- <slot name="sidebar-content" />
41
- </template>
42
- <template #footer>
43
- <slot name="sidebar-footer" />
44
- </template>
45
- </VtsLayoutSidebar>
46
- </template>
22
+ <VtsBackdrop v-if="uiStore.hasUi && showBackdrop" @click="handleBackdropClick()" />
23
+ <slot v-if="uiStore.hasUi && hasLeftSidebar" name="left-sidebar" />
47
24
  <main class="main-container">
48
25
  <slot name="content" />
49
26
  </main>
27
+ <slot v-if="uiStore.hasUi && hasRightSidebar" name="right-sidebar" />
50
28
  </div>
51
29
  </div>
52
30
  </template>
@@ -54,22 +32,36 @@
54
32
  <script lang="ts" setup>
55
33
  import VtsBackdrop from '@core/components/backdrop/VtsBackdrop.vue'
56
34
  import VtsBanner from '@core/components/banner/VtsBanner.vue'
57
- import VtsLayoutSidebar from '@core/components/layout/VtsLayoutSidebar.vue'
58
35
  import UiButton from '@core/components/ui/button/UiButton.vue'
59
- import UiButtonIcon from '@core/components/ui/button-icon/UiButtonIcon.vue'
60
36
  import UiInfo from '@core/components/ui/info/UiInfo.vue'
61
- import { vTooltip } from '@core/directives/tooltip.directive'
62
37
  import { useSseStore } from '@core/packages/remote-resource/sse.store.ts'
63
- import { useSidebarStore } from '@core/stores/sidebar.store'
64
- import { useUiStore } from '@core/stores/ui.store'
38
+ import { useLeftSidebarStore, useRightSidebarStore } from '@core/packages/sidebar'
39
+ import { useUiStore } from '@core/stores/ui.store.ts'
65
40
  import { storeToRefs } from 'pinia'
66
41
  import { computed } from 'vue'
67
42
  import { useI18n } from 'vue-i18n'
68
43
 
44
+ const slots = defineSlots<{
45
+ 'header-start'?(): any
46
+ 'header-end'?(): any
47
+ 'left-sidebar'?(): any
48
+ 'right-sidebar'?(): any
49
+ content(): any
50
+ }>()
51
+
69
52
  const { t } = useI18n()
70
53
 
71
54
  const uiStore = useUiStore()
72
- const sidebarStore = useSidebarStore()
55
+ const leftSidebar = useLeftSidebarStore()
56
+ const rightSidebar = useRightSidebarStore()
57
+
58
+ const hasLeftSidebar = computed(() => !!slots['left-sidebar'])
59
+ const hasRightSidebar = computed(() => !!slots['right-sidebar'])
60
+
61
+ const isLeftOverlaying = computed(() => hasLeftSidebar.value && leftSidebar.isExpanded && !leftSidebar.isLocked)
62
+ const isRightOverlaying = computed(() => hasRightSidebar.value && rightSidebar.isExpanded && !rightSidebar.isLocked)
63
+
64
+ const showBackdrop = computed(() => isLeftOverlaying.value || isRightOverlaying.value)
73
65
 
74
66
  const sseStore = useSseStore()
75
67
 
@@ -80,6 +72,16 @@ const showBanner = computed(() => hasErrorSse.value)
80
72
  function handleRetry() {
81
73
  sseStore.retry()
82
74
  }
75
+
76
+ function handleBackdropClick() {
77
+ if (isLeftOverlaying.value) {
78
+ leftSidebar.toggleExpand(false)
79
+ }
80
+
81
+ if (isRightOverlaying.value) {
82
+ rightSidebar.toggleExpand(false)
83
+ }
84
+ }
83
85
  </script>
84
86
 
85
87
  <style lang="postcss" scoped>
@@ -87,34 +89,44 @@ function handleRetry() {
87
89
  display: flex;
88
90
  height: 100dvh;
89
91
  flex-direction: column;
90
- }
91
92
 
92
- .container {
93
- display: flex;
94
- flex: 1;
95
- min-height: 0;
96
- }
93
+ .container {
94
+ position: relative;
95
+ display: flex;
96
+ flex: 1;
97
+ min-height: 0;
98
+ overflow-x: hidden;
99
+ }
97
100
 
98
- .header {
99
- display: flex;
100
- align-items: center;
101
- height: 5.6rem;
102
- background-color: var(--color-neutral-background-secondary);
103
- border-bottom: 0.1rem solid var(--color-neutral-border);
104
- flex-shrink: 0;
105
- gap: 1.6rem;
106
- padding: 0 1.6rem;
107
- }
101
+ .header {
102
+ display: flex;
103
+ align-items: center;
104
+ height: 5.6rem;
105
+ background-color: var(--color-neutral-background-secondary);
106
+ border-block-end: 0.1rem solid var(--color-neutral-border);
107
+ flex-shrink: 0;
108
+ gap: 1.6rem;
109
+ padding-block: 0;
110
+ padding-inline: 1.6rem;
111
+ }
108
112
 
109
- .sidebar-toggle {
110
- margin-right: auto;
111
- }
113
+ .header-start,
114
+ .header-end {
115
+ display: flex;
116
+ align-items: center;
117
+ gap: 1.6rem;
118
+ }
112
119
 
113
- .main-container {
114
- flex: 1;
115
- overflow: auto;
116
- display: flex;
117
- flex-direction: column;
118
- background-color: var(--color-neutral-background-secondary);
120
+ .header-end {
121
+ margin-inline-start: auto;
122
+ }
123
+
124
+ .main-container {
125
+ flex: 1;
126
+ overflow: auto;
127
+ display: flex;
128
+ flex-direction: column;
129
+ background-color: var(--color-neutral-background-secondary);
130
+ }
119
131
  }
120
132
  </style>
@@ -39,6 +39,7 @@
39
39
  "action:create-network": "Vytvořit síť",
40
40
  "action:create-traffic-rule": "Vytvořit pravidlo pro provoz",
41
41
  "action:create-vdi": "Vytvořit obraz virt. disku",
42
+ "action:create-vif": "Vytvořit virt. síťové rozhraní",
42
43
  "action:delete": "Smazat",
43
44
  "action:delete-filter": "Smazat filtr",
44
45
  "action:delete-group": "Smazat skupinu",
@@ -61,27 +62,34 @@
61
62
  "action:disconnect-n-vifs": "Odpojit 1 virt. síťové rozhraní | Odpojit {n} virt. síťová rozhraní | Odpojit {n} virt. síťových rozhraní",
62
63
  "action:download-bugtools-archive": "Stáhnout archiv s výstupem bugtools",
63
64
  "action:duplicate": "Zduplikovat",
65
+ "action:duplicate-n-vms": "Zduplikovat 1 virt. stroj | Zduplikovat {n} virt. stroje | Zduplikovat {n} virt. strojů",
64
66
  "action:edit": "Upravit",
65
67
  "action:edit-config": "Upravit nastavení",
66
68
  "action:enable-light-mode": "Zapnout světlý režim",
67
69
  "action:export": "Export",
70
+ "action:export-content": "Exportovat obsah",
68
71
  "action:export-n-vms": "Exportovat 1 virt. stroj | Exportovat {n} virt. strojů",
69
72
  "action:export-n-vms-manually": "Exportovat 1 virt. stroj ručně | Exportovat {n} virt. strojů ručně",
70
73
  "action:export-table-to": "Exportovat tabulku do {type}",
74
+ "action:export-vdi": "Exportovat obraz virt. disku",
71
75
  "action:export-vm": "Exportovat virt. stroj | Exportovat virt. stroje",
72
76
  "action:filter": "Filtrovat",
77
+ "action:force-migrate-on-sr": "Vynutit přestěhování na repozitář úložiště",
73
78
  "action:force-reboot": "Vynutit restart",
74
79
  "action:force-shutdown": "Vynutit vypnutí",
75
80
  "action:forget": "Zapomenout",
76
81
  "action:go-back": "Přejít zpět",
77
82
  "action:group": "Skupina",
78
83
  "action:hide": "Skrýt",
84
+ "action:import": "Naimportovat",
85
+ "action:import-export": "Import/Export",
79
86
  "action:install-app": "Nainstalovat {name}",
80
87
  "action:install-guest-tools": "Nainstalovat nástroje do hosta",
81
88
  "action:load-now": "Načíst nyní",
82
89
  "action:log-out": "Odhlásit",
83
90
  "action:migrate": "Přestěhovat",
84
91
  "action:migrate-n-vms": "Přestěhovat 1 virt. stroj | Přestěhovat {n} virt. strojů",
92
+ "action:migrate-vdi-on-sr": "Přestěhovat na repozitář úložiště",
85
93
  "action:move-filters-to-parent-group": "Přesunout filtry do nadřazené skupiny",
86
94
  "action:open": "Otevřít",
87
95
  "action:open-app": "Otevřít {name}",
@@ -152,6 +160,8 @@
152
160
  "allocated-space": "Přidělený prostor",
153
161
  "allow": "Umožnit",
154
162
  "allow-self-signed-ssl": "Je možné že bude třeba ve vámi využívaném prohlížeči povolit samy sebou podepsané SSL certifikáty",
163
+ "allowed-ips": "Umožněné IP adresy",
164
+ "allowed-ips-example": "Například: 192.168.0.1; 2001:db8::1",
155
165
  "and": "A",
156
166
  "any-property": "Jakákoli vlastnost",
157
167
  "api-error-details": "Podrobnosti o chybě API rozhraní",
@@ -220,6 +230,7 @@
220
230
  "build-number": "Číslo sestavení",
221
231
  "by": "Od",
222
232
  "bytes:gi": "GiB",
233
+ "bytes:kbs": "kB/s",
223
234
  "bytes:ki": "KiB",
224
235
  "bytes:mi": "MiB",
225
236
  "cancel": "Storno",
@@ -240,6 +251,7 @@
240
251
  "community": "Komunita",
241
252
  "community-name": "Komunita kolem {name}",
242
253
  "compression": "Komprese",
254
+ "compression-not-available": "Pro repozitáře úložiště ze stejného fondu není komprese k dispozici.",
243
255
  "concurrency": "Souběžnost",
244
256
  "configuration": "Nastavení",
245
257
  "configure-for-protected": "Abyste zajistili ochranu svých virt. strojů, zvažte nastavení {backup-job}",
@@ -282,6 +294,7 @@
282
294
  "creating-new-network": "Vytváření nové sítě",
283
295
  "creating-new-traffic-rule": "Vytvořit nové pravidlo pro provoz",
284
296
  "creating-new-vdi": "Vytváří se nový obraz virt. disku",
297
+ "creating-new-vif": "Vytváření nového virt. síťového rozhraní",
285
298
  "creation-date": "Datum vytvoření",
286
299
  "cron-pattern": "Vzorec plánování (cron)",
287
300
  "current": "Stávající",
@@ -306,6 +319,8 @@
306
319
  "deploy-xoa-status:waiting": "Čeká se až XOA odpoví…",
307
320
  "descending": "sestupně",
308
321
  "description": "Popis",
322
+ "destination-sr": "Cílový repozitář úložiště",
323
+ "destination-sr-mandatory": "Je třeba určit cílový repozitář úložiště.",
309
324
  "device": "Zařízení",
310
325
  "device-config": "Nastavení zařízení",
311
326
  "dhcp": "DHCP",
@@ -332,6 +347,9 @@
332
347
  "documentation-name": "Dokumentace k {name}",
333
348
  "done": "Hotovo",
334
349
  "drop": "Zahodit",
350
+ "duplicate-vm:error-message": "Při duplikování virt. stroje došlo k chybě. Zkontrolujte nastavení (název, repozitář úložiště, kompresi) a zkuste to znovu.",
351
+ "duplicating-vm": "Duplikování virt. stroje",
352
+ "duplication-method": "Metoda duplikace",
335
353
  "duration": "Doba trvání",
336
354
  "empty": "Prázdné",
337
355
  "enabled": "Povoleno",
@@ -352,6 +370,7 @@
352
370
  "failed": "Nezdařilo se",
353
371
  "failure": "Selhání",
354
372
  "fast-clone": "Rychlý klon",
373
+ "fast-clone-available": "Rychlý klon je k dispozici pouze pro zastavené virt. stroje.",
355
374
  "fetching-fresh-data": "Získávání aktuálních údajů",
356
375
  "field:exceeds-max-characters": "Je třeba, aby zadání v kolonce bylo dlouhé nejvýše {max} znaků.",
357
376
  "file": "Soubor",
@@ -369,6 +388,7 @@
369
388
  "free-space": "Volný prostor",
370
389
  "free-space-on-sr": "Volný prostor na repozitáři úložiště",
371
390
  "from-vm": "Od virt. stroje",
391
+ "full-copy": "Úplná kopie",
372
392
  "fullscreen": "Na celou obrazovku",
373
393
  "gateway": "Brána",
374
394
  "general": "Obecné",
@@ -378,6 +398,7 @@
378
398
  "graphics-display": "Grafika a zobrazení",
379
399
  "groups": "Skupiny",
380
400
  "guest-tools": "Nástroje do hosta",
401
+ "gzip": "GZIP",
381
402
  "hardware": "Hardware",
382
403
  "hardware-specifications": "Hardwarové specifikace",
383
404
  "heartbeat-storage-repository": "Repozitář úložiště kontroly stavu",
@@ -412,6 +433,9 @@
412
433
  "interfaces": "Rozhraní",
413
434
  "interrupted": "Přerušeno",
414
435
  "invalid-field": "Neplatný obsah kolonky",
436
+ "invalid-ip-addresses": "Jedna nebo více neplatných IP adres",
437
+ "invalid-mac-address": "Neplatná MAC adresa",
438
+ "invalid-rate-limit": "Omezování rychlosti nemůže být záporné",
415
439
  "ip-address": "IP adresa",
416
440
  "ip-address-info": "Pravidlo je možné uplatnit na jednotlivou IP adresu nebo podsíť (v CIDR formátu). Příklady: 192.168.1.10, nebo 10.20.0.0/16",
417
441
  "ip-address-invalid": "Formát IP adresy není platný.",
@@ -455,6 +479,8 @@
455
479
  "job:create:in-progress": "Probíhá vytváření…",
456
480
  "job:delete:in-progress": "Probíhá mazání…",
457
481
  "job:disconnect:in-progress": "Probíhá odpojování…",
482
+ "job:export:in-progress": "Probíhá export…",
483
+ "job:migrate:in-progress": "Stěhování probíhá…",
458
484
  "job:network-delete:has-n-physical-pif-connected": "Síť má připojené jedno fyzické rozhraní | Síť má připojená {n} fyzická rozhraní | Síť má připojených {n} fyzických rozhraní",
459
485
  "job:network-delete:has-n-vif-attached": "Síť má připojené jedno virtuální rozhraní | Síť má připojená {n} virtuální rozhraní | Síť má připojených {n} virtuálních rozhraní",
460
486
  "job:pbd-plug:missing-pbd": "Žádná fyzická bloková zařízení k připojení",
@@ -474,6 +500,12 @@
474
500
  "job:vbd-disconnect:vbd-disconnected": "Virt. blokové zařízení je odpojeno",
475
501
  "job:vdi-delete:missing-vdi": "Žádné virt. disky ke smazání",
476
502
  "job:vdi-delete:vbd-attached": "Není možné smazat virt. disk, ke kterému je připojené virtuální blokové zařízení",
503
+ "job:vdi-detach:in-progress": "Probíhá rušení přiložení…",
504
+ "job:vdi-export:format-required": "Je vyžadován formát exportu obrazu virt. disku",
505
+ "job:vdi-export:missing-vdi": "Žádný obraz virt. disku k exportu",
506
+ "job:vdi-migrate:in-progress": "Probíhá stěhování…",
507
+ "job:vdi-migrate:missing-sr": "Je zapotřebí repozitář úložiště",
508
+ "job:vdi-migrate:missing-vdi": "Nevybrán žádný obraz virt. disku",
477
509
  "job:vif-connect:missing-vif": "Žádná virt. síťová rozhraní k připojení",
478
510
  "job:vif-connect:vif-already-connected": "Virt. síťové rozhraní už je připojeno",
479
511
  "job:vif-delete:blocked-operation": "Mazání virt. síťového rozhraní je blokováno",
@@ -657,6 +689,8 @@
657
689
  "new-vdi:add": "Přidat nový obraz virt. disku",
658
690
  "new-vdi:error-message": "Při přidávání obrazu virt. disku došlo k chybě. Zkontrolujte nastavení (název, repozitář úložiště, přidělený prostor) a zkuste to znovu.",
659
691
  "new-vif": "Nové virt. rozhraní",
692
+ "new-vif:add": "Přidat nové virt. síťové rozhraní",
693
+ "new-vif:error-message": "Došlo k chybě při vytváření nového virt. síťového rozhraní. Zkontrolujte nastavení a zkuste to znovu.",
660
694
  "new-vm": "Nový virt. stroj",
661
695
  "new-vm:add": "Přidat nový virt. stroj",
662
696
  "new-vm:description": "Popis virt. stroje",
@@ -725,6 +759,7 @@
725
759
  "operation:clean-reboot": "Restartování",
726
760
  "operation:clean-shutdown": "Vypínání",
727
761
  "operation:destroy": "Mazání",
762
+ "operation:duplicate": "Duplikování",
728
763
  "operation:force-reboot": "Vynucené restartování",
729
764
  "operation:force-shutdown": "Vynucené vypínání",
730
765
  "operation:pause": "Pozastavování",
@@ -741,6 +776,7 @@
741
776
  "other": "Ostatní",
742
777
  "other-properties": "Ostatní vlastnosti",
743
778
  "other-settings": "Ostatní nastavení",
779
+ "ova": "OVA",
744
780
  "page-not-found": "Tato stránka není k nalezení…",
745
781
  "page-please-wait": "Držte se pevně, astronaute! Tato stránka se připravuje odstartovat.{newline}Jen ještě zarovnáváme trysky a kalibrujeme systémy. Nebude to už dlouho trvat, zůstaňte na příjmu!",
746
782
  "pagination:all": "Vše",
@@ -885,8 +921,9 @@
885
921
  "see-details": "Viz podrobnosti",
886
922
  "select-compression": "Vyberte kompresi",
887
923
  "select-destination-host": "Vyberte cílového hostitele",
924
+ "select-format": "Vyberte formát",
888
925
  "select-host": "Vybrat hostitele",
889
- "select-to-see-details": "Podrobnosti o prvku získáte jeho označením",
926
+ "select-to-see-details": "Podrobnosti si zobrazíte kliknutím na {icon}",
890
927
  "selected-vms-in-execution": "Některé z vybraných virt. strojů jsou spuštěné",
891
928
  "self-signed-certificates": "Samy sebou podepsané certifikáty",
892
929
  "send-us-feedback": "Poskytnout nám zpětnou vazbu",
@@ -927,6 +964,7 @@
927
964
  "sr-disconnect-info-pool-mixed": "Lokální repozitáře úložiště budou odpojeny od svých příslušných hostitelů. Sdílené repozitáře budou odpojené od všech hostitelů v tomto fondu.",
928
965
  "sr-disconnect-info-pool-shared": "Repozitář úložiště bude odpojen od {hostsCount} hostitelů v tomto fondu. | Každý sdílený repozitář úložiště bude odpojen od všech hostitelů v tomto fondu.",
929
966
  "sr-disconnect-title": "Chystáte se odpojit 1 repozitář úložiště | Chystáte se odpojit {n} repozitáře úložiště | Chystáte se odpojit {n} repozitářů úložiště",
967
+ "sr-required": "Je zapotřebí repozitář úložiště.",
930
968
  "ssh-account": "SSH účet",
931
969
  "ssh-key": "SSH klíč",
932
970
  "ssh-login": "SSH přihlašovací jméno",
@@ -1022,6 +1060,8 @@
1022
1060
  "traffic-rule": "Pravidlo pro provoz",
1023
1061
  "traffic-rule-delete-warning": "Tuto akci nelze vzít zpět. Označené pravidlo pro provoz bude nevratně smazáno.",
1024
1062
  "traffic-rules": "Pravidla pro provoz",
1063
+ "traffic-rules:format-warning": "Chyba nastavení: Pravidla pro provoz nejsou v očekávaném formátu. {check-doc} ohledně toho, jak je převést.",
1064
+ "traffic-rules:format-warning:check-doc": "Podívejte se do neaktuálnější dokumentace",
1025
1065
  "traffic-rules:info-message": "Implementování pořadí pravidel pro provoz teprve probíhá. Chování může být nebezpečné.",
1026
1066
  "traffic-rules:no-traffic-rules-detected": "Nezjištěna žádná pravidla pro provoz",
1027
1067
  "transfer-size": "Objem přenosu",
@@ -1038,7 +1078,10 @@
1038
1078
  "unable-to-create-new-network": "Nebylo možné vytvořit novou síť",
1039
1079
  "unable-to-create-new-traffic-rule": "Nebylo možné vytvořit nové pravidlo pro provoz",
1040
1080
  "unable-to-create-new-vdi": "Nebylo možné vytvořit nový obraz virt. disku",
1081
+ "unable-to-create-new-vif": "Nebylo možné vytvořit nové virt. síťové rozhraní",
1041
1082
  "unable-to-delete-network": "Síť nebylo možné smazat",
1083
+ "unable-to-duplicate-vm": "Nebylo možné zduplikovat virt. stroj",
1084
+ "unable-to-migrate-vdi": "Nebylo možné přestěhovat obraz virt. disku na repozitář úložiště",
1042
1085
  "unknown": "Neznámé",
1043
1086
  "unlocked": "Odemčeno",
1044
1087
  "unnamed": "Bez názvu",
@@ -1072,6 +1115,7 @@
1072
1115
  "vdi-in-use": "Obraz virt. disku už je využíván",
1073
1116
  "vdi-name": "Název obrazu virt. disku",
1074
1117
  "vdi-not-attached-to-vm": "Nepřipojen žádný virt. stroj",
1118
+ "vdi-on-different-sr-warning": "Tento repozitář úložiště je lokální pro hostitele, který nedrží ostatní disky virt. stroje. Virt. stroj nebude moci nastartovat dokud se nebudou všechny jeho disky nacházet na stejném hostiteli nebo na sdíleném úložišti.",
1075
1119
  "vdi-snapshot-source": "Zdroj obrazu virt. disku",
1076
1120
  "vdi-snpashot-time": "Datum zachycení stavu",
1077
1121
  "vdi-throughput": "Objemy čtení/zápisů na virt. disky",
@@ -1102,6 +1146,8 @@
1102
1146
  "vm-is-running": "Virt. stroj je spuštěný",
1103
1147
  "vm-limit-topology": "Limit topologie virt. stroje",
1104
1148
  "vm-management": "Správa virt. stroje",
1149
+ "vm-name": "Název virt. stroje",
1150
+ "vm-name-required": "Je zapotřebí název virt. stroje.",
1105
1151
  "vm-not-running": "Virt. stroj není spuštěný",
1106
1152
  "vm-off": "Tento virtuální stroj je vypnutý.",
1107
1153
  "vm-protected-deletion": "Tento virt. stroje je v tuto chvíli chráněný proti smazání.",
@@ -1156,5 +1202,7 @@
1156
1202
  "xoa-password-confirm-different": "Heslo do XOA nebylo zadáno dvakrát stejně",
1157
1203
  "xoa-ssh-account": "Účet pro SSH přístup do XOA",
1158
1204
  "xoa-ssh-password-confirm-different": "Heslo pro SSH nebylo zadáno dvakrát stejně",
1159
- "you-are-currently-on": "V tuto chvíli se nacházíte na: {0}"
1205
+ "xva": "XVA",
1206
+ "you-are-currently-on": "V tuto chvíli se nacházíte na: {0}",
1207
+ "zstd": "ZSTD"
1160
1208
  }
@@ -15,6 +15,7 @@
15
15
  "action:add-network-in-xo-5": "Netzwerk in XO-5 hinzufügen",
16
16
  "action:add-sort": "Sortierung hinzufügen",
17
17
  "action:add-vifs-in-xo-5": "VIF in XO-5 hinzufügen",
18
+ "action:attach": "Beilage",
18
19
  "action:boot-vm": "Starte VM",
19
20
  "action:change-state": "Energiezustand ändern",
20
21
  "action:close": "Schließen",
@@ -32,6 +33,8 @@
32
33
  "action:create-bonded-network": "Gebündelten Netzwerk erstellen",
33
34
  "action:create-internal-network": "Internen Netzwerk erstellen",
34
35
  "action:create-network": "Netzwerk erstellen",
36
+ "action:create-traffic-rule": "Traffic-Regel erstellen",
37
+ "action:create-vdi": "VDI erstellen",
35
38
  "action:delete": "Löschen",
36
39
  "action:delete-filter": "Filter löschen",
37
40
  "action:delete-group": "Gruppe löschen",