mirror of
https://github.com/retspen/webvirtcloud
synced 2026-11-08 11:16:47 +00:00
Twenty tables had no .table-responsive wrapper, so on a phone the user list, compute list, VM lists, network and network filter pages scrolled sideways as a whole. Each table now scrolls inside its box, as the other ten already did. The page test walks the network page too, and checks that every table on every page has the wrapper. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
105 lines
No EOL
4.9 KiB
HTML
105 lines
No EOL
4.9 KiB
HTML
{% extends "base.html" %}
|
|
{% load i18n %}
|
|
{% load bootstrap_icons %}
|
|
|
|
{% block title %}{% trans "Interface" %} - {{ iface }}{% endblock %}
|
|
|
|
{% block page_heading %}{% trans "Interface" %}: {{ iface }}{% endblock page_heading %}
|
|
|
|
{% block content %}
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
<ol class="breadcrumb shadow-sm">
|
|
<li class="breadcrumb-item">
|
|
<a href="{% url 'overview' compute.id %}">{% bs_icon 'laptop' %} {% trans "Overview" %}</a>
|
|
</li>
|
|
<li class="breadcrumb-item">
|
|
<a href="{% url 'instances' compute.id %}">{% bs_icon 'server' %} {% trans "Instances" %}</a>
|
|
</li>
|
|
<li class="breadcrumb-item">
|
|
<a href="{% url 'storages' compute.id %}">{% bs_icon 'device-hdd' %} {% trans "Storages" %}</a>
|
|
</li>
|
|
<li class="breadcrumb-item">
|
|
<a href="{% url 'networks' compute.id %}">{% bs_icon 'hdd-network' %} {% trans "Networks" %}</a>
|
|
</li>
|
|
<li class="breadcrumb-item">
|
|
<a href="{% url 'interfaces' compute.id %}">{% bs_icon 'wifi' %} {% trans "Interfaces" %}</a>
|
|
</li>
|
|
<li class="breadcrumb-item">
|
|
<a href="{% url 'nwfilters' compute.id %}">{% bs_icon 'filter' %} {% trans "NWFilters" %}</a>
|
|
</li>
|
|
<li class="breadcrumb-item">
|
|
<a href="{% url 'virtsecrets' compute.id %}">{% bs_icon 'key' %} {% trans "Secrets" %}</a>
|
|
</li>
|
|
</ol>
|
|
</div>
|
|
</div>
|
|
|
|
{% if changeable is False %}{% include 'interfaces_unchangeable.html' %}{% endif %}
|
|
<div class="row">
|
|
<dl class="ms-3 row">
|
|
<dt class="col-4">{% trans "Interface" %}</dt>
|
|
<dd class="col-8"><strong>{{ iface }}</strong></dd>
|
|
<dt class="col-4">{% trans "IPv4" %} ({% if ipv4 == None %}{% trans 'None' %}{% else %}{{ ipv4_type }}{% endif %})</dt>
|
|
<dd class="col-8">{{ ipv4 }}</dd>
|
|
<dt class="col-4">{% trans "IPv6" %} ({% if ipv6 == None %}{% trans 'None' %}{% else %}{{ ipv6_type }}{% endif %})</dt>
|
|
<dd class="col-8">{{ ipv6 }}</dd>
|
|
<dt class="col-4">{% trans "MAC" %}</dt>
|
|
<dd class="col-8">{{ mac }}</dd>
|
|
<dt class="col-4">{% trans "Interface Type" %}</dt>
|
|
<dd class="col-8">{{ itype }}</dd>
|
|
{% if itype == 'bridge' %}
|
|
<dt class="col-4">{% trans "Bridge Device" %}</dt>
|
|
<dd class="col-8">{{ bridge }}</dd>
|
|
{% endif %}
|
|
<dt class="col-4">{% trans "Boot Mode" %}</dt>
|
|
<dd class="col-8">{{ start_mode }}</dd>
|
|
<dt class="col-4">{% trans "State" %}</dt>
|
|
<dd class="col-8">
|
|
{% if changeable is False %}
|
|
{% if state == 0 %}{% trans "Inactive" %}{% else %}{% trans "Active" %}{% endif %}
|
|
{% else %}
|
|
<form action="" method="post" role="form" aria-label="Interface start/stop/delete form">{% csrf_token %}
|
|
{% if state == 0 %}
|
|
<input type="submit" class="btn btn-sm btn-primary" name="start" value="{% trans "Start" %}">
|
|
<input type="submit" class="btn btn-sm btn-danger" name="delete" value="{% trans "Delete" %}" onclick="return confirm('{% trans "Are you sure?" %}')">
|
|
{% else %}
|
|
<input type="submit" class="btn btn-sm btn-secondary" name="stop" value="{% trans "Stop" %}" onclick="return confirm('{% trans "Are you sure?" %}')">
|
|
{% endif %}
|
|
</form>
|
|
{% endif %}
|
|
</dd>
|
|
</dl>
|
|
|
|
<div class="col-sm-12">
|
|
<h5>{% trans 'Slaves' %}</h5>
|
|
{% if itype == 'bridge' %}
|
|
<div class="table-responsive">
|
|
<table class="table table-bordered">
|
|
<thead>
|
|
<tr>
|
|
<th scope="col">{% trans 'MAC' %}</th>
|
|
<th scope="col">{% trans 'Name' %}</th>
|
|
<th scope="col">{% trans 'Type' %}</th>
|
|
<th scope="col">{% trans 'Speed' %}</th>
|
|
<th scope="col">{% trans 'State' %}</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for iface in slave_ifaces %}
|
|
<tr>
|
|
<td>{{ iface.mac }}</td>
|
|
<td>{{ iface.name }}</td>
|
|
<td>{{ iface.type }}</td>
|
|
<td>{{ iface.speed }}</td>
|
|
<td>{{ iface.state }}</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
|
|
{% endblock %} |