feat: Entferne die alte Drucker-API-Route und aktualisiere die Frontend-Fehlerbehandlung für Druckeroperationen
This commit is contained in:
parent
6aff252bd2
commit
b379cdf4c9
@ -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/<int:printer_id>", methods=["DELETE"])
|
||||
@login_required
|
||||
|
@ -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');
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user