API SSO, Beautification of Tables, and more. (#562)

# One Thousandth Commit 🎉 🎈 🎆 🍾

* Allow requiring API ownership validation by SSO.
Closes #163

* Add Discourse group name length restrictions.

* Redirect after api addition/deletion of main character

* Correct admin searching for removed discourse_username field in AuthServicesInfo

* Correct admin function to sync user Discourse groups

* Beautify tables by removing borders and hiding when empty.

*Add buttons on dead-end pages to return to originating view.
This commit is contained in:
Adarnof
2016-10-27 23:28:00 -04:00
committed by GitHub
parent 4ea7fdeaf2
commit e77c162fa0
26 changed files with 313 additions and 135 deletions

View File

@@ -9,38 +9,36 @@
{% block extra_css %}{% endblock extra_css %}
{% block content %}
<div class="col-lg-12">
<div class="col-lg-6 col-lg-offset-3">
<div class="row">
{% if apikeypairs %}
{% else %}
<div class="alert alert-danger" role="alert">{% trans "No api keys found" %}</div>
{% endif %}
<h1 class="page-header text-center">{% trans "API Key Management" %}
<div class="text-right">
<a href="{% url 'auth_add_api_key' %}" class="btn btn-success">{% trans "Add Key" %}</a>
</div>
</h1>
<table class="table table-bordered">
<tr>
<th class="text-center">{% trans "API ID" %}</th>
<th class="text-center">{% trans "API Key" %}</th>
<th class="text-center">{% trans "Action" %}</th>
</tr>
{% for pair in apikeypairs %}
{% if apikeypairs %}
<table class="table">
<tr>
<td class="text-center">{{ pair.api_id }}</td>
<td class="text-center">{{ pair.api_key }}</td>
<td class="text-center">
<a href="{% url 'auth_user_refresh_api' pair.api_id %}" class="btn btn-success">
<span class="glyphicon glyphicon-refresh"></span>
</a>
<a href="{% url 'auth_api_key_removal' pair.api_id %}" class="btn btn-danger">
<span class="glyphicon glyphicon-remove"></span>
</a>
</td>
<th class="text-center">{% trans "API ID" %}</th>
<th class="text-center">{% trans "Action" %}</th>
</tr>
{% endfor %}
</table>
{% for pair in apikeypairs %}
<tr>
<td class="text-center">{{ pair.api_id }}</td>
<td class="text-center">
<a href="{% url 'auth_user_refresh_api' pair.api_id %}" class="btn btn-success">
<span class="glyphicon glyphicon-refresh"></span>
</a>
<a href="{% url 'auth_api_key_removal' pair.api_id %}" class="btn btn-danger">
<span class="glyphicon glyphicon-remove"></span>
</a>
</td>
</tr>
{% endfor %}
</table>
{% else %}
<div class="alert alert-danger" role="alert">{% trans "No api keys found" %}</div>
{% endif %}
</div>
</div>

View File

@@ -0,0 +1,21 @@
{% extends 'public/base.html' %}
{% load staticfiles %}
{% block title %}Verify API Ownership{% endblock %}
{% block page_title%}Verify API Ownership{% endblock %}
{% block content %}
<div class="col-lg-12">
<h1 class="page-header text-center">Verify API Ownership</div>
<div class="col-xs-4 col-xs-offset-4">
<div class="panel panel-default>
<div class="panel-header">Please authenticate as a character on API {{ api.api_id }} to prove ownership.</div>
<div class="panel-body">
<div class="text-center">
<a href="{% url 'auth_api_sso' api.api_id %}">
<img class="img-responsive center-block" src="{% static 'img/sso/EVE_SSO_Login_Buttons_Large_Black.png' %}">
</a>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View File

@@ -17,7 +17,7 @@
{% endif %}
</h1>
<h2>{% blocktrans %}{{ user }} has collected {{ n_fats }} links this month.{% endblocktrans %}</h2>
<table class="table table-responsive table-bordered">
<table class="table table-responsive">
<tr>
<th class="col-md-2 text-center">{% trans "Ship" %}</th>
<th class="col-md-2 text-center">{% trans "Times used" %}</th>
@@ -31,7 +31,8 @@
</table>
{% if created_fats %}
<h2>{% blocktrans %}{{ user }} has created {{ n_created_fats }} links this month.{% endblocktrans %}</h2>
<table class="table table-bordered">
{% if created_fats %}
<table class="table">
<tr>
<th class="text-center">{% trans "Name" %}</th>
<th class="text-center">{% trans "Creator" %}</th>
@@ -58,6 +59,7 @@
</table>
{% endif %}
{% endif %}
</div>

View File

@@ -16,7 +16,8 @@
{% endif %}
</div>
</h1>
<table class="table table-responsive table-bordered">
<div class="col-lg-2 col-lg-offset-5">
<table class="table table-responsive">
<tr>
<th class="col-md-2 text-center">{% trans "Month" %}</th>
<th class="col-md-2 text-center">{% trans "Fats" %}</th>
@@ -32,6 +33,7 @@
</tr>
{% endfor %}
</table>
</div>
</div>

View File

@@ -16,7 +16,8 @@
{% endif %}
</div>
</h1>
<table class="table table-responsive table-bordered">
{% if fatStats %}
<table class="table table-responsive">
<tr>
<th class="col-md-1"></th>
<th class="col-md-2 text-center">{% trans "Ticker" %}</th>
@@ -38,6 +39,7 @@
</tr>
{% endfor %}
</table>
{% endif %}
</div>

View File

@@ -22,7 +22,8 @@
</th>
</tr>
</table>
<table class="table table-responsive table-bordered">
{% if fats %}
<table class="table table-responsive">
<tr>
<th class="text-center">{% trans "fatname" %}</th>
<th class="text-center">{% trans "Character" %}</th>
@@ -44,6 +45,9 @@
</tr>
{% endfor %}
</table>
{% else %}
<div class="alert alert-warning text-center">No fleet activity on record.</div>
{% endif %}
{% if perms.auth.fleetactivitytracking%}
<table class="table">
@@ -64,7 +68,8 @@
</th>
</tr>
</table>
<table class="table table-bordered">
{% if fatlinks %}
<table class="table">
<tr>
<th class="text-center">{% trans "Name" %}</th>
<th class="text-center">{% trans "Creator" %}</th>
@@ -89,6 +94,9 @@
{% endfor %}
</table>
{% else %}
<div class="alert alert-warning text-center">No created fatlinks on record.</div>
{% endif %}
{% endif %}
</div>

View File

@@ -10,59 +10,73 @@
{% block content %}
<div class="col-lg-12">
<h3 class="page-header text-center">{% trans "Group Management" %}</h3>
<h4 class="page-header text-center">{% trans "Group Add Request" %}</h4>
<table class="table table-bordered">
<tr>
<th class="text-center">{% trans "RequestID" %}</th>
<th class="text-center">{% trans "CharacterName" %}</th>
<th class="text-center">{% trans "GroupName" %}</th>
<th class="text-center">{% trans "Action" %}</th>
</tr>
{% for acceptrequest in acceptrequests %}
<tr>
<td class="text-center">{{ acceptrequest.id }}</td>
<td class="text-center">{{ acceptrequest.main_char.character_name }}</td>
<td class="text-center">{{ acceptrequest.group.name }}</td>
<td class="text-center">
<a href="{% url 'auth_group_accept_request' acceptrequest.id %}" class="btn btn-success">
{% trans "Accept" %}
</a>
<a href="{% url 'auth_group_reject_request' acceptrequest.id %}" class="btn btn-danger">
{% trans "Reject" %}
</a>
</td>
</tr>
{% endfor %}
</table>
<h4 class="page-header text-center">{% trans "Group Leave Request" %}</h4>
<table class="table table-bordered">
<tr>
<th class="text-center">{% trans "RequestID" %}</th>
<th class="text-center">{% trans "CharacterName" %}</th>
<th class="text-center">{% trans "GroupName" %}</th>
<th class="text-center">{% trans "Action" %}</th>
</tr>
{% for leaverequest in leaverequests %}
<tr>
<td class="text-center">{{ leaverequest.id }}</td>
<td class="text-center">{{ leaverequest.main_char.character_name }}</td>
<td class="text-center">{{ leaverequest.group.name }}</td>
<td class="text-center">
<a href="{% url 'auth_group_leave_accept_request' leaverequest.id %}" class="btn btn-success">
{% trans "Accept" %}
</a>
<a href="{% url 'auth_group_leave_reject_request' leaverequest.id %}" class="btn btn-danger">
{% trans "Reject" %}
</a>
</td>
</tr>
{% endfor %}
</table>
<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>
</ul>
<div class="tab-content">
<div id="add" class="tab-pane fade in active">
<div class="panel-body">
{% if acceptrequests %}
<table class="table">
<tr>
<th class="text-center">{% trans "RequestID" %}</th>
<th class="text-center">{% trans "CharacterName" %}</th>
<th class="text-center">{% trans "GroupName" %}</th>
<th class="text-center">{% trans "Action" %}</th>
</tr>
{% for acceptrequest in acceptrequests %}
<tr>
<td class="text-center">{{ acceptrequest.id }}</td>
<td class="text-center">{{ acceptrequest.main_char.character_name }}</td>
<td class="text-center">{{ acceptrequest.group.name }}</td>
<td class="text-center">
<a href="{% url 'auth_group_accept_request' acceptrequest.id %}" class="btn btn-success">
{% trans "Accept" %}
</a>
<a href="{% url 'auth_group_reject_request' acceptrequest.id %}" class="btn btn-danger">
{% trans "Reject" %}
</a>
</td>
</tr>
{% endfor %}
</table>
{% else %}
<div class="alert alert-warning text-center">No group add requests.</div>
{% endif %}
</div>
</div>
<div id="leave" class="tab-pane fade">
<div class="panel-body">
{% if leaverequests %}
<table class="table">
<tr>
<th class="text-center">{% trans "RequestID" %}</th>
<th class="text-center">{% trans "CharacterName" %}</th>
<th class="text-center">{% trans "GroupName" %}</th>
<th class="text-center">{% trans "Action" %}</th>
</tr>
{% for leaverequest in leaverequests %}
<tr>
<td class="text-center">{{ leaverequest.id }}</td>
<td class="text-center">{{ leaverequest.main_char.character_name }}</td>
<td class="text-center">{{ leaverequest.group.name }}</td>
<td class="text-center">
<a href="{% url 'auth_group_leave_accept_request' leaverequest.id %}" class="btn btn-success">
{% trans "Accept" %}
</a>
<a href="{% url 'auth_group_leave_reject_request' leaverequest.id %}" class="btn btn-danger">
{% trans "Reject" %}
</a>
</td>
</tr>
{% endfor %}
</table>
{% else %}
<div class="alert alert-warning text-center">No group leave requests.</div>
{% endif %}
</div>
</div>
</div>
</div>
{% endblock content %}

View File

@@ -11,9 +11,9 @@
<div class="col-lg-12">
<h1 class="page-header text-center">{% trans "Available Groups" %}</h1>
{% if STATE == MEMBER_STATE or user.is_superuser %}
<table class="table table-bordered">
{% if pairs %}
<table class="table">
<tr>
<th class="text-center">{% trans "GroupID" %}</th>
<th class="text-center">{% trans "GroupName" %}</th>
<th class="text-center">{% trans "GroupDesc" %}</th>
<th class="text-center">{% trans "Action" %}</th>
@@ -21,7 +21,6 @@
{% for pair in pairs %}
<tr>
<td class="text-center">{{ pair.0.id }}</td>
<td class="text-center">{{ pair.0.name }}</td>
<td class="text-center">{{ pair.1.description }}</td>
<td class="text-center">
@@ -48,6 +47,9 @@
</tr>
{% endfor %}
</table>
{% else %}
<div class="alert alert-warning text-center">No groups available.</div>
{% endif %}
{% else %}
{% if IS_CORP %}
<div class="alert alert-danger" role="alert">{% trans "You are not in the corporation." %}</div>

View File

@@ -10,7 +10,7 @@
{% block content %}
<div class="col-lg-12">
{% if not STATE == MEMBER_STATE and not user.is_superuser %}
{% if not STATE == MEMBER_STATE %}
<h1 class="page-header text-center">{% trans "Personal Applications" %}
<div class="text-right">
{% if create %}
@@ -20,7 +20,8 @@
{% endif %}
</div>
</h1>
<table class="table table-bordered table-condensed">
{% if personal_apps %}
<table class="table table-condensed">
<tr>
<th class="text-center">{% trans "Username" %}</th>
<th class="text-center">{% trans "Corporation" %}
@@ -54,6 +55,7 @@
</tr>
{% endfor %}
</table>
{% endif %}
{% endif %}
{% if perms.auth.human_resources %}
<h1 class="page-header text-center">{% trans "Application Management" %}
@@ -71,6 +73,7 @@
<div class="tab-content">
<div id="pending" class="tab-pane fade in active">
<div class="panel-body">
{% if applications %}
<table class="table">
<tr>
<th class="text-center">{% trans "Date" %}</th>
@@ -107,10 +110,14 @@
</tr>
{% endfor %}
</table>
{% else %}
<div class="alert alert-warning text-center">No pending applications.</div>
{% endif %}
</div>
</div>
<div id="reviewed" class="tab-pane fade">
<div class="panel-body">
{% if finished_applications %}
<table class="table">
<tr>
<th class="text-center">{% trans "Date" %}</th>
@@ -147,6 +154,9 @@
</tr>
{% endfor %}
</table>
{% else %}
<div class="alert alert-warning text-center">No reviewed applications.</div>
{% endif %}
</div>
</div>
</div>

View File

@@ -11,17 +11,17 @@
<div class="col-lg-12">
<h1 class="page-header text-center">{% trans "View Application" %}</h1>
<div class="container-fluid">
<div class="col-md-4 col-md-offset-4">
<div class="col-md-6 col-md-offset-3">
<div class="row">
{% if app.approved %}
<div class="alert alert-success">{% trans "Approved" %}</div>
<div class="alert alert-success text-center">{% trans "Approved" %}</div>
{% elif app.approved == False %}
<div class="alert alert-danger">{% trans "Denied" %}</div>
<div class="alert alert-danger text-center">{% trans "Denied" %}</div>
{% else %}
<div class="alert alert-warning">{% trans "Pending" %}</div>
<div class="alert alert-warning text-center">{% trans "Pending" %}</div>
{% endif %}
{% if app.reviewer_str %}
<div class="alert alert-info">{% trans "Reviewer:" %} {{ app.reviewer_str }}</div>
<div class="alert alert-info text-center">{% trans "Reviewer:" %} {{ app.reviewer_str }}</div>
{% endif %}
</div>
<div class="row">

View File

@@ -22,6 +22,7 @@
<div id="unread" class="tab-pane fade in active">
<div class="panel-body">
<div class="table-responsive">
{% if unread %}
<table class="table table-condensed table-hover table-striped">
<tr>
<th class="text-center">{% trans "Timestamp" %}</th>
@@ -43,12 +44,16 @@
</tr>
{% endfor %}
</table>
{% else %}
<div class="alert alert-warning text-center">No unread notifications.</div>
{% endif %}
</div>
</div>
</div>
<div id="read" class="tab-pane fade">
<div class="panel-body">
<div class="table-responsive">
{% if read %}
<table class="table table-condensed table-hover table-striped">
<tr>
<th class="text-center">{% trans "Timestamp" %}</th>
@@ -70,6 +75,9 @@
</tr>
{% endfor %}
</table>
{% else %}
<div class="alert alert-warning text-center">No read notifications.</div>
{% endif %}
</div>
</div>
</div>

View File

@@ -8,7 +8,14 @@
{% block content %}
<div class="col-lg-12">
<h1 class="page-header text-center">{% trans "View Notification" %}</h1>
<h1 class="page-header text-center">
{% trans "View Notification" %}
<div class="text-right">
<a href="{% url 'auth_notification_list' %}" class="btn btn-primary btn-lg">
<span class="glyphicon glyphicon-arrow-left"></span>
</a>
</div>
</h1>
<div class="col-lg-12 container" id="example">
<div class="row">
<div class="col-lg-12">

View File

@@ -17,13 +17,14 @@
{% endif %}
</div>
</h1>
<div class="col-lg-12 text-center">
<div class="col-lg-12 text-center row">
<div class="label label-info text-left">
<b>{% trans "Current Eve Time:" %} </b>
</div><div class="label label-info text-left" id="current-time"></div>
<br/>
<br />
</div>
<table class="table table-responsive table-bordered">
{% if optimer %}
<table class="table table-responsive">
<tr>
<th class="text-center">{% trans "Operation Name" %}</th>
<th class="text-center">{% trans "Doctrine" %}</th>
@@ -70,7 +71,9 @@
{% endfor %}
</tr>
</table>
{% else %}
<br /><div class="alert alert-warning text-center">No fleet operations found.</div>
{% endif %}
</div>
<script src="/static/js/dateformat.js"></script>

View File

@@ -28,6 +28,9 @@
<div class="alert alert-info" role="alert">{% blocktrans %}Give this link to the line members{% endblocktrans %}.</div>
<div class="alert alert-info" role="alert">
http://{{ request.get_host }}{% url 'auth_srp_request_view' completed_srp_code %}</div>
<div class="text-center">
<a href="{% url 'auth_srp_management_view' %}" class="btn btn-primary btn-lg">{% trans "Continue" %}</a>
</div>
{% endif %}
</div>
</div>

View File

@@ -34,7 +34,8 @@
<b>{% trans "Total ISK Cost:" %} {{ totalcost | intcomma }}</b>
</div>
</div>
<table class="table table-bordered">
{% if srpfleetrequests %}
<table class="table">
<tr>
<th class="text-center">{% trans "Pilot Name" %}</th>
<th class="text-center">{% trans "Killboard Link" %}</th>
@@ -120,6 +121,9 @@
</tr>
{% endfor %}
</table>
{% else %}
<div class="alert alert-warning text-center">No SRP requests for this fleet.</div>
{% endif %}
</div>
</div>

View File

@@ -30,6 +30,9 @@
</form>
{% else %}
<div class="alert alert-success" role="alert">{% trans "SRP Request Successfully Submitted" %}</div>
<div class="text-center">
<a href="{% url 'auth_srp_management_view' %}" class="btn btn-primary btn-lg">{% trans 'Continue' %}</a>
</div>
{% endif %}
{% endif %}
</div>

View File

@@ -29,7 +29,8 @@
<b>{% trans "Total ISK Cost:" %} {{ totalcost | intcomma }}</b>
</div>
</div>
<table class="table table-bordered">
{% if srpfleets %}
<table class="table">
<tr>
<th class="text-center">{% trans "Fleet Name" %}</th>
<th class="text-center">{% trans "Fleet Time" %}</th>
@@ -117,6 +118,9 @@
</tr>
{% endfor %}
</table>
{% else %}
<div class="alert alert-warning text-center">No SRP fleets created.</div>
{% endif %}
</div>
</div>

View File

@@ -24,7 +24,7 @@
</div>
{% if corp_timers %}
<h4><b>{% trans "Corp Timers" %}</b></h4>
<table class="table table-bordered">
<table class="table">
<tr>
<th style="width:150px" class="text-center">{% trans "Details" %}</th>
<th class="text-center">{% trans "Objective" %}</th>
@@ -124,7 +124,8 @@
</table>
{% endif %}
<h4><b>{% trans "Next Timers" %}</b></h4>
<table class="table table-bordered">
{% if future_timers %}
<table class="table">
<tr>
<th style="width:150px" class="text-center">{% trans "Details" %}</th>
<th class="text-center">{% trans "Objective" %}</th>
@@ -221,8 +222,12 @@
</tr>
{% endfor %}
</table>
{% else %}
<div class="alert alert-warning text-center">No upcoming timers.</div>
{% endif %}
<h4><b>{% trans "Past Timers" %}</b></h4>
<table class="table table-bordered">
{% if past_timers %}
<table class="table">
<tr>
<th style="width:150px" class="text-center">{% trans "Details" %}</th>
<th class="text-center">{% trans "Objective" %}</th>
@@ -320,6 +325,9 @@
</tr>
{% endfor %}
</table>
{% else %}
<div class="alert alert-warning text-center">No past timers.</div>
{% endif %}
</div>