Merge branch 'issue_1162' into 'master'

Make AA work on mobiles

Closes #1215 and #1162

See merge request allianceauth/allianceauth!1167
This commit is contained in:
Ariel Rin 2020-02-18 03:35:44 +00:00
commit c3521b0d87
21 changed files with 1481 additions and 1148 deletions

View File

@ -10,77 +10,99 @@
{% include 'allianceauth/admin-status/include.html' %}
{% endif %}
<div class="col-sm-12">
<div class="row vertical-flexbox-row">
<div class="row vertical-flexbox-row2">
<div class="col-sm-6 text-center">
<div class="panel panel-primary" style="height:100%">
<div class="panel-heading"><h3 class="panel-title">{% trans "Main Character" %}</h3></div>
<div class="panel-heading">
<h3 class="panel-title">{% trans "Main Character" %}</h3>
</div>
<div class="panel-body">
{% if request.user.profile.main_character %}
{% with request.user.profile.main_character as main %}
<div class="col-lg-4 col-sm-2">
<table class="table">
<tr>
<td class="text-center">
<img class="ra-avatar"src="{{ main.portrait_url_128 }}">
</td>
</tr>
<tr>
<td class="text-center">{{ main.character_name }}</td>
</tr>
</table>
</div>
<div class="col-lg-4 col-sm-2">
<table class="table">
<tr>
<td class="text-center">
<img class="ra-avatar"src="{{ main.corporation_logo_url_128 }}">
</td>
</tr>
<tr>
<td class="text-center">{{ main.corporation_name }}</td>
</tr>
</table>
</div>
<div class="col-lg-4 col-sm-2">
{% if main.alliance_id %}
<table class="table">
<tr>
<td class="text-center">
<img class="ra-avatar"src="{{ main.alliance_logo_url_128 }}">
</td>
</tr>
<tr>
<td class="text-center">{{ main.alliance_name }}</td>
<tr>
</table>
{% endif %}
</div>
{% endwith %}
{% with request.user.profile.main_character as main %}
<div class="hidden-xs">
<div class="col-lg-4 col-sm-2">
<table class="table">
<tr>
<td class="text-center">
<img class="ra-avatar"src="{{ main.portrait_url_128 }}">
</td>
</tr>
<tr>
<td class="text-center">{{ main.character_name }}</td>
</tr>
</table>
</div>
<div class="col-lg-4 col-sm-2">
<table class="table">
<tr>
<td class="text-center">
<img class="ra-avatar"src="{{ main.corporation_logo_url_128 }}">
</td>
</tr>
<tr>
<td class="text-center">{{ main.corporation_name }}</td>
</tr>
</table>
</div>
<div class="col-lg-4 col-sm-2">
{% if main.alliance_id %}
<table class="table">
<tr>
<td class="text-center">
<img class="ra-avatar"src="{{ main.alliance_logo_url_128 }}">
</td>
</tr>
<tr>
<td class="text-center">{{ main.alliance_name }}</td>
<tr>
</table>
{% endif %}
</div>
</div>
<div class="table visible-xs-block">
<p>
<img class="ra-avatar" src="{{ main.portrait_url_64 }}">
<img class="ra-avatar" src="{{ main.corporation_logo_url_64 }}">
<img class="ra-avatar" src="{{ main.alliance_logo_url_64 }}">
</p>
<p>
<strong>{{ main.character_name }}</strong><br>
{{ main.corporation_name }}<br>
{{ main.alliance_name }}
</p>
</div>
{% endwith %}
{% else %}
<div class="alert alert-danger" role="alert">{% trans "No main character set." %}</div>
<div class="alert alert-danger" role="alert">
{% trans "No main character set." %}
</div>
{% endif %}
<div class="clearfix"></div>
<div class="col-xs-6">
<a href="{% url 'authentication:add_character' %}" class="btn btn-block btn-info"
title="Add Character">{% trans 'Add Character' %}</a>
</div>
<div class="col-xs-6">
<a href="{% url 'authentication:change_main_character' %}" class="btn btn-block btn-info"
title="Change Main Character">{% trans "Change Main" %}</a>
<div class="row">
<div class="col-sm-6 button-wrapper">
<a href="{% url 'authentication:add_character' %}" class="btn btn-block btn-info"
title="Add Character">{% trans 'Add Character' %}</a>
</div>
<div class="col-sm-6 button-wrapper">
<a href="{% url 'authentication:change_main_character' %}" class="btn btn-block btn-info"
title="Change Main Character">{% trans "Change Main" %}</a>
</div>
</div>
</div>
</div>
</div>
<div class="col-sm-6 text-center">
<div class="panel panel-success" style="height:100%">
<div class="panel-heading"><h3 class="panel-title">{% trans "Groups" %}</h3></div>
<div class="panel-heading">
<h3 class="panel-title">{% trans "Groups" %}</h3>
</div>
<div class="panel-body">
<div style="height: 240px;overflow:-moz-scrollbars-vertical;overflow-y:auto;">
<table class="table table-striped">
<table class="table table-aa">
{% for group in user.groups.all %}
<tr>
<td>{{ group.name }}</td>
</tr>
<tr>
<td>{{ group.name }}</td>
</tr>
{% endfor %}
</table>
</div>
@ -90,26 +112,52 @@
</div>
<div class="clearfix"></div>
<div class="panel panel-default">
<div class="panel-heading" style="display:flex;"><h3 class="panel-title">{% trans 'Characters' %}</h3></div>
<div class="panel-body">
<table class="table table-hover">
<tr>
<th class="text-center"></th>
<th class="text-center">{% trans 'Name' %}</th>
<th class="text-center">{% trans 'Corp' %}</th>
<th class="text-center">{% trans 'Alliance' %}</th>
</tr>
{% for ownership in request.user.character_ownerships.all %}
{% with ownership.character as char %}
<tr>
<td class="text-center"><img class="ra-avatar img-circle" src="{{ char.portrait_url_32 }}">
</td>
<td class="text-center">{{ char.character_name }}</td>
<td class="text-center">{{ char.corporation_name }}</td>
<td class="text-center">{{ char.alliance_name }}</td>
</tr>
{% endwith %}
{% endfor %}
<div class="panel-heading">
<h3 class="panel-title text-center" style="text-align: center">
{% trans 'Characters' %}
</h3>
</div>
<div class="panel-body">
<table class="table table-aa hidden-xs">
<thead>
<tr>
<th class="text-center"></th>
<th class="text-center">{% trans 'Name' %}</th>
<th class="text-center">{% trans 'Corp' %}</th>
<th class="text-center">{% trans 'Alliance' %}</th>
</tr>
</thead>
<tbody>
{% for ownership in request.user.character_ownerships.all %}
{% with ownership.character as char %}
<tr>
<td class="text-center"><img class="ra-avatar img-circle" src="{{ char.portrait_url_32 }}">
</td>
<td class="text-center">{{ char.character_name }}</td>
<td class="text-center">{{ char.corporation_name }}</td>
<td class="text-center">{{ char.alliance_name }}</td>
</tr>
{% endwith %}
{% endfor %}
</tbody>
</table>
<table class="table table-aa visible-xs-block" style="width: 100%">
<tbody>
{% for ownership in request.user.character_ownerships.all %}
{% with ownership.character as char %}
<tr>
<td class="text-center" style="vertical-align: middle">
<img class="ra-avatar img-circle" src="{{ char.portrait_url_32 }}">
</td>
<td class="text-center" style="vertical-align: middle; width: 100%">
<strong>{{ char.character_name }}</strong><br>
{{ char.corporation_name }}<br>
{{ char.alliance_name|default:"" }}
</td>
</tr>
{% endwith %}
{% endfor %}
</tbody>
</table>
</div>
</div>

View File

@ -1,10 +1,8 @@
{% extends 'public/middle_box.html' %}
{% load static %}
{% block page_title %}Login{% endblock %}
{% block middle_box_content %}
<p style="text-align:center">
<a href="{% url 'auth_sso_login' %}{% if request.GET.next %}?next={{request.GET.next}}{%endif%}">
<img src="{% static 'img/sso/EVE_SSO_Login_Buttons_Large_Black.png' %}" border=0>
</a>
</p>
{% block middle_box_content %}
<a href="{% url 'auth_sso_login' %}{% if request.GET.next %}?next={{request.GET.next}}{%endif%}">
<img class="img-responsive center-block" src="{% static 'img/sso/EVE_SSO_Login_Buttons_Large_Black.png' %}" border=0>
</a>
{% endblock %}

View File

@ -7,11 +7,12 @@
<div class="col-lg-12 text-center">
<table class="table">
<tr>
<td class="text-center col-lg-6
{% if corpstats.corp.alliance %}{% else %}col-lg-offset-3{% endif %}"><img
class="ra-avatar" src="{{ corpstats.corp.logo_url_128 }}"></td>
<td class="text-center col-lg-6{% if corpstats.corp.alliance %}{% else %}col-lg-offset-3{% endif %}">
<img class="ra-avatar" src="{{ corpstats.corp.logo_url_64 }}">
</td>
{% if corpstats.corp.alliance %}
<td class="text-center col-lg-6"><img class="ra-avatar" src="{{ corpstats.corp.alliance.logo_url_128 }}">
<td class="text-center col-lg-6">
<img class="ra-avatar" src="{{ corpstats.corp.alliance.logo_url_64 }}">
</td>
{% endif %}
</tr>
@ -33,11 +34,11 @@
<li><a href="#members" data-toggle="pill">{% trans 'Members' %} ({{ corpstats.member_count }})</a></li>
<li><a href="#unregistered" data-toggle="pill">{% trans 'Unregistered' %} ({{ unregistered.count }})</a></li>
</ul>
<div class="pull-right">
{% trans "Last update:" %} {{ corpstats.last_update|naturaltime }}
<a class="btn btn-success" type="button" href="{% url 'corputils:update' corpstats.corp.corporation_id %}" title="Update Now">
<span class="glyphicon glyphicon-refresh"></span>
</a>
<div class="pull-right hidden-xs">
{% trans "Last update:" %} {{ corpstats.last_update|naturaltime }}&nbsp;
<a class="btn btn-success" type="button" href="{% url 'corputils:update' corpstats.corp.corporation_id %}" title="Update Now">
<span class="glyphicon glyphicon-refresh"></span>
</a>
</div>
<div class="clearfix"></div>
</div>

View File

@ -13,54 +13,95 @@
{{ group }} - {% trans 'Audit Log' %}
</div>
<div class="panel-body">
<p> All times displayed are EVE/UTC.</p>
<p>
<a class="btn btn-default" href="{% url 'groupmanagement:membership' %}" role="button">
Back
</a>
</p>
{% if entries %}
<div class="table-responsive">
<table class="table table-striped" id="log-entries">
<thead>
<th class="text-center" scope="col">{% trans "Date/Time" %}</th>
<th class="text-center" scope="col">{% trans "Requestor" %}</th>
<th class="text-center" scope="col">{% trans "Main Character" %}</th>
<th class="text-center" scope="col">{% trans "Group" %}</th>
<th class="text-center" scope="col">{% trans "Character" %}</th>
<th class="text-center" scope="col">{% trans "Corporation" %}</th>
<th class="text-center" scope="col">{% trans "Type" %}</th>
<th class="text-center" scope="col">{% trans "Action" %}</th>
<th class="text-center" scope="col">{% trans "Actor" %}</th>
</thead>
<tbody>
{% for entry in entries %}
<tr>
<td class="text-center">{{ entry.date }}</td>
<td class="text-center">{{ entry.requestor }}</td>
<td class="text-center">{{ entry.req_char }}</td>
<td class="text-center">{{ entry.group }}</td>
<td class="text-center">{{ entry.type_to_str }}</td>
{% if entry.request_type is None %}
<td class="text-center"> Removed</td>
{% else %}
<td class="text-center">{{ entry.action_to_str }}</td>
{% endif %}
<td class="text-center">{{ entry.request_actor }}</td>
</tr>
{% endfor %}
{% for entry in entries %}
<tr>
<td class="text-center">{{ entry.date }}</td>
<td class="text-center">{{ entry.requestor }}</td>
<td class="text-center">{{ entry.req_char }}</td>
<td class="text-center">{{ entry.req_char.corporation_name }}</td>
<td class="text-center">{{ entry.type_to_str }}</td>
{% if entry.request_type is None %}
<td class="text-center"> Removed</td>
{% else %}
<td class="text-center">{{ entry.action_to_str }}</td>
{% endif %}
<td class="text-center">{{ entry.request_actor }}</td>
</tr>
{% endfor %}
</tbody>
</table>
<p class="text-muted">
All times displayed are EVE/UTC.
</p>
</div>
{% else %}
<div class="alert alert-warning text-center">{% trans "No entries found for this group." %}</div>
{% else %}
<div class="clearfix"></div>
<br>
<div class="alert alert-warning text-center">
{% trans "No entries found for this group." %}
</div>
{% endif %}
</div>
</div>
</div>
{% endblock %}
{% block extra_javascript %}
{% include 'bundles/datatables-js.html' %}
<script type="text/javascript" src="{% static 'js/filterDropDown/filterDropDown.min.js' %}"></script>
{% endblock %}
{% block extra_css %}
{% include 'bundles/datatables-css.html' %}
{% endblock %}
{% block extra_script %}
$(document).ready(function(){
$('#log-entries').DataTable();
$('#log-entries').DataTable({
order: [[ 0, 'desc' ], [ 1, 'asc' ] ],
filterDropDown:
{
columns: [
{
idx: 1
},
{
idx: 2
},
{
idx: 3
},
{
idx: 4
},
{
idx: 5
},
{
idx: 6
}
],
bootstrap: true
},
});
});
{% endblock %}

View File

@ -4,7 +4,6 @@
{% load evelinks %}
{% block page_title %}{% trans "Group Members" %}{% endblock page_title %}
{% block extra_css %}{% endblock extra_css %}
{% block content %}
<div class="col-lg-12">
@ -15,57 +14,89 @@
<div class="panel-heading">
{{ group.name }} - {% trans 'Members' %}
</div>
<div class="panel-body">
<div id="list" class="">
{% if group.user_set %}
<table class="table">
<tr>
<th class="text-center">{% trans "Leader" %}</th>
<th class="text-center">{% trans "Portrait" %}</th>
<th class="text-center">{% trans "Character" %}</th>
<th class="text-center">{% trans "Corporation" %}</th>
<th class="text-center">{% trans "Alliance" %}</th>
<th class="text-center">{% trans "Action" %}</th>
</tr>
{% for member in members %}
<tr>
<td class="text-center">
{% if member.is_leader %}
<i class="fa fa-star"></i>
{% endif %}
</td>
<td class="text-center">
<img src="{{ member.main_char|character_portrait_url:32 }}" class="img-circle">
</td>
<td class="text-center">
<a href="{{ member.main_char|evewho_character_url }}" target="_blank">
{{ member.main_char.character_name }}
</a>
</td>
<td class="text-center">
<a href="{{ member.main_char|dotlan_corporation_url }}" target="_blank">
{{ member.main_char.corporation_name }}
</a>
</td>
<td class="text-center">
<a href="{{ member.main_char|dotlan_alliance_url }}" target="_blank">
{{ member.main_char.alliance_name|default_if_none:"" }}
</a>
</td>
<td class="text-center">
<a href="{% url 'groupmanagement:membership_remove' group.id member.user.id %}" class="btn btn-danger"
title="{% trans "Remove from group" %}">
<i class="glyphicon glyphicon-remove"></i>
</a>
</td>
</tr>
{% endfor %}
</table>
{% else %}
<div class="alert alert-warning text-center">{% trans "No group members to list." %}</div>
{% endif %}
</div>
<div class="panel-body">
<p>
<a class="btn btn-default" href="{% url 'groupmanagement:membership' %}" role="button">
Back
</a>
</p>
{% if group.user_set %}
<div class="table-responsive">
<table class="table table-aa" id="tab_group_members">
<thead>
<tr>
<th class="text-right">{% trans "Portrait" %}</th>
<th class="text-center">{% trans "Character" %}</th>
<th class="text-center">{% trans "Organization" %}</th>
<th class="text-center"></th>
</tr>
</thead>
<tbody>
{% for member in members %}
<tr>
<td class="text-right">
{% if member.is_leader %}
<i class="fa fa-star"></i>&nbsp;
{% endif %}
<img src="{{ member.main_char|character_portrait_url:32 }}" class="img-circle">
</td>
<td class="text-center">
{% if member.main_char %}
<a href="{{ member.main_char|evewho_character_url }}" target="_blank">
{{ member.main_char.character_name }}
</a>
{% else %}
{{ member.user.username }}
{% endif %}
</td>
<td class="text-center">
{% if member.main_char %}
<a href="{{ member.main_char|dotlan_corporation_url }}" target="_blank">
{{ member.main_char.corporation_name }}
</a><br>
{{ member.main_char.alliance_name|default_if_none:"" }}
{% else %}
(unknown)
{% endif %}
</td>
<td class="text-center">
<a href="{% url 'groupmanagement:membership_remove' group.id member.user.id %}" class="btn btn-danger"
title="{% trans "Remove from group" %}">
<i class="glyphicon glyphicon-remove"></i>
</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
<p class="text-muted"><i class="fa fa-star"></i>: Group leader</p>
</div>
{% else %}
<div class="alert alert-warning text-center">
{% trans "No group members to list." %}
</div>
{% endif %}
</div>
</div>
</div>
{% endblock content %}
{% block extra_javascript %}
{% include 'bundles/datatables-js.html' %}
{% endblock %}
{% block extra_css %}
{% include 'bundles/datatables-css.html' %}
{% endblock %}
{% block extra_script %}
$(document).ready(function(){
$('#tab_group_members').DataTable({
order: [ [ 1, "asc" ] ],
columnDefs: [
{ "sortable": false, "targets": [0, 3] },
]
});
});
{% endblock %}

View File

@ -15,44 +15,54 @@
</div>
<div class="panel-body">
{% if groups %}
<table class="table">
<tr>
<th class="text-center">{% trans "Name" %}</th>
<th class="text-center">{% trans "Description" %}</th>
<th class="text-center">{% trans "Status" %}</th>
<th class="text-center">{% trans "Member Count" %}</th>
<th class="text-center">{% trans "Action" %}</th>
</tr>
{% for group in groups %}
<tr>
<td class="text-center">{{ group.name }}</td>
<td class="text-center">{{ group.authgroup.description }}</td>
<td class="text-center">
{% if group.authgroup.hidden %}
<span class="label label-info">{% trans "Hidden" %}</span>
{% elif group.authgroup.open %}
<span class="label label-success">{% trans "Open" %}</span>
{% else %}
<span class="label label-default">{% trans "Requestable" %}</span>
{% endif %}
</td>
<td class="text-center">
{{ group.num_members }}
</td>
<td class="text-center">
<a href="{% url 'groupmanagement:membership_list' group.id %}" class="btn btn-primary"
title="{% trans "View Members" %}">
<i class="glyphicon glyphicon-eye-open"></i>
</a>
<a href="{% url "groupmanagement:audit_log" group.id %}" class="btn btn-info" title="{% trans "Audit Members" %}">
<i class="glyphicon glyphicon-list-alt"></i>
</a>
</td>
</tr>
{% endfor %}
</table>
<div class="table-responsive">
<table class="table table-aa">
<thead>
<tr>
<th class="text-center">{% trans "Name" %}</th>
<th class="text-center">{% trans "Description" %}</th>
<th class="text-center">{% trans "Status" %}</th>
<th class="text-center">{% trans "Member Count" %}</th>
<th class="text-center"></th>
</tr>
</thead>
<tbody>
{% for group in groups %}
<tr>
<td class="text-center">
<a href="{% url 'groupmanagement:membership_list' group.id %}">{{ group.name }}</a>
</td>
<td class="text-center">{{ group.authgroup.description }}</td>
<td class="text-center">
{% if group.authgroup.hidden %}
<span class="label label-info">{% trans "Hidden" %}</span>
{% elif group.authgroup.open %}
<span class="label label-success">{% trans "Open" %}</span>
{% else %}
<span class="label label-default">{% trans "Requestable" %}</span>
{% endif %}
</td>
<td class="text-center">
{{ group.num_members }}
</td>
<td class="text-center">
<a href="{% url 'groupmanagement:membership_list' group.id %}" class="btn btn-primary"
title="{% trans "View Members" %}">
<i class="glyphicon glyphicon-eye-open"></i>
</a>
<a href="{% url "groupmanagement:audit_log" group.id %}" class="btn btn-info" title="{% trans "Audit Members" %}">
<i class="glyphicon glyphicon-list-alt"></i>
</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{% else %}
<div class="alert alert-warning text-center">{% trans "No groups to list." %}</div>
<div class="alert alert-warning text-center">
{% trans "No groups to list." %}
</div>
{% endif %}
</div>
</div>

View File

@ -9,49 +9,54 @@ url
<div class="col-lg-12">
<h1 class="page-header text-center">{% trans "Available Groups" %}</h1>
{% if groups %}
<table class="table">
<tr>
<th class="text-center">{% trans "Name" %}</th>
<th class="text-center">{% trans "Description" %}</th>
<th class="text-center">{% trans "Action" %}</th>
</tr>
{% for g in groups %}
<tr>
<td class="text-center">{{ g.group.name }}</td>
<td class="text-center">{{ g.group.authgroup.description|urlize }}</td>
<td class="text-center">
{% if g.group in user.groups.all %}
{% if not g.request %}
<a href="{% url 'groupmanagement:request_leave' g.group.id %}" class="btn btn-danger">
{% trans "Leave" %}
</a>
{% else %}
<button type="button" class="btn btn-primary" disabled>
{{ g.request.status }}
</button>
{% endif %}
{% elif not g.request %}
{% if g.group.authgroup.open %}
<a href="{% url 'groupmanagement:request_add' g.group.id %}" class="btn btn-success">
{% trans "Join" %}
</a>
{% else %}
<a href="{% url 'groupmanagement:request_add' g.group.id %}" class="btn btn-primary">
{% trans "Request" %}
</a>
{% endif %}
{% else %}
<button type="button" class="btn btn-primary" disabled>
{{ g.request.status }}
</button>
{% endif %}
</td>
</tr>
{% endfor %}
</table>
<table class="table table-aa">
<thead>
<tr>
<th class="text-center">{% trans "Name" %}</th>
<th class="text-center">{% trans "Description" %}</th>
<th class="text-center">{% trans "Action" %}</th>
</tr>
</thead>
<tbody>
{% for g in groups %}
<tr>
<td class="text-center">{{ g.group.name }}</td>
<td class="text-center">{{ g.group.authgroup.description|urlize }}</td>
<td class="text-center">
{% if g.group in user.groups.all %}
{% if not g.request %}
<a href="{% url 'groupmanagement:request_leave' g.group.id %}" class="btn btn-danger">
{% trans "Leave" %}
</a>
{% else %}
<button type="button" class="btn btn-primary" disabled>
{{ g.request.status }}
</button>
{% endif %}
{% elif not g.request %}
{% if g.group.authgroup.open %}
<a href="{% url 'groupmanagement:request_add' g.group.id %}" class="btn btn-success">
{% trans "Join" %}
</a>
{% else %}
<a href="{% url 'groupmanagement:request_add' g.group.id %}" class="btn btn-primary">
{% trans "Request" %}
</a>
{% endif %}
{% else %}
<button type="button" class="btn btn-primary" disabled>
{{ g.request.status }}
</button>
{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
{% else %}
<div class="alert alert-warning text-center">{% trans "No groups available." %}</div>
<div class="alert alert-warning text-center">
{% trans "No groups available." %}
</div>
{% endif %}
</div>

View File

@ -20,8 +20,8 @@
{% include 'groupmanagement/menu.html' %}
<ul class="nav nav-tabs">
<li class="active"><a data-toggle="tab" href="#add">{% trans "Group Add Requests" %}</a></li>
<li><a data-toggle="tab" href="#leave">{% trans "Group Leave Requests" %}</a></li>
<li class="active"><a data-toggle="tab" href="#add">{% trans "Join Requests" %}</a></li>
<li><a data-toggle="tab" href="#leave">{% trans "Leave Requests" %}</a></li>
</ul>
<div class="tab-content">
@ -29,49 +29,56 @@
<div id="add" class="tab-pane fade in active panel panel-default">
<div class="panel-body">
{% if acceptrequests %}
<table class="table">
<tr>
<th class="text-center">{% trans "#" %}</th>
<th class="text-center">{% trans "Portrait" %}</th>
<th class="text-center">{% trans "Character" %}</th>
<th class="text-center">{% trans "Corporation" %}</th>
<th class="text-center">{% trans "Alliance" %}</th>
<th class="text-center">{% trans "Group" %}</th>
<th class="text-center"></th>
</tr>
{% for acceptrequest in acceptrequests %}
<tr>
<td class="text-center">{{ acceptrequest.id }}</td>
<td class="text-center">
<img src="{{ acceptrequest.main_char|character_portrait_url:32 }}" class="img-circle">
</td>
<td class="text-center">
<a href="{{ acceptrequest.main_char|evewho_character_url }}" target="_blank">
{{ acceptrequest.main_char.character_name }}
</a>
</td>
<td class="text-center">
<a href="{{ acceptrequest.main_char|dotlan_corporation_url }}" target="_blank">
{{ acceptrequest.main_char.corporation_name }}
</a>
</td>
<td class="text-center">
<a href="{{ acceptrequest.main_char|dotlan_alliance_url }}" target="_blank">
{{ acceptrequest.main_char.alliance_name|default_if_none:"" }}
</a>
</td>
<td class="text-center">{{ acceptrequest.group.name }}</td>
<td class="text-center">
<a href="{% url 'groupmanagement:accept_request' acceptrequest.id %}" class="btn btn-success">
{% trans "Accept" %}
</a>
<a href="{% url 'groupmanagement:reject_request' acceptrequest.id %}" class="btn btn-danger">
{% trans "Reject" %}
</a>
</td>
</tr>
{% endfor %}
</table>
<div class="table-responsive">
<table class="table table-aa">
<thead>
<tr>
<th class="text-center"></th>
<th class="text-center">{% trans "Character" %}</th>
<th class="text-center">{% trans "Organization" %}</th>
<th class="text-center">{% trans "Group" %}</th>
<th class="text-center"></th>
</tr>
</thead>
<tbody>
{% for acceptrequest in acceptrequests %}
<tr>
<td class="text-right">
<img src="{{ acceptrequest.main_char|character_portrait_url:32 }}" class="img-circle">
</td>
<td class="text-center">
{% if acceptrequest.main_char %}
<a href="{{ acceptrequest.main_char|evewho_character_url }}" target="_blank">
{{ acceptrequest.main_char.character_name }}
</a>
{% else %}
{{ acceptrequest.user.username }}
{% endif %}
</td>
<td class="text-center">
{% if acceptrequest.main_char %}
<a href="{{ acceptrequest.main_char|dotlan_corporation_url }}" target="_blank">
{{ acceptrequest.main_char.corporation_name }}
</a><br>
{{ acceptrequest.main_char.alliance_name|default_if_none:"" }}
{% else %}
(unknown)
{% endif %}
</td>
<td class="text-center">{{ acceptrequest.group.name }}</td>
<td class="text-center">
<a href="{% url 'groupmanagement:accept_request' acceptrequest.id %}" class="btn btn-success">
{% trans "Accept" %}
</a>
<a href="{% url 'groupmanagement:reject_request' acceptrequest.id %}" class="btn btn-danger">
{% trans "Reject" %}
</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{% else %}
<div class="alert alert-warning text-center">{% trans "No group add requests." %}</div>
{% endif %}
@ -81,49 +88,56 @@
<div id="leave" class="tab-pane fade panel panel-default">
<div class="panel-body">
{% if leaverequests %}
<table class="table">
<tr>
<th class="text-center">{% trans "#" %}</th>
<th class="text-center">{% trans "Portrait" %}</th>
<th class="text-center">{% trans "Character" %}</th>
<th class="text-center">{% trans "Corporation" %}</th>
<th class="text-center">{% trans "Alliance" %}</th>
<th class="text-center">{% trans "Group" %}</th>
<th class="text-center"></th>
</tr>
{% for leaverequest in leaverequests %}
<tr>
<td class="text-center">{{ leaverequest.id }}</td>
<td class="text-center">
<img src="{{ leaverequest.main_char|character_portrait_url:32 }}" class="img-circle">
</td>
<td class="text-center">
<a href="{{ leaverequest.main_char|evewho_character_url }}" target="_blank">
{{ leaverequest.main_char.character_name }}
</a>
</td>
<td class="text-center">
<a href="{{ leaverequest.main_char|dotlan_corporation_url }}" target="_blank">
{{ leaverequest.main_char.corporation_name }}
</a>
</td>
<td class="text-center">
<a href="{{ leaverequest.main_char|dotlan_alliance_url }}" target="_blank">
{{ leaverequest.main_char.alliance_name|default_if_none:"" }}
</a>
</td>
<td class="text-center">{{ leaverequest.group.name }}</td>
<td class="text-center">
<a href="{% url 'groupmanagement:leave_accept_request' leaverequest.id %}" class="btn btn-success">
{% trans "Accept" %}
</a>
<a href="{% url 'groupmanagement:leave_reject_request' leaverequest.id %}" class="btn btn-danger">
{% trans "Reject" %}
</a>
</td>
</tr>
{% endfor %}
</table>
<div class="table-responsive">
<table class="table table-aa">
<thead>
<tr>
<th class="text-center"></th>
<th class="text-center">{% trans "Character" %}</th>
<th class="text-center">{% trans "Organization" %}</th>
<th class="text-center">{% trans "Group" %}</th>
<th class="text-center"></th>
</tr>
</thead>
<tbody>
{% for leaverequest in leaverequests %}
<tr>
<td class="text-right">
<img src="{{ leaverequest.main_char|character_portrait_url:32 }}" class="img-circle">
</td>
<td class="text-center">
{% if leaverequest.main_char %}
<a href="{{ leaverequest.main_char|evewho_character_url }}" target="_blank">
{{ leaverequest.main_char.character_name }}
</a>
{% else %}
{{ leaverequest.user.username }}
{% endif %}
</td>
<td class="text-center">
{% if leaverequest.main_char %}
<a href="{{ leaverequest.main_char|dotlan_corporation_url }}" target="_blank">
{{ leaverequest.main_char.corporation_name }}
</a><br>
{{ leaverequest.main_char.alliance_name|default_if_none:"" }}
{% else %}
(unknown)
{% endif %}
</td>
<td class="text-center">{{ leaverequest.group.name }}</td>
<td class="text-center">
<a href="{% url 'groupmanagement:leave_accept_request' leaverequest.id %}" class="btn btn-success">
{% trans "Accept" %}
</a>
<a href="{% url 'groupmanagement:leave_reject_request' leaverequest.id %}" class="btn btn-danger">
{% trans "Reject" %}
</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{% else %}
<div class="alert alert-warning text-center">{% trans "No group leave requests." %}</div>
{% endif %}

View File

@ -2,44 +2,46 @@
{% load evelinks %}
{% block content %}
<table class="table">
<thead>
<tr>
<th class="text-center col-lg-3">{% trans "Operation Name" %}</th>
<th class="text-center col lg-2">{% trans "Doctrine" %}</th>
<th class="text-center col-lg-1">{% trans "Form Up System" %}</th>
<th class="text-center col-lg-1">{% trans "Start Time" %}</th>
<th class="text-center col-lg-1">{% trans "Local Time" %}</th>
<th class="text-center col-lg-1">{% trans "Duration" %}</th>
<th class="text-center col-lg-1">{% trans "FC" %}</th>
{% if perms.auth.optimer_management %}
<th class="text-center col-lg-1">{% trans "Creator" %}</th>
<th class="text-center col-lg-2">{% trans "Action" %}</th>
{% endif %}
</tr>
</thead>
{% for ops in timers %}
<tbody>
<tr>
<td class="text-center">{{ ops.operation_name }}</td>
<td class="text-center">{{ ops.doctrine }}</td>
<td class="text-center">
<a href="{{ ops.system|dotlan_solar_system_url }}">{{ ops.system }}</a>
</td>
<td class="text-center" nowrap>{{ ops.start | date:"Y-m-d H:i" }}</td>
<td class="text-center" nowrap><div id="localtime{{ ops.id }}"></div><div id="countdown{{ ops.id }}"></div></td>
<td class="text-center">{{ ops.duration }}</td>
<td class="text-center">{{ ops.fc }}</td>
{% if perms.auth.optimer_management %}
<td class="text-center">{{ ops.eve_character }}</td>
<td class="text-center">
<a href="{% url 'optimer:remove' ops.id %}" class="btn btn-danger">
<span class="glyphicon glyphicon-remove"></span>
</a><a href="{% url 'optimer:edit' ops.id %}" class="btn btn-info"><span class="glyphicon glyphicon-pencil"></span></a>
</td>
{% endif %}
</tr>
</tbody>
{% endfor %}
</table>
<div class="table-responsive">
<table class="table">
<thead>
<tr>
<th class="text-center col-lg-3">{% trans "Operation Name" %}</th>
<th class="text-center col lg-2">{% trans "Doctrine" %}</th>
<th class="text-center col-lg-1">{% trans "Form Up System" %}</th>
<th class="text-center col-lg-1">{% trans "Start Time" %}</th>
<th class="text-center col-lg-1">{% trans "Local Time" %}</th>
<th class="text-center col-lg-1">{% trans "Duration" %}</th>
<th class="text-center col-lg-1">{% trans "FC" %}</th>
{% if perms.auth.optimer_management %}
<th class="text-center col-lg-1">{% trans "Creator" %}</th>
<th class="text-center col-lg-2">{% trans "Action" %}</th>
{% endif %}
</tr>
</thead>
{% for ops in timers %}
<tbody>
<tr>
<td class="text-center">{{ ops.operation_name }}</td>
<td class="text-center">{{ ops.doctrine }}</td>
<td class="text-center">
<a href="{{ ops.system|dotlan_solar_system_url }}">{{ ops.system }}</a>
</td>
<td class="text-center" nowrap>{{ ops.start | date:"Y-m-d H:i" }}</td>
<td class="text-center" nowrap><div id="localtime{{ ops.id }}"></div><div id="countdown{{ ops.id }}"></div></td>
<td class="text-center">{{ ops.duration }}</td>
<td class="text-center">{{ ops.fc }}</td>
{% if perms.auth.optimer_management %}
<td class="text-center">{{ ops.eve_character }}</td>
<td class="text-center">
<a href="{% url 'optimer:remove' ops.id %}" class="btn btn-danger">
<span class="glyphicon glyphicon-remove"></span>
</a><a href="{% url 'optimer:edit' ops.id %}" class="btn btn-info"><span class="glyphicon glyphicon-pencil"></span></a>
</td>
{% endif %}
</tr>
</tbody>
{% endfor %}
</table>
</div>
{% endblock content %}

View File

@ -8,41 +8,85 @@
{% block content %}
<div>
<h1 class="page-header">{% trans "Permissions Audit" %}: {{ permission.permission.codename }}</h1>
<a href="{% url 'permissions_tool:overview' %}" class="btn btn-default">
<i class="glyphicon glyphicon-chevron-left"></i> {% trans "Back" %}
</a>
<table class="table table-hover">
<thead>
<tr>
<th class="col-md-3">
{% trans "Group" %}
</th>
<th class="col-md-3">
{% trans "User" %}
</th>
</tr>
</thead>
<tbody>
{% for user in permission.users %}
<tr>
{% include 'permissions_tool/audit_row.html' with group="Permission Granted Directly (No Group)" %}
</tr>
{% endfor %}
{% for group in permission.groups %}
{% for user in group.user_set.all %}
{% include 'permissions_tool/audit_row.html' %}
<p>
<a href="{% url 'permissions_tool:overview' %}" class="btn btn-default">
<i class="glyphicon glyphicon-chevron-left"></i> {% trans "Back" %}
</a>
</p>
<div class="table-responsive">
<table class="table table-striped" id="tab_permissions_audit">
<thead>
<tr>
<th>{% trans "Group" %}</th>
<th></th>
<th>{% trans "User / Character" %}</th>
<th>{% trans "Organization" %}</th>
</tr>
</thead>
<tbody>
{% for user in permission.users %}
{% include 'permissions_tool/audit_row.html' with type="User" name="Permission granted directlty" %}
{% endfor %}
{% endfor %}
{% for state in permission.states %}
{% for profile in state.userprofile_set.all %}
{% with profile.user as user %}
<tr>
{% include 'permissions_tool/audit_state_row.html' %}
</tr>
{% endwith %}
{% for group in permission.groups %}
{% for user in group.user_set.all %}
{% include 'permissions_tool/audit_row.html' with type="Group" name=group%}
{% endfor %}
{% endfor %}
{% endfor %}
</tbody>
</table>
{% for state in permission.states %}
{% for profile in state.userprofile_set.all %}
{% with profile.user as user %}
{% include 'permissions_tool/audit_row.html' with type="State" name=state%}
{% endwith %}
{% endfor %}
{% endfor %}
</tbody>
</table>
</div>
</div>
{% endblock content %}
{% block extra_javascript %}
{% include 'bundles/datatables-js.html' %}
<script type="text/javascript" src="{% static 'js/filterDropDown/filterDropDown.min.js' %}"></script>
{% endblock %}
{% block extra_css %}
{% include 'bundles/datatables-css.html' %}
{% endblock %}
{% block extra_script %}
$(document).ready(function() {
var groupColumn = 0;
var table = $('#tab_permissions_audit').DataTable({
columnDefs: [
{ "visible": false, "targets": groupColumn }
],
order: [[ groupColumn, 'asc' ], [ 2, 'asc' ] ],
filterDropDown:
{
columns: [
{
idx: 0,
title: 'Source'
}
],
bootstrap: true
},
drawCallback: function ( settings ) {
var api = this.api();
var rows = api.rows( {page:'current'} ).nodes();
var last=null;
api.column(groupColumn, {page:'current'} ).data().each( function ( group, i ) {
if ( last !== group ) {
$(rows).eq( i ).before(
'<tr class="tr-group"><td colspan="3">' + group + '</td></tr>'
);
last = group;
}
} );
}
} );
} );
{% endblock %}

View File

@ -1,10 +1,25 @@
{% load evelinks %}
<tr>
<td>
{% if forloop.first %}
<b>{{ group }}</b>
{% endif %}
<td>
{{ type }}: {{ name }}
</td>
<td class="text-right">
<img src="{{ user.profile.main_character|character_portrait_url:32 }}" class="img-circle">
</td>
<td>
{{ user }}
<strong>{{ user }}<br></strong>
{{ user.profile.main_character.character_name }}
</td>
<td class="text-left">
{% if user.profile.main_character %}
<a href="{{ user.profile.main_character|dotlan_corporation_url }}" target="_blank">
{{ user.profile.main_character.corporation_name }}
</a><br>
{{ user.profile.main_character.alliance_name|default_if_none:"" }}
{% else %}
(unknown)
{% endif %}
</td>
</tr>

View File

@ -1,11 +0,0 @@
{% load i18n %}
<tr>
<td>
{% if forloop.first %}
<b>{% trans 'State' %}: {{ state }}</b>
{% endif %}
</td>
<td>
{{ user }}
</td>
</tr>

View File

@ -8,72 +8,120 @@
{% block content %}
<div class="col-sm-12">
<h1 class="page-header">{% trans "Permissions Overview" %}</h1>
{% if request.GET.all != 'yes' %}
<span class="pull-right">
{% blocktrans %}Showing only applied permissions{% endblocktrans %}
<a href="{% url 'permissions_tool:overview' %}?all=yes" class="btn btn-primary">{% trans "Show All" %}</a>
</span>
<p>
{% if request.GET.all != 'yes' %}
{% blocktrans %}Showing only applied permissions{% endblocktrans %}
<a href="{% url 'permissions_tool:overview' %}?all=yes" class="btn btn-primary">{% trans "Show All" %}</a>
{% else %}
<span class="pull-right">
{% blocktrans %}Showing all permissions{% endblocktrans %}
<a href="{% url 'permissions_tool:overview' %}?all=no" class="btn btn-primary">{% trans "Show Applied" %}</a>
</span>
{% blocktrans %}Showing all permissions{% endblocktrans %}
<a href="{% url 'permissions_tool:overview' %}?all=no" class="btn btn-primary">{% trans "Show Applied" %}</a>
{% endif %}
<table class="table table-hover">
<thead>
<tr>
<th>
{% trans "App" %}
</th>
<th>
{% trans "Model" %}
</th>
<th>
{% trans "Code Name" %}
</th>
<th>
{% trans "Name" %}
</th>
<th class="col-md-1">
{% trans "Users" %}
</th>
<th class="col-md-1">
{% trans "Groups" %}
</th>
<th class="col-md-1">
{% trans "States" %}
</th>
</tr>
</thead>
<tbody>
{% for perm in permissions %}
<tr>
<td>
{{ perm.permission.content_type.app_label }}
</td>
<td>
{{ perm.permission.content_type.model }}
</td>
<td>
<a href="{% url "permissions_tool:audit" app_label=perm.permission.content_type.app_label model=perm.permission.content_type.model codename=perm.permission.codename %}">
{{ perm.permission.codename }}
</a>
</td>
<td>
{{ perm.permission.name }}
</td>
<td class="{% if perm.users > 0 %}info {% endif %}text-right">
{{ perm.users }}
</td>
<td class="{% if perm.groups > 0 %}info {% endif %}text-right">
{{ perm.groups }} ({{ perm.group_users }})
</td>
<td class="{% if perm.states > 0 %}info {% endif %}text-right">
{{ perm.states }} ({{ perm.state_users }})
</td>
</tr>
{% endfor %}
</tbody>
</table>
</p>
<div class="table-responsive">
<table class="table table-striped" id="tab_permissions_overview" style="width:100%">
<thead>
<tr>
<th>
{% trans "App" %}
</th>
<th>
{% trans "Model" %}
</th>
<th>
{% trans "Code Name" %}
</th>
<th>
{% trans "Name" %}
</th>
<th class="col-md-1">
{% trans "Users" %}
</th>
<th class="col-md-1">
{% trans "Groups" %}
</th>
<th class="col-md-1">
{% trans "States" %}
</th>
</tr>
</thead>
<tbody>
{% for perm in permissions %}
<tr>
<td>
{{ perm.permission.content_type.app_label }}
</td>
<td>
{{ perm.permission.content_type.model }}
</td>
<td>
<a href="{% url "permissions_tool:audit" app_label=perm.permission.content_type.app_label model=perm.permission.content_type.model codename=perm.permission.codename %}">
{{ perm.permission.codename }}
</a>
</td>
<td>
{{ perm.permission.name }}
</td>
<td class="{% if perm.users > 0 %}info {% endif %}text-right">
{{ perm.users }}
</td>
<td class="{% if perm.groups > 0 %}info {% endif %}text-right">
{{ perm.groups }} ({{ perm.group_users }})
</td>
<td class="{% if perm.states > 0 %}info {% endif %}text-right">
{{ perm.states }} ({{ perm.state_users }})
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
{% endblock content %}
{% block extra_javascript %}
{% include 'bundles/datatables-js.html' %}
<script type="text/javascript" src="{% static 'js/filterDropDown/filterDropDown.min.js' %}"></script>
{% endblock %}
{% block extra_css %}
{% include 'bundles/datatables-css.html' %}
{% endblock %}
{% block extra_script %}
$(document).ready(function() {
var groupColumn = 0;
var table = $('#tab_permissions_overview').DataTable({
columnDefs: [
{ "visible": false, "targets": groupColumn }
],
order: [[ groupColumn, 'asc' ], [ 1, 'asc' ], [ 2, 'asc' ] ],
filterDropDown:
{
columns: [
{
idx: 0
},
{
idx: 1
}
],
bootstrap: true
},
drawCallback: function ( settings ) {
var api = this.api();
var rows = api.rows( {page:'current'} ).nodes();
var last=null;
api.column(groupColumn, {page:'current'} ).data().each( function ( group, i ) {
if ( last !== group ) {
$(rows).eq( i ).before(
'<tr class="tr-group"><td colspan="6">' + group + '</td></tr>'
);
last = group;
}
} );
}
} );
} );
{% endblock %}

View File

@ -8,17 +8,23 @@
{% block content %}
<div class="col-lg-12">
<h1 class="page-header text-center">{% trans "Available Services" %}</h1>
<table class="table table-hover">
<tr>
<th class="text-center">{% trans "Service" %}</th>
<th class="text-center">{% trans "Username" %}</th>
<th class="text-center">{% trans "Domain" %}</th>
<th class="text-center">{% trans "Action" %}</th>
</tr>
{% for svc in service_ctrls %}
{{ svc }}
{% endfor %}
</table>
<div class="table-responsive">
<table class="table table-striped">
<thead>
<tr>
<th class="text-center">{% trans "Service" %}</th>
<th class="text-center">{% trans "Username" %}</th>
<th class="text-center">{% trans "Domain" %}</th>
<th class="text-center">{% trans "Action" %}</th>
</tr>
</thead>
<tbody>
{% for svc in service_ctrls %}
{{ svc }}
{% endfor %}
</tbody>
</table>
</div>
</div>
{% endblock content %}

View File

@ -62,104 +62,107 @@
</h1>
{% if srpfleetrequests %}
<form method="POST">
{% csrf_token %}
<div class="alert alert-info" role="alert">
<div class="text-right">
<b><span style="padding-right:2.5em">{% trans "Total Losses:" %} {{ srpfleetrequests.count }}</span></b>
<b><span style="padding-right:2.5em">{% trans "Total ISK Cost:" %} {{ totalcost | intcomma }}</span></b>
{% if perms.auth.srp_management %}
<button type="submit" title="Approve" class="btn btn-success" formaction="{% url 'srp:request_approve' %}">
<span class="glyphicon glyphicon-ok"></span>
</button>
<button type="submit" title="Reject" class="btn btn-warning" formaction="{% url 'srp:request_reject' %}">
<span class="glyphicon glyphicon-remove"></span>
</button>
<button type="submit" title="Remove" onclick="return confirm('{% trans "Are you sure you want to delete SRP requests?" %}')" class="btn btn-danger" formaction="{% url 'srp:request_remove' %}">
<span class="glyphicon glyphicon-trash"></span>
</button>
{% endif %}
</div>
</div>
<table class="table">
<tr>
<th class="text-center">{% trans "Pilot Name" %}</th>
<th class="text-center">{% trans "Killboard Link" %}</th>
<th class="text-center">{% trans "Additional Info" %}</th>
<th class="text-center">{% trans "Ship Type" %}</th>
<th class="text-center">{% trans "Killboard Loss Amt" %}</th>
<th class="text-center">{% trans "SRP ISK Cost" %}
{% blocktrans %}<i class="glyphicon glyphicon-question-sign" rel="tooltip" title="Click value to edit
Enter to save&next
ESC to cancel"
id="blah"></i></th>{% endblocktrans %}
<th class="text-center">{% trans "Post Time" %}</th>
<th class="text-center">{% trans "Status" %}</th>
{% if perms.auth.srp_management %}
<th class="text-center">{% trans "Actions" %}</th>
{% endif %}
</tr>
{% for srpfleetrequest in srpfleetrequests %}
<tr>
<td class="text-center">{{ srpfleetrequest.character.character_name }}</td>
<td class="text-center">
<a href="{{ srpfleetrequest.killboard_link }}"
target="_blank" class="label label-warning">Link</a>
</td>
<td class="text-center">{{ srpfleetrequest.additional_info }}</td>
<td class="text-center">{{ srpfleetrequest.srp_ship_name }}</td>
<td class="text-center">{{ srpfleetrequest.kb_total_loss | intcomma }} ISK</td>
<td class="srp" data-name="srp_total_amount" data-type="number" data-pk="{{srpfleetrequest.id}}" data-url="{% url 'srp:request_update_amount' srpfleetrequest.id %}" data-params="{csrfmiddlewaretoken:'{{csrf_token}}'}" class="text-center">{{ srpfleetrequest.srp_total_amount | intcomma }} ISK</td>
<td class="text-center">{{ srpfleetrequest.post_time | date:"Y-m-d H:i" }}</td>
<td class="text-center">
{% if srpfleetrequest.srp_status == "Approved" %}
<div class="label label-success">
{% trans "Approved" %}
</div>
{% elif srpfleetrequest.srp_status == "Rejected" %}
<div class="label label-danger">
{% trans "Rejected" %}
</div>
{% else %}
<div class="label label-warning">
{% trans "Pending" %}
</div>
{% endif %}
</td>
<form method="POST">
{% csrf_token %}
<div class="alert alert-info" role="alert">
<div class="text-right">
<b><span style="padding-right:2.5em">{% trans "Total Losses:" %} {{ srpfleetrequests.count }}</span></b>
<b><span style="padding-right:2.5em">{% trans "Total ISK Cost:" %} {{ totalcost | intcomma }}</span></b>
{% if perms.auth.srp_management %}
<td class="text-center">
<div class="checkbox">
<label style="font-size: 1.5em">
<input type="checkbox" name="{{srpfleetrequest.id}}">
<span class="cr"><i class="cr-icon fa fa-check"></i></span>
</label>
</div>
</td>
<button type="submit" title="Approve" class="btn btn-success" formaction="{% url 'srp:request_approve' %}">
<span class="glyphicon glyphicon-ok"></span>
</button>
<button type="submit" title="Reject" class="btn btn-warning" formaction="{% url 'srp:request_reject' %}">
<span class="glyphicon glyphicon-remove"></span>
</button>
<button type="submit" title="Remove" onclick="return confirm('{% trans "Are you sure you want to delete SRP requests?" %}')" class="btn btn-danger" formaction="{% url 'srp:request_remove' %}">
<span class="glyphicon glyphicon-trash"></span>
</button>
{% endif %}
</tr>
{% endfor %}
</table>
<div class="alert alert-info" role="alert">
<div class="text-right">
<b><span style="padding-right:2.5em">{% trans "Total Losses:" %} {{ srpfleetrequests.count }}</span></b>
<b><span style="padding-right:2.5em">{% trans "Total ISK Cost:" %} {{ totalcost | intcomma }}</span></b>
{% if perms.auth.srp_management %}
<button type="submit" title="Approve" class="btn btn-success" formaction="{% url 'srp:request_approve' %}">
<span class="glyphicon glyphicon-ok"></span>
</button>
<button type="submit" title="Reject" class="btn btn-warning" formaction="{% url 'srp:request_reject' %}">
<span class="glyphicon glyphicon-remove"></span>
</button>
<button type="submit" title="Remove" onclick="return confirm('{% trans "Are you sure you want to delete SRP requests?" %}')" class="btn btn-danger" formaction="{% url 'srp:request_remove' %}">
<span class="glyphicon glyphicon-trash"></span>
</button>
{% endif %}
</div>
</div>
</div>
</form>
<div class="table-responsive">
<table class="table">
<tr>
<th class="text-center">{% trans "Pilot Name" %}</th>
<th class="text-center">{% trans "Killboard Link" %}</th>
<th class="text-center">{% trans "Additional Info" %}</th>
<th class="text-center">{% trans "Ship Type" %}</th>
<th class="text-center">{% trans "Killboard Loss Amt" %}</th>
<th class="text-center">{% trans "SRP ISK Cost" %}
{% blocktrans %}<i class="glyphicon glyphicon-question-sign" rel="tooltip" title="Click value to edit
Enter to save&next
ESC to cancel"
id="blah"></i></th>{% endblocktrans %}
<th class="text-center">{% trans "Post Time" %}</th>
<th class="text-center">{% trans "Status" %}</th>
{% if perms.auth.srp_management %}
<th class="text-center">{% trans "Actions" %}</th>
{% endif %}
</tr>
{% for srpfleetrequest in srpfleetrequests %}
<tr>
<td class="text-center">{{ srpfleetrequest.character.character_name }}</td>
<td class="text-center">
<a href="{{ srpfleetrequest.killboard_link }}"
target="_blank" class="label label-warning">Link</a>
</td>
<td class="text-center">{{ srpfleetrequest.additional_info }}</td>
<td class="text-center">{{ srpfleetrequest.srp_ship_name }}</td>
<td class="text-center">{{ srpfleetrequest.kb_total_loss | intcomma }} ISK</td>
<td class="srp" data-name="srp_total_amount" data-type="number" data-pk="{{srpfleetrequest.id}}" data-url="{% url 'srp:request_update_amount' srpfleetrequest.id %}" data-params="{csrfmiddlewaretoken:'{{csrf_token}}'}" class="text-center">{{ srpfleetrequest.srp_total_amount | intcomma }} ISK</td>
<td class="text-center">{{ srpfleetrequest.post_time | date:"Y-m-d H:i" }}</td>
<td class="text-center">
{% if srpfleetrequest.srp_status == "Approved" %}
<div class="label label-success">
{% trans "Approved" %}
</div>
{% elif srpfleetrequest.srp_status == "Rejected" %}
<div class="label label-danger">
{% trans "Rejected" %}
</div>
{% else %}
<div class="label label-warning">
{% trans "Pending" %}
</div>
{% endif %}
</td>
{% if perms.auth.srp_management %}
<td class="text-center">
<div class="checkbox">
<label style="font-size: 1.5em">
<input type="checkbox" name="{{srpfleetrequest.id}}">
<span class="cr"><i class="cr-icon fa fa-check"></i></span>
</label>
</div>
</td>
{% endif %}
</tr>
{% endfor %}
</table>
</div>
<div class="alert alert-info" role="alert">
<div class="text-right">
<b><span style="padding-right:2.5em">{% trans "Total Losses:" %} {{ srpfleetrequests.count }}</span></b>
<b><span style="padding-right:2.5em">{% trans "Total ISK Cost:" %} {{ totalcost | intcomma }}</span></b>
{% if perms.auth.srp_management %}
<button type="submit" title="Approve" class="btn btn-success" formaction="{% url 'srp:request_approve' %}">
<span class="glyphicon glyphicon-ok"></span>
</button>
<button type="submit" title="Reject" class="btn btn-warning" formaction="{% url 'srp:request_reject' %}">
<span class="glyphicon glyphicon-remove"></span>
</button>
<button type="submit" title="Remove" onclick="return confirm('{% trans "Are you sure you want to delete SRP requests?" %}')" class="btn btn-danger" formaction="{% url 'srp:request_remove' %}">
<span class="glyphicon glyphicon-trash"></span>
</button>
{% endif %}
</div>
</div>
</form>
{% else %}
<div class="alert alert-warning text-center">{% trans "No SRP requests for this fleet." %}</div>
<div class="alert alert-warning text-center">
{% trans "No SRP requests for this fleet." %}
</div>
{% endif %}
</div>
</div>

View File

@ -31,94 +31,98 @@
</div>
</div>
{% if srpfleets %}
<table class="table">
<tr>
<th class="text-center">{% trans "Fleet Name" %}</th>
<th class="text-center">{% trans "Fleet Time" %}</th>
<th class="text-center">{% trans "Fleet Doctrine" %}</th>
<th class="text-center">{% trans "Fleet Commander" %}</th>
<th class="text-center">{% trans "Fleet AAR" %}</th>
<th class="text-center">{% trans "Fleet SRP Code" %}</th>
<th class="text-center">{% trans "Fleet ISK Cost" %}</th>
<th class="text-center">{% trans "SRP Status" %}</th>
<th class="text-center">{% trans "Pending Requests" %}</th>
<th width="100px" class="text-center">{% trans "Actions" %}</th>
</tr>
{% for srpfleet in srpfleets %}
<tr>
<td class="text-center">
<div class="label label-info">
{{ srpfleet.fleet_name }}
</div>
</td>
<td class="text-center">{{ srpfleet.fleet_time | date:"Y-m-d H:i" }}</td>
<td class="text-center">{{ srpfleet.fleet_doctrine }}</td>
<td class="text-center">
<div class="label label-success">
{{ srpfleet.fleet_commander.character_name }}
</div>
</td>
<td class="text-center">
{% if srpfleet.fleet_srp_aar_link %}
<a href="{{ srpfleet.fleet_srp_aar_link }}" target="_blank" class="label label-primary">{% trans 'Link' %}</a>
{% endif %}
</td>
<td class="text-center">
{% if srpfleet.fleet_srp_code %}
<a class="label label-warning" href="{% url 'srp:request' srpfleet.fleet_srp_code %}">{{ srpfleet.fleet_srp_code }}</a>
{% else %}
<div class="label label-danger">
{% trans "Disabled" %}
</div>
{% endif %}
</td>
<td class="text-center">ISK: {{ srpfleet.total_cost | intcomma }}</td>
<div class="table-responsive">
<table class="table">
<tr>
<th class="text-center">{% trans "Fleet Name" %}</th>
<th class="text-center">{% trans "Fleet Time" %}</th>
<th class="text-center">{% trans "Fleet Doctrine" %}</th>
<th class="text-center">{% trans "Fleet Commander" %}</th>
<th class="text-center">{% trans "Fleet AAR" %}</th>
<th class="text-center">{% trans "Fleet SRP Code" %}</th>
<th class="text-center">{% trans "Fleet ISK Cost" %}</th>
<th class="text-center">{% trans "SRP Status" %}</th>
<th class="text-center">{% trans "Pending Requests" %}</th>
<th width="100px" class="text-center">{% trans "Actions" %}</th>
</tr>
{% for srpfleet in srpfleets %}
<tr>
<td class="text-center">
<div class="label label-info">
{{ srpfleet.fleet_name }}
</div>
</td>
<td class="text-center">{{ srpfleet.fleet_time | date:"Y-m-d H:i" }}</td>
<td class="text-center">{{ srpfleet.fleet_doctrine }}</td>
<td class="text-center">
<div class="label label-success">
{{ srpfleet.fleet_commander.character_name }}
</div>
</td>
<td class="text-center">
{% if srpfleet.fleet_srp_aar_link %}
<a href="{{ srpfleet.fleet_srp_aar_link }}" target="_blank" class="label label-primary">{% trans 'Link' %}</a>
{% endif %}
</td>
<td class="text-center">
{% if srpfleet.fleet_srp_code %}
<a class="label label-warning" href="{% url 'srp:request' srpfleet.fleet_srp_code %}">{{ srpfleet.fleet_srp_code }}</a>
{% else %}
<div class="label label-danger">
{% trans "Disabled" %}
</div>
{% endif %}
</td>
<td class="text-center">ISK: {{ srpfleet.total_cost | intcomma }}</td>
<td class="text-center">
{% if srpfleet.fleet_srp_status == "" %}
<div class="label label-warning">
{% trans "Pending" %}
</div>
{% else %}
<div class="label label-success">
{% trans "Completed" %}
</div>
{% endif %}
</td>
<td class="text-center">
<div class="label label-warning">{{ srpfleet.pending_requests }}</div>
</td>
<td class="text-center">
<td class="text-center">
{% if srpfleet.fleet_srp_status == "" %}
<div class="label label-warning">
{% trans "Pending" %}
</div>
{% else %}
<div class="label label-success">
{% trans "Completed" %}
</div>
{% endif %}
</td>
<td class="text-center">
<div class="label label-warning">{{ srpfleet.pending_requests }}</div>
</td>
<td class="text-center">
<a href="{% url 'srp:fleet' srpfleet.id %}" class="btn btn-primary" title="View">
<span class="glyphicon glyphicon-eye-open"></span>
</a>
{% if perms.auth.srp_management %}
<a href="{% url 'srp:edit' srpfleet.id %}" class="btn btn-info" title="Edit">
<span class="glyphicon glyphicon-pencil"></span>
</a>
<a href="{% url 'srp:remove' srpfleet.id %}" onclick="return confirm('{% trans "Are you sure you want to delete this SRP code and its contents?" %}')" class="btn btn-danger" title="Remove">
<span class="glyphicon glyphicon-trash"></span>
</a>
{% if srpfleet.fleet_srp_code %}
<a href="{% url 'srp:disable' srpfleet.id %}" class="btn btn-warning" title="Disable">
<span class="glyphicon glyphicon-remove-sign"></span>
<a href="{% url 'srp:fleet' srpfleet.id %}" class="btn btn-primary" title="View">
<span class="glyphicon glyphicon-eye-open"></span>
</a>
{% else %}
<a href="{% url 'srp:enable' srpfleet.id %}" class="btn btn-success" title="Enable">
<span class="glyphicon glyphicon-ok-sign"></span>
</a>
{% endif %}
{% endif %}
</td>
</tr>
{% endfor %}
</table>
{% if perms.auth.srp_management %}
<a href="{% url 'srp:edit' srpfleet.id %}" class="btn btn-info" title="Edit">
<span class="glyphicon glyphicon-pencil"></span>
</a>
<a href="{% url 'srp:remove' srpfleet.id %}" onclick="return confirm('{% trans "Are you sure you want to delete this SRP code and its contents?" %}')" class="btn btn-danger" title="Remove">
<span class="glyphicon glyphicon-trash"></span>
</a>
{% if srpfleet.fleet_srp_code %}
<a href="{% url 'srp:disable' srpfleet.id %}" class="btn btn-warning" title="Disable">
<span class="glyphicon glyphicon-remove-sign"></span>
</a>
{% else %}
<a href="{% url 'srp:enable' srpfleet.id %}" class="btn btn-success" title="Enable">
<span class="glyphicon glyphicon-ok-sign"></span>
</a>
{% endif %}
{% endif %}
</td>
</tr>
{% endfor %}
</table>
</div>
{% else %}
<div class="alert alert-warning text-center">{% trans "No SRP fleets created." %}</div>
<div class="alert alert-warning text-center">
{% trans "No SRP fleets created." %}
</div>
{% endif %}
</div>
</div>

View File

@ -42,3 +42,51 @@ ul.list-group.list-group-horizontal > li.list-group-item {
.flex-center-horizontal {
justify-content: center;
}
/* style group headers within a table */
.tr-group {
font-weight: bold;
background-color: #e6e6e6 !important;
}
/* default style for tables */
.table-aa > thead > tr > th{
border-bottom: 1px solid #f2f2f2;
}
.table-aa > thead > tr > th{
vertical-align: middle;
}
.table-aa > tbody > tr > td{
border-bottom: 1px solid #f2f2f2;
}
.table-aa > tbody > tr > td {
vertical-align: middle;
}
.table-aa > tbody > tr:last-child {
border-bottom: none;
}
/* Small devices (tablets, 768px and up) */
@media (min-width: 768px) {
/* class for vertically aligning columns in a bootstrap row */
.row.vertical-flexbox-row2 {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
flex-wrap: wrap;
}
.row.vertical-flexbox-row2 > [class*='col-'] {
display: flex;
flex-direction: column;
}
}
/* Extra Small devices (Phones, <768px) */
@media (max-width: 767px) {
.button-wrapper .btn {
margin-bottom:5px;
}
}

View File

@ -0,0 +1 @@
!function(t){function e(t){var e={columns:[],columnsIdxList:[],bootstrap:!1,autoSize:!0,label:"Filter "};if("bootstrap"in t&&"boolean"==typeof t.bootstrap&&(e.bootstrap=t.bootstrap),"autoSize"in t&&"boolean"==typeof t.autoSize&&(e.autoSize=t.autoSize),"label"in t&&"string"==typeof t.label&&(e.label=t.label),"columns"in t)for(var i=0;i<t.columns.length;i++){var n=t.columns[i];if("idx"in n&&"number"==typeof n.idx){var o=n.idx;e.columns[o]={title:null,maxWidth:null,autoSize:!0},e.columnsIdxList.push(o),"title"in n&&"string"==typeof n.title&&(e.columns[o].title=n.title),"maxWidth"in n&&"string"==typeof n.maxWidth&&(e.columns[o].maxWidth=n.maxWidth),"autoSize"in n&&"boolean"==typeof n.autoSize&&(e.columns[o].autoSize=n.autoSize)}}return e}t(document).on("preInit.dt",function(i,n){if("dt"===i.namespace){var o=new t.fn.dataTable.Api(n),a=o.table().node().id,l=o.init();if("filterDropDown"in l){var r=e(l.filterDropDown);if(0!=r.columns.length){var u=o.table().container(),s=a+"_filterWrapper",c=s+" "+(r.bootstrap?"form-inline":"");t(u).prepend('<div id="'+s+'" class="'+c+'">'+r.label+"</div>"),o.columns(r.columnsIdxList).every(function(){var e=this.index(),i=null!==r.columns[e].title?r.columns[e].title:t(this.header()).html();""==i&&(i="column "+(e+1));var n="form-control "+a+"_filterSelect",o=a+"_filterSelect"+e;t("#"+s).append('<select id="'+o+'" class="'+n+'"></select>');var l=t("#"+o).empty().append('<option value="">('+i+")</option>");r.autoSize&&r.columns[e].autoSize&&screen.width>768&&l.css("max-width",l.outerWidth()),null!==r.columns[e].maxWidth&&l.css("max-width",r.columns[e].maxWidth)})}}}}),t(document).on("init.dt",function(i,n){if("dt"===i.namespace){var o=new t.fn.dataTable.Api(n),a=o.table().node().id,l=o.init();if("filterDropDown"in l){var r=e(l.filterDropDown);o.table().container();o.columns(r.columnsIdxList).every(function(){var e=this,i=e.index(),n=t("#"+(a+"_filterSelect"+i));n.on("change",function(){var i=t.fn.dataTable.util.escapeRegex(t(this).val());e.search(i?"^"+i+"$":"",!0,!1).draw()}),e.data().unique().sort().each(function(t,e){""!=t&&n.append('<option value="'+t+'">'+t+"</option>")})})}}})}(jQuery);

View File

@ -0,0 +1,4 @@
[ZoneTransfer]
ZoneId=3
ReferrerUrl=https://github.com/ErikKalkoken/filterDropDown/blob/master/js/filterDropDown.min.js
HostUrl=https://raw.githubusercontent.com/ErikKalkoken/filterDropDown/master/js/filterDropDown.min.js

View File

@ -1,6 +1,6 @@
{% load i18n %}
<div class="col-sm-12">
<div class="row vertical-flexbox-row">
<div class="row vertical-flexbox-row2">
<div class="col-sm-6">
<div class="panel panel-primary" style="height:100%;position:relative;">
<div class="panel-heading text-center"><h3 class="panel-title">{% trans "Alliance Auth Notifications" %}</h3></div>
@ -31,33 +31,36 @@
<div class="panel-body flex-center-horizontal">
<ul class="list-group list-group-horizontal" style="margin-bottom: 0;">
<li class="list-group-item">
<h4 class="list-group-item-heading">{% trans "Current" %}</h4>
<h5 class="list-group-item-heading">{% trans "Current" %}</h5>
<p class="list-group-item-text">
{{ current_version }}
</p>
</li>
<li class="list-group-item list-group-item-{% if latest_major %}success{% else %}warning{% endif %}">
<h4 class="list-group-item-heading">{% trans "Latest Major" %}</h4>
<h5 class="list-group-item-heading">{% trans "Latest Major" %}</h5>
<p class="list-group-item-text">
<a href="https://gitlab.com/allianceauth/allianceauth/tags" style="color:#000"><i class="fa fa-gitlab" aria-hidden="true"></i>
<a href="https://gitlab.com/allianceauth/allianceauth/tags" style="color:#000">
<i class="fa fa-gitlab hidden-xs" aria-hidden="true"></i>
{{ latest_major_version }}
</a>
{% if not latest_major %}<br>{% trans "Update available" %}{% endif %}
</p>
</li>
<li class="list-group-item list-group-item-{% if latest_minor %}success{% else %}warning{% endif %}">
<h4 class="list-group-item-heading">{% trans "Latest Minor" %}</h4>
<h5 class="list-group-item-heading">{% trans "Latest Minor" %}</h5>
<p class="list-group-item-text">
<a href="https://gitlab.com/allianceauth/allianceauth/tags" style="color:#000"><i class="fa fa-gitlab" aria-hidden="true"></i>
<a href="https://gitlab.com/allianceauth/allianceauth/tags" style="color:#000">
<i class="fa fa-gitlab hidden-xs" aria-hidden="true"></i>
{{ latest_minor_version }}
</a>
{% if not latest_minor %}<br>{% trans "Update available" %}{% endif %}
</p>
</li>
<li class="list-group-item list-group-item-{% if latest_patch %}success{% else %}danger{% endif %}">
<h4 class="list-group-item-heading">{% trans "Latest Patch" %}</h4>
<h5 class="list-group-item-heading">{% trans "Latest Patch" %}</h5>
<p class="list-group-item-text">
<a href="https://gitlab.com/allianceauth/allianceauth/tags" style="color:#000"><i class="fa fa-gitlab" aria-hidden="true"></i>
<a href="https://gitlab.com/allianceauth/allianceauth/tags" style="color:#000">
<i class="fa fa-gitlab hidden-xs" aria-hidden="true"></i>
{{ latest_patch_version }}
</a>
{% if not latest_patch %}<br>{% trans "Update available" %}{% endif %}

View File

@ -12,7 +12,9 @@
<h1 class="page-header text-center">{% trans "Structure Timers" %}
<div class="text-right">
{% if perms.auth.timer_management %}
<a href="{% url 'timerboard:add' %}" class="btn btn-success">{% trans "Create Structure Timer" %}</a>
<a href="{% url 'timerboard:add' %}" class="btn btn-success">
{% trans "Create Structure Timer" %}
</a>
{% endif %}
</div>
</h1>
@ -24,484 +26,500 @@
</div>
{% if corp_timers %}
<h4><b>{% trans "Corp Timers" %}</b></h4>
<table class="table">
<tr>
<th style="width:150px" class="text-center">{% trans "Details" %}</th>
<th class="text-center">{% trans "Objective" %}</th>
<th class="text-center">{% trans "System" %}</th>
<th class="text-center">{% trans "Structure" %}</th>
<th class="text-center">{% trans "Eve Time" %}</th>
<th class="text-center">{% trans "Local Time" %}</th>
<th class="text-center">{% trans "Creator" %}</th>
{% if perms.auth.timer_management %}
<th class="text-center">{% trans "Action" %}</th>
{% endif %}
</tr>
{% for timer in corp_timers %}
{% if timer.important == True %}
<tr class="danger">
{% else %}
<tr class="info">
{% endif %}
<td style="width:150px" class="text-center">{{ timer.details }}</td>
<td class="text-center">
{% if timer.objective == "Hostile" %}
<div class="label label-danger">
{% trans "Hostile" %}
</div>
{% endif %}
{% if timer.objective == "Friendly" %}
<div class="label label-primary">
{% trans "Friendly" %}
</div>
{% endif %}
{% if timer.objective == "Neutral" %}
<div class="label label-default">
{% trans "Neutral" %}
</div>
{% endif %}
</td>
<td class="text-center"><a
href="{{ timer.system|dotlan_solar_system_url }}">{{ timer.system }} {{ timer.planet_moon }} </a>
</td>
<td class="text-center">
{% if timer.structure == "POCO" %}
<div class="label label-info">
POCO
</div>
{% endif %}
{% if timer.structure == "I-HUB" %}
<div class="label label-warning">
I-HUB
</div>
{% endif %}
{% if timer.structure == "TCU" %}
<div class="label label-danger">
TCU
</div>
{% endif %}
{% if timer.structure == "POS[S]" %}
<div class="label label-info">
POS [S]
</div>
{% endif %}
{% if timer.structure == "POS[M]" %}
<div class="label label-info">
POS [M]
</div>
{% endif %}
{% if timer.structure == "POS[L]" %}
<div class="label label-info">
POS [L]
</div>
{% endif %}
{% if timer.structure == "Citadel[M]" or timer.structure == "Astrahus" %}
<div class="label label-danger">
Astrahus
</div>
{% endif %}
{% if timer.structure == "Citadel[L]" or timer.structure == "Fortizar" %}
<div class="label label-danger">
Fortizar
</div>
{% endif %}
{% if timer.structure == "Citadel[XL]" or timer.structure == "Keepstar" %}
<div class="label label-danger">
Keepstar
</div>
{% endif %}
{% if timer.structure == "Engineering Complex[M]" or timer.structure == "Raitaru" %}
<div class="label label-warning">
Raitaru
</div>
{% endif %}
{% if timer.structure == "Engineering Complex[L]" or timer.structure == "Azbel" %}
<div class="label label-warning">
Azbel
</div>
{% endif %}
{% if timer.structure == "Engineering Complex[XL]" or timer.structure == "Sotiyo" %}
<div class="label label-warning">
Sotiyo
</div>
{% endif %}
{% if timer.structure == "Refinery[M]" or timer.structure == "Athanor" %}
<div class="label label-warning">
Athanor
</div>
{% endif %}
{% if timer.structure == "Refinery[L]" or timer.structure == "Tatara"%}
<div class="label label-warning">
Tatara
</div>
{% endif %}
{% if timer.structure == "Cyno Beacon" or timer.structure == "Pharolux Cyno Beacon" %}
<div class="label label-warning">
Cyno Beacon
</div>
{% endif %}
{% if timer.structure == "Cyno Jammer" or timer.structure == "Tenebrex Cyno Jammer" %}
<div class="label label-warning">
Tenebrex Cyno Jammer
</div>
{% endif %}
{% if timer.structure == "Jump Gate" or timer.structure == "Ansiblex Jump Gate" %}
<div class="label label-warning">
Ansiblex Jump Gate
</div>
{% endif %}
{% if timer.structure == "Moon Mining Cycle" %}
<div class="label label-success">
Moon Mining Cycle
</div>
{% endif %}
{% if timer.structure == "Other" %}
<div class="label label-default">
Other
</div>
{% endif %}
</td>
<td class="text-center" nowrap>{{ timer.eve_time | date:"Y-m-d H:i" }}</td>
<td class="text-center" nowrap>
<div id="localtime{{ timer.id }}"></div>
<div id="countdown{{ timer.id }}"></div>
</td>
<td class="text-center">{{ timer.eve_character.character_name }}</td>
{% if perms.auth.timer_management %}
<div class="table-responsive">
<table class="table">
<tr>
<th style="width:150px" class="text-center">{% trans "Details" %}</th>
<th class="text-center">{% trans "Objective" %}</th>
<th class="text-center">{% trans "System" %}</th>
<th class="text-center">{% trans "Structure" %}</th>
<th class="text-center">{% trans "Eve Time" %}</th>
<th class="text-center">{% trans "Local Time" %}</th>
<th class="text-center">{% trans "Creator" %}</th>
{% if perms.auth.timer_management %}
<th class="text-center">{% trans "Action" %}</th>
{% endif %}
</tr>
{% for timer in corp_timers %}
{% if timer.important == True %}
<tr class="danger">
{% else %}
<tr class="info">
{% endif %}
<td style="width:150px" class="text-center">{{ timer.details }}</td>
<td class="text-center">
<a href="{% url 'timerboard:delete' timer.id %}" class="btn btn-danger">
<span class="glyphicon glyphicon-remove"></span>
</a>
<a href="{% url 'timerboard:edit' timer.id %}" class="btn btn-info">
<span class="glyphicon glyphicon-pencil"></span>
{% if timer.objective == "Hostile" %}
<div class="label label-danger">
{% trans "Hostile" %}
</div>
{% endif %}
{% if timer.objective == "Friendly" %}
<div class="label label-primary">
{% trans "Friendly" %}
</div>
{% endif %}
{% if timer.objective == "Neutral" %}
<div class="label label-default">
{% trans "Neutral" %}
</div>
{% endif %}
</td>
<td class="text-center"><a href="{{ timer.system|dotlan_solar_system_url }}">
{{ timer.system }} {{ timer.planet_moon }}
</a>
</td>
{% endif %}
</tr>
{% endfor %}
</table>
<td class="text-center">
{% if timer.structure == "POCO" %}
<div class="label label-info">
POCO
</div>
{% endif %}
{% if timer.structure == "I-HUB" %}
<div class="label label-warning">
I-HUB
</div>
{% endif %}
{% if timer.structure == "TCU" %}
<div class="label label-danger">
TCU
</div>
{% endif %}
{% if timer.structure == "POS[S]" %}
<div class="label label-info">
POS [S]
</div>
{% endif %}
{% if timer.structure == "POS[M]" %}
<div class="label label-info">
POS [M]
</div>
{% endif %}
{% if timer.structure == "POS[L]" %}
<div class="label label-info">
POS [L]
</div>
{% endif %}
{% if timer.structure == "Citadel[M]" or timer.structure == "Astrahus" %}
<div class="label label-danger">
Astrahus
</div>
{% endif %}
{% if timer.structure == "Citadel[L]" or timer.structure == "Fortizar" %}
<div class="label label-danger">
Fortizar
</div>
{% endif %}
{% if timer.structure == "Citadel[XL]" or timer.structure == "Keepstar" %}
<div class="label label-danger">
Keepstar
</div>
{% endif %}
{% if timer.structure == "Engineering Complex[M]" or timer.structure == "Raitaru" %}
<div class="label label-warning">
Raitaru
</div>
{% endif %}
{% if timer.structure == "Engineering Complex[L]" or timer.structure == "Azbel" %}
<div class="label label-warning">
Azbel
</div>
{% endif %}
{% if timer.structure == "Engineering Complex[XL]" or timer.structure == "Sotiyo" %}
<div class="label label-warning">
Sotiyo
</div>
{% endif %}
{% if timer.structure == "Refinery[M]" or timer.structure == "Athanor" %}
<div class="label label-warning">
Athanor
</div>
{% endif %}
{% if timer.structure == "Refinery[L]" or timer.structure == "Tatara"%}
<div class="label label-warning">
Tatara
</div>
{% endif %}
{% if timer.structure == "Cyno Beacon" or timer.structure == "Pharolux Cyno Beacon" %}
<div class="label label-warning">
Cyno Beacon
</div>
{% endif %}
{% if timer.structure == "Cyno Jammer" or timer.structure == "Tenebrex Cyno Jammer" %}
<div class="label label-warning">
Tenebrex Cyno Jammer
</div>
{% endif %}
{% if timer.structure == "Jump Gate" or timer.structure == "Ansiblex Jump Gate" %}
<div class="label label-warning">
Ansiblex Jump Gate
</div>
{% endif %}
{% if timer.structure == "Moon Mining Cycle" %}
<div class="label label-success">
Moon Mining Cycle
</div>
{% endif %}
{% if timer.structure == "Other" %}
<div class="label label-default">
Other
</div>
{% endif %}
</td>
<td class="text-center" nowrap>{{ timer.eve_time | date:"Y-m-d H:i" }}</td>
<td class="text-center" nowrap>
<div id="localtime{{ timer.id }}"></div>
<div id="countdown{{ timer.id }}"></div>
</td>
<td class="text-center">{{ timer.eve_character.character_name }}</td>
{% if perms.auth.timer_management %}
<td class="text-center">
<a href="{% url 'timerboard:delete' timer.id %}" class="btn btn-danger">
<span class="glyphicon glyphicon-remove"></span>
</a>
<a href="{% url 'timerboard:edit' timer.id %}" class="btn btn-info">
<span class="glyphicon glyphicon-pencil"></span>
</a>
</td>
{% endif %}
</tr>
{% endfor %}
</table>
</div>
{% endif %}
<h4><b>{% trans "Next Timers" %}</b></h4>
{% if future_timers %}
<table class="table">
<tr>
<th style="width:150px" class="text-center">{% trans "Details" %}</th>
<th class="text-center">{% trans "Objective" %}</th>
<th class="text-center">{% trans "System" %}</th>
<th class="text-center">{% trans "Structure" %}</th>
<th class="text-center">{% trans "Eve Time" %}</th>
<th class="text-center">{% trans "Local Time" %}</th>
<th class="text-center">{% trans "Creator" %}</th>
{% if perms.auth.timer_management %}
<th class="text-center">{% trans "Action" %}</th>
{% endif %}
</tr>
{% for timer in future_timers %}
{% if timer.important == True %}
<tr class="danger">
{% else %}
<tr class="info">
{% endif %}
<td style="width:150px" class="text-center">{{ timer.details }}</td>
<td class="text-center">
{% if timer.objective == "Hostile" %}
<div class="label label-danger">
{% trans "Hostile" %}
</div>
{% endif %}
{% if timer.objective == "Friendly" %}
<div class="label label-primary">
{% trans "Friendly" %}
</div>
{% endif %}
{% if timer.objective == "Neutral" %}
<div class="label label-default">
{% trans "Neutral" %}
</div>
{% endif %}
</td>
<td class="text-center">
<a href="{{ timer.system|dotlan_solar_system_url }}">{{ timer.system }} {{ timer.planet_moon }}</a>
</td>
<td class="text-center">
{% if timer.structure == "POCO" %}
<div class="label label-info">
POCO
</div>
{% endif %}
{% if timer.structure == "I-HUB" %}
<div class="label label-warning">
I-HUB
</div>
{% endif %}
{% if timer.structure == "TCU" %}
<div class="label label-danger">
TCU
</div>
{% endif %}
{% if timer.structure == "POS[S]" %}
<div class="label label-info">
POS [S]
</div>
{% endif %}
{% if timer.structure == "POS[M]" %}
<div class="label label-info">
POS [M]
</div>
{% endif %}
{% if timer.structure == "POS[L]" %}
<div class="label label-info">
POS [L]
</div>
{% endif %}
{% if timer.structure == "Citadel[M]" or timer.structure == "Astrahus" %}
<div class="label label-danger">
Astrahus
</div>
{% endif %}
{% if timer.structure == "Citadel[L]" or timer.structure == "Fortizar" %}
<div class="label label-danger">
Fortizar
</div>
{% endif %}
{% if timer.structure == "Citadel[XL]" or timer.structure == "Keepstar" %}
<div class="label label-danger">
Keepstar
</div>
{% endif %}
{% if timer.structure == "Engineering Complex[M]" or timer.structure == "Raitaru" %}
<div class="label label-warning">
Raitaru
</div>
{% endif %}
{% if timer.structure == "Engineering Complex[L]" or timer.structure == "Azbel" %}
<div class="label label-warning">
Azbel
</div>
{% endif %}
{% if timer.structure == "Engineering Complex[XL]" or timer.structure == "Sotiyo" %}
<div class="label label-warning">
Sotiyo
</div>
{% endif %}
{% if timer.structure == "Refinery[M]" or timer.structure == "Athanor" %}
<div class="label label-warning">
Athanor
</div>
{% endif %}
{% if timer.structure == "Refinery[L]" or timer.structure == "Tatara" %}
<div class="label label-warning">
Tatara
</div>
{% endif %}
{% if timer.structure == "Cyno Beacon" or timer.structure == "Pharolux Cyno Beacon" %}
<div class="label label-warning">
Pharolux Cyno Beacon
</div>
{% endif %}
{% if timer.structure == "Cyno Jammer" or timer.structure == "Tenebrex Cyno Jammer" %}
<div class="label label-warning">
Tenebrex Cyno Jammer
</div>
{% endif %}
{% if timer.structure == "Jump Gate" or timer.structure == "Ansiblex Jump Gate" %}
<div class="label label-warning">
Ansiblex Jump Gate
</div>
{% endif %}
{% if timer.structure == "Moon Mining Cycle" %}
<div class="label label-success">
Moon Mining Cycle
</div>
{% endif %}
{% if timer.structure == "Other" %}
<div class="label label-default">
Other
</div>
{% endif %}
</td>
<td class="text-center" nowrap>{{ timer.eve_time | date:"Y-m-d H:i" }}</td>
<td class="text-center" nowrap>
<div id="localtime{{ timer.id }}"></div>
<div id="countdown{{ timer.id }}"></div>
</td>
<td class="text-center">{{ timer.eve_character.character_name }}</td>
{% if perms.auth.timer_management %}
<td class="text-center">
<a href="{% url 'timerboard:delete' timer.id %}" class="btn btn-danger">
<span class="glyphicon glyphicon-remove"></span>
</a>
<a href="{% url 'timerboard:edit' timer.id %}" class="btn btn-info">
<span class="glyphicon glyphicon-pencil"></span>
</a>
</td>
{% endif %}
</tr>
{% endfor %}
</table>
<div class="table-responsive">
<table class="table">
<tr>
<th style="width:150px" class="text-center">{% trans "Details" %}</th>
<th class="text-center">{% trans "Objective" %}</th>
<th class="text-center">{% trans "System" %}</th>
<th class="text-center">{% trans "Structure" %}</th>
<th class="text-center">{% trans "Eve Time" %}</th>
<th class="text-center">{% trans "Local Time" %}</th>
<th class="text-center">{% trans "Creator" %}</th>
{% if perms.auth.timer_management %}
<th class="text-center">{% trans "Action" %}</th>
{% endif %}
</tr>
{% for timer in future_timers %}
{% if timer.important == True %}
<tr class="danger">
{% else %}
<tr class="info">
{% endif %}
<td style="width:150px" class="text-center">{{ timer.details }}</td>
<td class="text-center">
{% if timer.objective == "Hostile" %}
<div class="label label-danger">
{% trans "Hostile" %}
</div>
{% endif %}
{% if timer.objective == "Friendly" %}
<div class="label label-primary">
{% trans "Friendly" %}
</div>
{% endif %}
{% if timer.objective == "Neutral" %}
<div class="label label-default">
{% trans "Neutral" %}
</div>
{% endif %}
</td>
<td class="text-center">
<a href="{{ timer.system|dotlan_solar_system_url }}">
{{ timer.system }} {{ timer.planet_moon }}
</a>
</td>
<td class="text-center">
{% if timer.structure == "POCO" %}
<div class="label label-info">
POCO
</div>
{% endif %}
{% if timer.structure == "I-HUB" %}
<div class="label label-warning">
I-HUB
</div>
{% endif %}
{% if timer.structure == "TCU" %}
<div class="label label-danger">
TCU
</div>
{% endif %}
{% if timer.structure == "POS[S]" %}
<div class="label label-info">
POS [S]
</div>
{% endif %}
{% if timer.structure == "POS[M]" %}
<div class="label label-info">
POS [M]
</div>
{% endif %}
{% if timer.structure == "POS[L]" %}
<div class="label label-info">
POS [L]
</div>
{% endif %}
{% if timer.structure == "Citadel[M]" or timer.structure == "Astrahus" %}
<div class="label label-danger">
Astrahus
</div>
{% endif %}
{% if timer.structure == "Citadel[L]" or timer.structure == "Fortizar" %}
<div class="label label-danger">
Fortizar
</div>
{% endif %}
{% if timer.structure == "Citadel[XL]" or timer.structure == "Keepstar" %}
<div class="label label-danger">
Keepstar
</div>
{% endif %}
{% if timer.structure == "Engineering Complex[M]" or timer.structure == "Raitaru" %}
<div class="label label-warning">
Raitaru
</div>
{% endif %}
{% if timer.structure == "Engineering Complex[L]" or timer.structure == "Azbel" %}
<div class="label label-warning">
Azbel
</div>
{% endif %}
{% if timer.structure == "Engineering Complex[XL]" or timer.structure == "Sotiyo" %}
<div class="label label-warning">
Sotiyo
</div>
{% endif %}
{% if timer.structure == "Refinery[M]" or timer.structure == "Athanor" %}
<div class="label label-warning">
Athanor
</div>
{% endif %}
{% if timer.structure == "Refinery[L]" or timer.structure == "Tatara" %}
<div class="label label-warning">
Tatara
</div>
{% endif %}
{% if timer.structure == "Cyno Beacon" or timer.structure == "Pharolux Cyno Beacon" %}
<div class="label label-warning">
Pharolux Cyno Beacon
</div>
{% endif %}
{% if timer.structure == "Cyno Jammer" or timer.structure == "Tenebrex Cyno Jammer" %}
<div class="label label-warning">
Tenebrex Cyno Jammer
</div>
{% endif %}
{% if timer.structure == "Jump Gate" or timer.structure == "Ansiblex Jump Gate" %}
<div class="label label-warning">
Ansiblex Jump Gate
</div>
{% endif %}
{% if timer.structure == "Moon Mining Cycle" %}
<div class="label label-success">
Moon Mining Cycle
</div>
{% endif %}
{% if timer.structure == "Other" %}
<div class="label label-default">
Other
</div>
{% endif %}
</td>
<td class="text-center" nowrap>{{ timer.eve_time | date:"Y-m-d H:i" }}</td>
<td class="text-center" nowrap>
<div id="localtime{{ timer.id }}"></div>
<div id="countdown{{ timer.id }}"></div>
</td>
<td class="text-center">{{ timer.eve_character.character_name }}</td>
{% if perms.auth.timer_management %}
<td class="text-center">
<a href="{% url 'timerboard:delete' timer.id %}" class="btn btn-danger">
<span class="glyphicon glyphicon-remove"></span>
</a>
<a href="{% url 'timerboard:edit' timer.id %}" class="btn btn-info">
<span class="glyphicon glyphicon-pencil"></span>
</a>
</td>
{% endif %}
</tr>
{% endfor %}
</table>
</div>
{% else %}
<div class="alert alert-warning text-center">{% trans "No upcoming timers." %}</div>
<div class="alert alert-warning text-center">
{% trans "No upcoming timers." %}
</div>
{% endif %}
<h4><b>{% trans "Past Timers" %}</b></h4>
{% if past_timers %}
<table class="table">
<tr>
<th style="width:150px" class="text-center">{% trans "Details" %}</th>
<th class="text-center">{% trans "Objective" %}</th>
<th class="text-center">{% trans "System" %}</th>
<th class="text-center">{% trans "Structure" %}</th>
<th class="text-center">{% trans "Eve Time" %}</th>
<th class="text-center">{% trans "Local Time" %}</th>
<th class="text-center">{% trans "Creator" %}</th>
{% if perms.auth.timer_management %}
<th class="text-center">{% trans "Action" %}</th>
{% endif %}
</tr>
{% for timer in past_timers %}
{% if timer.important == True %}
<tr class="danger">
{% else %}
<tr class="info">
{% endif %}
<td style="width:150px" class="text-center">{{ timer.details }}</td>
<td class="text-center">
{% if timer.objective == "Hostile" %}
<div class="label label-danger">
{% trans "Hostile" %}
</div>
{% endif %}
{% if timer.objective == "Friendly" %}
<div class="label label-primary">
{% trans "Friendly" %}
</div>
{% endif %}
{% if timer.objective == "Neutral" %}
<div class="label label-default">
{% trans "Neutral" %}
</div>
{% endif %}
</td>
<td class="text-center">
<a href="{{ timer.system|dotlan_solar_system_url }}">{{ timer.system }} {{ timer.planet_moon }}</a>
</td>
<td class="text-center">
{% if timer.structure == "POCO" %}
<div class="label label-info">
POCO
</div>
{% endif %}
{% if timer.structure == "I-HUB" %}
<div class="label label-warning">
I-HUB
</div>
{% endif %}
{% if timer.structure == "TCU" %}
<div class="label label-danger">
TCU
</div>
{% endif %}
{% if timer.structure == "POS[S]" %}
<div class="label label-info">
POS [S]
</div>
{% endif %}
{% if timer.structure == "POS[M]" %}
<div class="label label-info">
POS [M]
</div>
{% endif %}
{% if timer.structure == "POS[L]" %}
<div class="label label-info">
POS [L]
</div>
{% endif %}
{% if timer.structure == "Citadel[M]" or timer.structure == "Astrahus" %}
<div class="label label-danger">
Astrahus
</div>
{% endif %}
{% if timer.structure == "Citadel[L]" or timer.structure == "Fortizar" %}
<div class="label label-danger">
Fortizar
</div>
{% endif %}
{% if timer.structure == "Citadel[XL]" or timer.structure == "Keepstar" %}
<div class="label label-danger">
Keepstar
</div>
{% endif %}
{% if timer.structure == "Engineering Complex[M]" or timer.structure == "Raitaru" %}
<div class="label label-warning">
Raitaru
</div>
{% endif %}
{% if timer.structure == "Engineering Complex[L]" or timer.structure == "Azbel" %}
<div class="label label-warning">
Azbel
</div>
{% endif %}
{% if timer.structure == "Engineering Complex[XL]" or timer.structure == "Sotiyo" %}
<div class="label label-warning">
Sotiyo
</div>
{% endif %}
{% if timer.structure == "Refinery[M]" or timer.structure == "Athanor" %}
<div class="label label-warning">
Athanor
</div>
{% endif %}
{% if timer.structure == "Refinery[L]" or timer.structure == "Tatara" %}
<div class="label label-warning">
Tatara
</div>
{% endif %}
{% if timer.structure == "Cyno Beacon" or timer.structure == "Pharolux Cyno Beacon" %}
<div class="label label-warning">
Pharolux Cyno Beacon
</div>
{% endif %}
{% if timer.structure == "Cyno Jammer" or timer.structure == "Tenebrex Cyno Jammer" %}
<div class="label label-warning">
Tenebrex Cyno Jammer
</div>
{% endif %}
{% if timer.structure == "Jump Gate" or timer.structure == "Ansiblex Jump Gate" %}
<div class="label label-warning">
Ansiblex Jump Gate
</div>
{% endif %}
{% if timer.structure == "Moon Mining Cycle" %}
<div class="label label-success">
Moon Mining Cycle
</div>
{% endif %}
{% if timer.structure == "Other" %}
<div class="label label-default">
Other
</div>
{% endif %}
</td>
<td class="text-center" nowrap>{{ timer.eve_time | date:"Y-m-d H:i" }}</td>
<td class="text-center" nowrap>
<div id="localtime{{ timer.id }}"></div>
<div id="countdown{{ timer.id }}"></div>
</td>
<td class="text-center">{{ timer.eve_character.character_name }}</td>
{% if perms.auth.timer_management %}
<td class="text-center">
<a href="{% url 'timerboard:delete' timer.id %}" class="btn btn-danger">
<span class="glyphicon glyphicon-remove"></span>
</a>
<a href="{% url 'timerboard:edit' timer.id %}" class="btn btn-info">
<span class="glyphicon glyphicon-pencil"></span>
</a>
</td>
{% endif %}
</tr>
{% endfor %}
</table>
<div class="table-responsive">
<table class="table">
<tr>
<th style="width:150px" class="text-center">{% trans "Details" %}</th>
<th class="text-center">{% trans "Objective" %}</th>
<th class="text-center">{% trans "System" %}</th>
<th class="text-center">{% trans "Structure" %}</th>
<th class="text-center">{% trans "Eve Time" %}</th>
<th class="text-center">{% trans "Local Time" %}</th>
<th class="text-center">{% trans "Creator" %}</th>
{% if perms.auth.timer_management %}
<th class="text-center">{% trans "Action" %}</th>
{% endif %}
</tr>
{% for timer in past_timers %}
{% if timer.important == True %}
<tr class="danger">
{% else %}
<tr class="info">
{% endif %}
<td style="width:150px" class="text-center">{{ timer.details }}</td>
<td class="text-center">
{% if timer.objective == "Hostile" %}
<div class="label label-danger">
{% trans "Hostile" %}
</div>
{% endif %}
{% if timer.objective == "Friendly" %}
<div class="label label-primary">
{% trans "Friendly" %}
</div>
{% endif %}
{% if timer.objective == "Neutral" %}
<div class="label label-default">
{% trans "Neutral" %}
</div>
{% endif %}
</td>
<td class="text-center">
<a href="{{ timer.system|dotlan_solar_system_url }}">
{{ timer.system }} {{ timer.planet_moon }}
</a>
</td>
<td class="text-center">
{% if timer.structure == "POCO" %}
<div class="label label-info">
POCO
</div>
{% endif %}
{% if timer.structure == "I-HUB" %}
<div class="label label-warning">
I-HUB
</div>
{% endif %}
{% if timer.structure == "TCU" %}
<div class="label label-danger">
TCU
</div>
{% endif %}
{% if timer.structure == "POS[S]" %}
<div class="label label-info">
POS [S]
</div>
{% endif %}
{% if timer.structure == "POS[M]" %}
<div class="label label-info">
POS [M]
</div>
{% endif %}
{% if timer.structure == "POS[L]" %}
<div class="label label-info">
POS [L]
</div>
{% endif %}
{% if timer.structure == "Citadel[M]" or timer.structure == "Astrahus" %}
<div class="label label-danger">
Astrahus
</div>
{% endif %}
{% if timer.structure == "Citadel[L]" or timer.structure == "Fortizar" %}
<div class="label label-danger">
Fortizar
</div>
{% endif %}
{% if timer.structure == "Citadel[XL]" or timer.structure == "Keepstar" %}
<div class="label label-danger">
Keepstar
</div>
{% endif %}
{% if timer.structure == "Engineering Complex[M]" or timer.structure == "Raitaru" %}
<div class="label label-warning">
Raitaru
</div>
{% endif %}
{% if timer.structure == "Engineering Complex[L]" or timer.structure == "Azbel" %}
<div class="label label-warning">
Azbel
</div>
{% endif %}
{% if timer.structure == "Engineering Complex[XL]" or timer.structure == "Sotiyo" %}
<div class="label label-warning">
Sotiyo
</div>
{% endif %}
{% if timer.structure == "Refinery[M]" or timer.structure == "Athanor" %}
<div class="label label-warning">
Athanor
</div>
{% endif %}
{% if timer.structure == "Refinery[L]" or timer.structure == "Tatara" %}
<div class="label label-warning">
Tatara
</div>
{% endif %}
{% if timer.structure == "Cyno Beacon" or timer.structure == "Pharolux Cyno Beacon" %}
<div class="label label-warning">
Pharolux Cyno Beacon
</div>
{% endif %}
{% if timer.structure == "Cyno Jammer" or timer.structure == "Tenebrex Cyno Jammer" %}
<div class="label label-warning">
Tenebrex Cyno Jammer
</div>
{% endif %}
{% if timer.structure == "Jump Gate" or timer.structure == "Ansiblex Jump Gate" %}
<div class="label label-warning">
Ansiblex Jump Gate
</div>
{% endif %}
{% if timer.structure == "Moon Mining Cycle" %}
<div class="label label-success">
Moon Mining Cycle
</div>
{% endif %}
{% if timer.structure == "Other" %}
<div class="label label-default">
Other
</div>
{% endif %}
</td>
<td class="text-center" nowrap>{{ timer.eve_time | date:"Y-m-d H:i" }}</td>
<td class="text-center" nowrap>
<div id="localtime{{ timer.id }}"></div>
<div id="countdown{{ timer.id }}"></div>
</td>
<td class="text-center">{{ timer.eve_character.character_name }}</td>
{% if perms.auth.timer_management %}
<td class="text-center">
<a href="{% url 'timerboard:delete' timer.id %}" class="btn btn-danger">
<span class="glyphicon glyphicon-remove"></span>
</a>
<a href="{% url 'timerboard:edit' timer.id %}" class="btn btn-info">
<span class="glyphicon glyphicon-pencil"></span>
</a>
</td>
{% endif %}
</tr>
{% endfor %}
</table>
</div>
{% else %}
<div class="alert alert-warning text-center">{% trans "No past timers." %}</div>
<div class="alert alert-warning text-center">
{% trans "No past timers." %}
</div>
{% endif %}
</div>