Fixed delete device and merged changes
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Add Device</title>
|
||||
<link rel="icon" type="image/png" href="/static/logo.png">
|
||||
<link rel="icon" type="image/x-icon" href="/static/favicon.ico">
|
||||
<link href="/static/css/output.css" rel="stylesheet">
|
||||
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css" rel="stylesheet">
|
||||
</head>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Admin Panel</title>
|
||||
<link rel="icon" type="image/png" href="/static/logo.png">
|
||||
<link rel="icon" type="image/x-icon" href="/static/favicon.ico">
|
||||
<link href="/static/css/output.css" rel="stylesheet">
|
||||
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css" rel="stylesheet">
|
||||
</head>
|
||||
@@ -13,6 +13,10 @@
|
||||
<div class="flex-1 flex items-center justify-center mx-4">
|
||||
<div class="container py-8 max-w-md pt-20">
|
||||
<h1 class="text-3xl font-bold mb-6 text-center">Admin Panel</h1>
|
||||
<div class="flex justify-center gap-4 mb-6">
|
||||
<a href="/audit" class="bg-gradient-to-r from-gray-500 to-gray-700 hover:from-gray-600 hover:to-gray-800 text-white px-4 py-2 rounded-lg shadow text-center w-40">Audit Log</a>
|
||||
<a href="/users" class="bg-gradient-to-r from-gray-500 to-gray-700 hover:from-gray-600 hover:to-gray-800 text-white px-4 py-2 rounded-lg shadow text-center w-40">Users</a>
|
||||
</div>
|
||||
<hr class="border-t-2 border-gray-600 rounded-lg mb-4">
|
||||
<h1 class="text-2xl font-bold mb-6 text-center">Add Subnet</h1>
|
||||
{% if error %}
|
||||
|
||||
+27
-2
@@ -4,7 +4,7 @@
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Audit Log</title>
|
||||
<link rel="icon" type="image/png" href="/static/logo.png">
|
||||
<link rel="icon" type="image/x-icon" href="/static/favicon.ico">
|
||||
<link href="/static/css/output.css" rel="stylesheet">
|
||||
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css" rel="stylesheet">
|
||||
</head>
|
||||
@@ -55,13 +55,38 @@
|
||||
<tr class="border-b border-gray-700">
|
||||
<td class="px-4 py-2 text-center">{{ log[1] or 'Unknown' }}</td>
|
||||
<td class="px-4 py-2 text-center">{{ log[2] }}</td>
|
||||
<td class="px-4 py-2 text-center">{{ log[3] }}</td>
|
||||
<td class="px-4 py-2 text-center truncate" title="{{ log[3] }}">{{ log[3][:100] ~ ('…' if log[3]|length > 100 else '') }}</td>
|
||||
<td class="px-4 py-2 text-center">{{ log[4] or 'N/A' }}</td>
|
||||
<td class="px-4 py-2 text-center" data-utc="{{ log[5] }}">{{ log[5] }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% if total_pages > 1 %}
|
||||
<div class="flex justify-center mt-6 space-x-2">
|
||||
{% if page > 1 %}
|
||||
{% set prev_args = query_args.copy() %}
|
||||
{% set _ = prev_args.update({'page': page-1}) %}
|
||||
<a href="{{ url_for('audit', **prev_args) }}" class="px-3 py-1 rounded bg-gray-700 hover:bg-gray-600 flex items-center gap-2">
|
||||
<i class="fa fa-angle-left"></i>
|
||||
<span class="hidden sm:inline">Prev</span>
|
||||
</a>
|
||||
{% endif %}
|
||||
{% for p in range(1, total_pages+1) %}
|
||||
{% set page_args = query_args.copy() %}
|
||||
{% set _ = page_args.update({'page': p}) %}
|
||||
<a href="{{ url_for('audit', **page_args) }}" class="px-3 py-1 rounded {{ 'bg-gray-500 text-white' if p == page else 'bg-gray-700 hover:bg-gray-600' }}">{{ p }}</a>
|
||||
{% endfor %}
|
||||
{% if page < total_pages %}
|
||||
{% set next_args = query_args.copy() %}
|
||||
{% set _ = next_args.update({'page': page+1}) %}
|
||||
<a href="{{ url_for('audit', **next_args) }}" class="px-3 py-1 rounded bg-gray-700 hover:bg-gray-600 flex items-center gap-2">
|
||||
<span class="hidden sm:inline">Next</span>
|
||||
<i class="fa fa-angle-right"></i>
|
||||
</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>{{ device.name }} - Device Details</title>
|
||||
<link rel="icon" type="image/png" href="/static/logo.png">
|
||||
<link rel="icon" type="image/x-icon" href="/static/favicon.ico">
|
||||
<link href="/static/css/output.css" rel="stylesheet">
|
||||
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css" rel="stylesheet">
|
||||
</head>
|
||||
@@ -56,9 +56,6 @@
|
||||
</select>
|
||||
<select name="ip_id" id="ip-select" class="border p-3 rounded-lg bg-gray-800 text-gray-100 border-gray-600 w-full" required>
|
||||
<option value="" disabled selected>Select IP...</option>
|
||||
{% for ip in available_ips_by_subnet.get(subnets[0].id, []) %}
|
||||
<option value="{{ ip.id }}">{{ ip.ip }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
<button type="submit" class="bg-gradient-to-r from-gray-500 to-gray-600 hover:from-gray-600 hover:to-gray-500 text-white px-4 py-2 rounded-lg w-full">Add IP</button>
|
||||
</div>
|
||||
|
||||
@@ -24,7 +24,11 @@
|
||||
<tbody>
|
||||
{% for name, icon_class, count in stats %}
|
||||
<tr class="border-b border-gray-700">
|
||||
<td class="px-4 py-3 flex items-center gap-2"><i class="fas {{ icon_class }} text-blue-300"></i> {{ name }}</td>
|
||||
<td class="px-4 py-3 flex items-center gap-2">
|
||||
<a href="{{ url_for('devices_by_type', device_type=name) }}" class="hover:underline flex items-center gap-2">
|
||||
<i class="fas {{ icon_class }} text-blue-300"></i> {{ name }}
|
||||
</a>
|
||||
</td>
|
||||
<td class="px-4 py-3 text-center font-bold">{{ count }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
@@ -34,4 +38,4 @@
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
@@ -4,7 +4,7 @@
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Device Manager</title>
|
||||
<link rel="icon" type="image/png" href="/static/logo.png">
|
||||
<link rel="icon" type="image/x-icon" href="/static/favicon.ico">
|
||||
<link href="/static/css/output.css" rel="stylesheet">
|
||||
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css" rel="stylesheet">
|
||||
<link href="/static/css/devices.css" rel="stylesheet">
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>{{ device_type }} Devices</title>
|
||||
<link rel="icon" type="image/png" href="/static/logo.png">
|
||||
<link href="/static/css/output.css" rel="stylesheet">
|
||||
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css" rel="stylesheet">
|
||||
</head>
|
||||
<body class="bg-gray-900 text-gray-100 min-h-screen flex flex-col">
|
||||
{% include 'header.html' %}
|
||||
<div class="flex-1 flex items-center justify-center mx-4">
|
||||
<div class="container py-8 max-w-3xl pt-20">
|
||||
<h1 class="text-3xl font-bold mb-8 text-center">
|
||||
<i class="fas {{ icon_class }} text-blue-300"></i> {{ device_type }} Devices
|
||||
</h1>
|
||||
{% for site, devices in site_devices.items() %}
|
||||
<div class="mb-8">
|
||||
<h2 class="text-xl font-bold mb-4 text-blue-200">{{ site }}</h2>
|
||||
<div class="bg-gray-800 rounded-lg shadow-md p-4">
|
||||
<table class="w-full table-auto mb-2">
|
||||
<thead>
|
||||
<tr class="bg-gray-700">
|
||||
<th class="px-4 py-2 text-left">Device Name</th>
|
||||
<th class="px-4 py-2 text-left">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for device in devices %}
|
||||
<tr class="border-b border-gray-700">
|
||||
<td class="px-4 py-3">
|
||||
<a href="/device/{{ device.id }}" class="hover:underline text-blue-300">{{ device.name }}</a>
|
||||
</td>
|
||||
<td class="px-4 py-3">{{ device.description or '' }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr class="bg-gray-900 font-bold">
|
||||
<td class="px-4 py-2 text-right" colspan="2">Total: {{ devices|length }}</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+2
-2
@@ -39,11 +39,11 @@
|
||||
<div>Start: <span class="font-mono">{{ dhcp_pool.start_ip }}</span></div>
|
||||
<div>End: <span class="font-mono">{{ dhcp_pool.end_ip }}</span></div>
|
||||
{% if dhcp_pool.excluded_ips %}
|
||||
<div>Excluded: <span class="font-mono">{{ dhcp_pool.excluded_ips }}</span></div>
|
||||
<div>Excluded: <span class="font-mono break-words inline-block max-w-full whitespace-normal">{{ dhcp_pool.excluded_ips }}</span></div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
@@ -4,7 +4,7 @@
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>JDB-NET IPAM</title>
|
||||
<link rel="icon" type="image/png" href="/static/logo.png">
|
||||
<link rel="icon" type="image/x-icon" href="/static/favicon.ico">
|
||||
<link href="/static/css/output.css" rel="stylesheet">
|
||||
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css" rel="stylesheet">
|
||||
</head>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>JDB-NET IPAM</title>
|
||||
<link rel="icon" type="image/png" href="/static/logo.png">
|
||||
<link rel="icon" type="image/x-icon" href="/static/favicon.ico">
|
||||
<link href="/static/css/output.css" rel="stylesheet">
|
||||
</head>
|
||||
<body class="bg-gray-900 text-gray-100 min-h-screen flex flex-col">
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>User Management</title>
|
||||
<link rel="icon" type="image/png" href="/static/logo.png">
|
||||
<link rel="icon" type="image/x-icon" href="/static/favicon.ico">
|
||||
<link href="/static/css/output.css" rel="stylesheet">
|
||||
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css" rel="stylesheet">
|
||||
</head>
|
||||
|
||||
Reference in New Issue
Block a user