persons.html 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. {% extends "base.html" %}
  2. {% block title %}Persons - astro-mcp{% endblock %}
  3. {% block content %}
  4. <h1>Persons</h1>
  5. <div class="toolbar">
  6. <a href="/dashboard/persons/new" class="btn btn-primary">+ Add Person</a>
  7. <a href="/dashboard/persons/export" class="btn btn-ghost" title="Export all persons as JSON">Export All</a>
  8. <a href="/dashboard/persons/import" class="btn btn-ghost" title="Import persons from JSON">Import</a>
  9. <input
  10. class="search-input"
  11. type="text"
  12. id="search"
  13. placeholder="Search name or nickname..."
  14. >
  15. </div>
  16. {% if persons %}
  17. <table>
  18. <thead>
  19. <tr>
  20. <th>Name</th>
  21. <th>Nickname</th>
  22. <th>Birth</th>
  23. <th>Location</th>
  24. <th>Gender</th>
  25. <th>Status</th>
  26. <th></th>
  27. </tr>
  28. </thead>
  29. <tbody id="person-rows">
  30. {% for p in persons %}
  31. <tr>
  32. <td><a href="/dashboard/persons/{{ p.id }}">{{ p.name }}</a></td>
  33. <td>{{ p.nickname or '—' }}</td>
  34. <td>{{ p.birth_datetime[:10] if p.birth_datetime else '—' }}</td>
  35. <td>{{ p.birthplace or '—' }}</td>
  36. <td>
  37. {% if p.gender %}
  38. <span class="badge badge-blue">{{ p.gender }}</span>
  39. {% else %}
  40. {% endif %}
  41. </td>
  42. <td>
  43. {% if p.alive %}
  44. <span class="badge badge-green">alive</span>
  45. {% else %}
  46. <span class="badge badge-deceased">deceased</span>
  47. {% endif %}
  48. {% if p.private %}
  49. <span class="badge badge-gray">private</span>
  50. {% endif %}
  51. {% if p.birth_time_known == False %}
  52. <span class="badge badge-gray">time unknown</span>
  53. {% endif %}
  54. </td>
  55. <td class="row-actions">
  56. <form method="post" action="/dashboard/persons/{{ p.id }}/delete" style="display:inline">
  57. <button type="submit" class="btn btn-delete btn-sm" data-confirm="Delete {{ p.name }}?">Delete</button>
  58. </form>
  59. <a href="/dashboard/persons/{{ p.id }}/edit" class="btn btn-primary btn-sm">Edit</a>
  60. <a href="/dashboard/persons/{{ p.id }}/export" class="btn btn-ghost btn-sm" title="Export as JSON">Export</a>
  61. </td>
  62. </tr>
  63. {% endfor %}
  64. </tbody>
  65. </table>
  66. {% else %}
  67. <div class="empty card">
  68. <p>No persons yet. <a href="/dashboard/persons/new">Add one</a>.</p>
  69. </div>
  70. {% endif %}
  71. {% endblock %}