🛠️ "Implementiere TP-Link Tapo P110 Unterstützung für Druckerüberwachung und -steuerung"
- Aktualisiere die `check_printer_status()` Funktion zur Verwendung des PyP100-Moduls für die Tapo-Steckdosen. - Füge neue API-Endpunkte hinzu: `test-tapo` für die Verbindungstests einzelner Drucker und `test-all-tapo` für Massentests. - Verbessere die Fehlerbehandlung und Logging für Tapo-Verbindungen. - Aktualisiere die Benutzeroberfläche, um den Datei-Upload als optional zu kennzeichnen. - Implementiere umfassende Tests für die Tapo-Verbindungen in `debug_drucker_erkennung.py` und verbessere die Validierung der Konfiguration in `job_scheduler.py`.
This commit is contained in:
@@ -594,7 +594,7 @@
|
||||
<svg class="w-5 h-5 mr-2 text-mercedes-blue" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M15 13l-3-3m0 0l-3 3m3-3v12"/>
|
||||
</svg>
|
||||
3D-Datei hochladen
|
||||
3D-Datei hochladen (optional)
|
||||
</h3>
|
||||
|
||||
<div id="file-upload-container">
|
||||
@@ -743,8 +743,8 @@
|
||||
email: false,
|
||||
printer_id: false,
|
||||
duration_min: false,
|
||||
reason: false,
|
||||
file: false
|
||||
reason: false
|
||||
// file wurde entfernt da es optional ist
|
||||
};
|
||||
let isSubmitting = false;
|
||||
|
||||
@@ -827,7 +827,7 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
}
|
||||
|
||||
selectedFile = file;
|
||||
validationState.file = true;
|
||||
// validationState.file = true; // Entfernt, da Upload optional ist
|
||||
showFilePreview(file);
|
||||
updateFormValidation();
|
||||
|
||||
@@ -913,7 +913,7 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
|
||||
function removeFile() {
|
||||
selectedFile = null;
|
||||
validationState.file = false;
|
||||
// validationState.file = false; // Entfernt, da Upload optional ist
|
||||
|
||||
const previewContainer = document.getElementById('file-preview');
|
||||
const uploadContent = document.getElementById('upload-content');
|
||||
@@ -1175,10 +1175,11 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!selectedFile) {
|
||||
showAdvancedMessage('Bitte wählen Sie eine Datei aus.', 'error');
|
||||
return;
|
||||
}
|
||||
// Datei ist jetzt optional - keine Validierung mehr erforderlich
|
||||
// if (!selectedFile) {
|
||||
// showAdvancedMessage('Bitte wählen Sie eine Datei aus.', 'error');
|
||||
// return;
|
||||
// }
|
||||
|
||||
isSubmitting = true;
|
||||
showLoadingState();
|
||||
@@ -1190,7 +1191,11 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
formData.append('printer_id', document.getElementById('printer_id').value);
|
||||
formData.append('duration_min', document.getElementById('duration_min').value);
|
||||
formData.append('reason', document.getElementById('reason').value.trim());
|
||||
formData.append('file', selectedFile);
|
||||
|
||||
// Datei nur anhängen, wenn eine ausgewählt wurde
|
||||
if (selectedFile) {
|
||||
formData.append('file', selectedFile);
|
||||
}
|
||||
|
||||
// Add CSRF token
|
||||
const csrfToken = document.querySelector('meta[name="csrf-token"]')?.getAttribute('content');
|
||||
|
||||
Reference in New Issue
Block a user