🐛 Backend Documentation Fix for Button Reservation Creation Issue & Undefined Jobs Problem 🖥️📚
This commit is contained in:
1
backend/static/js/charts/chart.min.js
vendored
1
backend/static/js/charts/chart.min.js
vendored
File diff suppressed because one or more lines are too long
@ -281,17 +281,38 @@ window.refreshJobs = async function() {
|
||||
return '';
|
||||
}
|
||||
|
||||
// Verbesserte Feldermapping für Frontend-Kompatibilität
|
||||
const jobName = job.name || job.title || job.filename || job.file_name || 'Unbekannter Job';
|
||||
const printerName = job.printer_name || (job.printer?.name) || 'Unbekannter Drucker';
|
||||
const userName = job.user_name || (job.user?.name) || 'Unbekannter Benutzer';
|
||||
const statusText = job.status_text || job.status || 'Unbekannt';
|
||||
const createdDate = job.created_time || (job.created_at ? new Date(job.created_at).toLocaleDateString('de-DE') : 'Unbekannt');
|
||||
const progress = job.progress || 0;
|
||||
|
||||
return `
|
||||
<div class="job-card p-4 border rounded-lg bg-white dark:bg-slate-800 shadow-sm hover:shadow-md transition-shadow">
|
||||
<h3 class="font-semibold text-gray-900 dark:text-white mb-2">
|
||||
${job.filename || job.title || job.name || 'Unbekannter Job'}
|
||||
</h3>
|
||||
<div class="flex justify-between items-start mb-3">
|
||||
<h3 class="font-semibold text-gray-900 dark:text-white text-lg">
|
||||
${jobName}
|
||||
</h3>
|
||||
<span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium ${getStatusBadgeClass(job.status)}">
|
||||
${statusText}
|
||||
</span>
|
||||
</div>
|
||||
<div class="text-sm text-gray-600 dark:text-gray-400 space-y-1">
|
||||
<p><span class="font-medium">ID:</span> ${job.id || 'N/A'}</p>
|
||||
<p><span class="font-medium">Status:</span> ${job.status || 'Unbekannt'}</p>
|
||||
${job.printer_name ? `<p><span class="font-medium">Drucker:</span> ${job.printer_name}</p>` : ''}
|
||||
${job.created_at ? `<p><span class="font-medium">Erstellt:</span> ${new Date(job.created_at).toLocaleDateString('de-DE')}</p>` : ''}
|
||||
<p><span class="font-medium">Drucker:</span> ${printerName}</p>
|
||||
<p><span class="font-medium">Benutzer:</span> ${userName}</p>
|
||||
<p><span class="font-medium">Erstellt:</span> ${createdDate}</p>
|
||||
${progress > 0 ? `<p><span class="font-medium">Fortschritt:</span> ${progress}%</p>` : ''}
|
||||
</div>
|
||||
${progress > 0 ? `
|
||||
<div class="mt-3">
|
||||
<div class="w-full bg-gray-200 rounded-full h-2">
|
||||
<div class="bg-blue-600 h-2 rounded-full" style="width: ${progress}%"></div>
|
||||
</div>
|
||||
</div>
|
||||
` : ''}
|
||||
</div>
|
||||
`;
|
||||
}).filter(card => card !== '').join('');
|
||||
@ -342,13 +363,12 @@ window.refreshJobs = async function() {
|
||||
<div class="text-red-400 dark:text-red-600 text-6xl mb-4">⚠️</div>
|
||||
<h3 class="text-lg font-medium text-gray-900 dark:text-white mb-2">Fehler beim Laden</h3>
|
||||
<p class="text-gray-500 dark:text-gray-400 mb-4">${errorMessage}</p>
|
||||
<button onclick="refreshJobs()" class="px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors">
|
||||
<button onclick="refreshJobs()" class="px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700">
|
||||
Erneut versuchen
|
||||
</button>
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
|
||||
} finally {
|
||||
if (refreshButton) {
|
||||
refreshButton.disabled = false;
|
||||
@ -733,4 +753,24 @@ document.addEventListener('visibilitychange', function() {
|
||||
}
|
||||
});
|
||||
|
||||
console.log('🔄 Globale Refresh-Funktionen geladen');
|
||||
console.log('🔄 Globale Refresh-Funktionen geladen');
|
||||
|
||||
/**
|
||||
* Hilfsfunktion für Status-Badge-CSS-Klassen
|
||||
*/
|
||||
function getStatusBadgeClass(status) {
|
||||
const statusClasses = {
|
||||
'scheduled': 'bg-blue-100 text-blue-800 dark:bg-blue-900/20 dark:text-blue-400',
|
||||
'pending': 'bg-yellow-100 text-yellow-800 dark:bg-yellow-900/20 dark:text-yellow-400',
|
||||
'running': 'bg-green-100 text-green-800 dark:bg-green-900/20 dark:text-green-400',
|
||||
'printing': 'bg-green-100 text-green-800 dark:bg-green-900/20 dark:text-green-400',
|
||||
'completed': 'bg-gray-100 text-gray-800 dark:bg-gray-900/20 dark:text-gray-400',
|
||||
'finished': 'bg-gray-100 text-gray-800 dark:bg-gray-900/20 dark:text-gray-400',
|
||||
'failed': 'bg-red-100 text-red-800 dark:bg-red-900/20 dark:text-red-400',
|
||||
'cancelled': 'bg-gray-100 text-gray-800 dark:bg-gray-900/20 dark:text-gray-400',
|
||||
'aborted': 'bg-red-100 text-red-800 dark:bg-red-900/20 dark:text-red-400',
|
||||
'paused': 'bg-orange-100 text-orange-800 dark:bg-orange-900/20 dark:text-orange-400'
|
||||
};
|
||||
|
||||
return statusClasses[status] || 'bg-gray-100 text-gray-800 dark:bg-gray-900/20 dark:text-gray-400';
|
||||
}
|
Reference in New Issue
Block a user