feat: Update ASNs, Domains, and IPRanges managers to display ETag, Last-Modified, and content length with new icon badges for improved metadata visibility and user experience
Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 6m22s

This commit is contained in:
2025-08-10 23:22:17 +07:00
parent 4635c05f8c
commit 16f14d3350
3 changed files with 53 additions and 20 deletions
+17 -6
View File
@@ -12,7 +12,10 @@ import {
IconRefresh,
IconUpload,
IconDownload,
IconDeviceFloppy
IconDeviceFloppy,
IconHash,
IconClock,
IconFileText
} from '@tabler/icons-react';
const API_URL = '/api';
@@ -498,11 +501,19 @@ function ASNsNewManager() {
</div>
</div>
</div>
{(etag || lastModified) && (
<div className="card-status-bottom bg-transparent px-3 py-2 text-muted small">
<span className="me-3">ETag: <code>{etag || '—'}</code></span>
<span className="me-3">Last-Modified: {lastModified || '—'}</span>
<span>Размер (байт): {contentLength ?? '—'}</span>
{(etag || lastModified || contentLength !== null) && (
<div className="card-footer">
<div className="d-flex flex-wrap gap-2 align-items-center small">
<span className="badge bg-blue-lt text-blue d-inline-flex align-items-center">
<IconHash size={14} className="me-1" /> {etag || '—'}
</span>
<span className="badge bg-blue-lt text-blue d-inline-flex align-items-center">
<IconClock size={14} className="me-1" /> {lastModified || '—'}
</span>
<span className="badge bg-blue-lt text-blue d-inline-flex align-items-center">
<IconFileText size={14} className="me-1" /> {(contentLength ?? '—') + (contentLength !== null ? ' байт' : '')}
</span>
</div>
</div>
)}
<div className="table-responsive">
+19 -8
View File
@@ -12,7 +12,10 @@ import {
IconRefresh,
IconUpload,
IconDownload,
IconDeviceFloppy
IconDeviceFloppy,
IconHash,
IconClock,
IconFileText
} from '@tabler/icons-react';
const API_URL = '/api';
@@ -505,13 +508,6 @@ function DomainsNewManager() {
</div>
</div>
</div>
{ (etag || lastModified) && (
<div className="card-status-bottom bg-transparent px-3 py-2 text-muted small">
<span className="me-3">ETag: <code>{etag || '—'}</code></span>
<span className="me-3">Last-Modified: {lastModified || '—'}</span>
<span>Размер (байт): {contentLength ?? '—'}</span>
</div>
)}
<div className="table-responsive">
<table className="table card-table table-vcenter table-nowrap mb-0">
<thead>
@@ -605,6 +601,21 @@ function DomainsNewManager() {
</ul>
</div>
)}
{(etag || lastModified || contentLength !== null) && (
<div className="card-footer">
<div className="d-flex flex-wrap gap-2 align-items-center small">
<span className="badge bg-blue-lt text-blue d-inline-flex align-items-center">
<IconHash size={14} className="me-1" /> {etag || '—'}
</span>
<span className="badge bg-blue-lt text-blue d-inline-flex align-items-center">
<IconClock size={14} className="me-1" /> {lastModified || '—'}
</span>
<span className="badge bg-blue-lt text-blue d-inline-flex align-items-center">
<IconFileText size={14} className="me-1" /> {(contentLength ?? '—') + (contentLength !== null ? ' байт' : '')}
</span>
</div>
</div>
)}
</div>
</div>
</div>
+17 -6
View File
@@ -12,7 +12,10 @@ import {
IconRefresh,
IconUpload,
IconDownload,
IconDeviceFloppy
IconDeviceFloppy,
IconHash,
IconClock,
IconFileText
} from '@tabler/icons-react';
const API_URL = '/api';
@@ -513,11 +516,19 @@ function IPRangesManager() {
</div>
</div>
</div>
{(etag || lastModified) && (
<div className="card-status-bottom bg-transparent px-3 py-2 text-muted small">
<span className="me-3">ETag: <code>{etag || '—'}</code></span>
<span className="me-3">Last-Modified: {lastModified || '—'}</span>
<span>Размер (байт): {contentLength ?? '—'}</span>
{(etag || lastModified || contentLength !== null) && (
<div className="card-footer">
<div className="d-flex flex-wrap gap-2 align-items-center small">
<span className="badge bg-blue-lt text-blue d-inline-flex align-items-center">
<IconHash size={14} className="me-1" /> {etag || '—'}
</span>
<span className="badge bg-blue-lt text-blue d-inline-flex align-items-center">
<IconClock size={14} className="me-1" /> {lastModified || '—'}
</span>
<span className="badge bg-blue-lt text-blue d-inline-flex align-items-center">
<IconFileText size={14} className="me-1" /> {(contentLength ?? '—') + (contentLength !== null ? ' байт' : '')}
</span>
</div>
</div>
)}
<div className="table-responsive">