mirror of
https://github.com/retspen/webvirtcloud
synced 2026-11-08 19:26:48 +00:00
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.
94 lines
6 KiB
HTML
94 lines
6 KiB
HTML
{% load i18n %}
|
|
{% load bootstrap_icons %}
|
|
{% if request.user.is_superuser %}
|
|
<a href="#AddNetPool" type="button" class="btn btn-success float-end" title="{% trans "Add New Network" %}" data-bs-toggle="modal">
|
|
<span aria-hidden="true">{% bs_icon 'plus' %} </span>
|
|
</a>
|
|
|
|
<!-- Modal pool -->
|
|
<div class="modal fade" id="AddNetPool" tabindex="-1" role="dialog" aria-labelledby="AddNetPoolLabel" aria-hidden="true">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title">{% trans "Add New Network" %}</h5>
|
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
|
</div>
|
|
<form method="post" action="" role="form" aria-label="Add New Network form" novalidate>{% csrf_token %}
|
|
<div class="modal-body">
|
|
<div class="row">
|
|
<label for="net_name" class="col-sm-4 col-form-label">{% trans "Name" %}</label>
|
|
<div class="col-sm-6">
|
|
<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 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>
|
|
<option value="route">{% trans "ROUTE" %}</option>
|
|
<option value="none">{% trans "ISOLATE" %}</option>
|
|
<option value="bridge">{% trans "BRIDGE" %}</option>
|
|
<option value="macvtap">{% trans "MACVTAP" %}</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="row bridge_name_form_group_dhcp">
|
|
<label for="net_subnet" class="col-sm-4 col-form-label">{% trans "IPv4 Subnet pool" %}</label>
|
|
<div class="col-sm-6">
|
|
<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 for="net_dhcp4" class="col-sm-4 col-form-label">{% trans "DHCPv4" %}</label>
|
|
<div class="col-sm-6">
|
|
<input id="net_dhcp4" type="checkbox" name="dhcp4" value="true" checked>
|
|
</div>
|
|
</div>
|
|
<div class="row bridge_name_form_group_dhcp">
|
|
<label for="net_fixed" class="col-sm-4 col-form-label">{% trans "Fixed Addresses" %}</label>
|
|
<div class="col-sm-6">
|
|
<input id="net_fixed" type="checkbox" name="fixed" value="true">
|
|
</div>
|
|
</div>
|
|
<div class="row bridge_name_form_group_dhcp">
|
|
<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 for="net_subnet6" class="col-sm-4 col-form-label">{% trans "IPv6 Subnet pool" %}</label>
|
|
<div class="col-sm-6">
|
|
<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 for="net_dhcp6" class="col-sm-4 col-form-label">{% trans "DHCPv6" %}</label>
|
|
<div class="col-sm-6">
|
|
<input id="net_dhcp6" type="checkbox" name="dhcp6" value="true">
|
|
</div>
|
|
</div>
|
|
<div class="row bridge_name_form_group">
|
|
<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 for="net_openvswitch" class="col-sm-4 col-form-label">{% trans "Open vSwitch" %}</label>
|
|
<div class="col-sm-6">
|
|
<input id="net_openvswitch" type="checkbox" name="openvswitch" value="true">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">{% trans "Close" %}</button>
|
|
<button type="submit" class="btn btn-primary" name="create">{% trans "Create" %}</button>
|
|
</div>
|
|
</form>
|
|
</div> <!-- /.modal-content -->
|
|
</div> <!-- /.modal-dialog -->
|
|
</div> <!-- /.modal -->
|
|
{% endif %}
|
|
|