Implement showing LIST information

This commit is contained in:
Mark Veidemanis 2022-08-13 13:27:49 +01:00
parent 18448dce5a
commit ad9276c071
Signed by: m
GPG Key ID: 5ACFCEED46C0904F
6 changed files with 73 additions and 7 deletions

View File

@ -30,7 +30,7 @@ from core.views.manage.threshold.irc import (
ThresholdIRCAliasesEdit,
ThresholdIRCNetworkActions,
ThresholdIRCNetworkActionsAuto,
ThresholdIRCNetworkActionsList,
ThresholdIRCNetworkList, # Actions and just get list output
ThresholdIRCNetworkActionsRelay,
ThresholdIRCNetworkChannels,
ThresholdIRCNetworkDel,
@ -212,8 +212,8 @@ urlpatterns = [
),
path(
"manage/threshold/irc/list/<str:net>/",
ThresholdIRCNetworkActionsList.as_view(),
name="threshold_irc_network_actions_list",
ThresholdIRCNetworkList.as_view(),
name="threshold_irc_network_list",
),
path(
"manage/threshold/irc/msg/<str:net>/<int:num>/<str:channel>/",

View File

@ -210,3 +210,10 @@ def get_irc_nick(net, num):
payload = {}
nick = threshold_request(url, payload, method="GET")
return nick
def get_irc_list_info(net):
url = f"irc/list/{net}"
payload = {}
listinfo = threshold_request(url, payload, method="GET")
print("LISTINFO", listinfo)
return listinfo

View File

@ -31,7 +31,7 @@
</button>
<button
hx-headers='{"X-CSRFToken": "{{ csrf_token }}"}'
hx-post="{% url 'threshold_irc_network_actions_list' net %}"
hx-post="{% url 'threshold_irc_network_list' net %}"
hx-trigger="click"
hx-target="#actions"
hx-swap="outerHTML"

View File

@ -37,6 +37,16 @@
hx-swap="outerHTML">
</div>
<div
style="display: none;"
hx-headers='{"X-CSRFToken": "{{ csrf_token }}"}'
hx-get="{% url 'threshold_irc_network_list' net %}"
hx-trigger="load"
hx-target="#stats"
hx-swap="outerHTML">
</div>
<div class="columns">
<div class="column">
<div class="box">
@ -61,8 +71,8 @@
</div>
<div class="column">
<div class="box">
<div id="alerts">
Alerts here
<div id="stats">
Stats here
</div>
</div>
</div>

View File

@ -0,0 +1,27 @@
<div id="stats">
{% include 'manage/threshold/partials/notify.html' %}
{% if list is not None %}
<div class="content" style="max-height: 30em; overflow: auto;">
<div class="table-container">
<table class="table is-fullwidth is-hoverable">
<thead>
<th>attribute</th>
<th>value</th>
</thead>
<tbody>
{% for key, item in list.items %}
<tr>
<th>{{ key }}</th>
<td>
{% if item is not None %}
{{ item }}
{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
{% endif %}
</div>

View File

@ -384,7 +384,7 @@ class ThresholdIRCNetworkActionsAuto(SuperUserRequiredMixin, View):
return render(request, self.template_name, context)
class ThresholdIRCNetworkActionsList(SuperUserRequiredMixin, View):
class ThresholdIRCNetworkList(SuperUserRequiredMixin, View):
template_name = "manage/threshold/irc/network/actions.html"
def post(self, request, net):
@ -409,6 +409,28 @@ class ThresholdIRCNetworkActionsList(SuperUserRequiredMixin, View):
}
return render(request, self.template_name, context)
def get(self, request, net):
"""
Get list results from network.
"""
template_name = "manage/threshold/irc/network/stats.html"
listinfo = threshold.get_irc_list_info(net)
if not listinfo["success"]:
if "reason" in listinfo:
message = listinfo["reason"]
else:
message = "Could not get list info."
message = listinfo["reason"]
message_class = "danger"
context = {"message": message, "class": message_class}
return render(request, template_name, context)
context = {
"net": net,
"list": listinfo["listinfo"],
}
return render(request, template_name, context)
class ThresholdIRCNetworkActionsRelay(SuperUserRequiredMixin, APIView):
template_name = "manage/threshold/irc/network/actions.html"