from __future__ import annotations from .html_utils import attr, escape def _account_row(account: dict[str, str | int | None], csrf: str = "", admin_path: str = "/admin") -> str: hostname = escape(account["hostname"]) username = escape(account["username"]) ipv4 = escape(account.get("ipv4") or "-") ipv6 = escape(account.get("ipv6") or "-") updated = escape(account.get("updated_at") or "Never") safe_admin_path = attr(admin_path) return f""" {hostname}{username}{ipv4}{ipv6}{updated}
""" def _admin_table_toolbar(table_id: str, search_label: str) -> str: safe_id = attr(table_id) safe_label = attr(search_label) return f"""
0-0 of 0
""" def _admin_table_pagination() -> str: return """
""" def _domain_claim_row(challenge: dict[str, str | None]) -> str: domain = escape(challenge["domain"]) owner = escape(challenge.get("owner_hostname") or "-") created = escape(challenge.get("created_at") or "-") verified = escape(challenge.get("verified_at") or "-") status = "Verified" if challenge.get("verified_at") else "Pending" return f"{domain}{owner}{status}{created}{verified}" def _cleanup_row(run: dict[str, str | int]) -> str: created = escape(run.get("created_at") or "-") domains = escape(run.get("domain_challenges_deleted") or 0) accounts = escape(run.get("unused_accounts_deleted") or 0) return f"{created}{domains}{accounts}" def _scheduled_task_row(task: dict[str, str | int | None]) -> str: name = escape(task.get("name") or "-") status = escape(task.get("last_status") or "-") next_run = escape(task.get("next_run_at") or "-") lease_expires = escape(task.get("lease_expires_at") or "-") last_finished = escape(task.get("last_finished_at") or "-") last_error = escape(task.get("last_error") or "-") return f"{name}{status}{next_run}{lease_expires}{last_finished}{last_error}" def _event_row(event: dict[str, str | int | None]) -> str: created = escape(event.get("created_at") or "-") hostname = escape(event.get("hostname") or "-") status = escape(event.get("status") or "-") ipv4 = escape(event.get("ipv4") or "-") ipv6 = escape(event.get("ipv6") or "-") count = escape(event.get("count") or 1) detail = escape(event.get("detail") or "-") return f"{created}{hostname}{status}{ipv4}{ipv6}{count}{detail}"