mirror of
https://github.com/Xevion/simple-viewer.git
synced 2025-12-06 13:16:31 -06:00
new directory confirm deletion
should make sure that directories are not deleted accidentally
This commit is contained in:
38
viewer/templates/delete.html
Normal file
38
viewer/templates/delete.html
Normal 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 %}
|
||||
@@ -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>
|
||||
|
||||
@@ -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'),
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user