склади и инструмент готовы
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
{% extends "layout.html" %}
|
||||
|
||||
{% block head %}
|
||||
{{ super() }}
|
||||
<link rel="stylesheet" href="{{ getUrl('static', path='css/user.css') }}">
|
||||
<link rel="stylesheet" href="{{ getUrl('static', path='css/index.css') }}">
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/lightbox2/2.11.4/css/lightbox.min.css">
|
||||
{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
<!-- Заголовок с современным дизайном -->
|
||||
<header class="glass-header py-3 mb-4 flex-fill">
|
||||
<div class="container-xxl">
|
||||
<div class="d-flex flex-column flex-md-row align-items-md-center justify-content-between">
|
||||
<!-- Заголовок слева -->
|
||||
<div class="mb-3 mb-md-0 animate-fade-up">
|
||||
<div class="d-flex align-items-center">
|
||||
<img src="{{ getUrl('static', path='images/logo.png') }}" alt="Toolbox" class="me-2 rounded"
|
||||
width="70">
|
||||
<div>
|
||||
<h1 class="h3 fw-bold mb-1">Toolbox</h1>
|
||||
<p class="text-muted mb-0 opacity-85">
|
||||
<i class="bi bi-cloud-check me-1"></i>
|
||||
Онлайн-сервис для управления инструментами и расходниками
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Информация о клиенте справа -->
|
||||
<div class="animate-fade-up" style="animation-delay: 0.2s">
|
||||
<div class="client-card d-inline-block">
|
||||
<div class="d-flex align-items-center gap-3">
|
||||
<!-- Аватар с индикатором активности -->
|
||||
<div class="position-relative clickable">
|
||||
<img src="" alt="Загрузка..." class="client-avatar">
|
||||
<span
|
||||
class="position-absolute bottom-0 end-0 bg-success border border-2 border-white rounded-circle p-1"></span>
|
||||
</div>
|
||||
|
||||
<!-- Информация -->
|
||||
<div class="me-3">
|
||||
<h6 class="client-name mb-1">Загрузка...</h6>
|
||||
<div class="d-flex align-items-center">
|
||||
<span
|
||||
class="badge bg-primary bg-opacity-10 text-primary fs-7 px-2 py-1 me-2 client-role">
|
||||
<i class="bi bi-shield-check me-1"></i>
|
||||
Загрузка...
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Кнопка выхода -->
|
||||
<div class="dropdown">
|
||||
<button class="logout-btn btn d-flex align-items-center" type="button" id="clientLogoutBtn">
|
||||
<i class="bi bi-box-arrow-right me-2"></i>
|
||||
<span class="d-none d-md-inline">Выйти</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<!-- Основной контент -->
|
||||
<main class="container-xxl" id="mainContent">
|
||||
|
||||
</main>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block scripts %}
|
||||
{{ super() }}
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/lightbox2/2.11.4/js/lightbox.min.js"></script>
|
||||
<script type="module" src="{{ getUrl('static', path='js/user.js') }}"></script>
|
||||
<script type="module" src="{{ getUrl('static', path='js/index.js') }}"></script>
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,37 @@
|
||||
<!doctype html>
|
||||
<html lang="ru">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
|
||||
<meta name="app-secret" content={{content.app_secret}}>
|
||||
|
||||
<title>{% block title %}Toolbox{% endblock %}</title>
|
||||
<link rel="icon" href="{{ getUrl('static', path='favicon.ico') }}">
|
||||
<link rel="stylesheet" href="{{ getUrl('static', path='css/layout.css') }}">
|
||||
|
||||
<link rel="preconnect" href="https://cdn.jsdelivr.net">
|
||||
|
||||
<!-- Bootstrap 5 CSS -->
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css" rel="stylesheet"
|
||||
integrity="sha384-sRIl4kxILFvY47J16cr9ZwB07vP4J8+LH7qKQnuqkuIAvNWLzeN8tE5YBujZqJLB" crossorigin="anonymous">
|
||||
|
||||
<!-- Bootstrap Icons -->
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.13.1/font/bootstrap-icons.min.css">
|
||||
|
||||
{% block head %}{% endblock %}
|
||||
</head>
|
||||
|
||||
<body>
|
||||
{% block body %}{% endblock %}
|
||||
|
||||
<!-- Bootstrap 5 JS Bundle -->
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/js/bootstrap.bundle.min.js"
|
||||
integrity="sha384-FKyoEForCGlyvwx9Hj09JcYn3nv7wiPVlz7YYwJrWVcXK/BmnVDxM+D2scQbITxI"
|
||||
crossorigin="anonymous"></script>
|
||||
<script type="module" src="{{ getUrl('static', path='js/crypto.js') }}"></script>
|
||||
|
||||
{% block scripts %}{% endblock %}
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,49 @@
|
||||
{% extends "layout.html" %}
|
||||
|
||||
{% block title %}Вход — Toolbox{% endblock %}
|
||||
|
||||
{% block head %}
|
||||
<link rel="stylesheet" href="{{ getUrl('static', path='css/login.css') }}">
|
||||
<meta name="userAuth-endpoint" content="{{ getUrl('Authentication') }}">
|
||||
{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
<main class="login-page d-flex justify-content-center align-items-center">
|
||||
<div class="login-card">
|
||||
<header class="login-header">
|
||||
<img src="{{ getUrl('static', path='favicon.ico') }}" alt="Toolbox" class="brand-icon">
|
||||
<h1>Toolbox — Вход</h1>
|
||||
</header>
|
||||
|
||||
<form id="loginForm" class="login-form" autocomplete="on">
|
||||
<div class="form-group">
|
||||
<label for="loginInput">Логин</label>
|
||||
<input id="loginInput" name="login" type="text" class="form-control" required autofocus>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="passwordInput">Пароль</label>
|
||||
<input id="passwordInput" name="password" type="password" class="form-control" required>
|
||||
</div>
|
||||
|
||||
<div id="formError" class="form-error" aria-live="polite" hidden></div>
|
||||
|
||||
<div class="form-actions">
|
||||
<button id="submitBtn" class="btn btn-primary w-100" type="submit">Войти</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<footer class="login-footer">
|
||||
<small>Онлайн-сервис учета инструментов</small>
|
||||
</footer>
|
||||
</div>
|
||||
</main>
|
||||
{% endblock %}
|
||||
|
||||
{% block scripts %}
|
||||
<!-- Подключаем только модули, разделённые по задачам -->
|
||||
|
||||
<script type="module" src="{{ getUrl('static', path='js/cookies.js') }}"></script>
|
||||
<script type="module" src="{{ getUrl('static', path='js/api.js') }}"></script>
|
||||
<script type="module" src="{{ getUrl('static', path='js/auth.js') }}"></script>
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user