# WebPriority.py import PersistentData import CockpitITSM def init_priority_interface(ui): """ Registers the bridge between Priority.html and Python logic. """ def handle_get_ticket_priorities(_, __): """Syncs with API then returns ticket priorities from DB, sorted by subType / reference.""" success = CockpitITSM.update_ticket_priorities() if not success: ui.send_message("priority_response", { "success": False, "message": "Failed to refresh ticket priorities. Check API configuration." }) return priorities = PersistentData.get_ticket_priorities() ui.send_message("priority_data", {"priorities": priorities}) def handle_save_ticket_priorities(_, data): """Persists the selected state for each ticket priority.""" try: priorities = data.get("priorities", []) for p in priorities: PersistentData.db.update( "objects", {"selected": p["selected"]}, condition=f"id = {p['id']} AND subType = '{p['subType']}'" ) print(f"DEBUG: Saved selection for {len(priorities)} ticket priorities.") ui.send_message("priority_response", { "success": True, "message": f"Selection saved ({len(priorities)} priorities)." }) except Exception as e: print(f"ERROR saving ticket priorities: {str(e)}") ui.send_message("priority_response", { "success": False, "message": f"Save error: {str(e)}" }) # Registering the handlers ui.on_message("get_ticket_priorities", handle_get_ticket_priorities) ui.on_message("save_ticket_priorities", handle_save_ticket_priorities)