mirror of
https://github.com/mrvasil/ctf-ad-mirror-tool-rust.git
synced 2026-10-23 14:31:02 +00:00
65 lines
5.4 KiB
HTML
65 lines
5.4 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="ru">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Proxy Manager</title>
|
|
<link href="/vendor/bootstrap.min.css" rel="stylesheet">
|
|
<link href="/vendor/fontawesome.min.css" rel="stylesheet">
|
|
<link href="/app.css" rel="stylesheet">
|
|
<script src="/app.js" defer></script>
|
|
</head>
|
|
<body>
|
|
<div class="container mt-2">
|
|
<div id="alert" class="alert alert-danger alert-dismissible fade show" role="alert" hidden><span id="alert-message"></span><button id="dismiss-alert" type="button" class="btn-close btn-close-white" aria-label="Закрыть сообщение"></button></div>
|
|
<div id="login" class="row justify-content-center align-items-center login-row" hidden>
|
|
<div class="col-md-6 col-lg-4"><div class="service-card text-center login-card">
|
|
<div class="mb-4"><h2 class="login-heading">Proxy</h2><p class="login-caption">Введите пароль</p></div>
|
|
<form id="login-form">
|
|
<div class="mb-4"><input type="password" class="input-modern w-100 login-password" id="password" name="password" placeholder="Пароль" aria-label="Пароль" autocomplete="current-password" required></div>
|
|
<p id="login-error" class="form-error" role="alert"></p><button id="login-button" type="submit" class="add-button w-100">Войти</button>
|
|
</form>
|
|
</div></div>
|
|
</div>
|
|
<div id="header" class="d-flex justify-content-between align-items-center header-row" hidden>
|
|
<h1 class="section-title">Mirror Tool</h1>
|
|
<div class="header-actions">
|
|
<button id="refresh" class="refresh-button" title="Обновить" aria-label="Обновить"><i class="fas fa-sync-alt" aria-hidden="true"></i></button>
|
|
<button id="logout" class="logout-button" title="Выход" aria-label="Выход"><i class="fas fa-sign-out-alt" aria-hidden="true"></i></button>
|
|
<button id="add-service" class="add-button" title="Добавить прокси" aria-label="Добавить прокси"><i class="fas fa-plus" aria-hidden="true"></i></button>
|
|
</div>
|
|
</div>
|
|
<div id="dashboard" class="main-dashboard" hidden><div id="service-board" class="task-board board-scroll"></div></div>
|
|
</div>
|
|
<dialog id="addCustomModal" class="legacy-modal" aria-labelledby="add-title">
|
|
<div class="modal-dialog"><div class="modal-content">
|
|
<div class="modal-header"><h5 class="modal-title" id="add-title">Добавить прокси</h5><button type="button" class="btn-close btn-close-white" data-close="addCustomModal" aria-label="Закрыть"></button></div>
|
|
<form id="customProxyForm">
|
|
<div class="modal-body">
|
|
<div class="mb-3"><label for="customName" class="form-label">Название</label><input type="text" class="input-modern w-100" id="customName" placeholder="Название сервиса" maxlength="128" required></div>
|
|
<div class="mb-3"><label for="customPort" class="form-label">Порт</label><input type="number" class="input-modern w-100" id="customPort" min="1" max="65535" placeholder="8080" required></div>
|
|
<div class="mb-3"><label for="customIp" class="form-label">IP (опционально)</label><input type="text" class="input-modern w-100" id="customIp" placeholder="192.168.1.100" autocomplete="off"></div>
|
|
<p id="custom-error" class="form-error" role="alert"></p>
|
|
</div>
|
|
<div class="modal-footer"><button type="button" class="add-button cancel-button" data-close="addCustomModal">Отмена</button><button type="submit" class="add-button">Добавить</button></div>
|
|
</form>
|
|
</div></div>
|
|
</dialog>
|
|
<dialog id="settingsModal" class="legacy-modal" aria-labelledby="settings-title">
|
|
<div class="modal-dialog"><div class="modal-content">
|
|
<div class="modal-header"><h5 class="modal-title" id="settings-title">Настройки сервиса</h5><button type="button" class="btn-close btn-close-white" data-close="settingsModal" aria-label="Закрыть"></button></div>
|
|
<form id="settings-form">
|
|
<div class="modal-body">
|
|
<div class="mb-3"><label for="service-name" class="form-label">Название</label><input id="service-name" class="input-modern w-100" maxlength="128" required></div>
|
|
<div class="mb-3"><label for="service-listen" class="form-label">Адрес и порт прокси</label><input id="service-listen" class="input-modern w-100" required></div>
|
|
<div class="mb-3"><label for="service-port" class="form-label">Порт сервиса команды</label><input id="service-port" type="number" min="1" max="65535" class="input-modern w-100" required></div>
|
|
<div class="mb-3"><label for="service-policy" class="form-label">При медленной реплике</label><select id="service-policy" class="input-modern w-100"><option value="isolate">Отключить реплику, сохранить скорость primary</option><option value="strict">Ждать реплику, замедлить общий поток</option></select></div>
|
|
<p id="settings-error" class="form-error" role="alert"></p>
|
|
</div>
|
|
<div class="modal-footer"><button type="button" class="add-button cancel-button" data-close="settingsModal">Отмена</button><button type="submit" class="add-button">Сохранить</button></div>
|
|
</form>
|
|
</div></div>
|
|
</dialog>
|
|
</body>
|
|
</html>
|