mirror of
https://github.com/perstarkse/minne.git
synced 2026-02-24 09:04:50 +01:00
38 lines
1.2 KiB
HTML
38 lines
1.2 KiB
HTML
<dialog id="body_modal" class="modal">
|
|
<div class="modal-box">
|
|
<form id="modal_form" {% block form_attributes %}{% endblock %}>
|
|
<div class="flex flex-col space-y-4">
|
|
{% block modal_content %} <!-- Form fields go here in child templates -->
|
|
{% endblock %}
|
|
</div>
|
|
|
|
<div class="modal-action">
|
|
<!-- Close button (always visible) -->
|
|
<button type="button" class="btn" onclick="document.getElementById('body_modal').close()">
|
|
Close
|
|
</button>
|
|
|
|
<!-- Primary actions block -->
|
|
{% block primary_actions %}
|
|
<!-- Submit/Save buttons go here in child templates -->
|
|
{% endblock %}
|
|
</div>
|
|
</form>
|
|
</div>
|
|
<script>
|
|
// Auto-open modal when injected
|
|
document.getElementById('body_modal').showModal();
|
|
|
|
// Close modal on successful form submission
|
|
document.getElementById('modal_form').addEventListener('htmx:afterRequest', (evt) => {
|
|
if (evt.detail.successful) {
|
|
document.getElementById('body_modal').close();
|
|
}
|
|
});
|
|
|
|
// Clear modal content on close to prevent browser back from reopening it
|
|
document.getElementById('body_modal').addEventListener('close', (evt) => {
|
|
evt.target.innerHTML = '';
|
|
});
|
|
</script>
|
|
</dialog> |