]>
Commit | Line | Data |
---|---|---|
d72a55be | 1 | {% extends "../base.html" %} |
f6e6ff79 | 2 | |
5aa556bf | 3 | {% block title %}{{ _("Mirror: %s") % mirror.hostname }}{% end block %} |
f6e6ff79 MT |
4 | |
5 | {% block body %} | |
3b18b5d1 JS |
6 | <div class="row"> |
7 | <div class="col-12 col-sm-12 col-md-12 col-lg-12 col-xl-12"> | |
8 | <nav aria-label="breadcrumb" role="navigation"> | |
9 | <ol class="breadcrumb"> | |
10 | <li class="breadcrumb-item"><a href="/">{{ _("Home") }}</a></li> | |
11 | <li class="breadcrumb-item"><a href="/mirrors">{{ _("Mirrors") }}</a></li> | |
12 | <li class="breadcrumb-item active"> | |
13 | <a href="/mirror/{{ mirror.hostname }}">{{ mirror.hostname }}</a> | |
14 | </li> | |
15 | </ol> | |
16 | </nav> | |
17 | </div> | |
18 | </div> | |
f6e6ff79 | 19 | |
25afb794 | 20 | |
3b18b5d1 | 21 | <div class="row"> |
2fa6fd74 | 22 | <div class="col-12 col-sm-12 col-md-9 col-lg-10 col-xl-10"> |
3b18b5d1 JS |
23 | <h2 style="word-wrap: break-word;"> |
24 | {{ _("Mirror: %s") % mirror.hostname }} <br> | |
dc48d017 | 25 | <small class="text-muted">{{ mirror.owner }}</small> |
3b18b5d1 | 26 | </h2> |
25afb794 | 27 | </div> |
1e32a151 | 28 | {% if mirror.has_perm(current_user) %} |
2fa6fd74 JS |
29 | <div class="col-12 col-sm-12 col-md-3 col-lg-2 col-xl-2"> |
30 | <button class="btn dropdown-toggle btn-block " type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> | |
31 | {{ _("Actions") }} | |
32 | </button> | |
33 | <div class="dropdown-menu" aria-labelledby="dropdownMenuButton"> | |
34 | <a class="dropdown-item" href="/mirror/new"> | |
35 | <i class="icon-asterisk"></i> {{ _("Add new mirror") }} | |
36 | </a> | |
37 | <a class="dropdown-item" href="/mirror/{{ mirror.hostname }}/edit"> | |
38 | <i class="icon-edit"></i> | |
39 | {{ _("Edit settings") }} | |
40 | </a> | |
41 | <a class="dropdown-item" href="/mirror/{{ mirror.hostname }}/delete"> | |
42 | <i class="icon-trash"></i> | |
43 | {{ _("Delete mirror") }} | |
44 | </a> | |
3b18b5d1 JS |
45 | </div> |
46 | </div> | |
47 | {% end %} | |
f6e6ff79 MT |
48 | </div> |
49 | ||
50 | <div class="row"> | |
3b18b5d1 | 51 | <div class="col-12 col-sm-12 col-md-12 col-lg-12 col-xl-12"> |
2fa6fd74 | 52 | <h3>{{ _("General") }}</h3> |
3b18b5d1 JS |
53 | <div class="table-responsive"> |
54 | <table class="table table-striped table-hover"> | |
55 | <tbody> | |
f6e6ff79 | 56 | <tr> |
3b18b5d1 JS |
57 | <td>{{ _("Hostname") }}</td> |
58 | <td>{{ mirror.hostname }}</td> | |
f6e6ff79 | 59 | </tr> |
c660ff59 | 60 | <tr> |
3b18b5d1 JS |
61 | <td>{{ _("Location") }}</td> |
62 | <td class="text-muted">{{ _("The location of the mirror server could not be estimated.") }}</td> | |
c660ff59 | 63 | </tr> |
f6e6ff79 | 64 | |
1e32a151 | 65 | {% if mirror.has_perm(current_user) %} |
c660ff59 | 66 | <tr> |
3b18b5d1 JS |
67 | <td>{{ _("Contact") }}</td> |
68 | <td> | |
69 | {% if mirror.contact %} | |
70 | <a href="mailto:{{ mirror.contact }}">{{ mirror.contact }}</a> | |
71 | {% else %} | |
72 | {{ _("N/A") }} | |
73 | {% end %} | |
74 | </td> | |
c660ff59 MT |
75 | </tr> |
76 | {% end %} | |
3b18b5d1 JS |
77 | </tbody> |
78 | </table> | |
79 | </div> | |
80 | </div> | |
81 | </div> | |
82 | ||
83 | <div class="row"> | |
84 | <div class="col-12 col-sm-12 col-md-12 col-lg-12 col-xl-12"> | |
85 | <h3>{{ _("Status information") }}</h3> | |
86 | <div class="table-responsive"> | |
87 | <table class="table table-striped table-hover"> | |
88 | <tbody> | |
89 | {% if not mirror.status == "OK" %} | |
90 | <tr> | |
91 | <td>{{ _("Status") }}</td> | |
92 | <td>{{ mirror.status }}</td> | |
93 | </tr> | |
94 | ||
95 | {% if mirror.status == "ERROR" %} | |
96 | <tr> | |
97 | <td>{{ _("HTTP Response Code") }}</td> | |
98 | <td>{{ mirror.last_check.http_status }}</td> | |
99 | </tr> | |
100 | {% end %} | |
101 | ||
102 | {% if mirror.last_check and mirror.last_check.last_sync_at %} | |
103 | <tr> | |
104 | <td>{{ _("Last sync") }}</td> | |
105 | <td> | |
106 | {{ locale.format_date(mirror.last_check.last_sync_at) }} | |
107 | </td> | |
108 | </tr> | |
109 | {% end %} | |
c660ff59 | 110 | |
c660ff59 | 111 | <tr> |
3b18b5d1 | 112 | <td>{{ _("Last check") }}</td> |
c660ff59 | 113 | <td> |
3b18b5d1 JS |
114 | {% if mirror.last_check %} |
115 | {{ format_date(mirror.last_check.timestamp) }} | |
116 | {% else %} | |
117 | {{ _("Never") }} | |
118 | {% end %} | |
c660ff59 MT |
119 | </td> |
120 | </tr> | |
121 | {% end %} | |
122 | ||
3b18b5d1 JS |
123 | {% if mirror.average_response_time %} |
124 | <tr> | |
125 | <td>{{ _("Average Response Time") }}</td> | |
126 | <td> | |
127 | {{ "%.2fms" % (mirror.average_response_time * 1000) }} | |
128 | </td> | |
129 | </tr> | |
130 | {% end %} | |
131 | </tbody> | |
132 | </table> | |
133 | </div> | |
f6e6ff79 MT |
134 | </div> |
135 | </div> | |
136 | {% end block %} |