@xen-orchestra/web-core 0.55.0 → 0.56.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 (52) hide show
  1. package/lib/components/card-object-title/VtsCardObjectTitle.vue +36 -0
  2. package/lib/components/code-snippet/VtsCodeSnippet.vue +11 -5
  3. package/lib/components/drawer/VtsDrawer.vue +5 -1
  4. package/lib/components/drawer/VtsDrawerButton.vue +4 -3
  5. package/lib/components/drawer/VtsDrawerConfirmButton.vue +4 -2
  6. package/lib/components/icon/VtsIcon.vue +3 -1
  7. package/lib/components/layout/VtsContentSidePanel.vue +41 -0
  8. package/lib/components/menu/VtsActionsMenu.vue +37 -3
  9. package/lib/components/operation-card/VtsOperationCard.vue +2 -1
  10. package/lib/components/panel/VtsPanel.vue +80 -0
  11. package/lib/components/panel/VtsSidePanel.vue +140 -0
  12. package/lib/components/select/VtsSelect.vue +1 -0
  13. package/lib/components/state-hero/VtsStateHero.vue +9 -17
  14. package/lib/components/table/VtsTable.vue +2 -1
  15. package/lib/components/table/cells/VtsActionCell.vue +7 -0
  16. package/lib/components/table/cells/VtsLinkCell.vue +3 -1
  17. package/lib/components/tree/VtsTreeItem.vue +9 -3
  18. package/lib/components/tree/VtsTreeList.vue +6 -3
  19. package/lib/components/tree/VtsTreeLoadingItem.vue +3 -3
  20. package/lib/components/ui/head-bar/UiHeadBar.vue +1 -1
  21. package/lib/components/ui/input/UiInput.vue +3 -1
  22. package/lib/components/ui/link/UiLink.vue +3 -1
  23. package/lib/components/ui/panel/UiPanel.vue +7 -24
  24. package/lib/components/ui/tree-item-label/UiTreeItemLabel.vue +1 -1
  25. package/lib/composables/table-state.composable.ts +1 -1
  26. package/lib/icons/action-icons.ts +14 -0
  27. package/lib/locales/cs.json +56 -1
  28. package/lib/locales/de.json +3 -2
  29. package/lib/locales/en.json +22 -2
  30. package/lib/locales/es.json +11 -1
  31. package/lib/locales/fa.json +0 -1
  32. package/lib/locales/fr.json +22 -2
  33. package/lib/locales/it.json +0 -1
  34. package/lib/locales/ko.json +2 -0
  35. package/lib/locales/nl.json +2 -1
  36. package/lib/locales/pt-BR.json +0 -1
  37. package/lib/locales/pt.json +0 -1
  38. package/lib/locales/ru.json +0 -1
  39. package/lib/locales/sk.json +56 -1
  40. package/lib/locales/sv.json +3 -2
  41. package/lib/locales/uk.json +0 -1
  42. package/lib/locales/zh-Hans.json +79 -4
  43. package/lib/packages/remote-resource/define-remote-resource.ts +64 -29
  44. package/lib/packages/tree/types.ts +6 -0
  45. package/lib/packages/tree/use-tree.ts +38 -37
  46. package/lib/stores/panel.store.ts +56 -5
  47. package/lib/tables/column-definitions/action-column.ts +21 -9
  48. package/lib/tables/column-sets/vm-columns.ts +2 -3
  49. package/lib/types/state-hero.type.ts +19 -0
  50. package/lib/types/vue-virtual-scroller.d.ts +8 -2
  51. package/lib/utils/injection-keys.util.ts +1 -1
  52. package/package.json +1 -1
@@ -3,7 +3,7 @@
3
3
  <div class="label-placeholder">
4
4
  <div class="link-placeholder">
5
5
  <template v-if="depth > 1">
6
- <VtsTreeLine v-for="i in depth - 1" :key="i" :right="i === depth - 1" full-height />
6
+ <VtsTreeLine v-for="i in depth - 1" :key="i" :right="i === depth - 1" />
7
7
  </template>
8
8
  <VtsIcon :name="icon" size="medium" />
9
9
  <div class="loader">&nbsp;</div>
@@ -17,13 +17,13 @@ import VtsIcon from '@core/components/icon/VtsIcon.vue'
17
17
  import VtsTreeLine from '@core/components/tree/VtsTreeLine.vue'
18
18
  import type { IconName } from '@core/icons'
19
19
  import { IK_TREE_LIST_DEPTH } from '@core/utils/injection-keys.util'
20
- import { inject } from 'vue'
20
+ import { inject, ref } from 'vue'
21
21
 
22
22
  defineProps<{
23
23
  icon: IconName
24
24
  }>()
25
25
 
26
- const depth = inject(IK_TREE_LIST_DEPTH, 0)
26
+ const depth = inject(IK_TREE_LIST_DEPTH, ref(0))
27
27
  </script>
28
28
 
29
29
  <style lang="postcss" scoped>
@@ -37,7 +37,7 @@ const slots = defineSlots<{
37
37
 
38
38
  <style lang="postcss" scoped>
39
39
  .ui-head-bar {
40
- min-height: 5.6rem;
40
+ min-height: 6rem;
41
41
  padding: 0.8rem 1.6rem;
42
42
  display: flex;
43
43
  gap: 1.6rem;
@@ -52,12 +52,14 @@ const {
52
52
  required,
53
53
  disabled,
54
54
  id,
55
+ detached,
55
56
  } = defineProps<{
56
57
  accent: InputAccent
57
58
  id?: string
58
59
  required?: boolean
59
60
  disabled?: boolean
60
61
  readonly?: boolean
62
+ detached?: boolean
61
63
  type?: InputType
62
64
  icon?: IconName
63
65
  rightIcon?: IconName
@@ -82,7 +84,7 @@ const attrs = useAttrs()
82
84
 
83
85
  const inputRef = ref<HTMLInputElement>()
84
86
 
85
- const wrapperController = inject(IK_INPUT_WRAPPER_CONTROLLER, undefined)
87
+ const wrapperController = detached ? undefined : inject(IK_INPUT_WRAPPER_CONTROLLER, undefined)
86
88
 
87
89
  const accent = useMapper<LabelAccent, InputAccent>(
88
90
  () => wrapperController?.labelAccent,
@@ -1,7 +1,7 @@
1
1
  <!-- v6 -->
2
2
  <template>
3
3
  <component :is="component" :class="classes" class="ui-link" v-bind="attributes">
4
- <VtsIcon :name="icon" size="medium" />
4
+ <VtsIcon :name="icon" :busy :busy-tooltip size="medium" />
5
5
  <slot />
6
6
  <VtsIcon v-if="attributes.target === '_blank'" name="action:open-in-new-tab" size="medium" class="external-icon" />
7
7
  <VtsIcon v-if="isPrimary" v-tooltip="primaryTooltip" name="status:primary-circle" size="medium" />
@@ -19,6 +19,8 @@ const props = defineProps<
19
19
  LinkOptions & {
20
20
  size: 'small' | 'medium'
21
21
  icon?: IconName
22
+ busy?: boolean
23
+ busyTooltip?: string
22
24
  isPrimary?: boolean
23
25
  primaryTooltip?: string
24
26
  }
@@ -1,6 +1,6 @@
1
- <!-- v2 -->
1
+ <!-- v5 -->
2
2
  <template>
3
- <div class="ui-panel" :class="{ error, 'mobile-drawer': uiStore.isSmall }">
3
+ <div class="ui-panel" :class="{ error }">
4
4
  <div v-if="slots.header" class="header">
5
5
  <slot name="header" />
6
6
  </div>
@@ -11,8 +11,6 @@
11
11
  </template>
12
12
 
13
13
  <script setup lang="ts">
14
- import { useUiStore } from '@core/stores/ui.store'
15
-
16
14
  defineProps<{
17
15
  error?: boolean
18
16
  }>()
@@ -21,31 +19,25 @@ const slots = defineSlots<{
21
19
  default(): any
22
20
  header?(): any
23
21
  }>()
24
-
25
- const uiStore = useUiStore()
26
22
  </script>
27
23
 
28
24
  <style scoped lang="postcss">
29
25
  .ui-panel {
30
- position: sticky;
31
- top: 0;
32
26
  display: flex;
33
27
  flex-direction: column;
34
28
  border-inline-start: 0.1rem solid var(--color-neutral-border);
29
+ border-block-end: 0.1rem solid var(--color-neutral-border);
30
+ border-end-start-radius: 0.8rem;
35
31
  background-color: var(--color-neutral-background-secondary);
36
32
 
37
- &:not(.mobile-drawer) {
38
- min-height: calc(100dvh - 16rem);
39
- }
40
-
41
33
  .header {
34
+ flex-shrink: 0;
35
+ padding: 0.4rem 1.6rem;
42
36
  border-bottom: 0.1rem solid var(--color-neutral-border);
43
37
  background-color: var(--color-neutral-background-primary);
44
38
  display: flex;
45
- justify-content: flex-end;
46
39
  align-items: center;
47
40
  gap: 1.6rem;
48
- padding: 0.4rem 1.6rem;
49
41
  }
50
42
 
51
43
  .content {
@@ -53,20 +45,11 @@ const uiStore = useUiStore()
53
45
  flex-direction: column;
54
46
  padding: 0.8rem;
55
47
  gap: 0.8rem;
56
- }
57
-
58
- &.mobile-drawer {
59
- .content {
60
- overflow: auto;
61
- }
48
+ scrollbar-width: thin;
62
49
  }
63
50
 
64
51
  &.error {
65
52
  background-color: var(--color-danger-background-selected);
66
-
67
- .content {
68
- padding-top: 15rem;
69
- }
70
53
  }
71
54
  }
72
55
  </style>
@@ -72,7 +72,7 @@ const hasToggle = inject(IK_TREE_ITEM_HAS_CHILDREN, ref(false))
72
72
 
73
73
  const isExpanded = inject(IK_TREE_ITEM_EXPANDED, ref(true))
74
74
 
75
- const depth = inject(IK_TREE_LIST_DEPTH, 0)
75
+ const depth = inject(IK_TREE_LIST_DEPTH, ref(0))
76
76
  </script>
77
77
 
78
78
  <style lang="postcss" scoped>
@@ -1,5 +1,5 @@
1
- import type { StateHeroType } from '@core/components/state-hero/VtsStateHero.vue'
2
1
  import type { TableState } from '@core/components/table/VtsTable.vue'
2
+ import type { StateHeroType } from '@core/types/state-hero.type.ts'
3
3
  import { computed, toValue, type MaybeRefOrGetter } from 'vue'
4
4
  import { useI18n } from 'vue-i18n'
5
5
 
@@ -4,9 +4,11 @@ import { faCopy, faSquare as checkboxEmpty, type IconDefinition } from '@fortawe
4
4
  import {
5
5
  faAdd,
6
6
  faArrowCircleRight,
7
+ faArrowDownLong,
7
8
  faArrowRight,
8
9
  faArrowRotateLeft,
9
10
  faArrowRotateRight,
11
+ faArrowUpLong,
10
12
  faArrowUpRightFromSquare,
11
13
  faBan,
12
14
  faBars,
@@ -146,6 +148,18 @@ export const actionIcons = defineIconPack({
146
148
  color: 'var(--color-neutral-txt-primary)',
147
149
  rotate: 90,
148
150
  },
151
+ 'import-export': [
152
+ {
153
+ icon: faArrowUpLong,
154
+ color: 'var(--color-neutral-txt-primary)',
155
+ translate: [-5, 0],
156
+ },
157
+ {
158
+ icon: faArrowDownLong,
159
+ color: 'var(--color-neutral-txt-primary)',
160
+ translate: [5, 0],
161
+ },
162
+ ],
149
163
  reboot: constructIcon(faArrowRotateRight),
150
164
  'force-reboot': [
151
165
  constructIcon(faArrowRotateRight),
@@ -22,6 +22,10 @@
22
22
  "action:close": "Zavřít",
23
23
  "action:connect": "Připojit",
24
24
  "action:connect-another-pool": "Připojit další fond",
25
+ "action:connect-n": "Připojit {n}",
26
+ "action:connect-n-srs": "Připojit 1 repozitář úložiště | Připojit {n} repozitáře úložiště | Připojit {n} repozitářů úložiště",
27
+ "action:connect-n-vbds": "Připojit 1 virtuální blokové zařízení | Připojit {n} bloková zařízení | Připojit {n} blokových zařízení",
28
+ "action:connect-n-vdis": "Připojit 1 obraz virt. disku | Připojit {n} obrazy virt. disků | Připojit {n} obrazů virt. disků",
25
29
  "action:connect-n-vifs": "Připojit 1 virt. síťové rozhraní | Připojit {n} síťová rozhraní | Připojit {n} síťových rozhraní",
26
30
  "action:connect-pool": "Připojit fond",
27
31
  "action:copy": "Zkopírovat",
@@ -40,12 +44,20 @@
40
44
  "action:delete-group": "Smazat skupinu",
41
45
  "action:delete-n-networks": "Smazat 1 síť | Smazat {n} sítě | Smazat {n} sítí",
42
46
  "action:delete-n-snapshots": "Smazat 1 zachycený stav | Smazat {n} zachycené stavy | Smazat {n} zachycených stavů",
47
+ "action:delete-n-srs": "Smazat 1 repozitář úložiště | Smazat {n} repozitáře úložiště | Smazat {n} repozitářů úložiště",
48
+ "action:delete-n-traffic-rules": "Smazat 1 pravidlo pro provoz | Smazat {n} pravidla pro provoz | Smazat {n} pravidel pro provoz",
43
49
  "action:delete-n-vdis": "Smazat 1 virt. disk | Smazat {n} virt. disky | Smazat {n} virt. disků",
44
50
  "action:delete-n-vifs": "Smazat 1 virtuální rozhraní | Smazat {n} virtuální rozhraní | Smazat {n} virtuálních rozhraní",
45
51
  "action:delete-n-vms": "Smazat 1 virt. stroj | Smazat {n} virt. strojů",
46
52
  "action:deploy": "Nasadit",
47
53
  "action:deploy-xoa": "Nasadit XOA",
54
+ "action:detach-n-vdis": "Zrušit přiložení 1 obrazu virt. disku | Zrušit přiložení {n} obrazů virt. disků",
55
+ "action:detach-vdi": "Zrušit přiložení obrazu virt. disku",
48
56
  "action:disconnect": "Odpojit",
57
+ "action:disconnect-n": "Odpojit {n}",
58
+ "action:disconnect-n-srs": "Odpojit 1 repozitář úložiště | Odpojit {n} repozitáře úložiště | Odpojit {n} repozitářů úložiště",
59
+ "action:disconnect-n-vbds": "Odpojit 1 virtuální blokové zařízení | Odpojit {n} virtuální bloková zařízení | Odpojit {n} virtuálních blokových zařízení",
60
+ "action:disconnect-n-vdis": "Odpojit 1 obraz virt. disku | Odpojit {n} obrazy virt. disků | Odpojit {n} obrazů virt. disků",
49
61
  "action:disconnect-n-vifs": "Odpojit 1 virt. síťové rozhraní | Odpojit {n} virt. síťová rozhraní | Odpojit {n} virt. síťových rozhraní",
50
62
  "action:download-bugtools-archive": "Stáhnout archiv s výstupem bugtools",
51
63
  "action:duplicate": "Zduplikovat",
@@ -119,6 +131,7 @@
119
131
  "admin-login": "Přihlašovací jméno správce",
120
132
  "admin-password": "Heslo správce",
121
133
  "admin-password-confirm": "Potvrzení hesla správce",
134
+ "administration": "Správa",
122
135
  "affinity-host": "Určený hostitel",
123
136
  "alarm": "Výstraha",
124
137
  "alarm-type:cpu_usage": "Vytížení procesoru překračuje @:n-percent",
@@ -193,7 +206,6 @@
193
206
  "backups:vms-protection:active-protected": "V alespoň 1 aktivní úloze a chráněno",
194
207
  "backups:vms-protection:active-unprotected": "V alespoň jedné aktivní úloze ale zatím nechráněno",
195
208
  "backups:vms-protection:no-active-job": "V žádné aktivní úloze",
196
- "backups:vms-protection:no-job": "Žádné úloze",
197
209
  "backups:vms-protection:protected": "V alespoň 1 úloze a chráněno",
198
210
  "backups:vms-protection:tooltip": "Virt. stroj je chráněn, pokud se nachází v zálohovací úloze, která má zapnuté pravidelné spouštění a její poslední vykonání bylo úspěšné",
199
211
  "backups:vms-protection:unprotected": "V alespoň 1 úloze, ale zatím nechráněno",
@@ -315,6 +327,7 @@
315
327
  "disk-space": "Prostor na disku",
316
328
  "dns": "DNS",
317
329
  "do-you-have-needs": "Něco potřebujete a/nebo očekáváte? Dejte nám vědět",
330
+ "do-you-really-want-to-leave-this-page?": "Stále ještě probíhá nasazování některých změn. Opravdu chcete tuto stránku opustit?",
318
331
  "documentation": "Dokumentace",
319
332
  "documentation-name": "Dokumentace k {name}",
320
333
  "done": "Hotovo",
@@ -354,6 +367,7 @@
354
367
  "form:warning:out-of-range": "Mělo by být z rozmezí {min} až {max}",
355
368
  "format": "Formát",
356
369
  "free-space": "Volný prostor",
370
+ "free-space-on-sr": "Volný prostor na repozitáři úložiště",
357
371
  "from-vm": "Od virt. stroje",
358
372
  "fullscreen": "Na celou obrazovku",
359
373
  "gateway": "Brána",
@@ -362,6 +376,7 @@
362
376
  "gpu": "GPU",
363
377
  "gpus": "Grafické/výpočetní akcelerátory",
364
378
  "graphics-display": "Grafika a zobrazení",
379
+ "groups": "Skupiny",
365
380
  "guest-tools": "Nástroje do hosta",
366
381
  "hardware": "Hardware",
367
382
  "hardware-specifications": "Hardwarové specifikace",
@@ -442,7 +457,15 @@
442
457
  "job:disconnect:in-progress": "Probíhá odpojování…",
443
458
  "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í",
444
459
  "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
+ "job:pbd-plug:missing-pbd": "Žádná fyzická bloková zařízení k připojení",
461
+ "job:pbd-plug:pbd-connected": "Jedno nebo více fyzických blokových zařízení už je připojeno",
462
+ "job:pbd-unplug:missing-pbd": "Žádná fyzická bloková zařízení k odpojení",
463
+ "job:pbd-unplug:pbd-disconnected": "Jedno nebo více fyzyckých blokových zařízení už je odpojeno",
445
464
  "job:snapshot-delete:missing-snapshot": "Žádné zachycené stavy ke smazání",
465
+ "job:sr-connect:missing-sr": "Žádné repozitáře úložiště k připojení",
466
+ "job:sr-delete:missing-sr": "Žádné repozitáře úložiště ke smazání",
467
+ "job:sr-disconnect:missing-sr": "Žádné repozitáře úložiště k odpojení",
468
+ "job:traffic-rule-delete:missing-rule": "Nevybráno žádné pravidlo pro provoz",
446
469
  "job:vbd-connect:missing-vbd": "Žádná virt. bloková zařízení k připojení",
447
470
  "job:vbd-connect:vbd-already-connected": "Virt. blokové zařízení už je připojeno",
448
471
  "job:vbd-delete:missing-vbd": "Žádná virtuální bloková zařízení ke smazání",
@@ -524,6 +547,7 @@
524
547
  "last-run-number": "Poslední běh č. {n}",
525
548
  "last-snapshot": "Poslední zachycený stav",
526
549
  "last-week": "Uplynulý týden",
550
+ "ldap-auth-providers": "Poskytovatelé LDAP/ověřování",
527
551
  "learn-more": "Zjistit více",
528
552
  "leave-page-safely": "Tuto stránku je možné zavřít (nic to neovlivní).",
529
553
  "lets-go!": "Pojďme!",
@@ -553,6 +577,7 @@
553
577
  "master": "Hlavní hostitel",
554
578
  "maximum-dynamic-memory": "Dynamické přidělované paměti nejvýše",
555
579
  "maximum-static-memory": "Staticky přidělené paměti nejvýše",
580
+ "maximum-vcpu": "Nejvýše virt. procesorů",
556
581
  "memory": "Paměť",
557
582
  "memory-usage": "Využití paměti",
558
583
  "merge-backups-synchronously": "Sloučit zálohy synchronně",
@@ -593,8 +618,11 @@
593
618
  "n-percent": "{n}%",
594
619
  "n-selected-of": "{count} vybráno z {total} objektů",
595
620
  "n-snapshots": "1 zachycený stav | {n} zachycené stavy | {n} zachycených stavů",
621
+ "n-srs": "1 repozitář úložiště | {n} repozitáře úložiště | {n} repozitářů úložiště",
596
622
  "n-subtasks": "1 podúloha | {n} podúlohy | {n} podúloh",
623
+ "n-traffic-rules": "1 pravidlo pro provoz | {n} pravidla pro provoz | {n} pravidel pro provoz",
597
624
  "n-vbds": "1 virt. blokové zařízení | {n} virt. bloková zařízení | {n} virt. blokových zařízení",
625
+ "n-vcpus": "1 virt. procesor | {n} virt. procesory | {n} virt. procesorů",
598
626
  "n-vdis": "1 virt. disk | {n} virt. disky | {n} virt. disků",
599
627
  "n-vifs": "1 virt. síťové rozhraní | {n} virt. síťová rozhraní | {n} virt. síťových rozhraní",
600
628
  "n-vms": "1 virt. stroj | {n} virt. strojů",
@@ -816,6 +844,7 @@
816
844
  "read": "Čtení",
817
845
  "read-only": "Pouze pro čtení",
818
846
  "reboot-blocked": "Restart blokován",
847
+ "reboot-vm-internal-shutdown": "Restartovat virt. stroj během interního vypnutí",
819
848
  "receive": "Přijmout",
820
849
  "relative-time:day": "1 den | {n} dnů",
821
850
  "relative-time:future": "V {str}",
@@ -840,6 +869,7 @@
840
869
  "resources-overview": "Přehled prostředků",
841
870
  "rest-api": "REST API",
842
871
  "retry": "Zkusit znovu",
872
+ "roles": "Role",
843
873
  "root-by-default": "Výchozí je „root“.",
844
874
  "rule-type": "Typ pravidla",
845
875
  "run": "Spustit",
@@ -875,6 +905,7 @@
875
905
  "snapshot-mode": "Režim zachyceného stavu",
876
906
  "snapshot-revert-snapshot-before": "Pořídit zachycený stav virt. stroje před vrácením ke staršímu",
877
907
  "snapshot-revert-warning": "Toto virt. stroj obnoví do stavu ve vybraném zachyceném stavu. Jakékoli změny odtehdy (data, nastavení a stav disku) budou ztracena. Tuto akci nelze vzít zpět.",
908
+ "snapshot-vdis": "Obrazy virt. disků zachyceného stavu",
878
909
  "snapshots": "Zachycené stavy",
879
910
  "sockets-with-cores-per-socket": "{nSockets} patic × {nCores} jader/patici",
880
911
  "software": "Software",
@@ -885,6 +916,17 @@
885
916
  "speed": "Rychlost",
886
917
  "speed-limit": "Nastavené omezení využívání přenosové rychlosti",
887
918
  "sr": "Repoz. úložiště",
919
+ "sr-connect-info-host": "Repozitář úložiště bude připojen k tomuto hostiteli. | Vybrané repozitáře úložiště budou připojené k tomuto hostiteli.",
920
+ "sr-connect-info-pool-local": "Repozitář úložiště bude připojen k tomuto hostiteli. | Každý repozitář úložiště bude připojen ke svému vlastnímu hostiteli.",
921
+ "sr-connect-info-pool-mixed": "Lokální repozitáře úložiště budou připojené ke svým příslušným hostitelům. Sdílené repozitáře budou připojené ke všem hostitelům v tomto fondu.",
922
+ "sr-connect-info-pool-shared": "Repozitář úložiště bude připojen k {hostsCount} hostitelům v tomto fondu. | Každý sdílený repozitář úložiště bude připojen ke všem hostitelům v tomto fondu.",
923
+ "sr-connect-title": "Chystáte se připojit 1 repozitář úložiště | Chystáte se připojit {n} repozitáře úložiště | Chystáte se připojit {n} repozitářů úložiště",
924
+ "sr-delete-info": "Tato akce nevratně smaže repozitář úložiště a veškerá data na něm uložená. Tuto akci nelze vzít zpět. | Veškeré vybrané repozitáře úložiště a data, které obsahují, budou nevratně smazány. Tuto akci nelze vzít zpět – postupujte obezřetně.",
925
+ "sr-disconnect-info-host": "Repozitář úložiště bude odpojen od tohoto hostitele. | Vybrané repozitáře úložiště budou odpojené od tohoto hostitele.",
926
+ "sr-disconnect-info-pool-local": "Repozitář úložiště bude odpojen od svého hostitele. | Každý repozitář úložiště bude odpojen od svého vlastního hostitele.",
927
+ "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
+ "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
+ "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ě",
888
930
  "ssh-account": "SSH účet",
889
931
  "ssh-key": "SSH klíč",
890
932
  "ssh-login": "SSH přihlašovací jméno",
@@ -978,11 +1020,13 @@
978
1020
  "total-used": "Celkem využito",
979
1021
  "total-used:": "Celkem využito:",
980
1022
  "traffic-rule": "Pravidlo pro provoz",
1023
+ "traffic-rule-delete-warning": "Tuto akci nelze vzít zpět. Označené pravidlo pro provoz bude nevratně smazáno.",
981
1024
  "traffic-rules": "Pravidla pro provoz",
982
1025
  "traffic-rules:info-message": "Implementování pořadí pravidel pro provoz teprve probíhá. Chování může být nebezpečné.",
983
1026
  "traffic-rules:no-traffic-rules-detected": "Nezjištěna žádná pravidla pro provoz",
984
1027
  "transfer-size": "Objem přenosu",
985
1028
  "translation-tool": "Nástroj pro překládání",
1029
+ "treeview": "Stromové zobrazení",
986
1030
  "trigger": "Spouštěč",
987
1031
  "type": "Typ",
988
1032
  "unable-to-attach-vdi": "Obraz virt. disku nebylo možné připojit",
@@ -1009,16 +1053,27 @@
1009
1053
  "used-space": "Využitý prostor",
1010
1054
  "used-space-on-sr": "Použitý prostor na repozitáři úložiště",
1011
1055
  "user-config": "Nastavení uživatele",
1056
+ "user-management": "Správa uživatelů",
1012
1057
  "username": "Uživatelské jméno",
1058
+ "users": "Uživatelé",
1013
1059
  "uuid": "UUID",
1014
1060
  "vcpu": "virt. procesor",
1061
+ "vcpu-at-startup": "Virt. procesor při spuštění",
1015
1062
  "vcpus": "virt. procesory",
1016
1063
  "vcpus-assigned": "Přiděleno virt. procesorů",
1017
1064
  "vdi": "Virt. disk",
1065
+ "vdi-connect-title": "Chystáte se připojit 1 obraz virt. disku | Chystáte se připojit {n} obrazy virt. disků | Chystáte se připojit {n} obrazů virt. disků",
1018
1066
  "vdi-delete-warning": "Toto trvale smaže vybraný virt. disk a veškerá data na něm uložená. Tuto akci nelze vzít zpět!",
1019
1067
  "vdi-description": "Popis obrazu virt. disku",
1068
+ "vdi-detach-info": "Toto zruší přiložení označených obrazů virt. disků k virt. stroji. Disk nebude smazán a je možné ho později znovu přiložit.",
1069
+ "vdi-detach-title": "Chystáte se zrušit přiložení 1 obraz virt. disku | Chystáte se zrušit přiložení {n} obrazy virt. disků | Chystáte se zrušit přiložení {n} obrazů virt. disků",
1070
+ "vdi-disconnect-info": "Virt. stroj už nebude mít přístup k obrazu virt. disku. Ten zůstane přiložený a je možné znovu připojit později.",
1071
+ "vdi-disconnect-title": "Chystáte se odpojit 1 obraz virt. disku | Chystáte se odpojit {n} obrazy virt. disků | Chystáte se odpojit {n} obrazů virt. disků",
1020
1072
  "vdi-in-use": "Obraz virt. disku už je využíván",
1021
1073
  "vdi-name": "Název obrazu virt. disku",
1074
+ "vdi-not-attached-to-vm": "Nepřipojen žádný virt. stroj",
1075
+ "vdi-snapshot-source": "Zdroj obrazu virt. disku",
1076
+ "vdi-snpashot-time": "Datum zachycení stavu",
1022
1077
  "vdi-throughput": "Objemy čtení/zápisů na virt. disky",
1023
1078
  "vdis": "Virt. disky",
1024
1079
  "version": "Verze",
@@ -20,6 +20,7 @@
20
20
  "action:close": "Schließen",
21
21
  "action:connect": "Verbinden",
22
22
  "action:connect-another-pool": "Mit anderem Pool verbinden",
23
+ "action:connect-n-vbds": "1 VBD verbinden | {n} VBDs verbinden",
23
24
  "action:connect-n-vifs": "1 VIF verbinden | {n} VIFs verbinden",
24
25
  "action:connect-pool": "Mit Pool verbinden",
25
26
  "action:copy": "Kopieren",
@@ -42,6 +43,7 @@
42
43
  "action:deploy": "Bereitstellen",
43
44
  "action:deploy-xoa": "XOA bereitstellen",
44
45
  "action:disconnect": "Trennen",
46
+ "action:disconnect-n-vbds": "1 VBD trennen | {n} VBDs trennen",
45
47
  "action:disconnect-n-vifs": "1 VIF trennen | {n} VIFs trennen",
46
48
  "action:download-bugtools-archive": "Bugtools Archiv herunterladen",
47
49
  "action:duplicate": "Duplizieren",
@@ -183,7 +185,6 @@
183
185
  "backups:vms-protection:active-protected": "Mindestens 1 aktiven & geschützten Vorgang",
184
186
  "backups:vms-protection:active-unprotected": "Mindestens 1 aktiven aber ungeschützten Vorgang",
185
187
  "backups:vms-protection:no-active-job": "In keinem aktiven Vorgang enthalten",
186
- "backups:vms-protection:no-job": "In keinem Vorgang",
187
188
  "backups:vms-protection:protected": "In mindestens 1 Vorgang & geschützt",
188
189
  "backups:vms-protection:tooltip": "Eine VM ist geschützt, wenn sie sich in einem Job mit aktivierter Planung befindet und die letzte Ausführung erfolgreich war",
189
190
  "backups:vms-protection:unprotected": "In mindestens 1 Job aber ohne Schutz",
@@ -748,7 +749,7 @@
748
749
  "query-builder:placeholder": "Erstelle deine Query…",
749
750
  "query-search-bar:label": "@:query-builder:label",
750
751
  "query-search-bar:placeholder": "@:query-builder:placeholder",
751
- "query-search-bar:use-query-builder": "Den Abfragekonstruktor verwenden",
752
+ "query-search-bar:use-query-builder": "@:query-builder",
752
753
  "quick-actions": "Schnellaktionen",
753
754
  "quick-info": "Schnell-Information",
754
755
  "ram": "Arbeitsspeicher",
@@ -65,23 +65,29 @@
65
65
  "action:edit-config": "Edit config",
66
66
  "action:enable-light-mode": "Enable light mode",
67
67
  "action:export": "Export",
68
+ "action:export-content": "Export content",
68
69
  "action:export-n-vms": "Export 1 VM | Export {n} VMs",
69
70
  "action:export-n-vms-manually": "Export 1 VM manually | Export {n} VMs manually",
70
71
  "action:export-table-to": "Export table to {type}",
72
+ "action:export-vdi": "Export a VDI",
71
73
  "action:export-vm": "Export VM | Export VMs",
72
74
  "action:filter": "Filter",
75
+ "action:force-migrate-on-sr": "Force migrate on SR",
73
76
  "action:force-reboot": "Force reboot",
74
77
  "action:force-shutdown": "Force shutdown",
75
78
  "action:forget": "Forget",
76
79
  "action:go-back": "Go back",
77
80
  "action:group": "Group",
78
81
  "action:hide": "Hide",
82
+ "action:import": "Import",
83
+ "action:import-export": "Import/Export",
79
84
  "action:install-app": "Install {name}",
80
85
  "action:install-guest-tools": "Install guest tools",
81
86
  "action:load-now": "Load now",
82
87
  "action:log-out": "Log out",
83
88
  "action:migrate": "Migrate",
84
89
  "action:migrate-n-vms": "Migrate 1 VM | Migrate {n} VMs",
90
+ "action:migrate-vdi-on-sr": "Migrate on SR",
85
91
  "action:move-filters-to-parent-group": "Move filters to parent group",
86
92
  "action:open": "Open",
87
93
  "action:open-app": "@:action:open {name}",
@@ -206,7 +212,6 @@
206
212
  "backups:vms-protection:active-protected": "In at least 1 active job & protected",
207
213
  "backups:vms-protection:active-unprotected": "In at least 1 active job but unprotected",
208
214
  "backups:vms-protection:no-active-job": "In no active job",
209
- "backups:vms-protection:no-job": "In no job",
210
215
  "backups:vms-protection:protected": "In at least 1 job & protected",
211
216
  "backups:vms-protection:tooltip": "A VM is protected if it's in a backup job, with an enabled schedule, and the last run succeeded",
212
217
  "backups:vms-protection:unprotected": "In at least 1 job but unprotected",
@@ -307,6 +312,8 @@
307
312
  "deploy-xoa-status:waiting": "Waiting for XOA to respond…",
308
313
  "descending": "descending",
309
314
  "description": "Description",
315
+ "destination-sr": "Destination SR",
316
+ "destination-sr-mandatory": "Destination SR is mandatory.",
310
317
  "device": "Device",
311
318
  "device-config": "Device config",
312
319
  "dhcp": "DHCP",
@@ -456,6 +463,8 @@
456
463
  "job:create:in-progress": "Create in progress…",
457
464
  "job:delete:in-progress": "Delete in progress…",
458
465
  "job:disconnect:in-progress": "Disconnect in progress…",
466
+ "job:export:in-progress": "Export in progress…",
467
+ "job:migrate:in-progress": "Migrate in progess…",
459
468
  "job:network-delete:has-n-physical-pif-connected": "The network has one physical PIF connected | The network has {n} physical PIFs connected",
460
469
  "job:network-delete:has-n-vif-attached": "The network has one VIF attached | The network has {n} VIFs attached",
461
470
  "job:pbd-plug:missing-pbd": "No PBDs to connect",
@@ -475,6 +484,12 @@
475
484
  "job:vbd-disconnect:vbd-disconnected": "VBD is disconnected",
476
485
  "job:vdi-delete:missing-vdi": "No VDIs to delete",
477
486
  "job:vdi-delete:vbd-attached": "Cannot delete a VDI with VBD attached",
487
+ "job:vdi-detach:in-progress": "Detach in progress…",
488
+ "job:vdi-export:format-required": "VDI format export is required",
489
+ "job:vdi-export:missing-vdi": "No vdi to export",
490
+ "job:vdi-migrate:in-progress": "Migrate in progress…",
491
+ "job:vdi-migrate:missing-sr": "Destination SR is required",
492
+ "job:vdi-migrate:missing-vdi": "No VDI selected",
478
493
  "job:vif-connect:missing-vif": "No VIFs to connect",
479
494
  "job:vif-connect:vif-already-connected": "VIF is already connected",
480
495
  "job:vif-delete:blocked-operation": "VIF deletion is blocked",
@@ -886,8 +901,9 @@
886
901
  "see-details": "See details",
887
902
  "select-compression": "Select a compression",
888
903
  "select-destination-host": "Select a destination host",
904
+ "select-format": "Select format",
889
905
  "select-host": "Select host",
890
- "select-to-see-details": "Select an element to see details",
906
+ "select-to-see-details": "Click on {icon} to see details",
891
907
  "selected-vms-in-execution": "Some selected VMs are running",
892
908
  "self-signed-certificates": "Self-signed certificates",
893
909
  "send-us-feedback": "Send us feedback",
@@ -1023,6 +1039,8 @@
1023
1039
  "traffic-rule": "Traffic rule",
1024
1040
  "traffic-rule-delete-warning": "This action is irreversible. The selected traffic rule will be permanently deleted.",
1025
1041
  "traffic-rules": "Traffic rules",
1042
+ "traffic-rules:format-warning": "Configuration error: Traffic rules are not in the expected format. Please {check-doc} on how to migrate them.",
1043
+ "traffic-rules:format-warning:check-doc": "check the latest documentation",
1026
1044
  "traffic-rules:info-message": "Traffic rules order is being implemented. Behaviour may be hazardous.",
1027
1045
  "traffic-rules:no-traffic-rules-detected": "No traffic rules detected",
1028
1046
  "transfer-size": "Transfer size",
@@ -1040,6 +1058,7 @@
1040
1058
  "unable-to-create-new-traffic-rule": "Unable to create new traffic rule",
1041
1059
  "unable-to-create-new-vdi": "Unable to create new VDI",
1042
1060
  "unable-to-delete-network": "Unable to delete network",
1061
+ "unable-to-migrate-vdi": "Unable to migrate VDI on SR",
1043
1062
  "unknown": "Unknown",
1044
1063
  "unlocked": "Unlocked",
1045
1064
  "unnamed": "Unnamed",
@@ -1073,6 +1092,7 @@
1073
1092
  "vdi-in-use": "VDI in use",
1074
1093
  "vdi-name": "VDI name",
1075
1094
  "vdi-not-attached-to-vm": "No VM attached",
1095
+ "vdi-on-different-sr-warning": "This SR is local to a host that doesn't hold the VM's other disks. The VM won't be able to start until all its disks are on the same host or on shared storage.",
1076
1096
  "vdi-snapshot-source": "VDI source",
1077
1097
  "vdi-snpashot-time": "Snapshot date",
1078
1098
  "vdi-throughput": "VDI throughput",
@@ -22,6 +22,10 @@
22
22
  "action:close": "Cerrar",
23
23
  "action:connect": "Conectar",
24
24
  "action:connect-another-pool": "Conectar a otro pool",
25
+ "action:connect-n": "Conectar {n}",
26
+ "action:connect-n-srs": "Conectar 1 SR | Conectar {n} SRs",
27
+ "action:connect-n-vbds": "Conectar 1 VBD | Conectar {n} VBDs",
28
+ "action:connect-n-vdis": "Conectar 1 VDI | Conectar {n} VDIs",
25
29
  "action:connect-n-vifs": "Conectar 1 VIF | Conectar {n} VIFs",
26
30
  "action:connect-pool": "Conectar pool",
27
31
  "action:copy": "Copiar",
@@ -40,12 +44,19 @@
40
44
  "action:delete-group": "Borrar grupo",
41
45
  "action:delete-n-networks": "Eliminar 1 red | Eliminar {n} redes",
42
46
  "action:delete-n-snapshots": "Eliminar 1 instantánea | Eliminar {n} instantáneas",
47
+ "action:delete-n-srs": "Eliminar 1 SR | Eliminar {n} SRs",
43
48
  "action:delete-n-vdis": "Eliminar 1 VDI | Eliminar {n} VDIs",
44
49
  "action:delete-n-vifs": "Eliminar 1 VIF | Eliminar {n} VIFs",
45
50
  "action:delete-n-vms": "Eliminar 1 VM | Eliminar {n} VMs",
46
51
  "action:deploy": "Desplegar",
47
52
  "action:deploy-xoa": "Desplegar XOA",
53
+ "action:detach-n-vdis": "Desconectar 1 VDI | Desconectar {n} VDIs",
54
+ "action:detach-vdi": "Desconectar VDI",
48
55
  "action:disconnect": "Desconectar",
56
+ "action:disconnect-n": "Desconectar {n}",
57
+ "action:disconnect-n-srs": "Desconectar 1 SR | Desconectar {n} SRs",
58
+ "action:disconnect-n-vbds": "Desconectar 1 VBD | Desconectar {n} VBDs",
59
+ "action:disconnect-n-vdis": "Desconectar 1 VDI | Desconectar {n} VDIs",
49
60
  "action:disconnect-n-vifs": "Desconectar 1 VIF | Desconectar {n} VIFs",
50
61
  "action:download-bugtools-archive": "Descargar el archivo de bugtools",
51
62
  "action:duplicate": "Duplicar",
@@ -192,7 +203,6 @@
192
203
  "backups:vms-protection:active-protected": "Activo en al menos 1 tarea pero sin proteger",
193
204
  "backups:vms-protection:active-unprotected": "Activo en al menos 1 tarea pero no está protegido",
194
205
  "backups:vms-protection:no-active-job": "En ninguna tarea activa",
195
- "backups:vms-protection:no-job": "No listada en ninguna tarea",
196
206
  "backups:vms-protection:protected": "Listada en al menos una tarea y protegida",
197
207
  "backups:vms-protection:tooltip": "Una máquina virtual está protegida si está en una tarea de copia de seguridad, con un horario activado, y la última ejecución tuvo éxito",
198
208
  "backups:vms-protection:unprotected": "En al menos una tarea pero no está protegida",
@@ -100,7 +100,6 @@
100
100
  "backups:jobs:disabled": "غیرفعال شده",
101
101
  "backups:jobs:running-good": "به خوبی کار می‌کند",
102
102
  "backups:vms-protection": "محافظت از ماشین‌های مجازی",
103
- "backups:vms-protection:no-job": "در هیچ کاری",
104
103
  "backups:vms-protection:protected": "در حداقل ۱ کار و حفاظت‌ شده",
105
104
  "backups:vms-protection:tooltip": "یک ماشین مجازی در صورت وجود در یک کار پشتیبان‌گیری، با زمان‌بندی فعال و اجرای موفق آخرین عملیات، محافظت‌ شده محسوب می‌شود",
106
105
  "backups:vms-protection:unprotected": "در حداقل ۱ کار و حفاظت‌ نشده",