| <!DOCTYPE html> |
| <html lang="en" data-bs-theme="dark"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>{% block title %}WebPass{% endblock %}</title> |
| |
| <link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;700&family=Inter:wght@300;400;600&display=swap" rel="stylesheet"> |
| |
| <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet"> |
| <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.0/font/bootstrap-icons.css"> |
| |
| <link rel="stylesheet" href="https://cdn.datatables.net/1.13.6/css/dataTables.bootstrap5.min.css"> |
| |
| <link rel="stylesheet" href="{{ url_for('static', filename='css/modern.css') }}"> |
| |
| <script src="https://code.jquery.com/jquery-3.7.0.min.js"></script> |
| <script src="https://cdn.socket.io/4.6.0/socket.io.min.js"></script> |
| <script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js"></script> |
| </head> |
| <body> |
|
|
| <div class="d-flex" id="wrapper"> |
| <div class="cyber-sidebar border-end" id="sidebar-wrapper"> |
| <div class="sidebar-heading text-center py-4 primary-text fs-4 fw-bold text-uppercase border-bottom"> |
| <i class="bi bi-shield-lock-fill me-2"></i>WebPass |
| </div> |
| <div class="list-group list-group-flush my-3"> |
| <a href="{{ url_for('dashboard.dashboard') }}" class="list-group-item list-group-item-action bg-transparent second-text"> |
| <i class="bi bi-grid-1x2-fill me-2"></i>Dashboard |
| </a> |
|
|
| {% if has_credentials %} |
| <a href="{{ url_for('dashboard.secure_tools') }}" class="list-group-item list-group-item-action bg-transparent second-text"> |
| <i class="bi bi-safe2-fill me-2"></i>Zero-Know Vault |
| </a> |
| {% else %} |
| <a href="{{ url_for('dashboard.profile') }}" class="list-group-item list-group-item-action bg-transparent text-muted locked-link"> |
| <i class="bi bi-lock-fill me-2"></i>Zero-Know Vault |
| </a> |
| {% endif %} |
|
|
| {% if has_credentials %} |
| <a href="{{ url_for('share.share_ui') }}" class="list-group-item list-group-item-action bg-transparent second-text"> |
| <i class="bi bi-send-x-fill me-2"></i>Dead Drop |
| </a> |
| {% else %} |
| <a href="{{ url_for('dashboard.profile') }}" class="list-group-item list-group-item-action bg-transparent text-muted locked-link"> |
| <i class="bi bi-lock-fill me-2"></i>Dead Drop |
| </a> |
| {% endif %} |
| |
| {% if has_credentials %} |
| <a href="{{ url_for('stego.ui') }}" class="list-group-item list-group-item-action bg-transparent second-text"> |
| <i class="bi bi-eye-slash-fill me-2"></i>Steganography |
| </a> |
| {% else %} |
| <a href="{{ url_for('dashboard.profile') }}" class="list-group-item list-group-item-action bg-transparent text-muted locked-link"> |
| <i class="bi bi-eye-slash-fill me-2"></i>Steganography |
| </a> |
| {% endif %} |
|
|
| {% if has_credentials %} |
| <a href="{{ url_for('dashboard.network_monitor') }}" class="list-group-item list-group-item-action bg-transparent second-text"> |
| <i class="bi bi-activity me-2"></i>Net Monitor |
| </a> |
| {% else %} |
| <a href="{{ url_for('dashboard.profile') }}" class="list-group-item list-group-item-action bg-transparent text-muted locked-link"> |
| <i class="bi bi-lock-fill me-2"></i>Net Monitor |
| </a> |
| {% endif %} |
|
|
| <a href="{{ url_for('dashboard.profile') }}" class="list-group-item list-group-item-action bg-transparent second-text"> |
| <i class="bi bi-person-circle me-2"></i>Profile |
| </a> |
| |
| <a href="{{ url_for('auth.logout') }}" class="list-group-item list-group-item-action bg-transparent text-danger fw-bold mt-5 logout-btn"> |
| <i class="bi bi-box-arrow-left me-2"></i>Logout |
| </a> |
| </div> |
| </div> |
|
|
| <div id="page-content-wrapper"> |
| <nav class="navbar navbar-expand-lg navbar-dark bg-transparent py-4 px-4"> |
| <div class="d-flex align-items-center"> |
| <i class="bi bi-list fs-3 me-3 text-white" id="menu-toggle" style="cursor: pointer;"></i> |
| <h2 class="fs-2 m-0 text-white fw-bold">{% block page_title %}{% endblock %}</h2> |
| </div> |
| </nav> |
|
|
| <div class="container-fluid px-4 pb-5"> |
| {% with messages = get_flashed_messages(with_categories=true) %} |
| {% if messages %} |
| {% for category, message in messages %} |
| <div class="alert alert-{{ category }} alert-dismissible fade show cyber-alert" role="alert"> |
| <i class="bi bi-info-circle-fill me-2"></i> {{ message }} |
| <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button> |
| </div> |
| {% endfor %} |
| {% endif %} |
| {% endwith %} |
|
|
| {% block content %}{% endblock %} |
| </div> |
| </div> |
| </div> |
|
|
| <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script> |
| |
| <script> |
| |
| var el = document.getElementById("wrapper"); |
| var toggleButton = document.getElementById("menu-toggle"); |
| toggleButton.onclick = function () { |
| el.classList.toggle("toggled"); |
| }; |
| |
| |
| const currentPath = window.location.pathname; |
| document.querySelectorAll('.list-group-item').forEach(link => { |
| if(link.getAttribute('href') === currentPath) { |
| link.classList.add('active-link'); |
| } |
| }); |
| </script> |
| {% block scripts %}{% endblock %} |
| </body> |
| </html> |