mirror of
https://github.com/retspen/webvirtcloud
synced 2026-11-08 11:16:47 +00:00
fix(templates): the fields of the create modals are named by their labels
An accessibility scan with every modal opened found 49 fields without a name: the labels of the instance create forms (custom, template and each flavor's modal), the interface, network, secret and storage pool modals did not point at their fields. Each label now has a for= and its field an id, prefixed per form (and per flavor), so a click on the label focuses the field too. The "Advanced" collapse buttons and the memory and processing bars are named. The VCPU config select had id="vcpu_mode" in each of these forms, nine times on the create page; the unique-ID test did not see it as the test driver reports no CPU modes. The id goes (nothing used it), and the test now renders that branch.
This commit is contained in:
parent
66151d42b1
commit
ca74c02c4f
8 changed files with 185 additions and 184 deletions
|
|
@ -34,7 +34,7 @@
|
|||
<td>{{ compute.cpu_count }}</td>
|
||||
<td class="cpu-usage" data-url="{% url 'compute_graph' compute.id %}">
|
||||
<div class="progress">
|
||||
<div class="progress-bar bg-primary" role="progressbar" style="width: 0%"
|
||||
<div class="progress-bar bg-primary" role="progressbar" aria-label="{% trans "Mem Usage" %}" style="width: 0%"
|
||||
aria-valuemin="0" aria-valuemax="100" aria-label="{% trans "CPU Usage" %}">
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -43,7 +43,7 @@
|
|||
<td>{{ compute.ram_size|filesizeformat }}</td>
|
||||
<td>
|
||||
<div class="progress">
|
||||
<div class="progress-bar bg-primary" role="progressbar" style="width: {{ compute.ram_usage }}%"
|
||||
<div class="progress-bar bg-primary" role="progressbar" aria-label="{% trans "Mem Usage" %}" style="width: {{ compute.ram_usage }}%"
|
||||
aria-valuenow="{{ compute.ram_usage }}" aria-valuemin="0" aria-valuemax="100">{{ compute.ram_usage }}%
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -104,9 +104,9 @@
|
|||
<form method="post" role="form" aria-label="Create instance from flavor form">{% csrf_token %}{% submission_key %}
|
||||
<div class="modal-body">
|
||||
<div class="row">
|
||||
<label class="col-sm-4 col-form-label">{% trans "Name" %}</label>
|
||||
<label for="flavor{{ flavor.id }}_name" class="col-sm-4 col-form-label">{% trans "Name" %}</label>
|
||||
<div class="col-sm-7">
|
||||
<input type="text" class="form-control" name="name"
|
||||
<input id="flavor{{ flavor.id }}_name" type="text" class="form-control" name="name"
|
||||
placeholder="{% trans "Name" %}" maxlength="64" required
|
||||
pattern="[a-zA-Z0-9\.\-_]+">
|
||||
<input type="hidden" name="vcpu" value="{{ flavor.vcpu }}">
|
||||
|
|
@ -116,9 +116,9 @@
|
|||
</div>
|
||||
{% if firmwares %}
|
||||
<div class="row">
|
||||
<label class="col-sm-4 col-form-label">{% trans "Firmware" %}</label>
|
||||
<label for="flavor{{ flavor.id }}_firmware" class="col-sm-4 col-form-label">{% trans "Firmware" %}</label>
|
||||
<div class="col-sm-7">
|
||||
<select class="form-select" name="firmware">
|
||||
<select id="flavor{{ flavor.id }}_firmware" class="form-select" name="firmware">
|
||||
{% for frm in firmwares %}
|
||||
<option value="{{ frm }}" {% if frm in default_firmware %}selected{% endif %}>{{ frm }}</option>
|
||||
{% endfor %}
|
||||
|
|
@ -128,9 +128,9 @@
|
|||
{% endif %}
|
||||
{% if dom_caps.cpu_modes %}
|
||||
<div class="row">
|
||||
<label class="col-sm-4 col-form-label">{% trans "VCPU Config" %}</label>
|
||||
<label for="flavor{{ flavor.id }}_vcpu_mode" class="col-sm-4 col-form-label">{% trans "VCPU Config" %}</label>
|
||||
<div class="col-sm-7">
|
||||
<select class="form-select" id="vcpu_mode" name="vcpu_mode">
|
||||
<select id="flavor{{ flavor.id }}_vcpu_mode" class="form-select" name="vcpu_mode">
|
||||
<option value=""> {% trans 'no-mode' %}</option>
|
||||
{% for mode in dom_caps.cpu_modes %}
|
||||
{% if mode == 'custom' %}
|
||||
|
|
@ -150,10 +150,10 @@
|
|||
</div>
|
||||
{% endif %}
|
||||
<div class="row">
|
||||
<label class="col-sm-4 col-form-label">{% trans "Storage" %}</label>
|
||||
<label for="flavor{{ flavor.id }}_storage" class="col-sm-4 col-form-label">{% trans "Storage" %}</label>
|
||||
<div class="col-sm-7">
|
||||
<input type="hidden" name="cache_mode" value="default">
|
||||
<select class="form-select" name="storage">
|
||||
<select id="flavor{{ flavor.id }}_storage" class="form-select" name="storage">
|
||||
{% if storages %}
|
||||
{% for storage in storages %}
|
||||
<option value="{{ storage }}">{{ storage }}</option>
|
||||
|
|
@ -165,9 +165,9 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-4 col-form-label">{% trans "Network" %}</label>
|
||||
<label for="flavor{{ flavor.id }}_networks" class="col-sm-4 col-form-label">{% trans "Network" %}</label>
|
||||
<div class="col-sm-7">
|
||||
<select class="form-select" name="networks">
|
||||
<select id="flavor{{ flavor.id }}_networks" class="form-select" name="networks">
|
||||
{% for network in networks %}
|
||||
<option value="{{ network }}">{{ network }}</option>
|
||||
{% endfor %}
|
||||
|
|
@ -177,22 +177,22 @@
|
|||
<div class="row">
|
||||
<label class="col-sm-4 col-form-label">{% trans "Advanced" %}</label>
|
||||
<div class="d-grid col-sm-7">
|
||||
<button class="btn btn-outline-light" type="button" data-bs-toggle="collapse" data-bs-target="#flav-add-collapse-{{ flavor.id }}" aria-expanded="false" aria-controls="flav-add-collapse-{{ flavor.id }}">
|
||||
<button class="btn btn-outline-light" type="button" title="{% trans "Advanced" %}" data-bs-toggle="collapse" data-bs-target="#flav-add-collapse-{{ flavor.id }}" aria-expanded="false" aria-controls="flav-add-collapse-{{ flavor.id }}">
|
||||
<span>{% bs_icon 'caret-down'%} </span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="collapse" id="flav-add-collapse-{{ flavor.id }}">
|
||||
<div class="row">
|
||||
<label class="col-sm-4 col-form-label">{% trans "MAC" %}</label>
|
||||
<label for="flavor{{ flavor.id }}_mac" class="col-sm-4 col-form-label">{% trans "MAC" %}</label>
|
||||
<div class="col-sm-7">
|
||||
<input type="text" class="form-control" name="mac" maxlength="17" value="{{ mac_auto }}" required pattern="[a-zA-Z0-9:]+">
|
||||
<input id="flavor{{ flavor.id }}_mac" type="text" class="form-control" name="mac" maxlength="17" value="{{ mac_auto }}" required pattern="[a-zA-Z0-9:]+">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-4 col-form-label">{% trans "NWFilter" %}</label>
|
||||
<label for="flavor{{ flavor.id }}_nwfilter" class="col-sm-4 col-form-label">{% trans "NWFilter" %}</label>
|
||||
<div class="col-sm-7">
|
||||
<select class="form-select" name="nwfilter">
|
||||
<select id="flavor{{ flavor.id }}_nwfilter" class="form-select" name="nwfilter">
|
||||
<option value="">{% trans "None" %}</option>
|
||||
{% for nwfilter in nwfilters %}
|
||||
<option value="{{ nwfilter }}">{{ nwfilter }}</option>
|
||||
|
|
@ -201,9 +201,9 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-4 col-form-label">{% trans "NIC Type" %} </label>
|
||||
<label for="flavor{{ flavor.id }}_net_model" class="col-sm-4 col-form-label">{% trans "NIC Type" %} </label>
|
||||
<div class="col-sm-7">
|
||||
<select class="form-select" name="net_model">
|
||||
<select id="flavor{{ flavor.id }}_net_model" class="form-select" name="net_model">
|
||||
{% for model in net_models_host %}
|
||||
<option value="{{ model }}" {% if model == default_nic_type %} selected {% endif %}>{{ model }}</option>
|
||||
{% endfor %}
|
||||
|
|
@ -211,9 +211,9 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-4 col-form-label">{% trans "HDD cache mode" %}</label>
|
||||
<label for="flavor{{ flavor.id }}_cache_mode" class="col-sm-4 col-form-label">{% trans "HDD cache mode" %}</label>
|
||||
<div class="col-sm-7">
|
||||
<select class="form-select" name="cache_mode">
|
||||
<select id="flavor{{ flavor.id }}_cache_mode" class="form-select" name="cache_mode">
|
||||
{% for mode, name in cache_modes %}
|
||||
<option value="{{ mode }}" {% if mode == default_cache %}selected {% endif %}>
|
||||
{% trans name %}</option>
|
||||
|
|
@ -222,9 +222,9 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-4 col-form-label">{% trans "Video" %}</label>
|
||||
<label for="flavor{{ flavor.id }}_video" class="col-sm-4 col-form-label">{% trans "Video" %}</label>
|
||||
<div class="col-sm-7">
|
||||
<select class="form-select" name="video">
|
||||
<select id="flavor{{ flavor.id }}_video" class="form-select" name="video">
|
||||
{% if not videos %}
|
||||
<option value="vga">vga</option>
|
||||
<option value="cirrus">cirrus</option>
|
||||
|
|
@ -236,9 +236,9 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-4 col-form-label">{% trans "Console Access" %}</label>
|
||||
<label for="flavor{{ flavor.id }}_listener_addr" class="col-sm-4 col-form-label">{% trans "Console Access" %}</label>
|
||||
<div class="col-sm-7">
|
||||
<select class="form-select" name="listener_addr">
|
||||
<select id="flavor{{ flavor.id }}_listener_addr" class="form-select" name="listener_addr">
|
||||
{% for addr, label in listener_addr %}
|
||||
<option value="{{ addr }}" {% if addr == "0.0.0.0" %} selected {% endif %}>{{ label }}</option>
|
||||
{% endfor %}
|
||||
|
|
@ -246,9 +246,9 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-4 col-form-label">{% trans "Add CD-Rom" %}</label>
|
||||
<label for="flavor{{ flavor.id }}_add_cdrom" class="col-sm-4 col-form-label">{% trans "Add CD-Rom" %}</label>
|
||||
<div class="col-sm-7">
|
||||
<select class="form-select" name="add_cdrom">
|
||||
<select id="flavor{{ flavor.id }}_add_cdrom" class="form-select" name="add_cdrom">
|
||||
<option value="None" {% if bus == default_cdrom %}selected{% endif %}>--{% trans "False" %}--</option>
|
||||
{% for bus in cdrom_buses %}
|
||||
<option value="{{ bus }}" {% if bus == default_cdrom %}selected {% endif %}>
|
||||
|
|
@ -259,9 +259,9 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-4 col-form-label">{% trans "Add Input Device" %}</label>
|
||||
<label for="flavor{{ flavor.id }}_add_input" class="col-sm-4 col-form-label">{% trans "Add Input Device" %}</label>
|
||||
<div class="col-sm-7">
|
||||
<select class="form-select" name="add_input">
|
||||
<select id="flavor{{ flavor.id }}_add_input" class="form-select" name="add_input">
|
||||
<option value="None" {% if bus == default_input_device_bus %}selected{% endif %}>--{% trans "False" %}--</option>
|
||||
{% for bus in input_device_buses %}
|
||||
<option value="{{ bus }}" {% if bus == default_input_device_bus %}selected{% endif %}>
|
||||
|
|
@ -272,16 +272,16 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-4 col-form-label">{% trans "Guest Agent" %}</label>
|
||||
<label for="flavor{{ flavor.id }}_qemu_ga" class="col-sm-4 col-form-label">{% trans "Guest Agent" %}</label>
|
||||
<div class="col-sm-7">
|
||||
<input type="checkbox" name="qemu_ga" value="true" checked>
|
||||
<input id="flavor{{ flavor.id }}_qemu_ga" type="checkbox" name="qemu_ga" value="true" checked>
|
||||
</div>
|
||||
</div>
|
||||
{% if virtio_support %}
|
||||
<div class="row">
|
||||
<label class="col-sm-4 col-form-label">{% trans "VirtIO" %}</label>
|
||||
<label for="flavor{{ flavor.id }}_virtio" class="col-sm-4 col-form-label">{% trans "VirtIO" %}</label>
|
||||
<div class="col-sm-7">
|
||||
<input type="checkbox" name="virtio" value="{{ virtio_support }}" checked>
|
||||
<input id="flavor{{ flavor.id }}_virtio" type="checkbox" name="virtio" value="{{ virtio_support }}" checked>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
|
@ -324,14 +324,14 @@
|
|||
<div>
|
||||
<form method="post" role="form" aria-label="Create custom instance form">{% csrf_token %}{% submission_key %}
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Name" %}</label>
|
||||
<label for="custom_name" class="col-sm-3 col-form-label">{% trans "Name" %}</label>
|
||||
<div class="col-sm-7">
|
||||
<input type="text" class="form-control" name="name" placeholder="{% trans "Name" %}" maxlength="64" required pattern="[a-zA-Z0-9\.\-_]+">
|
||||
<input id="custom_name" type="text" class="form-control" name="name" placeholder="{% trans "Name" %}" maxlength="64" required pattern="[a-zA-Z0-9\.\-_]+">
|
||||
</div>
|
||||
</div>
|
||||
{% if firmwares %}
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Firmware" %}</label>
|
||||
<label for="select_firmware" class="col-sm-3 col-form-label">{% trans "Firmware" %}</label>
|
||||
<div class="col-sm-7">
|
||||
<select class="form-select" id="select_firmware" name="firmware">
|
||||
{% for frm in firmwares %}
|
||||
|
|
@ -342,16 +342,16 @@
|
|||
</div>
|
||||
{% endif %}
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "VCPU" %}</label>
|
||||
<label for="custom_vcpu" class="col-sm-3 col-form-label">{% trans "VCPU" %}</label>
|
||||
<div class="col-sm-7">
|
||||
<input type="text" class="form-control" name="vcpu" value="1" maxlength="2" required pattern="[0-9]">
|
||||
<input id="custom_vcpu" type="text" class="form-control" name="vcpu" value="1" maxlength="2" required pattern="[0-9]">
|
||||
</div>
|
||||
</div>
|
||||
{% if dom_caps.cpu_modes %}
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "VCPU Config" %}</label>
|
||||
<label for="custom_vcpu_mode" class="col-sm-3 col-form-label">{% trans "VCPU Config" %}</label>
|
||||
<div class="col-sm-7">
|
||||
<select class="form-select" id="vcpu_mode" name="vcpu_mode">
|
||||
<select id="custom_vcpu_mode" class="form-select" name="vcpu_mode">
|
||||
<option value=""> {% trans 'no-mode' %}</option>
|
||||
{% for mode in dom_caps.cpu_modes %}
|
||||
{% if mode == 'custom' %}
|
||||
|
|
@ -371,9 +371,9 @@
|
|||
</div>
|
||||
{% endif %}
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "RAM" %}</label>
|
||||
<label for="custom_memory" class="col-sm-3 col-form-label">{% trans "RAM" %}</label>
|
||||
<div class="col-sm-7">
|
||||
<input type="text" class="form-control" name="memory" value="512" maxlength="5" required pattern="[0-9]+">
|
||||
<input id="custom_memory" type="text" class="form-control" name="memory" value="512" maxlength="5" required pattern="[0-9]+">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label">{% trans "MB" %}</label>
|
||||
</div>
|
||||
|
|
@ -386,7 +386,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "HDD" %}</label>
|
||||
<label for="storage-control" class="col-sm-3 col-form-label">{% trans "HDD" %}</label>
|
||||
<input id="images" name="images" type="hidden" value=""/>
|
||||
<div class="col-sm-3">
|
||||
<select class="form-select" id="storage-control" name="storage-control" onchange="get_cust_vols({{ compute_id }}, value);">
|
||||
|
|
@ -407,7 +407,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Network" %}</label>
|
||||
<label for="network-control" class="col-sm-3 col-form-label">{% trans "Network" %}</label>
|
||||
<div class="col-sm-7">
|
||||
<ul id="net-list">
|
||||
<!-- populated from javascript -->
|
||||
|
|
@ -423,21 +423,21 @@
|
|||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Advanced" %}</label>
|
||||
<div class="d-grid col-sm-7">
|
||||
<button class="btn btn-outline-light" type="button" data-bs-toggle="collapse" data-bs-target="#custadvcollapse" aria-expanded="false" aria-controls="custadvcollapse">
|
||||
<button class="btn btn-outline-light" type="button" title="{% trans "Advanced" %}" data-bs-toggle="collapse" data-bs-target="#custadvcollapse" aria-expanded="false" aria-controls="custadvcollapse">
|
||||
<span>{% bs_icon 'caret-down'%} </span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="collapse" id="custadvcollapse">
|
||||
<div class="row meta-prealloc">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Disk Metadata" %}</label>
|
||||
<label for="custom_meta_prealloc" class="col-sm-3 col-form-label">{% trans "Disk Metadata" %}</label>
|
||||
<div class="col-sm-7">
|
||||
<input type="checkbox" name="meta_prealloc" title="{% trans "Metadata preallocation" %}" value="true">
|
||||
<input id="custom_meta_prealloc" type="checkbox" name="meta_prealloc" title="{% trans "Metadata preallocation" %}" value="true">
|
||||
</div>
|
||||
<label class="col-lg-1 col-form-label">{% trans "Image" %}</label>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "HDD Cache Mode" %}</label>
|
||||
<label for="cache_mode" class="col-sm-3 col-form-label">{% trans "HDD Cache Mode" %}</label>
|
||||
<div class="col-sm-7">
|
||||
<select class="form-select" id="cache_mode" name="cache_mode">
|
||||
{% for mode, name in cache_modes %}
|
||||
|
|
@ -448,9 +448,9 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "NWFilter" %}</label>
|
||||
<label for="custom_nwfilter" class="col-sm-3 col-form-label">{% trans "NWFilter" %}</label>
|
||||
<div class="col-sm-7">
|
||||
<select class="form-select" name="nwfilter">
|
||||
<select id="custom_nwfilter" class="form-select" name="nwfilter">
|
||||
<option value="">{% trans "None" %}</option>
|
||||
{% for nwfilter in nwfilters %}
|
||||
<option value="{{ nwfilter }}">{{ nwfilter }}</option>
|
||||
|
|
@ -459,9 +459,9 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "NIC Type" %} </label>
|
||||
<label for="custom_net_model" class="col-sm-3 col-form-label">{% trans "NIC Type" %} </label>
|
||||
<div class="col-sm-7">
|
||||
<select class="form-select" name="net_model">
|
||||
<select id="custom_net_model" class="form-select" name="net_model">
|
||||
{% for model in net_models_host %}
|
||||
<option value="{{ model }}" {% if model == default_nic_type %} selected {% endif %}>{{ model }}</option>
|
||||
{% endfor %}
|
||||
|
|
@ -469,9 +469,9 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Video" %}</label>
|
||||
<label for="custom_video" class="col-sm-3 col-form-label">{% trans "Video" %}</label>
|
||||
<div class="col-sm-7">
|
||||
<select class="form-select" name="video">
|
||||
<select id="custom_video" class="form-select" name="video">
|
||||
{% if not videos %}
|
||||
<option value="vga">vga</option>
|
||||
<option value="cirrus">cirrus</option>
|
||||
|
|
@ -483,9 +483,9 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Console Access" %}</label>
|
||||
<label for="custom_listener_addr" class="col-sm-3 col-form-label">{% trans "Console Access" %}</label>
|
||||
<div class="col-sm-7">
|
||||
<select class="form-select" name="listener_addr">
|
||||
<select id="custom_listener_addr" class="form-select" name="listener_addr">
|
||||
{% for addr, label in listener_addr %}
|
||||
<option value="{{ addr }}" {% if addr == "0.0.0.0" %} selected {% endif %}>{{ label }}</option>
|
||||
{% endfor %}
|
||||
|
|
@ -493,7 +493,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Add CD-Rom" %}</label>
|
||||
<label for="add_cdrom" class="col-sm-3 col-form-label">{% trans "Add CD-Rom" %}</label>
|
||||
<div class="col-sm-7">
|
||||
<select class="form-select" id="add_cdrom" name="add_cdrom">
|
||||
<option value="None" {% if bus == default_cdrom %}selected{% endif %} >--{% trans "False" %}--</option>
|
||||
|
|
@ -506,7 +506,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Add Input Device" %}</label>
|
||||
<label for="add_input" class="col-sm-3 col-form-label">{% trans "Add Input Device" %}</label>
|
||||
<div class="col-sm-7">
|
||||
<select class="form-select" id="add_input" name="add_input">
|
||||
<option value="None" {% if bus == default_input_device_bus %}selected{% endif %}>--{% trans "False" %}--</option>
|
||||
|
|
@ -519,16 +519,16 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Guest Agent" %}</label>
|
||||
<label for="custom_qemu_ga" class="col-sm-3 col-form-label">{% trans "Guest Agent" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="checkbox" name="qemu_ga" value="true" checked>
|
||||
<input id="custom_qemu_ga" type="checkbox" name="qemu_ga" value="true" checked>
|
||||
</div>
|
||||
</div>
|
||||
{% if virtio_support %}
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "VirtIO" %}</label>
|
||||
<label for="custom_virtio" class="col-sm-3 col-form-label">{% trans "VirtIO" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="checkbox" name="virtio" value="{{ virtio_support }}" checked>
|
||||
<input id="custom_virtio" type="checkbox" name="virtio" value="{{ virtio_support }}" checked>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
|
@ -555,16 +555,16 @@
|
|||
<div>
|
||||
<form method="post" role="form" aria-label="Create instance from template form">{% csrf_token %}{% submission_key %}
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Name" %}</label>
|
||||
<label for="template_name" class="col-sm-3 col-form-label">{% trans "Name" %}</label>
|
||||
<div class="col-sm-7">
|
||||
<input type="text" class="form-control" name="name" placeholder="{% trans "Name" %}" maxlength="64" required pattern="[a-zA-Z0-9\.\-_]+">
|
||||
<input id="template_name" type="text" class="form-control" name="name" placeholder="{% trans "Name" %}" maxlength="64" required pattern="[a-zA-Z0-9\.\-_]+">
|
||||
</div>
|
||||
</div>
|
||||
{% if firmwares %}
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Firmware" %}</label>
|
||||
<label for="template_firmware" class="col-sm-3 col-form-label">{% trans "Firmware" %}</label>
|
||||
<div class="col-sm-7">
|
||||
<select class="form-select" name="firmware">
|
||||
<select id="template_firmware" class="form-select" name="firmware">
|
||||
{% for frm in firmwares %}
|
||||
<option value="{{ frm }}" {% if frm == default_firmware %}selected{% endif %}>{{ frm }}</option>
|
||||
{% endfor %}
|
||||
|
|
@ -573,15 +573,15 @@
|
|||
</div>
|
||||
{% endif %}
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "VCPU" %}</label>
|
||||
<label for="template_vcpu" class="col-sm-3 col-form-label">{% trans "VCPU" %}</label>
|
||||
<div class="col-sm-7">
|
||||
<input type="text" class="form-control" name="vcpu" value="1" maxlength="2" required pattern="[0-9]">
|
||||
<input id="template_vcpu" type="text" class="form-control" name="vcpu" value="1" maxlength="2" required pattern="[0-9]">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "VCPU Config" %}</label>
|
||||
<label for="template_vcpu_mode" class="col-sm-3 col-form-label">{% trans "VCPU Config" %}</label>
|
||||
<div class="col-sm-7">
|
||||
<select class="form-select" id="vcpu_mode" name="vcpu_mode">
|
||||
<select id="template_vcpu_mode" class="form-select" name="vcpu_mode">
|
||||
<option value=""> {% trans 'no-mode' %}</option>
|
||||
{% for mode in dom_caps.cpu_modes %}
|
||||
{% if mode == 'custom' %}
|
||||
|
|
@ -600,16 +600,16 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "RAM" %}</label>
|
||||
<label for="template_memory" class="col-sm-3 col-form-label">{% trans "RAM" %}</label>
|
||||
<div class="col-sm-7">
|
||||
<input type="text" class="form-control" name="memory" value="512" maxlength="5" required pattern="[0-9]+">
|
||||
<input id="template_memory" type="text" class="form-control" name="memory" value="512" maxlength="5" required pattern="[0-9]+">
|
||||
</div>
|
||||
<label class="col-sm-1 col-form-label">{% trans "MB" %}</label>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Template Disk" %}</label>
|
||||
<label for="template_disk" class="col-sm-3 col-form-label">{% trans "Template Disk" %}</label>
|
||||
<div class="col-sm-3">
|
||||
<select class="form-select" onchange="get_template_vols({{ compute_id }}, value);">
|
||||
<select class="form-select" id="template_disk" onchange="get_template_vols({{ compute_id }}, value);">
|
||||
{% if storages %}
|
||||
<option value disabled selected>{% trans "Select pool" %}...</option>
|
||||
{% for storage in storages %}
|
||||
|
|
@ -627,7 +627,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Storage" %}</label>
|
||||
<label for="storage" class="col-sm-3 col-form-label">{% trans "Storage" %}</label>
|
||||
<div class="col-sm-7">
|
||||
<select class="form-select" id="storage" name="storage" disabled>
|
||||
{% if storages %}
|
||||
|
|
@ -641,9 +641,9 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Network/MAC" %}</label>
|
||||
<label for="template_networks" class="col-sm-3 col-form-label">{% trans "Network/MAC" %}</label>
|
||||
<div class="col-sm-3">
|
||||
<select class="form-select" name="networks">
|
||||
<select id="template_networks" class="form-select" name="networks">
|
||||
{% for network in networks %}
|
||||
<option value="{{ network }}">{{ network }}</option>
|
||||
{% endfor %}
|
||||
|
|
@ -656,23 +656,23 @@
|
|||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Advanced" %}</label>
|
||||
<div class="d-grid col-sm-7">
|
||||
<button class="btn btn-outline-light" type="button" data-bs-toggle="collapse" data-bs-target="#tempAdvCollapse" aria-expanded="false" aria-controls="tempAdvCollapse">
|
||||
<button class="btn btn-outline-light" type="button" title="{% trans "Advanced" %}" data-bs-toggle="collapse" data-bs-target="#tempAdvCollapse" aria-expanded="false" aria-controls="tempAdvCollapse">
|
||||
<span>{% bs_icon 'caret-down'%} </span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="collapse" id="tempAdvCollapse">
|
||||
<div class="row meta-prealloc">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Disk Metadata" %}</label>
|
||||
<label for="template_meta_prealloc" class="col-sm-3 col-form-label">{% trans "Disk Metadata" %}</label>
|
||||
<div class="col-sm-7">
|
||||
<input type="checkbox" name="meta_prealloc" title="{% trans "Metadata preallocation" %}" value="true">
|
||||
<input id="template_meta_prealloc" type="checkbox" name="meta_prealloc" title="{% trans "Metadata preallocation" %}" value="true">
|
||||
</div>
|
||||
<label class="col-lg-1 col-form-label">{% trans "Image" %}</label>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "HDD cache mode" %}</label>
|
||||
<label for="template_cache_mode" class="col-sm-3 col-form-label">{% trans "HDD cache mode" %}</label>
|
||||
<div class="col-sm-7">
|
||||
<select class="form-select" name="cache_mode">
|
||||
<select id="template_cache_mode" class="form-select" name="cache_mode">
|
||||
{% for mode, name in cache_modes %}
|
||||
<option value="{{ mode }}" {% if mode == default_cache %}selected{% endif %}>
|
||||
{% trans name %}</option>
|
||||
|
|
@ -681,9 +681,9 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "NWFilter" %}</label>
|
||||
<label for="template_nwfilter" class="col-sm-3 col-form-label">{% trans "NWFilter" %}</label>
|
||||
<div class="col-sm-7">
|
||||
<select class="form-select" name="nwfilter">
|
||||
<select id="template_nwfilter" class="form-select" name="nwfilter">
|
||||
<option value="">{% trans "None" %}</option>
|
||||
{% for nwfilter in nwfilters %}
|
||||
<option value="{{ nwfilter }}">{{ nwfilter }}</option>
|
||||
|
|
@ -692,9 +692,9 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "NIC Type" %} </label>
|
||||
<label for="template_net_model" class="col-sm-3 col-form-label">{% trans "NIC Type" %} </label>
|
||||
<div class="col-sm-7">
|
||||
<select class="form-select" name="net_model">
|
||||
<select id="template_net_model" class="form-select" name="net_model">
|
||||
{% for model in net_models_host %}
|
||||
<option value="{{ model }}" {% if model == default_nic_type %} selected {% endif %}>{{ model }}</option>
|
||||
{% endfor %}
|
||||
|
|
@ -702,9 +702,9 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Video" %}</label>
|
||||
<label for="template_video" class="col-sm-3 col-form-label">{% trans "Video" %}</label>
|
||||
<div class="col-sm-7">
|
||||
<select class="form-select" name="video">
|
||||
<select id="template_video" class="form-select" name="video">
|
||||
{% if not videos %}
|
||||
<option value="vga">vga</option>
|
||||
<option value="cirrus">cirrus</option>
|
||||
|
|
@ -716,9 +716,9 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Console Access" %}</label>
|
||||
<label for="template_listener_addr" class="col-sm-3 col-form-label">{% trans "Console Access" %}</label>
|
||||
<div class="col-sm-7">
|
||||
<select class="form-select" name="listener_addr">
|
||||
<select id="template_listener_addr" class="form-select" name="listener_addr">
|
||||
{% for addr, label in listener_addr %}
|
||||
<option value="{{ addr }}" {% if addr == "0.0.0.0" %} selected {% endif %}>{{ label }}</option>
|
||||
{% endfor %}
|
||||
|
|
@ -726,9 +726,9 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Add CD-Rom" %}</label>
|
||||
<label for="template_add_cdrom" class="col-sm-3 col-form-label">{% trans "Add CD-Rom" %}</label>
|
||||
<div class="col-sm-7">
|
||||
<select class="form-select" name="add_cdrom">
|
||||
<select id="template_add_cdrom" class="form-select" name="add_cdrom">
|
||||
<option value="None" {% if bus == default_cdrom %}selected{% endif %}>--{% trans "False" %}--</option>
|
||||
{% for bus in cdrom_buses %}
|
||||
<option value="{{ bus }}" {% if bus == default_cdrom %}selected {% endif %}>
|
||||
|
|
@ -739,9 +739,9 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Add Input Device" %}</label>
|
||||
<label for="template_add_input" class="col-sm-3 col-form-label">{% trans "Add Input Device" %}</label>
|
||||
<div class="col-sm-7">
|
||||
<select class="form-select" name="add_input">
|
||||
<select id="template_add_input" class="form-select" name="add_input">
|
||||
<option value="None" {% if bus == default_input_device_bus %}selected{% endif %}>--{% trans "False" %}--</option>
|
||||
{% for bus in input_device_buses %}
|
||||
<option value="{{ bus }}" {% if bus == default_input_device_bus %}selected{% endif %}>
|
||||
|
|
@ -752,16 +752,16 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Guest Agent" %}</label>
|
||||
<label for="template_qemu_ga" class="col-sm-3 col-form-label">{% trans "Guest Agent" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="checkbox" name="qemu_ga" value="true" checked>
|
||||
<input id="template_qemu_ga" type="checkbox" name="qemu_ga" value="true" checked>
|
||||
</div>
|
||||
</div>
|
||||
{% if virtio_support %}
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "VirtIO" %}</label>
|
||||
<label for="template_virtio" class="col-sm-3 col-form-label">{% trans "VirtIO" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="checkbox" name="virtio" value="{{ virtio_support }}" checked>
|
||||
<input id="template_virtio" type="checkbox" name="virtio" value="{{ virtio_support }}" checked>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
|
|
|||
|
|
@ -16,15 +16,15 @@
|
|||
<form method="post" action="" role="form" aria-label="Create New Interface form">{% csrf_token %}
|
||||
<div class="modal-body">
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Name" %}</label>
|
||||
<label for="iface_name" class="col-sm-3 col-form-label">{% trans "Name" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" name="name" class="form-control" placeholder="br0" maxlength="15" required pattern="[A-Za-z0-9_.\-]+"/>
|
||||
<input id="iface_name" type="text" name="name" class="form-control" placeholder="br0" maxlength="15" required pattern="[A-Za-z0-9_.\-]+"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Start mode" %}</label>
|
||||
<label for="iface_start_mode" class="col-sm-3 col-form-label">{% trans "Start mode" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<select name="start_mode" class="form-select">
|
||||
<select id="iface_start_mode" name="start_mode" class="form-select">
|
||||
<option value="none">{% trans "none" %}</option>
|
||||
<option value="onboot">{% trans "onboot" %}</option>
|
||||
<option value="hotplug">{% trans "hotplug" %}</option>
|
||||
|
|
@ -32,9 +32,9 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Device" %}</label>
|
||||
<label for="iface_netdev" class="col-sm-3 col-form-label">{% trans "Device" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<select name="netdev" class="form-select">
|
||||
<select id="iface_netdev" name="netdev" class="form-select">
|
||||
{% for dev in netdevs %}
|
||||
<option value="{{ dev }}">{{ dev }}</option>
|
||||
{% endfor %}
|
||||
|
|
@ -42,7 +42,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Type" %}</label>
|
||||
<label for="itype" class="col-sm-3 col-form-label">{% trans "Type" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<select name="itype" class="form-select" id="itype">
|
||||
<option value="bridge">{% trans "bridge" %}</option>
|
||||
|
|
@ -51,19 +51,19 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="row bridge_name_form_group">
|
||||
<label class="col-sm-3 col-form-label">{% trans "STP" %}</label>
|
||||
<label for="iface_stp" class="col-sm-3 col-form-label">{% trans "STP" %}</label>
|
||||
|
||||
<div class="col-sm-6">
|
||||
<select name="stp" class="form-select">
|
||||
<select id="iface_stp" name="stp" class="form-select">
|
||||
<option value="on">{% trans "on" %}</option>
|
||||
<option value="off">{% trans "off" %}</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row bridge_name_form_group">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Delay" %}</label>
|
||||
<label for="iface_delay" class="col-sm-3 col-form-label">{% trans "Delay" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" name="delay" class="form-control" value="0" maxlength="3" required pattern="[0-9]+"/>
|
||||
<input id="iface_delay" type="text" name="delay" class="form-control" value="0" maxlength="3" required pattern="[0-9]+"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tabbable">
|
||||
|
|
@ -84,7 +84,7 @@
|
|||
<div class="tab-pane active" id="ipv4tab">
|
||||
<div class="modal-body">
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "IPv4 Mode" %}</label>
|
||||
<label for="ipv4" class="col-sm-3 col-form-label">{% trans "IPv4 Mode" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<select name="ipv4_type" class="form-select" id="ipv4">
|
||||
<option value="dhcp">{% trans "DHCP" %}</option>
|
||||
|
|
@ -94,15 +94,15 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="row static_ipv4_form_group">
|
||||
<label class="col-sm-3 col-form-label">{% trans "IPv4 Address" %}</label>
|
||||
<label for="iface_ipv4_addr" class="col-sm-3 col-form-label">{% trans "IPv4 Address" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" name="ipv4_addr" maxlength="31" pattern="[0-9\.\/]+|^$">
|
||||
<input id="iface_ipv4_addr" type="text" class="form-control" name="ipv4_addr" maxlength="31" pattern="[0-9\.\/]+|^$">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row static_ipv4_form_group">
|
||||
<label class="col-sm-3 col-form-label">{% trans "IPv4 Gateway" %}</label>
|
||||
<label for="iface_ipv4_gw" class="col-sm-3 col-form-label">{% trans "IPv4 Gateway" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" name="ipv4_gw" maxlength="16" pattern="[0-9\.]+|^$">
|
||||
<input id="iface_ipv4_gw" type="text" class="form-control" name="ipv4_gw" maxlength="16" pattern="[0-9\.]+|^$">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -110,7 +110,7 @@
|
|||
<div class="tab-pane" id="ipv6tab">
|
||||
<div class="modal-body">
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "IPv6 Mode" %}</label>
|
||||
<label for="ipv6" class="col-sm-3 col-form-label">{% trans "IPv6 Mode" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<select name="ipv6_type" class="form-select" id="ipv6">
|
||||
<option value="none">{% trans "No configuration" %}</option>
|
||||
|
|
@ -120,15 +120,15 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="row static_ipv6_form_group">
|
||||
<label class="col-sm-3 col-form-label">{% trans "IPv6 Address" %}</label>
|
||||
<label for="iface_ipv6_addr" class="col-sm-3 col-form-label">{% trans "IPv6 Address" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" name="ipv6_addr" maxlength="100" pattern="[0-9a-fA-F\:\/]+|^$">
|
||||
<input id="iface_ipv6_addr" type="text" class="form-control" name="ipv6_addr" maxlength="100" pattern="[0-9a-fA-F\:\/]+|^$">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row static_ipv6_form_group">
|
||||
<label class="col-sm-3 col-form-label">{% trans "IPv6 Gateway" %}</label>
|
||||
<label for="iface_ipv6_gw" class="col-sm-3 col-form-label">{% trans "IPv6 Gateway" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" name="ipv6_gw" maxlength="100" pattern="[0-9a-fA-F\:]+|^$">
|
||||
<input id="iface_ipv6_gw" type="text" class="form-control" name="ipv6_gw" maxlength="100" pattern="[0-9a-fA-F\:]+|^$">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -16,13 +16,13 @@
|
|||
<form method="post" action="" role="form" aria-label="Add New Network form" novalidate>{% csrf_token %}
|
||||
<div class="modal-body">
|
||||
<div class="row">
|
||||
<label class="col-sm-4 col-form-label">{% trans "Name" %}</label>
|
||||
<label for="net_name" class="col-sm-4 col-form-label">{% trans "Name" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" name="name" placeholder="{% trans "default" %}" required pattern="[a-zA-Z0-9_]+">
|
||||
<input id="net_name" type="text" class="form-control" name="name" placeholder="{% trans "default" %}" required pattern="[a-zA-Z0-9_]+">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-4 col-form-label">{% trans "Type forwarding" %}</label>
|
||||
<label for="forward_select" class="col-sm-4 col-form-label">{% trans "Type forwarding" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<select id="forward_select" class="form-select" name="forward">
|
||||
<option value="nat">{% trans "NAT" %}</option>
|
||||
|
|
@ -34,51 +34,51 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="row bridge_name_form_group_dhcp">
|
||||
<label class="col-sm-4 col-form-label">{% trans "IPv4 Subnet pool" %}</label>
|
||||
<label for="net_subnet" class="col-sm-4 col-form-label">{% trans "IPv4 Subnet pool" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" name="subnet" value="" placeholder="192.168.100.0/24" required pattern="[0-9\/\.]+">
|
||||
<input id="net_subnet" type="text" class="form-control" name="subnet" value="" placeholder="192.168.100.0/24" required pattern="[0-9\/\.]+">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row bridge_name_form_group_dhcp">
|
||||
<label class="col-sm-4 col-form-label">{% trans "DHCPv4" %}</label>
|
||||
<label for="net_dhcp4" class="col-sm-4 col-form-label">{% trans "DHCPv4" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="checkbox" name="dhcp4" value="true" checked>
|
||||
<input id="net_dhcp4" type="checkbox" name="dhcp4" value="true" checked>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row bridge_name_form_group_dhcp">
|
||||
<label class="col-sm-4 col-form-label">{% trans "Fixed Addresses" %}</label>
|
||||
<label for="net_fixed" class="col-sm-4 col-form-label">{% trans "Fixed Addresses" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="checkbox" name="fixed" value="true">
|
||||
<input id="net_fixed" type="checkbox" name="fixed" value="true">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row bridge_name_form_group_dhcp">
|
||||
<label class="col-sm-4 col-form-label">{% trans "Enable IPv6" %}</label>
|
||||
<label for="enable_ipv6" class="col-sm-4 col-form-label">{% trans "Enable IPv6" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="checkbox" id="enable_ipv6" name="enable_ipv6" value="false">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row ipv6_group">
|
||||
<label class="col-sm-4 col-form-label">{% trans "IPv6 Subnet pool" %}</label>
|
||||
<label for="net_subnet6" class="col-sm-4 col-form-label">{% trans "IPv6 Subnet pool" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" name="subnet6" value="" placeholder="fd00:dead:baba:1::/64" required pattern="[0-9\/\.]+">
|
||||
<input id="net_subnet6" type="text" class="form-control" name="subnet6" value="" placeholder="fd00:dead:baba:1::/64" required pattern="[0-9\/\.]+">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row ipv6_group">
|
||||
<label class="col-sm-4 col-form-label">{% trans "DHCPv6" %}</label>
|
||||
<label for="net_dhcp6" class="col-sm-4 col-form-label">{% trans "DHCPv6" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="checkbox" name="dhcp6" value="true">
|
||||
<input id="net_dhcp6" type="checkbox" name="dhcp6" value="true">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row bridge_name_form_group">
|
||||
<label class="col-sm-4 col-form-label" id="bridge_label">{% trans "Bridge Name" %}</label>
|
||||
<label for="bridge_name" class="col-sm-4 col-form-label" id="bridge_label">{% trans "Bridge Name" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" name="bridge_name" id="bridge_name" placeholder="br0" pattern="[a-z0-9\-_:]+">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row bridge_name_form_group openvswitch">
|
||||
<label class="col-sm-4 col-form-label">{% trans "Open vSwitch" %}</label>
|
||||
<label for="net_openvswitch" class="col-sm-4 col-form-label">{% trans "Open vSwitch" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="checkbox" name="openvswitch" value="true">
|
||||
<input id="net_openvswitch" type="checkbox" name="openvswitch" value="true">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -47,22 +47,22 @@
|
|||
<form method="post" action="" role="form" aria-label="Create storage with pool dir path form">{% csrf_token %}
|
||||
<div class="modal-body">
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Type" %}</label>
|
||||
<label for="stg_dir_stg_type" class="col-sm-3 col-form-label">{% trans "Type" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" name="stg_type" value="dir" disabled>
|
||||
<input id="stg_dir_stg_type" type="text" class="form-control" name="stg_type" value="dir" disabled>
|
||||
<input type="hidden" name="stg_type" value="dir">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Name" %}</label>
|
||||
<label for="stg_dir_name" class="col-sm-3 col-form-label">{% trans "Name" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" name="name" placeholder="{% trans "default" %}" maxlength="20" required pattern="[a-zA-Z0-9\.\-_]+">
|
||||
<input id="stg_dir_name" type="text" class="form-control" name="name" placeholder="{% trans "default" %}" maxlength="20" required pattern="[a-zA-Z0-9\.\-_]+">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Path" %}</label>
|
||||
<label for="stg_dir_target" class="col-sm-3 col-form-label">{% trans "Path" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" name="target" class="form-control" value="/var/lib/libvirt/images" required>
|
||||
<input id="stg_dir_target" type="text" name="target" class="form-control" value="/var/lib/libvirt/images" required>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -76,22 +76,22 @@
|
|||
<form method="post" action="" role="form" aria-label="Create storage pool with LVM pool">{% csrf_token %}
|
||||
<div class="modal-body">
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Type" %}</label>
|
||||
<label for="stg_logical_stg_type" class="col-sm-3 col-form-label">{% trans "Type" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" name="stg_type" value="logical" disabled>
|
||||
<input id="stg_logical_stg_type" type="text" class="form-control" name="stg_type" value="logical" disabled>
|
||||
<input type="hidden" name="stg_type" value="logical">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Name" %}</label>
|
||||
<label for="stg_logical_name" class="col-sm-3 col-form-label">{% trans "Name" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" name="name" placeholder="{% trans "default" %}" maxlength="20" required pattern="[a-zA-Z0-9\.\-_]+">
|
||||
<input id="stg_logical_name" type="text" class="form-control" name="name" placeholder="{% trans "default" %}" maxlength="20" required pattern="[a-zA-Z0-9\.\-_]+">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Device" %}</label>
|
||||
<label for="stg_logical_source" class="col-sm-3 col-form-label">{% trans "Device" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" name="source" value="/dev/sdb" required>
|
||||
<input id="stg_logical_source" type="text" class="form-control" name="source" value="/dev/sdb" required>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -105,40 +105,40 @@
|
|||
<form method="post" action="" role="form" aria-label="Create storage pool with ceph form">{% csrf_token %}
|
||||
<div class="modal-body">
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Type" %}</label>
|
||||
<label for="stg_rbd_stg_type" class="col-sm-3 col-form-label">{% trans "Type" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" name="stg_type" value="rbd" disabled>
|
||||
<input id="stg_rbd_stg_type" type="text" class="form-control" name="stg_type" value="rbd" disabled>
|
||||
<input type="hidden" name="stg_type" value="rbd">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Name" %}</label>
|
||||
<label for="stg_rbd_name" class="col-sm-3 col-form-label">{% trans "Name" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" name="name" placeholder="rbdpool" maxlength="20" required pattern="[a-zA-Z0-9\.\-_]+">
|
||||
<input id="stg_rbd_name" type="text" class="form-control" name="name" placeholder="rbdpool" maxlength="20" required pattern="[a-zA-Z0-9\.\-_]+">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Ceph User" %}</label>
|
||||
<label for="stg_rbd_ceph_user" class="col-sm-3 col-form-label">{% trans "Ceph User" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" name="ceph_user" placeholder="libvirt" maxlength="20" required pattern="[a-zA-Z0-9\.\-_]+">
|
||||
<input id="stg_rbd_ceph_user" type="text" class="form-control" name="ceph_user" placeholder="libvirt" maxlength="20" required pattern="[a-zA-Z0-9\.\-_]+">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Ceph Pool" %}</label>
|
||||
<label for="stg_rbd_ceph_pool" class="col-sm-3 col-form-label">{% trans "Ceph Pool" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" name="ceph_pool" placeholder="libvirt-pool" maxlength="20" required pattern="[a-zA-Z0-9\.\-_]+">
|
||||
<input id="stg_rbd_ceph_pool" type="text" class="form-control" name="ceph_pool" placeholder="libvirt-pool" maxlength="20" required pattern="[a-zA-Z0-9\.\-_]+">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Ceph Host" %}</label>
|
||||
<label for="stg_rbd_ceph_host" class="col-sm-3 col-form-label">{% trans "Ceph Host" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" name="ceph_host" placeholder="mon0.ceph.host" maxlength="20" required pattern="[a-zA-Z0-9\.\-_]+">
|
||||
<input id="stg_rbd_ceph_host" type="text" class="form-control" name="ceph_host" placeholder="mon0.ceph.host" maxlength="20" required pattern="[a-zA-Z0-9\.\-_]+">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Secrets" %}</label>
|
||||
<label for="stg_rbd_secret" class="col-sm-3 col-form-label">{% trans "Secrets" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<select name="secret" class="form-control">
|
||||
<select id="stg_rbd_secret" name="secret" class="form-control">
|
||||
{% if secrets %}
|
||||
{% for secret in secrets %}
|
||||
<option value="{{ secret }}">{{ secret }}</option>
|
||||
|
|
@ -170,32 +170,32 @@
|
|||
<form method="post" action="" role="form" aria-label="Create storage pool with net filesystem form">{% csrf_token %}
|
||||
<div class="modal-body">
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Type" %}</label>
|
||||
<label for="stg_netfs_stg_type" class="col-sm-3 col-form-label">{% trans "Type" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" name="stg_type" value="netfs" disabled>
|
||||
<input id="stg_netfs_stg_type" type="text" class="form-control" name="stg_type" value="netfs" disabled>
|
||||
<input type="hidden" name="stg_type" value="netfs">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Name" %}</label>
|
||||
<label for="stg_netfs_name" class="col-sm-3 col-form-label">{% trans "Name" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" name="name" placeholder="netfspool" maxlength="20" required pattern="[a-zA-Z0-9\.\-_]+">
|
||||
<input id="stg_netfs_name" type="text" class="form-control" name="name" placeholder="netfspool" maxlength="20" required pattern="[a-zA-Z0-9\.\-_]+">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Hostname" %}</label>
|
||||
<label for="stg_netfs_netfs_host" class="col-sm-3 col-form-label">{% trans "Hostname" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" name="netfs_host" placeholder="nfs.example.com" maxlength="20" required pattern="[a-zA-Z0-9\.\-_]+">
|
||||
<input id="stg_netfs_netfs_host" type="text" class="form-control" name="netfs_host" placeholder="nfs.example.com" maxlength="20" required pattern="[a-zA-Z0-9\.\-_]+">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Remote Path" %}</label>
|
||||
<label for="stg_netfs_source" class="col-sm-3 col-form-label">{% trans "Remote Path" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" name="source" placeholder="/srv/storage/" maxlength="100" required>
|
||||
<input id="stg_netfs_source" type="text" class="form-control" name="source" placeholder="/srv/storage/" maxlength="100" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Format" %}</label>
|
||||
<label for="source_format" class="col-sm-3 col-form-label">{% trans "Format" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<select name="source_format" class="form-control" id="source_format">
|
||||
<option value="auto">{% trans "auto" %}</option>
|
||||
|
|
@ -206,9 +206,9 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Local Path" %}</label>
|
||||
<label for="stg_netfs_target" class="col-sm-3 col-form-label">{% trans "Local Path" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" name="target" placeholder="/srv/storage/" maxlength="100" required>
|
||||
<input id="stg_netfs_target" type="text" class="form-control" name="target" placeholder="/srv/storage/" maxlength="100" required>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -226,17 +226,17 @@
|
|||
<form method="post" action="" role="form" aria-label="Create iso pool form">{% csrf_token %}
|
||||
<div class="modal-body">
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Name" %}</label>
|
||||
<label for="stg_iso_name" class="col-sm-3 col-form-label">{% trans "Name" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" name="name" value="iso" disabled>
|
||||
<input id="stg_iso_name" type="text" class="form-control" name="name" value="iso" disabled>
|
||||
<input type="hidden" name="name" value="iso">
|
||||
<input type="hidden" name="stg_type" value="dir">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Path" %}</label>
|
||||
<label for="stg_iso_target" class="col-sm-3 col-form-label">{% trans "Path" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" name="target" value="/var/lib/libvirt/iso" required>
|
||||
<input id="stg_iso_target" type="text" class="form-control" name="target" value="/var/lib/libvirt/iso" required>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="progress">
|
||||
<div class="progress-bar progress-bar-striped progress-bar-animated" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100" style="width:100%">
|
||||
<div class="progress-bar progress-bar-striped progress-bar-animated" role="progressbar" aria-label="{% trans "Processing" %}" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100" style="width:100%">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -16,27 +16,27 @@
|
|||
<form method="post" action="" role="form" aria-label="Create Secret form">{% csrf_token %}
|
||||
<div class="modal-body">
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Ephemeral" %}</label>
|
||||
<label for="secret_ephemeral" class="col-sm-3 col-form-label">{% trans "Ephemeral" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<select name="ephemeral" class="form-control">
|
||||
<select id="secret_ephemeral" name="ephemeral" class="form-control">
|
||||
<option value="no">{% trans "no" %}</option>
|
||||
<option value="yes">{% trans "yes" %}</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Private" %}</label>
|
||||
<label for="secret_private" class="col-sm-3 col-form-label">{% trans "Private" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<select name="private" class="form-control">
|
||||
<select id="secret_private" name="private" class="form-control">
|
||||
<option value="no">{% trans "no" %}</option>
|
||||
<option value="yes">{% trans "yes" %}</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Usage" %}</label>
|
||||
<label for="secret_usage_type" class="col-sm-3 col-form-label">{% trans "Usage" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<select name="usage_type" class="form-control">
|
||||
<select id="secret_usage_type" name="usage_type" class="form-control">
|
||||
{% for key, usage_type in secret_usage_types.items %}
|
||||
<option value="{{ usage_type }}">{{ usage_type }}</option>
|
||||
{% endfor %}
|
||||
|
|
@ -44,9 +44,9 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col-sm-3 col-form-label">{% trans "Data" %}</label>
|
||||
<label for="secret_data" class="col-sm-3 col-form-label">{% trans "Data" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" name="data" class="form-control" value="" maxlength="100" required />
|
||||
<input id="secret_data" type="text" name="data" class="form-control" value="" maxlength="100" required />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@ class UniqueIdTests(TestCase):
|
|||
with patch("vrtManager.connection.connection_manager.get_connection", return_value=conn), \
|
||||
patch("vrtManager.connection.wvmConnect.get_machine_types", return_value=["pc"]), \
|
||||
patch("vrtManager.connection.wvmConnect.get_nwfilters", return_value=[]), \
|
||||
patch("vrtManager.connection.wvmConnect.get_cpu_modes", return_value=["host-model"]), \
|
||||
patch.object(libvirt.virConnect, "getMemoryStats", return_value={"total": 8 << 20, "free": 4 << 20, "buffers": 0, "cached": 0}), \
|
||||
patch.object(libvirt.virConnect, "getCPUStats", return_value={"kernel": 1, "idle": 1, "user": 1, "iowait": 0}):
|
||||
for name, keys in named_urls(get_resolver().url_patterns):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue