feat: Refactor ServerManager layout to improve server list display and enhance filtering options
Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 18m28s

This commit is contained in:
2025-07-11 08:46:03 +07:00
parent 9e4c6863b6
commit 85ed473cca
+3 -42
View File
@@ -433,48 +433,12 @@ function ServerManager() {
</button> </button>
</div> </div>
<div className="row"> {/* Таблица серверов на всю ширину */}
<div className="col-lg-4"> <div className="card w-100">
{/* Add New Server Card */}
<div className="card card-md">
<div className="card-header">
<h3 className="card-title">
<IconPlus className="icon me-2" />
Управление серверами
</h3>
</div>
<div className="card-body">
<div className="form-footer">
{/* The button for adding new server is now outside this column */}
</div>
</div>
</div>
{/* Save Changes Card */}
<div className="card card-md mt-3">
<div className="card-header">
<h3 className="card-title">
<IconDatabase className="icon me-2" />
Сохранение изменений
</h3>
</div>
<div className="card-body">
<p className="text-muted mb-3">
Все изменения сохраняются в файл servers.json в S3 хранилище.
</p>
<div className="form-footer">
{/* The save changes buttons are now outside this column */}
</div>
</div>
</div>
</div>
<div className="col-lg-8">
<div className="card">
<div className="card-header d-flex justify-content-between align-items-center"> <div className="card-header d-flex justify-content-between align-items-center">
<h3 className="card-title mb-0">Список серверов</h3> <h3 className="card-title mb-0">Список серверов</h3>
<div className="d-flex gap-2 w-75"> <div className="d-flex gap-2 w-75">
{/* Фильтры */} {/* Фильтры и поиск */}
<select className="form-select w-auto" value={filterTunnel} onChange={e => { setFilterTunnel(e.target.value); setCurrentPage(1); }}> <select className="form-select w-auto" value={filterTunnel} onChange={e => { setFilterTunnel(e.target.value); setCurrentPage(1); }}>
<option value="">Все туннели</option> <option value="">Все туннели</option>
{allTunnels.map(tunnel => ( {allTunnels.map(tunnel => (
@@ -493,7 +457,6 @@ function ServerManager() {
<option key={provider} value={provider}>{provider}</option> <option key={provider} value={provider}>{provider}</option>
))} ))}
</select> </select>
{/* Поиск */}
<div className="input-icon flex-grow-1"> <div className="input-icon flex-grow-1">
<span className="input-icon-addon"> <span className="input-icon-addon">
<IconSearch size={18} /> <IconSearch size={18} />
@@ -626,8 +589,6 @@ function ServerManager() {
</div> </div>
)} )}
</div> </div>
</div>
</div>
{/* Delete Modal */} {/* Delete Modal */}
<DeleteServerModal <DeleteServerModal