diff --git a/viewer/templates/delete.html b/viewer/templates/delete.html new file mode 100644 index 0000000..a4f5d1f --- /dev/null +++ b/viewer/templates/delete.html @@ -0,0 +1,38 @@ +{% extends 'base.html' %} +{% block head %} + {{ block.super }} + +{% endblock head %} +{% block content %} +
+
+

+ Confirm Deletion +

+ + + + + +
+
+
+

+ Are you sure you want to remove this directory from the file server? +

+
+
+ +
+{% endblock content %} diff --git a/viewer/templates/index.html b/viewer/templates/index.html index e380830..4538943 100644 --- a/viewer/templates/index.html +++ b/viewer/templates/index.html @@ -18,15 +18,20 @@
Directories
{% for served_directory in directories %}
- - - + + + {{ served_directory.path }} {% if served_directory.regex %} Filtered {% endif %} + + + + +
{% endfor %} diff --git a/viewer/urls.py b/viewer/urls.py index c63ee4d..db6b054 100644 --- a/viewer/urls.py +++ b/viewer/urls.py @@ -8,6 +8,8 @@ urlpatterns = [ path('add/submit', views.submit_new, name='add_submit'), path('/', views.browse, name='browse'), path('/refresh', views.refresh, name='refresh'), + path('/delete/', views.delete, name='delete'), + path('/delete/confirm', views.confirm_delete, name='confirm_delete'), path('//', views.file, name='file'), path('//generate', views.generate_thumb, name='generate_thumb'), diff --git a/viewer/views.py b/viewer/views.py index 0d9fc4f..8bc7275 100644 --- a/viewer/views.py +++ b/viewer/views.py @@ -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)