evorepo/templates/mirrors/mirror_details.html
Dan McGee 943ef2e8e4 Convert to and enable staticfiles contrib application
This moves our site static files into the sitestatic directory if they
are shared resources, and also moves a handful of things (such as the
artwork logos) into application-specific static/ directories. This
allows the staticfiles contrib app to work after a few settings tweaks,
a run of collectstatic, and massaging the hardcoded '/media/' prefix out
of our templates.

Django 1.4 is going to make this a lot easier to move things to a CDN
and provides better template tags; for now this is setting the stage
before we can move to that.

Signed-off-by: Dan McGee <dan@archlinux.org>
2011-12-05 23:06:10 -06:00

118 lines
4.1 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{% extends "base.html" %}
{% load mirror_status %}
{% block title %}Arch Linux - {{ mirror.name }} - Mirror Details{% endblock %}
{% block content %}
<!-- TODO: ids and classes -->
<div id="pkgdetails" class="box">
<h2>Mirror Details: {{ mirror.name }}</h2>
<table id="pkginfo">
<tr>
<th>Name:</th>
<td>{{ mirror.name }}</td>
</tr>
<tr>
<th>Tier:</th>
<td>{{ mirror.get_tier_display }}</td>
</tr>
<tr>
<th>Country:</th>
<td>{{ mirror.country }}</td>
</tr>
<tr>
<th>Has ISOs:</th>
<td>{{ mirror.isos|yesno|capfirst }}</td>
</tr>
{% if user.is_authenticated %}
<tr>
<th>Public:</th>
<td>{{ mirror.public|yesno|capfirst }}</td>
</tr>
<tr>
<th>Active:</th>
<td>{{ mirror.active|yesno|capfirst }}</td>
</tr>
<tr>
<th>Rsync IPs:</th>
<td class="wrap">{{mirror.rsync_ips.all|join:', '}}</td>
</tr>
<tr>
<th>Admin Email:</th>
<td>{% if mirror.admin_email %}<a href="mailto:{{ mirror.admin_email }}">{{ mirror.admin_email }}</a>{% else %}None{% endif %}</td>
</tr>
<tr>
<th>Notes:</th>
<td>{{ mirror.notes|linebreaks }}</td>
</tr>
<tr>
<th>Upstream:</th>
<td>{% if mirror.upstream %}
<a href="{{ mirror.upstream.get_absolute_url }}"
title="Mirror details for {{ mirror.upstream.name }}">{{ mirror.upstream.name }}</a>
{% else %}None{% endif %}</td>
</tr>
<tr>
<th>Downstream:</th>
{% with mirror.downstream as ds_mirrors %}
<td>{% if ds_mirrors %}
{% for ds in ds_mirrors %}
<a href="{{ ds.get_absolute_url }}"
title="Mirror details for {{ ds.name }}">{{ ds.name }}</a>
{% if not ds.active %}<span class="testing-dep">(inactive)</span>{% endif %}
{% if not ds.public %}<span class="testing-dep">(private)</span>{% endif %}
<br/>
{% endfor %}
{% else %}None{% endif %}</td>
{% endwith %}
</tr>
{% endif %}
</table>
<h3>Available URLs</h3>
<table id="available_urls" class="results">
<thead>
<tr>
<th>Mirror URL</th>
<th>IPv4</th>
<th>IPv6</th>
<th>Last Sync</th>
<th>Completion %</th>
<th>μ Delay (hh:mm)</th>
<th>μ Duration (secs)</th>
<th>σ Duration (secs)</th>
<th>Mirror Score</th>
</tr>
</thead>
<tbody>
{% for m_url in urls %}
<tr class="{% cycle 'odd' 'even' %}">
<td>{% if m_url.protocol.is_download %}<a href="{{ m_url.url }}">{{ m_url.url }}</a>{% else %}{{ m_url.url }}{% endif %}</td>
<td>{{ m_url.has_ipv4|yesno|capfirst }}</td>
<td>{{ m_url.has_ipv6|yesno|capfirst }}</td>
<td>{{ m_url.last_sync|date:'Y-m-d H:i'|default:'unknown' }}</td>
<td>{{ m_url.completion_pct|percentage:1 }}</td>
<td>{{ m_url.delay|duration|default:'unknown' }}</td>
<td>{{ m_url.duration_avg|floatformat:2 }}</td>
<td>{{ m_url.duration_stddev|floatformat:2 }}</td>
<td>{{ m_url.score|floatformat:1|default:'∞' }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{% load cdn %}{% jquery %}
<script type="text/javascript" src="{{ STATIC_URL }}jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="{{ STATIC_URL }}archweb.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#available_urls:has(tbody tr)").tablesorter(
{widgets: ['zebra'], sortList: [[0,0]],
headers: { 6: { sorter: 'mostlydigit' }, 7: { sorter: 'mostlydigit' }, 8: { sorter: 'mostlydigit' } } });
});
</script>
{% endblock %}