zones.html 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <!DOCTYPE html>
  2. <html lang="el">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Zones - DNS Manager</title>
  6. <script src="https://cdn.tailwindcss.com"></script>
  7. </head>
  8. <body class="bg-gray-900 text-white font-sans">
  9. <div class="flex h-screen">
  10. <aside class="w-64 bg-gray-800 border-r border-gray-700 p-6">
  11. <h2 class="text-2xl font-bold text-blue-400 mb-8">DNS Manager</h2>
  12. <nav class="space-y-2">
  13. <a href="/" class="block px-4 py-2 text-gray-400 hover:bg-gray-700 rounded">Dashboard</a>
  14. <a href="/zones" class="block px-4 py-2 bg-blue-600 rounded">Zone Management</a>
  15. </nav>
  16. </aside>
  17. <main class="flex-1 p-8">
  18. <div class="grid grid-cols-1 lg:grid-cols-3 gap-8">
  19. <div class="bg-gray-800 p-6 rounded-xl border border-gray-700 shadow-xl">
  20. <h2 class="text-xl font-bold mb-4">New Zone</h2>
  21. <form action="/zones/add" method="POST" class="space-y-4">
  22. <input type="text" name="domain" placeholder="example.com" required class="w-full bg-gray-700 border border-gray-600 rounded px-4 py-2">
  23. <select name="type" id="ztype" onchange="document.getElementById('m_ip').style.display = (this.value=='master'?'block':'none'); document.getElementById('s_ip').style.display = (this.value=='slave'?'block':'none');" class="w-full bg-gray-700 border border-gray-600 rounded px-4 py-2">
  24. <option value="master">Master</option>
  25. <option value="slave">Slave</option>
  26. </select>
  27. <div id="m_ip"><input type="text" name="ip" placeholder="Server IP" class="w-full bg-gray-700 border border-gray-600 rounded px-4 py-2"></div>
  28. <div id="s_ip" style="display:none"><input type="text" name="master_ip" placeholder="Master DNS IP" class="w-full bg-gray-700 border border-gray-600 rounded px-4 py-2"></div>
  29. <button class="w-full bg-blue-600 hover:bg-blue-500 py-2 rounded font-bold">Create</button>
  30. </form>
  31. </div>
  32. <div class="lg:col-span-2 bg-gray-800 rounded-xl border border-gray-700 overflow-hidden shadow-xl">
  33. <table class="w-full text-left">
  34. <thead class="bg-gray-700 text-gray-400 uppercase text-xs">
  35. <tr><th class="px-6 py-4">Domain</th><th class="px-6 py-4">Type</th><th class="px-6 py-4 text-right">Actions</th></tr>
  36. </thead>
  37. <tbody class="divide-y divide-gray-700">
  38. {% for domain, type in zones %}
  39. <tr class="hover:bg-gray-750 transition">
  40. <td class="px-6 py-4 font-bold">{{ domain }}</td>
  41. <td class="px-6 py-4"><span class="px-2 py-1 rounded text-xs {% if type=='master' %}bg-blue-900 text-blue-200{% else %}bg-purple-900 text-purple-200{% endif %}">{{ type }}</span></td>
  42. <td class="px-6 py-4 text-right">
  43. <a href="/zones/manage/{{ domain }}" class="text-blue-400 hover:underline mr-4">Manage</a>
  44. <a href="/zones/delete/{{ domain }}" class="text-red-500 hover:underline">Delete</a>
  45. </td>
  46. </tr>
  47. {% endfor %}
  48. </tbody>
  49. </table>
  50. </div>
  51. </div>
  52. </main>
  53. </div>
  54. </body>
  55. </html>