296 lines
16 KiB
HTML
296 lines
16 KiB
HTML
{% extends "base.html" %}
|
|
{% load static %}
|
|
|
|
{% block title %}Delete Notification - {{ object.title }}{% endblock %}
|
|
|
|
{% block content %}
|
|
<div class="container-fluid">
|
|
<!-- Breadcrumb -->
|
|
<div class="row">
|
|
<div class="col-12">
|
|
<div class="page-title-box d-sm-flex align-items-center justify-content-between">
|
|
<h4 class="mb-sm-0">Delete Notification</h4>
|
|
<div class="page-title-right">
|
|
<ol class="breadcrumb m-0">
|
|
<li class="breadcrumb-item"><a href="{% url 'core:dashboard' %}">Dashboard</a></li>
|
|
<li class="breadcrumb-item"><a href="{% url 'core:system_notification_list' %}">Notifications</a></li>
|
|
<li class="breadcrumb-item"><a href="{% url 'core:system_notification_detail' object.pk %}">{{ object.title|truncatechars:30 }}</a></li>
|
|
<li class="breadcrumb-item active">Delete</li>
|
|
</ol>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<!-- Main Content -->
|
|
<div class="col-lg-8">
|
|
<div class="card">
|
|
<div class="card-header bg-danger bg-opacity-25">
|
|
<h5 class="card-title mb-0">
|
|
<i class="fas fa-exclamation-triangle text-danger me-2"></i>
|
|
Confirm Deletion
|
|
</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="alert alert-warning">
|
|
<div class="d-flex">
|
|
<div class="flex-shrink-0">
|
|
<i class="fas fa-exclamation-circle fa-lg"></i>
|
|
</div>
|
|
<div class="flex-grow-1 ms-3">
|
|
<h5 class="alert-heading">Warning!</h5>
|
|
<p>You are about to delete the notification "<strong>{{ object.title }}</strong>". This action cannot be undone.</p>
|
|
<p class="mb-0">Please confirm that you want to permanently delete this notification.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="card mb-4">
|
|
<div class="card-header">
|
|
<h6 class="card-title mb-0">Notification Details</h6>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<div class="mb-3">
|
|
<label class="form-label text-muted">Title</label>
|
|
<p class="mb-0">{{ object.title }}</p>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<div class="mb-3">
|
|
<label class="form-label text-muted">Priority</label>
|
|
<p class="mb-0">
|
|
<span class="badge bg-{% if object.priority == 'LOW' %}success{% elif object.priority == 'MEDIUM' %}info{% elif object.priority == 'HIGH' %}warning{% elif object.priority == 'CRITICAL' %}danger{% else %}secondary{% endif %}">
|
|
{{ object.get_priority_display }}
|
|
</span>
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<div class="mb-3">
|
|
<label class="form-label text-muted">Category</label>
|
|
<p class="mb-0">{{ object.category }}</p>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<div class="mb-3">
|
|
<label class="form-label text-muted">Status</label>
|
|
<p class="mb-0">
|
|
{% if object.is_active %}
|
|
{% if object.start_date <= now and object.end_date >= now %}
|
|
<span class="badge bg-success">Active</span>
|
|
{% elif object.start_date > now %}
|
|
<span class="badge bg-info">Scheduled</span>
|
|
{% elif object.end_date < now %}
|
|
<span class="badge bg-secondary">Expired</span>
|
|
{% endif %}
|
|
{% else %}
|
|
<span class="badge bg-danger">Inactive</span>
|
|
{% endif %}
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<div class="mb-3">
|
|
<label class="form-label text-muted">Start Date</label>
|
|
<p class="mb-0">{{ object.start_date|date:"F j, Y" }}</p>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<div class="mb-3">
|
|
<label class="form-label text-muted">End Date</label>
|
|
<p class="mb-0">{{ object.end_date|date:"F j, Y" }}</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="mb-0">
|
|
<label class="form-label text-muted">Message</label>
|
|
<p class="mb-0">{{ object.message|linebreaks }}</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Impact Assessment -->
|
|
<div class="card mb-4">
|
|
<div class="card-header">
|
|
<h6 class="card-title mb-0">Impact Assessment</h6>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="table-responsive">
|
|
<table class="table table-sm">
|
|
<tbody>
|
|
<tr>
|
|
<td style="width: 200px;"><i class="fas fa-eye me-2"></i> Impressions</td>
|
|
<td>
|
|
{% if notification_stats.impressions %}
|
|
<span class="badge bg-info">{{ notification_stats.impressions }} views</span>
|
|
{% else %}
|
|
<span class="badge bg-secondary">No data</span>
|
|
{% endif %}
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><i class="fas fa-mouse-pointer me-2"></i> Clicks</td>
|
|
<td>
|
|
{% if notification_stats.clicks %}
|
|
<span class="badge bg-info">{{ notification_stats.clicks }} clicks</span>
|
|
{% else %}
|
|
<span class="badge bg-secondary">No data</span>
|
|
{% endif %}
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><i class="fas fa-users me-2"></i> Target Audience</td>
|
|
<td>
|
|
{% if object.target_roles.exists or object.target_departments.exists %}
|
|
<span class="badge bg-info">Specific targets</span>
|
|
{% else %}
|
|
<span class="badge bg-warning">All users</span>
|
|
{% endif %}
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><i class="fas fa-calendar-check me-2"></i> Active Status</td>
|
|
<td>
|
|
{% if object.is_active and object.start_date <= now and object.end_date >= now %}
|
|
<span class="badge bg-danger">Currently active</span>
|
|
{% else %}
|
|
<span class="badge bg-success">Not currently active</span>
|
|
{% endif %}
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Delete Form -->
|
|
<form method="post">
|
|
{% csrf_token %}
|
|
|
|
<div class="mb-4">
|
|
<div class="form-check">
|
|
<input class="form-check-input" type="checkbox" id="confirmDelete" required>
|
|
<label class="form-check-label" for="confirmDelete">
|
|
I understand that this action cannot be undone and all notification data will be permanently deleted.
|
|
</label>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="d-flex justify-content-between">
|
|
<a href="{% url 'core:system_notification_detail' object.pk %}" class="btn btn-outline-secondary">
|
|
<i class="fas fa-arrow-left me-1"></i>
|
|
Cancel
|
|
</a>
|
|
<button type="submit" class="btn btn-danger" id="deleteButton" disabled>
|
|
<i class="fas fa-trash me-1"></i>
|
|
Delete Notification
|
|
</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Sidebar -->
|
|
<div class="col-lg-4">
|
|
<!-- Alternative Actions -->
|
|
<div class="card mb-4">
|
|
<div class="card-header">
|
|
<h5 class="card-title mb-0">
|
|
<i class="fas fa-lightbulb me-2"></i>
|
|
Alternative Actions
|
|
</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="alert alert-info">
|
|
<div class="d-flex">
|
|
<div class="flex-shrink-0">
|
|
<i class="fas fa-info-circle"></i>
|
|
</div>
|
|
<div class="flex-grow-1 ms-3">
|
|
<p class="mb-0">Instead of deleting this notification, consider these alternatives:</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="d-grid gap-2">
|
|
{% if object.is_active %}
|
|
<a href="{% url 'core:deactivate_notification' object.pk %}" class="btn btn-outline-warning">
|
|
<i class="fas fa-power-off me-2"></i>
|
|
Deactivate Notification
|
|
</a>
|
|
{% endif %}
|
|
|
|
<a href="{% url 'core:system_notification_update' object.pk %}" class="btn btn-outline-primary">
|
|
<i class="fas fa-edit me-2"></i>
|
|
Edit Notification
|
|
</a>
|
|
|
|
<a href="{% url 'core:archive_notification' object.pk %}" class="btn btn-outline-secondary">
|
|
<i class="fas fa-archive me-2"></i>
|
|
Archive Notification
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Notification Preview -->
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h5 class="card-title mb-0">
|
|
<i class="fas fa-eye me-2"></i>
|
|
Notification Preview
|
|
</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="alert alert-{% if object.priority == 'LOW' %}success{% elif object.priority == 'MEDIUM' %}info{% elif object.priority == 'HIGH' %}warning{% elif object.priority == 'CRITICAL' %}danger{% else %}secondary{% endif %} mb-0">
|
|
<div class="d-flex">
|
|
<div class="flex-shrink-0">
|
|
<i class="fas fa-{% if object.priority == 'LOW' %}info{% elif object.priority == 'MEDIUM' %}exclamation{% elif object.priority == 'HIGH' %}exclamation-triangle{% elif object.priority == 'CRITICAL' %}radiation{% else %}bell{% endif %} fa-lg"></i>
|
|
</div>
|
|
<div class="flex-grow-1 ms-3">
|
|
<h5 class="alert-heading">{{ object.title }}</h5>
|
|
<p class="mb-0">{{ object.message }}</p>
|
|
{% if object.link_url %}
|
|
<hr>
|
|
<p class="mb-0">
|
|
<a href="{{ object.link_url }}" class="alert-link">
|
|
{{ object.link_text|default:"Learn More" }}
|
|
</a>
|
|
</p>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endblock %}
|
|
|
|
{% block js %}
|
|
<script>
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
const confirmCheckbox = document.getElementById('confirmDelete');
|
|
const deleteButton = document.getElementById('deleteButton');
|
|
|
|
confirmCheckbox.addEventListener('change', function() {
|
|
deleteButton.disabled = !this.checked;
|
|
});
|
|
});
|
|
</script>
|
|
{% endblock %}
|
|
|