diff --git a/docker/routlin-dash/app/pages/dhcpleases/content.json b/docker/routlin-dash/app/pages/dhcpleases/content.json
index 27097ea..af3f308 100644
--- a/docker/routlin-dash/app/pages/dhcpleases/content.json
+++ b/docker/routlin-dash/app/pages/dhcpleases/content.json
@@ -55,7 +55,7 @@
"field": "vlan_name"
},
{
- "label": "Last Active",
+ "label": "Last Renewal",
"field": "last_active"
},
{
diff --git a/docker/routlin-dash/app/pages/dhcpleases/view.py b/docker/routlin-dash/app/pages/dhcpleases/view.py
index 2838790..7e4869f 100644
--- a/docker/routlin-dash/app/pages/dhcpleases/view.py
+++ b/docker/routlin-dash/app/pages/dhcpleases/view.py
@@ -69,6 +69,11 @@ def live_dhcp_leases():
for r in cfg.get('dhcp_reservations', [])
if r.get('mac') and r.get('hostname')
}
+ mac_to_desc = {
+ r['mac'].lower(): r['description']
+ for r in cfg.get('dhcp_reservations', [])
+ if r.get('mac') and r.get('description')
+ }
for leases_file in glob.glob('/var/lib/misc/dnsmasq-routlin-*.leases'):
stem = os.path.basename(leases_file)
vlan_name = stem[len('dnsmasq-routlin-'):-len('.leases')]
@@ -95,12 +100,14 @@ def live_dhcp_leases():
mac_norm = parts[1].lower()
device_h = parts[3] if parts[3] != '*' else None
res_h = mac_to_res.get(mac_norm)
+ desc = mac_to_desc.get(mac_norm)
+ desc_attr = f' data-hostname-desc="{e(desc)}"' if desc else ''
if res_h and device_h and device_h.lower() != res_h.lower():
- hostname_html = f'{e(res_h)}
({e(device_h)})'
+ hostname_html = f'{e(res_h)}
({e(device_h)})' if desc_attr else f'{e(res_h)}
({e(device_h)})'
elif res_h:
- hostname_html = f'{e(res_h)}'
+ hostname_html = f'{e(res_h)}' if desc_attr else e(res_h)
elif device_h:
- hostname_html = e(device_h)
+ hostname_html = f'{e(device_h)}' if desc_attr else e(device_h)
else:
hostname_html = '-'
rows.append({
diff --git a/docker/routlin-dash/app/pages/dnsblocking/content.json b/docker/routlin-dash/app/pages/dnsblocking/content.json
index a84cd49..b2e48f1 100644
--- a/docker/routlin-dash/app/pages/dnsblocking/content.json
+++ b/docker/routlin-dash/app/pages/dnsblocking/content.json
@@ -223,17 +223,21 @@
"label": "Max Log Size (KB)",
"name": "log_max_kb",
"input_type": "number",
+ "layout": "inline",
"value": "%GENERAL_LOG_MAX_KB%",
"min": 64,
- "hint": "Log is cleared and restarted when it exceeds this size."
+ "hint": "Log will automatically be cleared when it reaches this size."
+ },
+ {
+ "type": "hr"
},
{
"type": "field",
- "label": "Only record errors to log",
+ "label": "",
"name": "log_errors_only",
"input_type": "checkbox",
- "value": "%GENERAL_LOG_ERRORS_ONLY%",
- "hint": "Only write error-level messages to the log."
+ "checkbox_label": "Only record errors to log",
+ "value": "%GENERAL_LOG_ERRORS_ONLY%"
},
{
"type": "hr"
diff --git a/docker/routlin-dash/app/pages/radius/content.json b/docker/routlin-dash/app/pages/radius/content.json
index 35d4bae..140978e 100644
--- a/docker/routlin-dash/app/pages/radius/content.json
+++ b/docker/routlin-dash/app/pages/radius/content.json
@@ -114,7 +114,7 @@
"input_type": "checkbox",
"checkbox_label": "Log auth requests",
"value": "%RADIUS_LOGGING%",
- "hint": "Enables auth and auth_accept/auth_reject in radiusd.conf."
+ "hint": "%RADIUS_LOGGING_HINT%"
},
{
"type": "hr"
@@ -149,7 +149,7 @@
"layout": "inline",
"value": "%RADIUS_GEN_LOG_MAX_KB%",
"min": "64",
- "hint": "Log display will be truncated to this size."
+ "hint": "Log will automatically be cleared when it reaches this size."
},
{
"type": "button_row",
diff --git a/docker/routlin-dash/app/pages/radius/view.py b/docker/routlin-dash/app/pages/radius/view.py
index 7075971..52791fa 100644
--- a/docker/routlin-dash/app/pages/radius/view.py
+++ b/docker/routlin-dash/app/pages/radius/view.py
@@ -66,6 +66,7 @@ def collect_tokens(cfg):
tokens['RADIUS_MAC_FORMAT'] = fr_opts.get('mac_format', 'aabbccddeeff')
tokens['RADIUS_APPLY_TO'] = fr_opts.get('apply_to', 'all')
tokens['RADIUS_LOGGING'] = 'true' if fr_gen.get('logging', False) else ''
+ tokens['RADIUS_LOGGING_HINT'] = 'Unchecking will clear logs.' if fr_gen.get('logging', False) else ''
tokens['RADIUS_GEN_LOG_MAX_KB'] = str(fr_gen.get('log_max_kb', 1024))
tokens['RADIUS_LOG_TAIL'], tokens['RADIUS_LOG_SUMMARY'] = radius_log_tail(cfg)
return tokens