feat: Add country flag display for inventory servers in FilterManager to enhance visual representation and user experience.
Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 2m10s
Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 2m10s
This commit is contained in:
@@ -35,6 +35,14 @@ import {
|
||||
|
||||
const API_URL = '/api';
|
||||
|
||||
const countryToFlag = (code) => {
|
||||
if (!code || typeof code !== 'string') return '';
|
||||
const cc = code.trim().toUpperCase();
|
||||
if (cc.length !== 2) return '';
|
||||
const codePoints = [...cc].map((c) => 0x1f1e6 - 65 + c.charCodeAt(0));
|
||||
return String.fromCodePoint(...codePoints);
|
||||
};
|
||||
|
||||
function FilterManager() {
|
||||
const [error, setError] = useState('');
|
||||
const [success, setSuccess] = useState('');
|
||||
@@ -1007,9 +1015,20 @@ function FilterManager() {
|
||||
onClick={() => setSelectedServer(server)}
|
||||
>
|
||||
<div className="card-body d-flex align-items-start gap-2">
|
||||
<span className="avatar bg-primary-lt">
|
||||
<IconServer size={16} />
|
||||
</span>
|
||||
{(() => {
|
||||
const meta = inventoryServers.find(
|
||||
(s) =>
|
||||
String(s.dns || '').trim() === server.name ||
|
||||
String(s.hostName || '').trim() === server.name ||
|
||||
String(s.ip || '').trim() === server.name
|
||||
);
|
||||
const flag = meta?.country ? countryToFlag(meta.country) : '';
|
||||
return (
|
||||
<span className="avatar bg-primary-lt" title={meta?.country || ''}>
|
||||
{flag || <IconServer size={16} />}
|
||||
</span>
|
||||
);
|
||||
})()}
|
||||
<div className="flex-grow-1">
|
||||
<div className="d-flex align-items-center gap-2">
|
||||
<div className="fw-bold text-truncate" title={server.name}>{server.name}</div>
|
||||
@@ -1051,9 +1070,20 @@ function FilterManager() {
|
||||
onClick={() => setSelectedServer(server)}
|
||||
>
|
||||
<div className="card-body d-flex align-items-start gap-2">
|
||||
<span className="avatar bg-secondary-lt">
|
||||
<IconServer size={16} />
|
||||
</span>
|
||||
{(() => {
|
||||
const meta = inventoryServers.find(
|
||||
(s) =>
|
||||
String(s.dns || '').trim() === server.name ||
|
||||
String(s.hostName || '').trim() === server.name ||
|
||||
String(s.ip || '').trim() === server.name
|
||||
);
|
||||
const flag = meta?.country ? countryToFlag(meta.country) : '';
|
||||
return (
|
||||
<span className="avatar bg-secondary-lt" title={meta?.country || ''}>
|
||||
{flag || <IconServer size={16} />}
|
||||
</span>
|
||||
);
|
||||
})()}
|
||||
<div className="flex-grow-1">
|
||||
<div className="d-flex align-items-center gap-2">
|
||||
<div className="fw-bold text-muted text-truncate" title={server.name}>{server.name}</div>
|
||||
|
||||
Reference in New Issue
Block a user