new directory confirm deletion

should make sure that directories are not deleted accidentally
This commit is contained in:
Xevion
2020-11-03 16:43:19 -06:00
parent 0fa6dbc1f5
commit 284f3a6519
4 changed files with 70 additions and 4 deletions

View File

@@ -0,0 +1,38 @@
{% extends 'base.html' %}
{% block head %}
{{ block.super }}
<style>
.card {
top: 50%;
}
.card-content {
padding: 1.25rem;
}
</style>
{% endblock head %}
{% block content %}
<div class="card">
<header class="card-header">
<p class="card-header-title">
Confirm Deletion
</p>
<a href="#" class="card-header-icon" aria-label="more options">
<span class="icon">
<i class="fas fa-angle-down" aria-hidden="true"></i>
</span>
</a>
</header>
<div class="card-content">
<div class="content">
<p>
Are you sure you want to remove this directory from the file server?
</p>
</div>
</div>
<footer class="card-footer">
<a href="{% url 'index' %}" class="card-footer-item">Cancel</a>
<a href="{% url 'confirm_delete' directory.id %}" class="card-footer-item">Delete</a>
</footer>
</div>
{% endblock content %}

View File

@@ -18,15 +18,20 @@
<div class="panel-heading">Directories</div>
{% for served_directory in directories %}
<div class="panel-block">
<span class="panel-icon">
<i class="fas fa-folder fa-lg" aria-hidden="true"></i>
</span>
<span class="panel-icon">
<i class="fas fa-folder fa-lg" aria-hidden="true"></i>
</span>
<a href="{% url 'browse' served_directory.id %}">
{{ served_directory.path }}
{% if served_directory.regex %}
<span class="tag is-info">Filtered</span>
{% endif %}
</a>
<a href="{% url 'delete' served_directory.id %}" class="delete-icon">
<span class="icon">
<i class="fas fa-times fa-lg" aria-hidden="true"></i>
</span>
</a>
</div>
{% endfor %}
</div>

View File

@@ -8,6 +8,8 @@ urlpatterns = [
path('add/submit', views.submit_new, name='add_submit'),
path('<uuid:directory_id>/', views.browse, name='browse'),
path('<uuid:directory_id>/refresh', views.refresh, name='refresh'),
path('<uuid:directory_id>/delete/', views.delete, name='delete'),
path('<uuid:directory_id>/delete/confirm', views.confirm_delete, name='confirm_delete'),
path('<uuid:directory_id>/<str:file>/', views.file, name='file'),
path('<uuid:directory_id>/<str:file>/generate', views.generate_thumb, name='generate_thumb'),

View File

@@ -4,7 +4,7 @@ from django.http import FileResponse, HttpResponseRedirect
from django.shortcuts import render, get_object_or_404
from django.urls import reverse
from viewer.models import ServedDirectory, File
from viewer.models import ServedDirectory
def index(request):
@@ -101,3 +101,24 @@ def generate_thumb(request, directory_id, file: str):
file = directory.files.filter(filename=file).first()
file.generate_thumbnail()
return HttpResponseRedirect(reverse('browse', args=(directory.id,)))
def confirm_delete(request, directory_id):
directory = get_object_or_404(ServedDirectory, id=directory_id)
# Delete all the file thumbnail's, then files from db
for file in directory.files.all():
file.delete_thumbnail()
file.delete()
# Remove directory from db
directory.delete()
return HttpResponseRedirect(reverse('index'))
def delete(request, directory_id):
directory = get_object_or_404(ServedDirectory, id=directory_id)
context = {'content_column_size': 'is-one-third',
'directory': directory}
return render(request, 'delete.html', context=context)