diff --git a/instances/templates/instance.html b/instances/templates/instance.html
index 955df7eb..0a0adc70 100644
--- a/instances/templates/instance.html
+++ b/instances/templates/instance.html
@@ -409,7 +409,8 @@
return response.text();
}).then(function (html) {
migratePlan.innerHTML = html;
- submit.disabled = false;
+ // a destination that did not answer, or a disk that cannot go there
+ submit.disabled = migratePlan.querySelector("[data-refused]") !== null;
}).catch(function () {
if (loading.signal.aborted) return; // another destination was chosen
migratePlan.textContent = "{{ _("The disks could not be checked.")|escapejs }}";
diff --git a/instances/templates/instances/migrate_plan.html b/instances/templates/instances/migrate_plan.html
index ba2e90a8..703b2599 100644
--- a/instances/templates/instances/migrate_plan.html
+++ b/instances/templates/instances/migrate_plan.html
@@ -1,42 +1,32 @@
{% load i18n %}
-{# the disks of the Migrate tab for the chosen destination: where each goes #}
+{# the disks of the Migrate tab for the chosen destination: where each goes; data-refused keeps the form from being sent #}
{% if error %}
-
{% blocktrans %}The disks could not be checked: {{ error }}{% endblocktrans %}
+
{% blocktrans %}The disks could not be checked: {{ error }}{% endblocktrans %}
{% elif not disks %}
{% trans "The VM has no disk files: its disks stay where they are." %}
{% else %}
-
-
-
-
{% trans "Disk" %}
{% trans "Size" %}
{% trans "On the destination" %}
-
-
- {% for disk in disks %}
-
-
{{ disk.target }}
{{ disk.path }}
-
{{ disk.capacity|filesizeformat }}
-
- {% if disk.shared or not disk.refusal and pools %}
-
- {% elif disk.refusal %}
- {% blocktrans with reason=disk.refusal %}Cannot be copied: {{ reason }}{% endblocktrans %}
- {% else %}
- {% trans "No pool of the destination host can take it" %}
- {% endif %}
-
+ {% if disk.shared or not disk.refusal and pools %}
+
+
+ {% elif disk.refusal %}
+
{% blocktrans with reason=disk.refusal %}Cannot be copied: {{ reason }}{% endblocktrans %}
+ {% else %}
+
{% trans "No pool of the destination host can take it" %}
+ {% endif %}
-
+{% endfor %}
+
{% trans "A copy is made during the migration and takes as long as the disk's data needs. Disks on network storage stay where they are." %}
{% if shut_off %}{% trans "A shut-off VM is started paused for a copy, its CPUs never run, and is shut off on the destination." %}{% endif %}