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,13 +10,16 @@
{% 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="hidden-xs">
<div class="col-lg-4 col-sm-2">
<table class="table">
<tr>
@ -55,28 +58,47 @@
</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">
<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-xs-6">
<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>
@ -90,15 +112,22 @@
</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-heading">
<h3 class="panel-title text-center" style="text-align: center">
{% trans 'Characters' %}
</h3>
</div>
<div class="panel-body">
<table class="table table-hover">
<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>
@ -110,6 +139,25 @@
</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

@ -2,9 +2,7 @@
{% 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>
<img class="img-responsive center-block" src="{% static 'img/sso/EVE_SSO_Login_Buttons_Large_Black.png' %}" border=0>
</a>
</p>
{% 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,8 +34,8 @@
<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 }}
<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>

View File

@ -13,15 +13,19 @@
{{ 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>
@ -32,7 +36,7 @@
<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.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>
@ -44,23 +48,60 @@
{% 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>
<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">
@ -16,41 +15,49 @@
{{ group.name }} - {% trans 'Members' %}
</div>
<div class="panel-body">
<div id="list" class="">
<p>
<a class="btn btn-default" href="{% url 'groupmanagement:membership' %}" role="button">
Back
</a>
</p>
{% if group.user_set %}
<table class="table">
<div class="table-responsive">
<table class="table table-aa" id="tab_group_members">
<thead>
<tr>
<th class="text-center">{% trans "Leader" %}</th>
<th class="text-center">{% trans "Portrait" %}</th>
<th class="text-right">{% 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>
<th class="text-center">{% trans "Organization" %}</th>
<th class="text-center"></th>
</tr>
</thead>
<tbody>
{% for member in members %}
<tr>
<td class="text-center">
<td class="text-right">
{% if member.is_leader %}
<i class="fa fa-star"></i>
<i class="fa fa-star"></i>&nbsp;
{% endif %}
</td>
<td class="text-center">
<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>
</td>
<td class="text-center">
<a href="{{ member.main_char|dotlan_alliance_url }}" target="_blank">
</a><br>
{{ member.main_char.alliance_name|default_if_none:"" }}
</a>
{% else %}
(unknown)
{% endif %}
</td>
<td class="text-center">
<a href="{% url 'groupmanagement:membership_remove' group.id member.user.id %}" class="btn btn-danger"
@ -60,12 +67,36 @@
</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>
<div class="alert alert-warning text-center">
{% trans "No group members to list." %}
</div>
{% endif %}
</div>
</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,17 +15,23 @@
</div>
<div class="panel-body">
{% if groups %}
<table class="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">{% trans "Action" %}</th>
<th class="text-center"></th>
</tr>
</thead>
<tbody>
{% for group in groups %}
<tr>
<td class="text-center">{{ group.name }}</td>
<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 %}
@ -50,9 +56,13 @@
</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,13 +9,15 @@ url
<div class="col-lg-12">
<h1 class="page-header text-center">{% trans "Available Groups" %}</h1>
{% if groups %}
<table class="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>
@ -49,9 +51,12 @@ url
</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,36 +29,41 @@
<div id="add" class="tab-pane fade in active panel panel-default">
<div class="panel-body">
{% if acceptrequests %}
<table class="table">
<div class="table-responsive">
<table class="table table-aa">
<thead>
<tr>
<th class="text-center">{% trans "#" %}</th>
<th class="text-center">{% trans "Portrait" %}</th>
<th class="text-center"></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 "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-center">{{ acceptrequest.id }}</td>
<td class="text-center">
<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>
</td>
<td class="text-center">
<a href="{{ acceptrequest.main_char|dotlan_alliance_url }}" target="_blank">
</a><br>
{{ acceptrequest.main_char.alliance_name|default_if_none:"" }}
</a>
{% else %}
(unknown)
{% endif %}
</td>
<td class="text-center">{{ acceptrequest.group.name }}</td>
<td class="text-center">
@ -71,7 +76,9 @@
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{% else %}
<div class="alert alert-warning text-center">{% trans "No group add requests." %}</div>
{% endif %}
@ -81,36 +88,41 @@
<div id="leave" class="tab-pane fade panel panel-default">
<div class="panel-body">
{% if leaverequests %}
<table class="table">
<div class="table-responsive">
<table class="table table-aa">
<thead>
<tr>
<th class="text-center">{% trans "#" %}</th>
<th class="text-center">{% trans "Portrait" %}</th>
<th class="text-center"></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 "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-center">{{ leaverequest.id }}</td>
<td class="text-center">
<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>
</td>
<td class="text-center">
<a href="{{ leaverequest.main_char|dotlan_alliance_url }}" target="_blank">
</a><br>
{{ leaverequest.main_char.alliance_name|default_if_none:"" }}
</a>
{% else %}
(unknown)
{% endif %}
</td>
<td class="text-center">{{ leaverequest.group.name }}</td>
<td class="text-center">
@ -123,7 +135,9 @@
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{% else %}
<div class="alert alert-warning text-center">{% trans "No group leave requests." %}</div>
{% endif %}

View File

@ -2,6 +2,7 @@
{% load evelinks %}
{% block content %}
<div class="table-responsive">
<table class="table">
<thead>
<tr>
@ -42,4 +43,5 @@
</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>
<p>
<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">
</p>
<div class="table-responsive">
<table class="table table-striped" id="tab_permissions_audit">
<thead>
<tr>
<th class="col-md-3">
{% trans "Group" %}
</th>
<th class="col-md-3">
{% trans "User" %}
</th>
<th>{% trans "Group" %}</th>
<th></th>
<th>{% trans "User / Character" %}</th>
<th>{% trans "Organization" %}</th>
</tr>
</thead>
<tbody>
{% for user in permission.users %}
<tr>
{% include 'permissions_tool/audit_row.html' with group="Permission Granted Directly (No Group)" %}
</tr>
{% include 'permissions_tool/audit_row.html' with type="User" name="Permission granted directlty" %}
{% endfor %}
{% for group in permission.groups %}
{% for user in group.user_set.all %}
{% include 'permissions_tool/audit_row.html' %}
{% include 'permissions_tool/audit_row.html' with type="Group" name=group%}
{% 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>
{% 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 %}
{{ 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,18 +8,17 @@
{% block content %}
<div class="col-sm-12">
<h1 class="page-header">{% trans "Permissions Overview" %}</h1>
<p>
{% 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>
{% 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>
{% endif %}
<table class="table table-hover">
</p>
<div class="table-responsive">
<table class="table table-striped" id="tab_permissions_overview" style="width:100%">
<thead>
<tr>
<th>
@ -76,4 +75,53 @@
</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">
<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

@ -81,7 +81,7 @@
{% endif %}
</div>
</div>
<div class="table-responsive">
<table class="table">
<tr>
<th class="text-center">{% trans "Pilot Name" %}</th>
@ -140,6 +140,7 @@ ESC to cancel"
</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>
@ -159,7 +160,9 @@ ESC to cancel"
</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,6 +31,7 @@
</div>
</div>
{% if srpfleets %}
<div class="table-responsive">
<table class="table">
<tr>
<th class="text-center">{% trans "Fleet Name" %}</th>
@ -117,8 +118,11 @@
</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,6 +26,7 @@
</div>
{% if corp_timers %}
<h4><b>{% trans "Corp Timers" %}</b></h4>
<div class="table-responsive">
<table class="table">
<tr>
<th style="width:150px" class="text-center">{% trans "Details" %}</th>
@ -61,8 +64,9 @@
</div>
{% endif %}
</td>
<td class="text-center"><a
href="{{ timer.system|dotlan_solar_system_url }}">{{ timer.system }} {{ timer.planet_moon }} </a>
<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" %}
@ -180,9 +184,11 @@
</tr>
{% endfor %}
</table>
</div>
{% endif %}
<h4><b>{% trans "Next Timers" %}</b></h4>
{% if future_timers %}
<div class="table-responsive">
<table class="table">
<tr>
<th style="width:150px" class="text-center">{% trans "Details" %}</th>
@ -221,7 +227,9 @@
{% endif %}
</td>
<td class="text-center">
<a href="{{ timer.system|dotlan_solar_system_url }}">{{ timer.system }} {{ timer.planet_moon }}</a>
<a href="{{ timer.system|dotlan_solar_system_url }}">
{{ timer.system }} {{ timer.planet_moon }}
</a>
</td>
<td class="text-center">
{% if timer.structure == "POCO" %}
@ -339,11 +347,16 @@
</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 %}
<div class="table-responsive">
<table class="table">
<tr>
<th style="width:150px" class="text-center">{% trans "Details" %}</th>
@ -382,7 +395,9 @@
{% endif %}
</td>
<td class="text-center">
<a href="{{ timer.system|dotlan_solar_system_url }}">{{ timer.system }} {{ timer.planet_moon }}</a>
<a href="{{ timer.system|dotlan_solar_system_url }}">
{{ timer.system }} {{ timer.planet_moon }}
</a>
</td>
<td class="text-center">
{% if timer.structure == "POCO" %}
@ -500,8 +515,11 @@
</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>