Implement deleting networks

This commit is contained in:
Mark Veidemanis 2022-08-02 09:04:23 +01:00
parent 62ef524ac7
commit ad153cdefa
Signed by: m
GPG Key ID: 5ACFCEED46C0904F
7 changed files with 86 additions and 33 deletions

View File

@ -33,6 +33,7 @@ from core.views.manage.threshold.irc import (
ThresholdIRCNetworkActionsList, ThresholdIRCNetworkActionsList,
ThresholdIRCNetworkActionsRelay, ThresholdIRCNetworkActionsRelay,
ThresholdIRCNetworkChannels, ThresholdIRCNetworkChannels,
ThresholdIRCNetworkDel,
ThresholdIRCNetworkInfo, ThresholdIRCNetworkInfo,
ThresholdIRCNetworkInfoEdit, ThresholdIRCNetworkInfoEdit,
ThresholdIRCNetworkRelayDel, ThresholdIRCNetworkRelayDel,
@ -119,6 +120,11 @@ urlpatterns = [
ThresholdIRCNetwork.as_view(), ThresholdIRCNetwork.as_view(),
name="threshold_irc_network", name="threshold_irc_network",
), ),
path(
"manage/threshold/irc/overview/network/<str:net>/delete/",
ThresholdIRCNetworkDel.as_view(),
name="threshold_irc_network_del",
),
path( path(
"manage/threshold/irc/network/<str:net>/info/", "manage/threshold/irc/network/<str:net>/info/",
ThresholdIRCNetworkInfo.as_view(), ThresholdIRCNetworkInfo.as_view(),

View File

@ -132,3 +132,10 @@ def create_network(data):
payload = data payload = data
ran = threshold_request(url, payload, method="PUT") ran = threshold_request(url, payload, method="PUT")
return ran return ran
def del_network(net):
url = f"irc/network/{net}"
payload = {}
deleted = threshold_request(url, payload, method="DELETE")
return deleted

View File

@ -12,7 +12,6 @@
hx-put="{% url 'threshold_irc_actions_add-network' %}" hx-put="{% url 'threshold_irc_actions_add-network' %}"
hx-target="#networks" hx-target="#networks"
hx-swap="outerHTML"> hx-swap="outerHTML">
<div class="content">
<div class="field"> <div class="field">
<label class="label">Network name</label> <label class="label">Network name</label>

View File

@ -5,13 +5,23 @@
<thead> <thead>
<th>net</th> <th>net</th>
<th>relays</th> <th>relays</th>
<th>channels</th> <th>
<span class="icon">
<i class="fa-solid fa-hashtag"></i>
</span>
</th>
<th>records</th> <th>records</th>
<th>
<span class="icon">
<i class="fa-solid fa-wrench" aria-hidden="true"></i>
</span>
</th>
</thead> </thead>
{% for key, net in networks.items %} {% for key, net in networks.items %}
<tr> <tr>
<th><a href="{% url 'threshold_irc_network' key %}">{{ key }}</a></th> <th><a href="{% url 'threshold_irc_network' key %}">{{ key }}</a></th>
<td> <td>
<span class="icon"> <span class="icon">
<i class="fa-brands fa-unity"></i> <i class="fa-brands fa-unity"></i>
</span> </span>
@ -29,6 +39,18 @@
</span> </span>
{{ net.records }} {{ net.records }}
</td> </td>
<td>
<button
hx-headers='{"X-CSRFToken": "{{ csrf_token }}"}'
hx-delete="{% url 'threshold_irc_network_del' key %}"
hx-target="#networks"
hx-swap="outerHTML"
class="button is-danger is-small">
<span class="icon" data-tooltip="Delete">
<i class="fa-solid fa-xmark" aria-hidden="true"></i>
</span>
</button>
</td>
</tr> </tr>
{% endfor %} {% endfor %}
</table> </table>

View File

@ -25,6 +25,25 @@ class ThresholdIRCNetworks(SuperUserRequiredMixin, View):
return render(request, self.template_name, context) return render(request, self.template_name, context)
class ThresholdIRCNetworkDel(SuperUserRequiredMixin, View):
template_name = "manage/threshold/irc/overview/networks.html"
def delete(self, request, net):
deleted = threshold.del_network(net)
message = f"Deleted network {net}"
message_class = "success"
if not deleted["success"]:
message = deleted["reason"]
message_class = "danger"
networks = threshold.get_irc_networks()
context = {
"networks": networks,
"message": message,
"class": message_class,
}
return render(request, self.template_name, context)
class ThresholdIRCNetworkInfo(SuperUserRequiredMixin, View): class ThresholdIRCNetworkInfo(SuperUserRequiredMixin, View):
template_name = "manage/threshold/irc/network/info.html" template_name = "manage/threshold/irc/network/info.html"