@xen-orchestra/web-core 0.38.0 → 0.39.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/VtsCardRowKeyValue.vue +2 -4
  2. package/lib/components/cell-object/VtsCellObject.vue +1 -1
  3. package/lib/components/console/VtsActionsConsole.vue +3 -3
  4. package/lib/components/console/VtsClipboardConsole.vue +4 -4
  5. package/lib/components/copy-button/VtsCopyButton.vue +1 -1
  6. package/lib/components/dropdown/VtsDropdownTitle.vue +2 -2
  7. package/lib/components/layout/VtsLayoutSidebar.vue +1 -1
  8. package/lib/components/{label-value-list/VtsLabelValueList.vue → recursive-fields/VtsRecursiveFields.vue} +4 -4
  9. package/lib/components/select/VtsSelect.vue +1 -1
  10. package/lib/components/state-hero/VtsStateHero.vue +1 -1
  11. package/lib/components/table/cells/VtsTruncatedTextCell.vue +1 -1
  12. package/lib/components/task/VtsQuickTaskButton.vue +2 -2
  13. package/lib/components/task/VtsQuickTaskList.vue +3 -2
  14. package/lib/components/task/VtsQuickTaskTabBar.vue +6 -6
  15. package/lib/components/ui/account-menu-button/UiAccountMenuButton.vue +1 -1
  16. package/lib/components/ui/breadcrumb/UiBreadcrumb.vue +1 -1
  17. package/lib/components/ui/character-limit/UiCharacterLimit.vue +1 -1
  18. package/lib/components/ui/circle-progress-bar/UiCircleProgressBar.vue +1 -1
  19. package/lib/components/ui/collapsible-list/UiCollapsibleList.vue +1 -1
  20. package/lib/components/ui/log-entry-viewer/UiLogEntryViewer.vue +1 -1
  21. package/lib/components/ui/query-search-bar/UiQuerySearchBar.vue +6 -6
  22. package/lib/components/ui/quick-task-item/UiQuickTaskItem.vue +2 -13
  23. package/lib/components/ui/quick-task-panel/UiQuickTaskPanel.vue +1 -1
  24. package/lib/components/ui/table-pagination/UiTablePagination.vue +3 -3
  25. package/lib/components/ui/task-item/UiTaskItem.vue +26 -16
  26. package/lib/components/ui/task-list/UiTaskList.vue +14 -3
  27. package/lib/components/ui/text-area/UiTextarea.vue +1 -1
  28. package/lib/components/ui/top-bottom-table/UiTopBottomTable.vue +3 -3
  29. package/lib/components/ui/tree-item-label/UiTreeItemLabel.vue +1 -1
  30. package/lib/i18n.ts +8 -4
  31. package/lib/layouts/CoreLayout.vue +1 -1
  32. package/lib/locales/cs.json +297 -294
  33. package/lib/locales/da.json +181 -200
  34. package/lib/locales/de.json +243 -251
  35. package/lib/locales/en.json +312 -310
  36. package/lib/locales/es.json +282 -300
  37. package/lib/locales/fa.json +239 -239
  38. package/lib/locales/fr.json +314 -312
  39. package/lib/locales/it.json +190 -186
  40. package/lib/locales/ja.json +23 -0
  41. package/lib/locales/ko.json +23 -1
  42. package/lib/locales/nb-NO.json +696 -0
  43. package/lib/locales/nl.json +296 -295
  44. package/lib/locales/pt-BR.json +170 -0
  45. package/lib/locales/ru.json +209 -206
  46. package/lib/locales/sv.json +244 -254
  47. package/lib/locales/uk.json +151 -149
  48. package/lib/packages/remote-resource/define-remote-resource.ts +37 -4
  49. package/lib/types/task.type.ts +15 -0
  50. package/package.json +1 -1
  51. package/lib/locales/nb_NO.json +0 -1
  52. package/lib/locales/pt_BR.json +0 -158
@@ -6,27 +6,70 @@
6
6
  "access-forum": "Доступ до форуму",
7
7
  "access-xoa": "Доступ до XOA",
8
8
  "account-organization-more": "Обліковий запис, організація та інше…",
9
- "add": "Додати",
10
- "add-filter": "Додати фільтр",
9
+ "action:add": "Додати",
10
+ "action:add-filter": "Додати фільтр",
11
+ "action:add-sort": "Додати сортування",
12
+ "action:boot-vm": "Завантажувальна ВМ",
13
+ "action:change-state": "Змінити стан",
14
+ "action:close": "Закрити",
15
+ "action:connect-another-pool": "Підключити інший пул",
16
+ "action:connect-pool": "Підключити пул",
17
+ "action:copy": "Копіювати",
18
+ "action:copy-all": "Копіювати все",
19
+ "action:copy-host": "Скопіювати хост",
20
+ "action:copy-id": "Скопіювати ID",
21
+ "action:copy-info-json": "Копіювати інформацію в JSON",
22
+ "action:create": "Створити",
23
+ "action:delete": "Видалити",
24
+ "action:delete-vms": "Видалено 1 VM | Видалено {n} VMs",
25
+ "action:deploy": "Розгорнути",
26
+ "action:deploy-xoa": "Розгорнути XOA",
27
+ "action:edit": "Редагувати",
28
+ "action:edit-config": "Редагувати конфіг",
29
+ "action:export": "Експорт",
30
+ "action:export-n-vms": "Експортовано 1 VM | Експортовано {n} VMs",
31
+ "action:export-n-vms-manually": "Експорт однієї ВМ вручну | Експорт {n} ВМ вручну",
32
+ "action:export-table-to": "Експорт таблиці в {type}",
33
+ "action:export-vm": "Експорт VM | Експорт VMs",
34
+ "action:filter": "Фільтрувати",
35
+ "action:force-reboot": "Примусове перезавантаження",
36
+ "action:force-shutdown": "Примусове вимкнення",
37
+ "action:forget": "Забути",
38
+ "action:go-back": "Назад",
39
+ "action:group": "Група",
40
+ "action:hide": "Приховати",
41
+ "action:open": "Відкрити",
42
+ "action:search": "Пошук",
43
+ "action:select-all": "Вибрати все",
44
+ "action:select-n-objects-of": "{from} - {to} з {total} об'єктів",
45
+ "action:select-none": "Нічого не вибирати",
46
+ "action:send": "Відправити",
47
+ "action:send-ctrl-alt-del": "Надіслати Ctrl+Alt+Del",
48
+ "action:sidebar-close": "Закрити бічну панель",
49
+ "action:sidebar-lock": "Закріпити бічну панель",
50
+ "action:sidebar-open": "Відкрити бічну панель",
51
+ "action:sidebar-unlock": "Розблокувати бічну панель",
52
+ "action:sort-ascending": "Сортувати за зростанням",
53
+ "action:sort-descending": "Сортувати за спаданням",
54
+ "action:unselect-all": "Зняти вибір",
11
55
  "add-or": "+АБО",
12
- "add-sort": "Додати сортування",
13
56
  "admin-login": "Логін адміністратора",
14
57
  "admin-password": "Пароль адміністратора",
15
58
  "admin-password-confirm": "Підтвердіть пароль адміністратора",
16
59
  "affinity-host": "Близький хост",
17
- "alarm-type.cpu_usage": "Завантаження ЦПУ перевищує @:n-percent",
18
- "alarm-type.disk_usage": "Використання диска перевищує @:n-percent",
19
- "alarm-type.fs_usage": "Використання файлової системи перевищує @:n-percent",
20
- "alarm-type.log_fs_usage": "Використання файлової системи Log перевищує @:n-percent",
21
- "alarm-type.mem_usage": "Використання пам'яті перевищує @:n-percent",
22
- "alarm-type.memory_free_kib": "Вільна пам'ять менше @:n-percent",
23
- "alarm-type.network_usage": "Використання мережі перевищує @:n-percent",
24
- "alarm-type.physical_utilisation": "Фізичне використання перевищує @:n-percent",
25
- "alarm-type.sr_io_throughput_total_per_host": "Загальна пропускна здатність SR IO на один хост перевищує @:n-percent",
26
- "alarm-type.unknown": "Невідомий тип сповіщення",
27
- "alarms": "Тривога",
28
- "all-done": "Виконано!",
29
- "all-good": "Все гаразд!",
60
+ "alarm": "Тривога",
61
+ "alarm-type:cpu_usage": "Завантаження ЦПУ перевищує @:n-percent",
62
+ "alarm-type:disk_usage": "Використання диска перевищує @:n-percent",
63
+ "alarm-type:fs_usage": "Використання файлової системи перевищує @:n-percent",
64
+ "alarm-type:log_fs_usage": "Використання файлової системи Log перевищує @:n-percent",
65
+ "alarm-type:mem_usage": "Використання пам'яті перевищує @:n-percent",
66
+ "alarm-type:memory_free_kib": "Вільна пам'ять менше @:n-percent",
67
+ "alarm-type:network_usage": "Використання мережі перевищує @:n-percent",
68
+ "alarm-type:physical_utilisation": "Фізичне використання перевищує @:n-percent",
69
+ "alarm-type:sr_io_throughput_total_per_host": "Загальна пропускна здатність SR IO на один хост перевищує @:n-percent",
70
+ "alarm-type:unknown": "Невідомий тип сповіщення",
71
+ "all-done!": "Виконано!",
72
+ "all-good!": "Все гаразд!",
30
73
  "allow-self-signed-ssl": "Можливо, вам потрібно дозволити самопідписані SSL-сертифікати у вашому браузері",
31
74
  "api-error-details": "Деталі помилки API",
32
75
  "appearance": "Зовнішній вигляд",
@@ -34,7 +77,7 @@
34
77
  "auto-generated": "Автоматично згенерований",
35
78
  "auto-power": "Автоматичне увімкнення",
36
79
  "available": "Доступно",
37
- "available-properties-for-advanced-filter": "Доступні властивості розширеного фільтра:",
80
+ "available-properties-for-advanced-filter:": "Доступні властивості розширеного фільтра:",
38
81
  "back-pool-dashboard": "Повернення до панелі управління пулом",
39
82
  "back-site-dashboard": "Поверніться до панелі керування вашого сайту",
40
83
  "backed-up-vms": "ВМ з резервними копіями",
@@ -44,23 +87,22 @@
44
87
  "backup-network": "Резервна мережа",
45
88
  "backup-repository": "Сховище резервних копій (local, NFS, SMB)",
46
89
  "backup-targets": "Призначення для резервної копії",
47
- "backup.full": "Повна резервна копія",
48
- "backup.incremental": "Інкрементальна резервна копія",
49
- "backup.pool-metadata": "Метадані пулу",
50
- "backup.rolling-snapshot": "Ковзний знімок",
51
- "backup.xo-config": "Конфігурація XO",
90
+ "backup:full": "Повна резервна копія",
91
+ "backup:incremental": "Інкрементальна резервна копія",
92
+ "backup:pool-metadata": "Метадані пулу",
93
+ "backup:rolling-snapshot": "Ковзний знімок",
94
+ "backup:xo-config": "Конфігурація XO",
52
95
  "backups": "Резервні копії",
53
- "backups.jobs": "Роботи",
54
- "backups.jobs.at-least-one-skipped": "Як мінімум один пропущений",
55
- "backups.jobs.based-on-last-three": "На основі трьох останніх робіт",
56
- "backups.jobs.disabled": "Вимкнено",
57
- "backups.jobs.looks-like-issue": "Схоже, є якась проблема",
58
- "backups.jobs.running-good": "Працює добре",
59
- "backups.vms-protection": "Захист ВМ",
60
- "backups.vms-protection.no-job": "На жодній роботі",
61
- "backups.vms-protection.protected": "Принаймні на 1 роботі і захищений",
62
- "backups.vms-protection.tooltip": "ВМ захищена, якщо резервне копіювання за розкладом, і попередній запуск пройшов успішно",
63
- "backups.vms-protection.unprotected": "Принаймні на 1 роботі, але без захисту",
96
+ "backups:jobs:at-least-one-skipped": "Як мінімум один пропущений",
97
+ "backups:jobs:based-on-last-three": "На основі трьох останніх робіт",
98
+ "backups:jobs:disabled": "Вимкнено",
99
+ "backups:jobs:looks-like-issue": "Схоже, є якась проблема",
100
+ "backups:jobs:running-good": "Працює добре",
101
+ "backups:vms-protection": "Захист ВМ",
102
+ "backups:vms-protection:no-job": "На жодній роботі",
103
+ "backups:vms-protection:protected": "Принаймні на 1 роботі і захищений",
104
+ "backups:vms-protection:tooltip": "ВМ захищена, якщо резервне копіювання за розкладом, і попередній запуск пройшов успішно",
105
+ "backups:vms-protection:unprotected": "Принаймні на 1 роботі, але без захисту",
64
106
  "best-effort": "найкращі зусилля",
65
107
  "bios-default": "bios (за замовчуванням)",
66
108
  "bios-info": "Інформація про BIOS",
@@ -69,75 +111,38 @@
69
111
  "bond-status": "Статус Bond",
70
112
  "boot-firmware": "Завантажувальна прошивка",
71
113
  "boot-firmware-uefi": "Завантажувальна прошивка - UEFI",
72
- "boot-vm": "Завантажувальна ВМ",
73
114
  "build-number": "Номер збірки",
74
- "bytes.gi": "ГБ",
75
- "bytes.ki": "Кб",
76
- "bytes.mi": "МіБ",
115
+ "bytes:gi": "ГБ",
116
+ "bytes:ki": "Кб",
117
+ "bytes:mi": "МіБ",
77
118
  "cancel": "Скасування",
78
- "change-state": "Змінити стан",
79
- "check-errors": "Перевірте помилки:",
119
+ "character-limit": "{count}/{max} символ | {count}/{max} символів",
120
+ "check-errors:": "Перевірте помилки:",
80
121
  "check-summing": "Контрольна сума TX",
81
- "click-to-display-alarms": "Натисніть, щоб відобразити тривоги:",
122
+ "click-to-display-alarms:": "Натисніть, щоб відобразити тривоги:",
82
123
  "click-to-return-default-pool": "Натисніть тут, щоб повернутися до пулу за замовчуванням",
83
- "close": "Закрити",
84
- "coming-soon": "Скоро!",
124
+ "coming-soon!": "Скоро!",
85
125
  "community": "Спільнота",
86
126
  "community-name": "{name} спільнота",
87
127
  "configuration": "Налаштування",
88
128
  "configure-in-xo-5": "Налаштувати в XO 5",
89
- "confirm-cancel": "Ви впевнені, що хочете скасувати?",
129
+ "confirm-cancel?": "Ви впевнені, що хочете скасувати?",
90
130
  "confirm-delete": "Ви збираєтеся видалити {0}",
91
131
  "connect": "Підключитися",
92
- "connect-another-pool": "Підключити інший пул",
93
- "connect-pool": "Підключити пул",
94
132
  "connected": "Підключено",
95
133
  "connected-to-ip": "Підключитися до {ip}",
96
134
  "connecting": "з'єднується",
97
135
  "connection": "з'єднання",
98
136
  "connection-failed": "З'єднання невдале",
99
- "connections": "З'єднання",
100
137
  "console": "Консоль",
101
138
  "console-actions": "Дії з консолі",
102
139
  "console-clipboard": "Буфер обміну консолі",
103
140
  "console-unavailable": "Консоль недоступна",
104
141
  "control-domain-memory": "Пам'ять домену управління",
105
- "copy": "Копіювати",
106
- "copy-all": "Копіювати все",
107
- "copy-host": "Скопіювати хост",
108
- "copy-info-json": "Копіювати інформацію в JSON",
142
+ "copied": "Скопійовано",
109
143
  "core-socket": "Ядро (сокет)",
110
- "core.character-limit": "{count}/{max} символ | {count}/{max} символів",
111
- "core.close": "Закрити",
112
- "core.copied": "Скопійовано",
113
- "core.copy-id": "Скопіювати ID",
114
- "core.current": "Поточний",
115
- "core.filter": "Фільтрувати",
116
- "core.group": "Група",
117
- "core.hide": "Приховати",
118
- "core.open": "Відкрити",
119
- "core.open-in-new-tab": "Відкрити в новій вкладці",
120
- "core.pagination.all": "Все",
121
- "core.pagination.show-by": "Показати за",
122
- "core.query-search-bar.label": "пошуковий движок",
123
- "core.query-search-bar.placeholder": "Введіть свій запит…",
124
- "core.query-search-bar.use-query-builder": "Використовувати конструктор запитів",
125
- "core.quick-actions": "Швидкі дії",
126
- "core.search": "Пошук",
127
- "core.select.all": "Вибрати все",
128
- "core.select.n-object-of": "{from} - {to} з {total} об'єктів",
129
- "core.select.n-selected-of": "{count} вибрано з {total} об'єктів",
130
- "core.select.none": "Нічого не вибирати",
131
- "core.select.unselect": "Зняти вибір",
132
- "core.show-by": "Показати за",
133
- "core.sidebar.close": "Закрити бічну панель",
134
- "core.sidebar.lock": "Закріпити бічну панель",
135
- "core.sidebar.open": "Відкрити бічну панель",
136
- "core.sidebar.unlock": "Розблокувати бічну панель",
137
- "core.sort.ascending": "Сортувати за зростанням",
138
- "core.sort.descending": "Сортувати за спаданням",
139
- "core.textarea.exceeds-max-characters": "Значення не повинно перевищувати {max} символів.",
140
144
  "cores-with-sockets": "Ядра (сокеты)",
145
+ "cpu": "CPU",
141
146
  "cpu-cap": "Обмеження ЦП",
142
147
  "cpu-mask": "Маска ЦП",
143
148
  "cpu-model": "Модель ЦП",
@@ -147,30 +152,26 @@
147
152
  "cpu-weight": "Вага ЦП",
148
153
  "cpus": "CPUs",
149
154
  "crash-dump-storage-repository": "Репозиторій дампів критичних помилок",
150
- "create": "Створити",
151
155
  "created-on": "Створено на",
152
156
  "cron-pattern": "Патерн cron",
157
+ "current": "Поточний",
153
158
  "custom-config": "Користувацька конфігурація",
154
- "dark-mode.auto": "Автоматичний темний режим",
155
- "dark-mode.disable": "Вимкнути темний режим",
156
- "dark-mode.enable": "Увімкнути темний режим",
159
+ "dark-mode:auto": "Автоматичний темний режим",
160
+ "dark-mode:disable": "Вимкнути темний режим",
161
+ "dark-mode:enable": "Увімкнути темний режим",
157
162
  "dashboard": "Панель управління",
158
163
  "date": "Дата",
159
164
  "default-behavior": "Стандартна поведінка",
160
165
  "default-locking-mode": "Режим блокування за замовчуванням",
161
166
  "default-storage-repository": "Репозиторій сховища за замовчуванням",
162
- "delete": "Видалити",
163
- "delete-vms": "Видалено 1 VM | Видалено {n} VMs",
164
- "deploy": "Розгорнути",
165
- "deploy-xoa": "Розгорнути XOA",
166
167
  "deploy-xoa-available-on-desktop": "Розгортання XOA доступне на вашому інтерфейсі робочого столу",
167
168
  "deploy-xoa-custom-ntp-servers": "Ваші NTP-сервери (розділені пробілом)",
168
- "deploy-xoa-status.configuring": "Налаштовуємо XOA…",
169
- "deploy-xoa-status.importing": "Імпортуємо XOA…",
170
- "deploy-xoa-status.not-responding": "XOA не відповідає",
171
- "deploy-xoa-status.ready": "XOA готова!",
172
- "deploy-xoa-status.starting": "XOA запускається…",
173
- "deploy-xoa-status.waiting": "Чекаємо відповіді XOA…",
169
+ "deploy-xoa-status:configuring": "Налаштовуємо XOA…",
170
+ "deploy-xoa-status:importing": "Імпортуємо XOA…",
171
+ "deploy-xoa-status:not-responding": "XOA не відповідає",
172
+ "deploy-xoa-status:ready": "XOA готова!",
173
+ "deploy-xoa-status:starting": "XOA запускається…",
174
+ "deploy-xoa-status:waiting": "Чекаємо відповіді XOA…",
174
175
  "descending": "за спаданням",
175
176
  "description": "Опис",
176
177
  "device": "Пристрій",
@@ -179,13 +180,10 @@
179
180
  "disconnected": "Відключено",
180
181
  "disconnected-from-physical-device": "Відключено від фізичного пристрою",
181
182
  "disk-name": "Ім'я диска",
182
- "display": "Відобразити",
183
183
  "dns": "DNS",
184
184
  "do-you-have-needs": "Є зауваження/пропозиції? Повідомте нас",
185
185
  "documentation": "Документація",
186
186
  "documentation-name": "{name} документація",
187
- "edit": "Редагувати",
188
- "edit-config": "Редагувати конфіг",
189
187
  "enabled": "Enabled",
190
188
  "end-of-life": "Більше не підтримується",
191
189
  "eol": "Більше не підтримується",
@@ -194,85 +192,72 @@
194
192
  "error-occurred": "Сталася помилка",
195
193
  "exit-fullscreen": "Вийти з повноекранного режиму",
196
194
  "expiration-date": "Термін придатності",
197
- "export": "Експорт",
198
- "export-n-vms": "Експортовано 1 VM | Експортовано {n} VMs",
199
- "export-n-vms-manually": "Експорт однієї ВМ вручну | Експорт {n} ВМ вручну",
200
- "export-table-to": "Експорт таблиці в {type}",
201
- "export-vm": "Експорт VM",
202
- "export-vms": "Експорт VMs",
203
195
  "export-vms-manually-information": "Експорт деяких ВМ не вдалося запустити автоматично, ймовірно, через ваші налаштування браузера. Для експорту натисніть на кожну ВМ. (Або скопіюйте посилання.)",
204
196
  "failure": "Критична помилка",
205
197
  "fast-clone": "Швидке клонування",
206
198
  "fetching-fresh-data": "Отримання свіжих даних",
207
- "filter.comparison.contains": "Містить",
208
- "filter.comparison.ends-with": "Закінчується на",
209
- "filter.comparison.equals": "Дорівнює",
210
- "filter.comparison.is": "Є",
211
- "filter.comparison.is-false": "Є хибним",
212
- "filter.comparison.is-not": "Не є",
213
- "filter.comparison.is-true": "Є істинним",
214
- "filter.comparison.matches-regex": "Збігається з регулярним виразом",
215
- "filter.comparison.not-contain": "Не містить",
216
- "filter.comparison.not-end-with": "Не закінчується на",
217
- "filter.comparison.not-equal": "Не дорівнює",
218
- "filter.comparison.not-match-regex": "Не відповідає регулярному виразу",
219
- "filter.comparison.not-start-with": "Не починається з",
220
- "filter.comparison.starts-with": "Починається з",
199
+ "field:exceeds-max-characters": "Значення не повинно перевищувати {max} символів.",
200
+ "filter:comparison:contains": "Містить",
201
+ "filter:comparison:ends-with": "Закінчується на",
202
+ "filter:comparison:equals": "Дорівнює",
203
+ "filter:comparison:is": "Є",
204
+ "filter:comparison:is-false": "Є хибним",
205
+ "filter:comparison:is-not": "Не є",
206
+ "filter:comparison:is-true": "Є істинним",
207
+ "filter:comparison:matches-regex": "Збігається з регулярним виразом",
208
+ "filter:comparison:not-contain": "Не містить",
209
+ "filter:comparison:not-end-with": "Не закінчується на",
210
+ "filter:comparison:not-equal": "Не дорівнює",
211
+ "filter:comparison:not-match-regex": "Не відповідає регулярному виразу",
212
+ "filter:comparison:not-start-with": "Не починається з",
213
+ "filter:comparison:starts-with": "Починається з",
221
214
  "following-hosts-unreachable": "Наступні вузли недоступні",
222
215
  "for-backup": "Для резервної копії",
223
216
  "for-replication": "Для реплікації",
224
- "force-reboot": "Примусове перезавантаження",
225
- "force-shutdown": "Примусове вимкнення",
226
- "forget": "Забути",
227
217
  "fullscreen": "Повний екран",
228
- "fullscreen-leave": "Залишити повний екран",
229
218
  "gateway": "Шлюз",
230
219
  "general-information": "Загальна інформація",
231
- "go-back": "Назад",
220
+ "gpu": "Графічний процесор",
232
221
  "gpus": "Графічні процесори",
233
222
  "graphics-display": "Графіка % Відображення",
234
- "gzip": "gzip",
235
223
  "hardware": "Апаратне забезпечення",
236
224
  "hardware-specifications": "Характеристики апаратного забезпечення",
237
225
  "heartbeat-storage-repository": "Репозиторій heartbeat-сховищ",
238
226
  "here": "Тут",
239
227
  "high-availability": "Висока доступність (HA)",
240
228
  "host": "Вузол",
241
- "host-description": "Опис вузла",
242
229
  "host-internal-networks": "Внутрішні мережі вузла",
243
- "host-status.halted": "Зупинено",
244
- "host-status.running": "Запущений",
245
- "host-status.unknown": "Невідомо",
246
230
  "host-unknown": "Вузол невідомий",
247
- "host.active": "Активний",
248
- "host.inactive": "Неактивний",
231
+ "host:status:active": "Активний",
232
+ "host:status:halted": "@:status:halted",
233
+ "host:status:inactive": "Неактивний",
234
+ "host:status:running": "@:status:running",
235
+ "host:status:unknown:tooltip": "Метрики вузла недоступні",
249
236
  "hosts": "Вузли",
250
237
  "hosts-status": "Статус вузла",
251
- "hosts-status.halted": "Зупинено",
252
- "hosts-status.running": "Запущений",
253
- "hosts-status.unknown": "Невідомо",
254
- "hosts-status.unknown.tooltip": "Метрики вузла недоступні",
255
238
  "hyper-threading": "Багатопотоковість (SMT)",
256
239
  "id": "ID",
257
240
  "ip-address": "IP-адреса",
258
241
  "ip-addresses": "IP адреси",
259
242
  "ip-mode": "Режим IP",
260
243
  "is-primary-host": "{name} - основний хост",
244
+ "iscsi-iqn": "iSCSI IQN",
261
245
  "iso-dvd": "ISO/DVD",
246
+ "jobs": "Роботи",
262
247
  "language": "Мова",
263
248
  "mac-address": "MAC-адреса",
264
249
  "mac-addresses": "MAC адреси",
265
- "memory": "Пам'ять",
266
250
  "memory-usage": "Використання пам'яті",
267
251
  "mtu": "MTU",
268
252
  "n-gb-left": "{n} Гб залишилося",
269
253
  "n-gb-required": "{n} Гб потрібно",
270
254
  "n-percent": "{n} %",
255
+ "n-selected-of": "{count} вибрано з {total} об'єктів",
271
256
  "new-vif": "Новий VIF",
272
257
  "new-vm": "Нова ВМ",
273
- "new-vm.add": "Додати нову ВМ",
274
- "new-vm.description": "Опис ВМ",
275
- "new-vm.name": "Назва ВМ",
258
+ "new-vm:add": "Додати нову ВМ",
259
+ "new-vm:description": "Опис ВМ",
260
+ "new-vm:name": "Назва ВМ",
276
261
  "news": "Новини",
277
262
  "not-found": "Не знайдено",
278
263
  "not-running": "не запущено",
@@ -283,6 +268,7 @@
283
268
  "offline": "Не в мережі",
284
269
  "ok": "OK",
285
270
  "or": "Або",
271
+ "pagination:all": "Все",
286
272
  "password": "Пароль",
287
273
  "password-invalid": "Неправильний пароль",
288
274
  "pif": "PIF",
@@ -290,13 +276,17 @@
290
276
  "pifs": "PIFs",
291
277
  "pifs-status": "Статус PIF",
292
278
  "please-confirm": "Будь ласка, підтвердіть",
279
+ "proxy": "Proxy",
293
280
  "pxe": "PXE",
281
+ "query-search-bar:label": "пошуковий движок",
282
+ "query-search-bar:placeholder": "Введіть свій запит…",
283
+ "query-search-bar:use-query-builder": "Використовувати конструктор запитів",
294
284
  "read": "читати",
285
+ "rest-api": "REST API",
295
286
  "scan-pifs": "Сканувати PIFs",
296
- "send": "Відправити",
297
- "send-ctrl-alt-del": "Надіслати Ctrl+Alt+Del",
298
287
  "send-us-feedback": "Надіслати відгук",
299
288
  "settings": "Налаштування",
289
+ "show-by": "Показати за",
300
290
  "size": "Розмір",
301
291
  "speed": "Швидкість",
302
292
  "sr": "SR",
@@ -306,30 +296,42 @@
306
296
  "ssh-password": "пароль SSH",
307
297
  "ssh-password-confirm": "Підтвердіть пароль SSH",
308
298
  "static-ip": "Статична IP-адреса",
299
+ "status:halted": "Зупинено",
300
+ "status:running": "Запущений",
301
+ "status:unknown": "Невідомо",
309
302
  "template-has-bios-strings": "Шаблон вже містить налаштування BIOS",
310
303
  "uuid": "UUID",
311
- "vcpus": "vCPU | vCPU | vCPUs",
304
+ "vcpu": "vCPU",
305
+ "vcpus": "vCPUs",
306
+ "vdi": "VDI",
312
307
  "vdi-throughput": "Пропускна здатність VDI",
313
- "vdis": "VDI | VDI | VDIs",
308
+ "vdis": "VDIs",
309
+ "vga": "VGA",
314
310
  "vif": "VIF",
315
311
  "vif-device": "VIF #{device}",
316
312
  "vifs": "VIFs",
313
+ "viridian": "Viridian",
317
314
  "virtualization-type": "Тип віртуалізації",
318
315
  "vlan": "VLAN",
319
- "vm-description": "Опис ВМ",
320
- "vm-status.halted": "зупинено",
321
- "vm-status.paused": "Пауза",
322
- "vm-status.running": "Запущений",
323
- "vm-status.suspended": "Призупинено",
324
- "vms-status.unknown": "Невідомий",
316
+ "vm:status:halted": "@:status:halted",
317
+ "vm:status:paused": "Пауза",
318
+ "vm:status:running": "@:status:running",
319
+ "vm:status:suspended": "Призупинено",
320
+ "vm:status:unknown": "Невідомий",
321
+ "weblate": "Weblate",
325
322
  "write": "Писати",
323
+ "xcp-ng": "XCP-ng",
324
+ "xen-orchestra": "Xen Orchestra",
325
+ "xo": "XO",
326
+ "xo-5": "XO-5",
326
327
  "xo-backups": "резервні копії XO",
327
328
  "xo-lite-under-construction": "XOLite знаходиться в розробці",
328
329
  "xo-replications": "Реплікації XO",
330
+ "xoa": "XOA",
329
331
  "xoa-admin-account": "Акаунт адміністратора XOA",
330
332
  "xoa-deploy": "Розгортання XOA",
331
- "xoa-deploy-failed": "Розгортання не вдалося!",
333
+ "xoa-deploy-failed!": "Розгортання не вдалося!",
332
334
  "xoa-deploy-retry": "Спробуйте ще раз розгорнути XOA",
333
- "xoa-deploy-successful": "XOA успішно розгорнуто!",
335
+ "xoa-deploy-successful!": "XOA успішно розгорнуто!",
334
336
  "xoa-ip": "IP-адреса XOA"
335
337
  }
@@ -133,6 +133,25 @@ export function defineRemoteResource<
133
133
  })
134
134
  }
135
135
 
136
+ const bufferedEvents: ['update' | 'remove', TData][] = []
137
+ let isBufferEventsProcessed = false
138
+ function handleBuffer(data: Ref<TData[]>) {
139
+ while (bufferedEvents.length > 0) {
140
+ const buffer = bufferedEvents.shift()
141
+ if (buffer === undefined) {
142
+ continue
143
+ }
144
+
145
+ const type = buffer[0]
146
+ const event = buffer[1]
147
+
148
+ removeData(data.value, event)
149
+ if (type !== 'remove') {
150
+ data.value.push(event)
151
+ }
152
+ }
153
+ }
154
+
136
155
  const onDataReceived =
137
156
  config.onDataReceived ??
138
157
  ((data: Ref<TData>, receivedData: any, context?: ResourceContext<TArgs>) => {
@@ -140,14 +159,24 @@ export function defineRemoteResource<
140
159
  if (config.watchCollection?.predicate?.(receivedData, context) === false) {
141
160
  return
142
161
  }
162
+
143
163
  if (data.value === undefined || (Array.isArray(data.value) && Array.isArray(receivedData))) {
144
164
  data.value = receivedData
165
+
166
+ if (config.watchCollection !== undefined && Array.isArray(data.value)) {
167
+ handleBuffer(data as Ref<TData[]>)
168
+ isBufferEventsProcessed = true
169
+ }
145
170
  return
146
171
  }
147
172
 
148
173
  if (Array.isArray(data.value)) {
149
- removeData(data.value, receivedData)
150
- data.value.push(receivedData)
174
+ if (!isBufferEventsProcessed) {
175
+ bufferedEvents.push(['update', receivedData])
176
+ } else {
177
+ removeData(data.value, receivedData)
178
+ data.value.push(receivedData)
179
+ }
151
180
  return
152
181
  }
153
182
 
@@ -164,7 +193,11 @@ export function defineRemoteResource<
164
193
 
165
194
  // for now only support `onDataRemoved` when watching XapiXoRecord collection
166
195
  if (Array.isArray(data.value) && !Array.isArray(receivedData)) {
167
- removeData(data.value, receivedData)
196
+ if (!isBufferEventsProcessed) {
197
+ bufferedEvents.push(['remove', receivedData])
198
+ } else {
199
+ removeData(data.value, receivedData)
200
+ }
168
201
  return
169
202
  }
170
203
 
@@ -262,7 +295,6 @@ export function defineRemoteResource<
262
295
 
263
296
  pause = () => unwatch({ collectionId, resource, handleDelete })
264
297
  resume = async function () {
265
- await execute()
266
298
  await watch({
267
299
  collectionId,
268
300
  handleWatching,
@@ -271,6 +303,7 @@ export function defineRemoteResource<
271
303
  onDataReceived: receivedData => onDataReceived(data, receivedData, context),
272
304
  onDataRemoved: receivedData => onDataRemoved(data, receivedData, context),
273
305
  })
306
+ await execute()
274
307
  }
275
308
  } else if (pollingInterval !== false) {
276
309
  const timeoutPoll = useTimeoutPoll(execute, pollingInterval, {
@@ -0,0 +1,15 @@
1
+ export type TaskStatus = 'failure' | 'interrupted' | 'pending' | 'success'
2
+
3
+ export type Task = {
4
+ id: string
5
+ infos?: { data: unknown; message: string }[]
6
+ name?: string
7
+ progress?: number
8
+ tag?: string
9
+ userName?: string
10
+ start?: number
11
+ end?: number
12
+ status: TaskStatus
13
+ subtasks?: Task[]
14
+ warnings?: { data: unknown; message: string }[]
15
+ }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@xen-orchestra/web-core",
3
3
  "type": "module",
4
- "version": "0.38.0",
4
+ "version": "0.39.0",
5
5
  "private": false,
6
6
  "exports": {
7
7
  "./*": {
@@ -1 +0,0 @@
1
- {}