diff --git a/backend/app/app.py b/backend/app/app.py index d837638b..e9bb802c 100644 --- a/backend/app/app.py +++ b/backend/app/app.py @@ -1100,68 +1100,7 @@ def delete_user(user_id): flash(f"Fehler beim Löschen des Benutzers: {str(e)}", "error") return redirect(url_for('admin_page', tab='users')) -@app.route("/api/printers", methods=["POST"]) -@login_required -def create_printer(): - """Create a new printer (admin only)""" - if not current_user.is_admin: - flash("Sie haben keine Berechtigung, um neue Drucker anzulegen.", "error") - return redirect(url_for('admin_page', tab='printers')) - - db_session = get_db_session() - try: - # Statt JSON-Daten die Formulardaten aus dem POST-Request holen - name = request.form.get('name') - model = request.form.get('model') - location = request.form.get('location') - mac_address = request.form.get('mac_address') - plug_ip = request.form.get('plug_ip') - plug_username = request.form.get('plug_username') - plug_password = request.form.get('plug_password') - - # Check required fields - if not name or not mac_address: - db_session.close() - flash("Name und MAC-Adresse sind Pflichtfelder.", "error") - return redirect(url_for('admin_page', tab='printers')) - - # Check if printer with same MAC already exists - existing_printer = db_session.query(Printer).filter( - Printer.mac_address == mac_address - ).first() - - if existing_printer: - db_session.close() - flash("Ein Drucker mit dieser MAC-Adresse existiert bereits.", "error") - return redirect(url_for('admin_page', tab='printers')) - - # Create new printer - new_printer = Printer( - name=name, - model=model or "", - location=location or "", - mac_address=mac_address, - plug_ip=plug_ip or "", - plug_username=plug_username or "", - plug_password=plug_password or "", - active=True - ) - - db_session.add(new_printer) - db_session.commit() - - printer_id = new_printer.id - - db_session.close() - app_logger.info(f"New printer created: {new_printer.name} (ID: {printer_id})") - flash(f"Drucker {name} wurde erfolgreich angelegt.", "success") - return redirect(url_for('admin_page', tab='printers')) - except Exception as e: - db_session.rollback() - db_session.close() - app_logger.error(f"Error creating printer: {str(e)}") - flash(f"Fehler beim Anlegen des Druckers: {str(e)}", "error") - return redirect(url_for('admin_page', tab='printers')) +# Diese Route wurde entfernt - verwende stattdessen /api/printers/add für JSON-API @app.route("/api/printers/", methods=["DELETE"]) @login_required diff --git a/backend/app/templates/printers.html b/backend/app/templates/printers.html index 2e9c44ef..d44a5887 100644 --- a/backend/app/templates/printers.html +++ b/backend/app/templates/printers.html @@ -481,21 +481,23 @@ const response = await fetch('/api/printers/add', { method: 'POST', headers: { - 'Content-Type': 'application/json', - 'X-CSRF-Token': document.querySelector('meta[name="csrf-token"]')?.getAttribute('content') + 'Content-Type': 'application/json' }, body: JSON.stringify(printerData) }); if (!response.ok) { - throw new Error('Fehler beim Hinzufügen des Druckers'); + const errorData = await response.json(); + throw new Error(errorData.error || 'Fehler beim Hinzufügen des Druckers'); } + const result = await response.json(); hideAddPrinterModal(); + showStatusMessage(result.message || 'Drucker erfolgreich hinzugefügt', 'success'); loadPrinters(); } catch (error) { console.error('Error adding printer:', error); - alert('Fehler beim Hinzufügen des Druckers'); + showStatusMessage('Fehler beim Hinzufügen des Druckers: ' + error.message, 'error'); } } @@ -509,19 +511,22 @@ const response = await fetch(`/api/printers/${printerId}`, { method: 'DELETE', headers: { - 'X-CSRF-Token': document.querySelector('meta[name="csrf-token"]')?.getAttribute('content') + 'Content-Type': 'application/json' } }); if (!response.ok) { - throw new Error('Fehler beim Löschen des Druckers'); + const errorData = await response.json(); + throw new Error(errorData.error || 'Fehler beim Löschen des Druckers'); } + const result = await response.json(); hidePrinterDetailModal(); + showStatusMessage(result.message || 'Drucker erfolgreich gelöscht', 'success'); loadPrinters(); } catch (error) { console.error('Error deleting printer:', error); - alert('Fehler beim Löschen des Druckers'); + showStatusMessage('Fehler beim Löschen des Druckers: ' + error.message, 'error'); } }