Fix QZ Tray library loading and add pairing keys API endpoint

- Fix QZ Tray library loading errors (net::ERR_NAME_NOT_RESOLVED) by switching from CDN to local static file
- Add /labels/api/pairing-keys endpoint to fetch valid printer pairing keys
- Update print_labels.html to use local js/qz-tray.js
- Update print_lost_labels.html to use local js/qz-tray.js
- Update print_lost_labels_new.html to use correct path js/qz-tray.js
- Update fg_scan.html to use local js/qz-tray.js
- API returns active pairing keys from qz_pairing_keys table for printer selection
This commit is contained in:
Quality App Developer
2026-02-15 13:19:19 +02:00
parent d5b043c762
commit 2b6be2ba49
5 changed files with 42 additions and 4 deletions

View File

@@ -487,4 +487,39 @@ def api_generate_batch_pdf(order_id):
except Exception as e:
logger.error(f"Error generating batch PDF: {e}")
return jsonify({'error': str(e)}), 500
@labels_bp.route('/api/pairing-keys', methods=['GET'], endpoint='api_pairing_keys')
def api_pairing_keys():
"""Get QZ Tray pairing keys for printer selection"""
if 'user_id' not in session:
return jsonify({'error': 'Unauthorized'}), 401
try:
conn = get_db()
cursor = conn.cursor()
cursor.execute("""
SELECT id, printer_name, pairing_key, valid_until
FROM qz_pairing_keys
WHERE valid_until >= CURDATE()
ORDER BY printer_name ASC
""")
pairing_keys = []
for row in cursor.fetchall():
pairing_keys.append({
'id': row[0],
'printer_name': row[1],
'pairing_key': row[2]
})
cursor.close()
logger.info(f"Retrieved {len(pairing_keys)} valid pairing keys")
return jsonify(pairing_keys), 200
except Exception as e:
logger.error(f"Error fetching pairing keys: {e}")
return jsonify({'error': str(e)}), 500