|
|
|
@ -6,41 +6,75 @@ |
|
|
|
|
|
|
|
<%= csrf_meta_tags %> |
|
|
|
<%= csp_meta_tag %> |
|
|
|
<!-- Bootstrap CSS --> |
|
|
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet"> |
|
|
|
|
|
|
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css"> |
|
|
|
<!-- Flatpickr Theme --> |
|
|
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/flatpickr/dist/themes/material_blue.css"> |
|
|
|
<%= stylesheet_link_tag "application", "data-turbo-track": "reload" %> |
|
|
|
|
|
|
|
<!-- Flatpickr JS --> |
|
|
|
<script src="https://cdn.jsdelivr.net/npm/flatpickr"></script> |
|
|
|
<!-- Custom Styles (optional) --> |
|
|
|
|
|
|
|
<!-- JS: Flatpickr Init --> |
|
|
|
<script defer> |
|
|
|
document.addEventListener("DOMContentLoaded", function () { |
|
|
|
flatpickr(".flatpickr", { |
|
|
|
<!-- JS: Bootstrap Bundle (inkl. Popper) --> |
|
|
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js" defer></script> |
|
|
|
|
|
|
|
dateFormat: "d.m.Y", |
|
|
|
allowInput: true |
|
|
|
<script> |
|
|
|
document.addEventListener('DOMContentLoaded', function () { |
|
|
|
const modalElement = document.getElementById('deleteConfirmModal'); |
|
|
|
const modalInstance = bootstrap.Modal.getOrCreateInstance(modalElement); |
|
|
|
|
|
|
|
document.querySelectorAll('.open-delete-modal').forEach(button => { |
|
|
|
button.addEventListener('click', function (e) { |
|
|
|
e.preventDefault(); |
|
|
|
const targetUrl = this.getAttribute('href'); |
|
|
|
document.getElementById('modal-delete-form').setAttribute('action', targetUrl); |
|
|
|
|
|
|
|
// Entferne diese Zeile: |
|
|
|
// modalElement.removeAttribute("aria-hidden"); |
|
|
|
|
|
|
|
modalInstance.show(); |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
// Event-Handler für korrektes Zurücksetzen nach Schließen |
|
|
|
modalElement.addEventListener('hidden.bs.modal', function () { |
|
|
|
document.body.classList.remove('modal-open'); |
|
|
|
const backdrops = document.querySelectorAll('.modal-backdrop'); |
|
|
|
backdrops.forEach(b => b.parentNode.removeChild(b)); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}); |
|
|
|
</script> |
|
|
|
|
|
|
|
|
|
|
|
<%= javascript_include_tag "application", "data-turbo-track": "reload", defer: true %> |
|
|
|
</head> |
|
|
|
|
|
|
|
<body> |
|
|
|
<!-- 🔒 Modal zur Bestätigung --> |
|
|
|
<div class="modal fade" id="deleteConfirmModal" tabindex="-1" aria-labelledby="deleteConfirmModalLabel" aria-hidden="true"> |
|
|
|
<div class="modal-dialog modal-dialog-centered"> |
|
|
|
<div class="modal-content"> |
|
|
|
<div class="modal-header"> |
|
|
|
<h5 class="modal-title">Löschen bestätigen</h5> |
|
|
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Schließen"></button> |
|
|
|
</div> |
|
|
|
<div class="modal-body"> |
|
|
|
Bist du sicher, dass du diesen Eintrag löschen möchtest? |
|
|
|
</div> |
|
|
|
<div class="modal-footer"> |
|
|
|
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Abbrechen</button> |
|
|
|
<form id="modal-delete-form" method="post"> |
|
|
|
<input type="hidden" name="_method" value="delete"> |
|
|
|
<%= hidden_field_tag :authenticity_token, form_authenticity_token %> |
|
|
|
<button type="submit" class="btn btn-danger">Löschen</button> |
|
|
|
</form> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<script defer> |
|
|
|
document.addEventListener("DOMContentLoaded", function () { |
|
|
|
flatpickr(".flatpickr", { |
|
|
|
altInput: true, |
|
|
|
altFormat: "d.m.Y", |
|
|
|
dateFormat: "Y-m-d" |
|
|
|
}); |
|
|
|
}); |
|
|
|
</script> |
|
|
|
<nav class="navbar navbar-expand-lg navbar-light bg-light mb-4"> |
|
|
|
<div class="container"> |
|
|
|
<%= link_to "⏱️ Praktikumsuhr", root_path, class: "navbar-brand" %> |
|
|
|
@ -96,6 +130,9 @@ |
|
|
|
<footer class="text-center mt-5"> |
|
|
|
<%= link_to "Impressum & Datenschutz", impressum_path, class: "text-muted" %> |
|
|
|
</footer> |
|
|
|
|
|
|
|
</body> |
|
|
|
</html> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|