- Add custom border, background, and spacing utilities to base template - Enhance message notification styling and layout - Update delete modal button appearance and behavior - Refine comment card component with Tailwind classes and responsive behavior - Adjust sidebar responsiveness for mobile view
57 lines
2.5 KiB
HTML
57 lines
2.5 KiB
HTML
{% extends "base_authenticated.html" %}
|
|
{% block title %}{% if object %}Edit{% else %}New{% endif %} Ticket{% endblock %}
|
|
{% block content_inner %}
|
|
<div class="max-w-2xl mx-auto">
|
|
<div class="card-surface p-6">
|
|
<h1 class="text-xl font-bold text-primary mb-1">{% if object %}Edit{% else %}New{% endif %} Ticket</h1>
|
|
<p class="text-sm text-tertiary mb-6">{% if object %}Update the ticket.{% else %}Submit a new support ticket or feature request.{% endif %}</p>
|
|
<form method="post">
|
|
{% csrf_token %}
|
|
{% for field in form %}
|
|
{% include "partials/form_field.html" %}
|
|
{% endfor %}
|
|
<div class="flex gap-3 pt-2">
|
|
<button type="submit" class="px-3 py-1.5 rounded-lg text-sm font-medium bg-blue-600 text-white hover:bg-blue-700 transition-colors">Save</button>
|
|
<a href="{% url 'ticket_list' %}" class="px-3 py-1.5 rounded-lg text-sm font-medium text-secondary hover:bg-hover border border-soft transition-colors">Cancel</a>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
{% endblock %}
|
|
{% block extra_scripts %}
|
|
<script>
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
const descField = document.querySelector('textarea[name="description"]');
|
|
if (descField) {
|
|
const container = document.createElement('div');
|
|
container.style.height = '400px';
|
|
container.className = 'mb-4 rounded-xl';
|
|
descField.parentNode.insertBefore(container, descField);
|
|
descField.style.display = 'none';
|
|
const quill = new Quill(container, {
|
|
theme: 'snow',
|
|
modules: {
|
|
toolbar: [
|
|
['bold', 'italic', 'underline', 'strike'],
|
|
[{ 'color': [] }, { 'background': [] }],
|
|
[{ 'script': 'sub'}, { 'script': 'super' }],
|
|
[{ 'header': [1, 2, 3, 4, 5, 6, false] }],
|
|
[{ 'list': 'ordered'}, { 'list': 'bullet' }, { 'list': 'check' }],
|
|
[{ 'indent': '-1'}, { 'indent': '+1' }],
|
|
[{ 'direction': 'rtl' }],
|
|
[{ 'align': [] }],
|
|
['link', 'image', 'video'],
|
|
['blockquote', 'code-block'],
|
|
['clean']
|
|
]
|
|
}
|
|
});
|
|
quill.root.innerHTML = descField.value;
|
|
document.querySelector('form').addEventListener('submit', function() {
|
|
descField.value = quill.root.innerHTML;
|
|
});
|
|
}
|
|
});
|
|
</script>
|
|
{% endblock %}
|