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>
|
<div class="panel-heading">Directories</div>
|
||||||
{% for served_directory in directories %}
|
{% for served_directory in directories %}
|
||||||
<div class="panel-block">
|
<div class="panel-block">
|
||||||
<span class="panel-icon">
|
<span class="panel-icon">
|
||||||
<i class="fas fa-folder fa-lg" aria-hidden="true"></i>
|
<i class="fas fa-folder fa-lg" aria-hidden="true"></i>
|
||||||
</span>
|
</span>
|
||||||
<a href="{% url 'browse' served_directory.id %}">
|
<a href="{% url 'browse' served_directory.id %}">
|
||||||
{{ served_directory.path }}
|
{{ served_directory.path }}
|
||||||
{% if served_directory.regex %}
|
{% if served_directory.regex %}
|
||||||
<span class="tag is-info">Filtered</span>
|
<span class="tag is-info">Filtered</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</a>
|
</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>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -8,6 +8,8 @@ urlpatterns = [
|
|||||||
path('add/submit', views.submit_new, name='add_submit'),
|
path('add/submit', views.submit_new, name='add_submit'),
|
||||||
path('<uuid:directory_id>/', views.browse, name='browse'),
|
path('<uuid:directory_id>/', views.browse, name='browse'),
|
||||||
path('<uuid:directory_id>/refresh', views.refresh, name='refresh'),
|
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>/', views.file, name='file'),
|
||||||
path('<uuid:directory_id>/<str:file>/generate', views.generate_thumb, name='generate_thumb'),
|
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.shortcuts import render, get_object_or_404
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
|
|
||||||
from viewer.models import ServedDirectory, File
|
from viewer.models import ServedDirectory
|
||||||
|
|
||||||
|
|
||||||
def index(request):
|
def index(request):
|
||||||
@@ -101,3 +101,24 @@ def generate_thumb(request, directory_id, file: str):
|
|||||||
file = directory.files.filter(filename=file).first()
|
file = directory.files.filter(filename=file).first()
|
||||||
file.generate_thumbnail()
|
file.generate_thumbnail()
|
||||||
return HttpResponseRedirect(reverse('browse', args=(directory.id,)))
|
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