diff --git a/web/templates/vm_create.html b/web/templates/vm_create.html index 22ca1b1..28b4da1 100644 --- a/web/templates/vm_create.html +++ b/web/templates/vm_create.html @@ -7,6 +7,8 @@
+ {% set disk_images_available = disk_images is defined and disk_images %} + {% set disk_feature_available = disk_images is defined %}ISO x86: virt-install --arch x86_64 --cdrom ubuntu.iso
@@ -165,18 +176,19 @@ IMG ARM: qemu-img convert -O qcow2 image.img VM.qcow2
const diskWarning = document.getElementById('disk-image-missing-warning');
const createButton = document.getElementById('create-vm-button');
const hasIsos = {{ 'true' if isos else 'false' }};
- const hasDiskImages = {{ 'true' if disk_images else 'false' }};
+ const diskFeatureAvailable = {{ 'true' if disk_feature_available else 'false' }};
+ const hasDiskImages = {{ 'true' if disk_images_available else 'false' }};
function refreshSourceUI() {
- const isDisk = sourceType.value === 'disk_image';
+ const isDisk = diskFeatureAvailable && sourceType.value === 'disk_image';
isoRow.style.display = isDisk ? 'none' : 'grid';
- diskImageRow.style.display = isDisk ? 'grid' : 'none';
+ if (diskImageRow) diskImageRow.style.display = isDisk ? 'grid' : 'none';
sourceImageLabel.textContent = isDisk ? 'Готовый образ диска' : 'ISO образ';
- diskImageLabel.textContent = isDisk ? 'Готовый образ диска' : 'ISO образ';
+ if (diskImageLabel) diskImageLabel.textContent = 'Готовый образ диска';
diskSizeRow.style.opacity = isDisk ? '.45' : '1';
diskSizeRow.querySelector('span').textContent = isDisk ? 'Диск, GB — не используется при импорте' : 'Диск, GB';
sourceModeNotice.textContent = isDisk
- ? 'Выбран источник “Готовый диск”: Virtuality импортирует .img/.raw/.qcow2 в новый qcow2-диск VM. Поле “Диск, GB” не используется. При необходимости можно заменить хвост от неудачной установки прямо в блоке готового диска.'
+ ? 'Выбран источник “Готовый диск”: Virtuality импортирует .img/.raw/.qcow2 в новый qcow2-диск VM. Поле “Диск, GB” не используется.'
: 'Выбран источник “ISO-установщик”: Virtuality создаст новый диск указанного размера и запустит установку с ISO.';
if (isoWarning) isoWarning.style.display = !isDisk && !hasIsos ? 'block' : 'none';
if (diskWarning) diskWarning.style.display = isDisk && !hasDiskImages ? 'block' : 'none';