mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2026-02-10 09:06:21 +01:00
Compare commits
11 Commits
v4.11.2
...
3e7d810bb9
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3e7d810bb9 | ||
|
|
99c65d2a5d | ||
|
|
55125a8ff3 | ||
|
|
2fd0fcdbcb | ||
|
|
2fe7bcf20e | ||
|
|
0c0f2fd5ba | ||
|
|
b32f4ab243 | ||
|
|
70f314e578 | ||
|
|
bc1b1c3a8f | ||
|
|
453512db64 | ||
|
|
4047159fd1 |
@@ -63,7 +63,6 @@ Here is an example of the Alliance Auth web site with a mixture of Services, App
|
||||
- [Aaron Kable](https://gitlab.com/aaronkable/)
|
||||
- [Ariel Rin](https://gitlab.com/soratidus999/)
|
||||
- [Col Crunch](https://gitlab.com/colcrunch/)
|
||||
- [Erik Kalkoken](https://gitlab.com/ErikKalkoken/)
|
||||
- [Rounon Dax](https://gitlab.com/ppfeufer)
|
||||
- [snipereagle1](https://gitlab.com/mckernanin)
|
||||
|
||||
@@ -71,6 +70,7 @@ Here is an example of the Alliance Auth web site with a mixture of Services, App
|
||||
|
||||
- [Adarnof](https://gitlab.com/adarnof/)
|
||||
- [Basraah](https://gitlab.com/basraah/)
|
||||
- [Erik Kalkoken](https://gitlab.com/ErikKalkoken/)
|
||||
|
||||
### Beta Testers / Bug Fixers
|
||||
|
||||
|
||||
@@ -43,19 +43,19 @@
|
||||
</li>
|
||||
{% endblock header_nav_collapse_left %}
|
||||
|
||||
|
||||
{% block content %}
|
||||
<div class="tab-content">
|
||||
<div id="add" class="tab-pane active">
|
||||
{% if acceptrequests %}
|
||||
<div class="table-responsive">
|
||||
<table class="table">
|
||||
<div>
|
||||
<table id="table-add" class="table table-responsive">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{% translate "Character" %}</th>
|
||||
<th>{% translate "Organization" %}</th>
|
||||
<th>{% translate "Group" %}</th>
|
||||
<th></th>
|
||||
<th>{% translate "Corporation" %}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
@@ -89,13 +89,24 @@
|
||||
<td>{{ acceptrequest.group.name }}</td>
|
||||
|
||||
<td class="text-end">
|
||||
<a href="{% url 'groupmanagement:accept_request' acceptrequest.id %}" class="btn btn-success">
|
||||
<div class="spinner-border spinner-border-sm mt-2 btns-join-{{acceptrequest.id}} d-none" role="status">
|
||||
<span class="sr-only">Loading...</span>
|
||||
</div>
|
||||
<a id="{{acceptrequest.id}}" class="btn btn-success join-accept btns-join-{{acceptrequest.id}}">
|
||||
{% translate "Accept" %}
|
||||
</a>
|
||||
<a href="{% url 'groupmanagement:reject_request' acceptrequest.id %}" class="btn btn-danger">
|
||||
<a id="{{acceptrequest.id}}" class="btn btn-danger join-reject btns-join-{{acceptrequest.id}}">
|
||||
{% translate "Reject" %}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
{% if acceptrequest.main_char %}
|
||||
{{ acceptrequest.main_char.corporation_name }}
|
||||
{% else %}
|
||||
{% translate "(unknown)" %}
|
||||
{% endif %}
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
@@ -111,14 +122,15 @@
|
||||
{% if not show_leave_tab %}
|
||||
<div id="leave" class="tab-pane">
|
||||
{% if leaverequests %}
|
||||
<div class="table-responsive">
|
||||
<table class="table">
|
||||
<div>
|
||||
<table id="table-rem" class="table table-responsive">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{% translate "Character" %}</th>
|
||||
<th>{% translate "Organization" %}</th>
|
||||
<th>{% translate "Group" %}</th>
|
||||
<th></th>
|
||||
<th>{% translate "Corporation" %}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
@@ -152,14 +164,23 @@
|
||||
<td>{{ leaverequest.group.name }}</td>
|
||||
|
||||
<td class="text-end">
|
||||
<a href="{% url 'groupmanagement:leave_accept_request' leaverequest.id %}" class="btn btn-success">
|
||||
<div class="spinner-border spinner-border-sm mt-2 btns-leave-{{leaverequest.id}} d-none" role="status">
|
||||
<span class="sr-only">Loading...</span>
|
||||
</div>
|
||||
<a id="{{leaverequest.id}}" class="btn btn-success accept leave-accept btns-leave-{{leaverequest.id}}">
|
||||
{% translate "Accept" %}
|
||||
</a>
|
||||
|
||||
<a href="{% url 'groupmanagement:leave_reject_request' leaverequest.id %}" class="btn btn-danger">
|
||||
<a id="{{leaverequest.id}}" class="btn btn-danger reject leave-reject btns-leave-{{leaverequest.id}}">
|
||||
{% translate "Reject" %}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
{% if leaverequest.main_char %}
|
||||
{{ leaverequest.main_char.corporation_name }}
|
||||
{% else %}
|
||||
{% translate "(unknown)" %}
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
@@ -172,3 +193,138 @@
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endblock content %}
|
||||
{% block extra_javascript %}
|
||||
{% include 'bundles/datatables-js-bs5.html' %}
|
||||
{% include "bundles/filterdropdown-js.html" %}
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
let tableAdd = $("#table-add").DataTable({
|
||||
filterDropDown: {
|
||||
columns: [
|
||||
{
|
||||
idx: 4,
|
||||
},
|
||||
{
|
||||
idx: 2,
|
||||
}
|
||||
],
|
||||
bootstrap: true,
|
||||
bootstrap_version: 5
|
||||
},
|
||||
columnDefs: [
|
||||
{
|
||||
target: 4,
|
||||
visible: false,
|
||||
},
|
||||
],
|
||||
paging: false,
|
||||
responsive: true,
|
||||
pageLength: -1
|
||||
});
|
||||
let tableRem = $("#table-rem").DataTable({
|
||||
filterDropDown: {
|
||||
columns: [
|
||||
{
|
||||
idx: 4,
|
||||
},
|
||||
{
|
||||
idx: 2,
|
||||
}
|
||||
],
|
||||
bootstrap: true,
|
||||
bootstrap_version: 5
|
||||
},
|
||||
columnDefs: [
|
||||
{
|
||||
target: 4,
|
||||
visible: false,
|
||||
},
|
||||
],
|
||||
paging: false,
|
||||
responsive: true,
|
||||
pageLength: -1
|
||||
});
|
||||
|
||||
// URL's for fetch requests
|
||||
let acceptJoinURL = "{% url 'groupmanagement:accept_request' 0 %}";
|
||||
acceptJoinURL = acceptJoinURL.substring(0, acceptJoinURL.length-2);
|
||||
let rejectJoinURL = "{% url 'groupmanagement:reject_request' 0 %}";
|
||||
rejectJoinURL = rejectJoinURL.substring(0, rejectJoinURL.length-2);
|
||||
let acceptLeaveURL = "{% url 'groupmanagement:leave_accept_request' 0 %}";
|
||||
acceptLeaveURL = acceptLeaveURL.substring(0, acceptLeaveURL.length-2);
|
||||
let rejectLeaveURL = "{% url 'groupmanagement:leave_reject_request' 0 %}";
|
||||
rejectLeaveURL = rejectLeaveURL.substring(0, rejectLeaveURL.length-2);
|
||||
|
||||
function removeRow(table, classLookup){
|
||||
let btn = $(classLookup);
|
||||
table.row($(btn[0]).parents('tr')).remove().draw();
|
||||
}
|
||||
|
||||
function toggleButtons(classLookup){
|
||||
let elems = document.querySelectorAll(classLookup);
|
||||
elems.forEach(
|
||||
function(e) {
|
||||
e.classList.toggle('d-none');
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function hitAuth(classLookup, table, URL){
|
||||
toggleButtons(classLookup);
|
||||
fetch(URL)
|
||||
.then(response => {
|
||||
if (!response.ok) {
|
||||
toggleButtons(classLookup);
|
||||
return
|
||||
}
|
||||
removeRow(table, classLookup)
|
||||
})
|
||||
.catch(error => {
|
||||
toggleButtons(classLookup);
|
||||
return;
|
||||
});
|
||||
toggleButtons(classLookup);
|
||||
}
|
||||
|
||||
let acceptJoinButtons = document.querySelectorAll(".join-accept");
|
||||
acceptJoinButtons.forEach(function(elem) {
|
||||
elem.addEventListener("click", function(event) {
|
||||
url = `${acceptJoinURL}${event.target.id}/`
|
||||
let elemClass = `.btns-join-${event.target.id}`
|
||||
hitAuth(elemClass, tableAdd, url)
|
||||
});
|
||||
});
|
||||
|
||||
let rejectJoinButtons = document.querySelectorAll(".join-reject");
|
||||
rejectJoinButtons.forEach(function(elem) {
|
||||
elem.addEventListener("click", function(event) {
|
||||
url = `${rejectJoinURL}${event.target.id}/`
|
||||
let elemClass = `.btns-join-${event.target.id}`
|
||||
hitAuth(elemClass, tableAdd, url)
|
||||
});
|
||||
});
|
||||
|
||||
let acceptLeaveButtons = document.querySelectorAll(".leave-accept");
|
||||
acceptLeaveButtons.forEach(function(elem) {
|
||||
elem.addEventListener("click", function(event) {
|
||||
url = `${acceptLeaveURL}${event.target.id}/`
|
||||
let elemClass = `.btns-leave-${event.target.id}`
|
||||
hitAuth(elemClass, tableRem, url)
|
||||
});
|
||||
});
|
||||
|
||||
let rejectLeaveButtons = document.querySelectorAll(".leave-reject");
|
||||
rejectLeaveButtons.forEach(function(elem) {
|
||||
elem.addEventListener("click", function(event) {
|
||||
url = `${rejectLeaveURL}${event.target.id}/`
|
||||
let elemClass = `.btns-leave-${event.target.id}`
|
||||
hitAuth(elemClass, tableRem, url)
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
{% endblock extra_javascript %}
|
||||
{% block extra_css %}
|
||||
{% include 'bundles/datatables-css-bs5.html' %}
|
||||
{% endblock %}
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
{% include "framework/header/nav-collapse-icon.html" with fa_icon="fa-solid fa-check-double" url=nav_item_link title=nav_item_title icon_on_mobile=True %}
|
||||
|
||||
{% translate "Delete all read notifications" as nav_item_title %}
|
||||
{% url "notifications:mark_all_read" as nav_item_link %}
|
||||
{% url "notifications:delete_all_read" as nav_item_link %}
|
||||
{% include "framework/header/nav-collapse-icon.html" with fa_icon="fa-solid fa-trash-can" url=nav_item_link title=nav_item_title icon_on_mobile=True %}
|
||||
{% endblock %}
|
||||
|
||||
|
||||
@@ -57,10 +57,10 @@ DATABASES['default'] = {
|
||||
# CCP's developer portal
|
||||
# Logging in to auth requires the publicData scope (can be overridden through the
|
||||
# LOGIN_TOKEN_SCOPES setting). Other apps may require more (see their docs).
|
||||
ESI_SSO_CALLBACK_URL = f"{SITE_URL}/sso/callback" # Do NOT change this line!
|
||||
ESI_SSO_CLIENT_ID = ''
|
||||
ESI_SSO_CLIENT_SECRET = ''
|
||||
ESI_SSO_CALLBACK_URL = f"{SITE_URL}/sso/callback"
|
||||
ESI_USER_CONTACT_EMAIL = '' # A server maintainer that CCP can contact in case of issues.
|
||||
ESI_USER_CONTACT_EMAIL = '' # A server maintainer that CCP can contact in case of issues.
|
||||
|
||||
# By default, emails are validated before new users can log in.
|
||||
# It's recommended to use a free service like SparkPost or Elastic Email to send email.
|
||||
|
||||
@@ -17,9 +17,7 @@ DATABASES["default"] = {
|
||||
"PASSWORD": os.environ.get("AA_DB_PASSWORD"),
|
||||
"HOST": os.environ.get("AA_DB_HOST"),
|
||||
"PORT": os.environ.get("AA_DB_PORT", "3306"),
|
||||
"OPTIONS": {
|
||||
"charset": os.environ.get("AA_DB_CHARSET", "utf8mb4")
|
||||
}
|
||||
"OPTIONS": {"charset": os.environ.get("AA_DB_CHARSET", "utf8mb4")},
|
||||
}
|
||||
|
||||
# Register an application at https://developers.eveonline.com for Authentication
|
||||
@@ -27,10 +25,9 @@ DATABASES["default"] = {
|
||||
# to https://example.com/sso/callback substituting your domain for example.com
|
||||
# Logging in to auth requires the publicData scope (can be overridden through the
|
||||
# LOGIN_TOKEN_SCOPES setting). Other apps may require more (see their docs).
|
||||
|
||||
ESI_SSO_CALLBACK_URL = f"{SITE_URL}/sso/callback" # Do NOT change this line!
|
||||
ESI_SSO_CLIENT_ID = os.environ.get("ESI_SSO_CLIENT_ID")
|
||||
ESI_SSO_CLIENT_SECRET = os.environ.get("ESI_SSO_CLIENT_SECRET")
|
||||
ESI_SSO_CALLBACK_URL = f"{SITE_URL}/sso/callback"
|
||||
ESI_USER_CONTACT_EMAIL = os.environ.get(
|
||||
"ESI_USER_CONTACT_EMAIL"
|
||||
) # A server maintainer that CCP can contact in case of issues.
|
||||
@@ -70,7 +67,6 @@ INSTALLED_APPS += [
|
||||
# 'allianceauth.permissions_tool',
|
||||
# 'allianceauth.srp',
|
||||
# 'allianceauth.timerboard',
|
||||
|
||||
# https://allianceauth.readthedocs.io/en/latest/features/services/index.html
|
||||
# 'allianceauth.services.modules.discord',
|
||||
# 'allianceauth.services.modules.discourse',
|
||||
|
||||
@@ -28,6 +28,7 @@ The following icons are available in the Alliance Auth SVG sprite:
|
||||
|
||||
- `aa-logo`: The Alliance Auth logo
|
||||
- `aa-loading-spinner`: A loading spinner icon
|
||||
- `aa-mumble-logo`: The Mumble logo
|
||||
|
||||
### Alliance Auth Logo
|
||||
|
||||
|
||||
@@ -20,8 +20,8 @@ Make the following changes in your auth project's settings file (`local.py`):
|
||||
# Be sure to set the callback URLto https://example.com/discord/callback/
|
||||
# substituting your domain for example.com in Discord's developer portal
|
||||
# (Be sure to add the trailing slash)
|
||||
DISCORD_CALLBACK_URL = f"{SITE_URL}/discord/callback/" # Do NOT change this line!
|
||||
DISCORD_GUILD_ID = ''
|
||||
DISCORD_CALLBACK_URL = f"{SITE_URL}/discord/callback/"
|
||||
DISCORD_APP_ID = ''
|
||||
DISCORD_APP_SECRET = ''
|
||||
DISCORD_BOT_TOKEN = ''
|
||||
|
||||
Reference in New Issue
Block a user