Skip to content
Snippets Groups Projects
Commit e42d11c9 authored by Dasan Ibrahim's avatar Dasan Ibrahim
Browse files

Export TXT und Export JSON Buttons hinzugefügt.

parent 68219179
No related branches found
No related tags found
1 merge request!4merge dev to main
......@@ -33,15 +33,28 @@
onclick="showDeleteConfirmation('{{ .Data.Project.Name }}', '{{ .Data.Project.ID.Hex }}')">
🗑️ Löschen
</button>
<!-- Export TXT button -->
<button class="btn btn-outline-success"
onclick="exportProject('{{ .Data.Project.ID.Hex }}', 'txt')">
📄 Export TXT
</button>
<!-- Export JSON button -->
<button class="btn btn-outline-info"
onclick="exportProject('{{ .Data.Project.ID.Hex }}', 'json')">
📄 Export JSON
</button>
<!-- Dropdown toggle for additional actions -->
<button class="btn btn-outline-secondary dropdown-toggle dropdown-toggle-split"
data-bs-toggle="dropdown">
<span class="visually-hidden">Toggle Dropdown</span>
</button>
<!-- Dropdown menu with export options -->
<!-- Dropdown menu with additional options -->
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="#">📄 Export als JSON</a></li>
<li><a class="dropdown-item" href="#">📄 Export als TXT</a></li>
<li><a class="dropdown-item" href="#" onclick="exportProject('{{ .Data.Project.ID.Hex }}', 'txt')">📄 Export als TXT</a></li>
<li><a class="dropdown-item" href="#" onclick="exportProject('{{ .Data.Project.ID.Hex }}', 'json')">📄 Export als JSON</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="#">📊 Statistiken anzeigen</a></li>
<li><a class="dropdown-item" href="#">🔄 Projekt duplizieren</a></li>
</ul>
</div>
</div>
......@@ -109,6 +122,20 @@
</div>
</div>
<!-- Export Progress Modal -->
<div class="modal fade" id="exportProgressModal" tabindex="-1" aria-labelledby="exportProgressModalLabel" aria-hidden="true">
<div class="modal-dialog modal-sm">
<div class="modal-content">
<div class="modal-body text-center">
<div class="spinner-border text-primary mb-3" role="status">
<span class="visually-hidden">Loading...</span>
</div>
<p class="mb-0">Export wird vorbereitet...</p>
</div>
</div>
</div>
</div>
<script>
function showDeleteConfirmation(projectName, projectId) {
// Set project name in modal
......@@ -131,6 +158,31 @@
// Show modal
new bootstrap.Modal(document.getElementById('deleteConfirmModal')).show();
}
function exportProject(projectId, format) {
// Show progress modal
const progressModal = new bootstrap.Modal(document.getElementById('exportProgressModal'));
progressModal.show();
// Create export URL
const exportUrl = `/project/${projectId}/export?format=${format}`;
// Create a temporary link element for download
const link = document.createElement('a');
link.href = exportUrl;
link.download = `project_${projectId}.${format}`;
link.style.display = 'none';
// Add to DOM, click, and remove
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
// Hide progress modal after a short delay
setTimeout(() => {
progressModal.hide();
}, 1000);
}
</script>
{{ end }}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment