Newer
Older
teacher-diary / src / main / resources / templates / dashboard / index.html
<!DOCTYPE html>
<html lang="ru" xmlns:th="http://www.thymeleaf.org"
      th:replace="~{layout/main :: html(pageTitle='Главная', activeMenu='dashboard', content=~{::content}, scripts=~{})}">
<body>
<th:block th:fragment="content">
    <!-- Статистика -->
    <div class="row g-4 mb-4">
        <div class="col-md-6 col-lg-3">
            <div class="card stat-card">
                <div class="card-body">
                    <div class="stat-icon bg-primary-subtle text-primary">
                        <i class="bi bi-people"></i>
                    </div>
                    <div class="stat-value" th:text="${studentCount}">0</div>
                    <div class="stat-label">Учеников</div>
                </div>
            </div>
        </div>
        <div class="col-md-6 col-lg-3">
            <div class="card stat-card">
                <div class="card-body">
                    <div class="stat-icon bg-success-subtle text-success">
                        <i class="bi bi-folder"></i>
                    </div>
                    <div class="stat-value" th:text="${groupCount}">0</div>
                    <div class="stat-label">Групп</div>
                </div>
            </div>
        </div>
        <div class="col-md-6 col-lg-3">
            <div class="card stat-card">
                <div class="card-body">
                    <div class="stat-icon bg-warning-subtle text-warning">
                        <i class="bi bi-calendar-check"></i>
                    </div>
                    <div class="stat-value" th:text="${todayLessonsCount}">0</div>
                    <div class="stat-label">Занятий сегодня</div>
                </div>
            </div>
        </div>
        <div class="col-md-6 col-lg-3">
            <div class="card stat-card">
                <div class="card-body">
                    <div class="stat-icon bg-info-subtle text-info">
                        <i class="bi bi-person-hearts"></i>
                    </div>
                    <div class="stat-value" th:text="${parentCount}">0</div>
                    <div class="stat-label">Родителей</div>
                </div>
            </div>
        </div>
    </div>

    <div class="row g-4">
        <!-- Занятия на сегодня -->
        <div class="col-lg-8">
            <div class="card">
                <div class="card-header d-flex justify-content-between align-items-center">
                    <h5 class="mb-0">Занятия на сегодня</h5>
                    <a th:href="@{/schedule}" class="btn btn-sm btn-outline-primary">Расписание</a>
                </div>
                <div class="card-body" th:if="${todayLessons.isEmpty()}">
                    <p class="text-muted mb-0">Нет запланированных занятий на сегодня</p>
                </div>
                <ul class="list-group list-group-flush" th:if="${!todayLessons.isEmpty()}">
                    <li class="list-group-item" th:each="lesson : ${todayLessons}">
                        <div class="d-flex justify-content-between align-items-center">
                            <div>
                                <span class="fw-medium" th:text="${#temporals.format(lesson.startTime, 'HH:mm')} + ' — ' + ${#temporals.format(lesson.endTime, 'HH:mm')}"></span>
                                <a th:href="@{/schedule/{id}(id=${lesson.id})}" class="ms-2" th:text="${lesson.groupName}"></a>
                                <span class="badge bg-primary ms-1" th:text="${lesson.subjectName}"></span>
                            </div>
                            <span class="badge"
                                  th:classappend="${lesson.status.name() == 'COMPLETED'} ? 'bg-success' : (${lesson.status.name() == 'CANCELLED'} ? 'bg-danger' : 'bg-warning')"
                                  th:text="${lesson.status.name() == 'COMPLETED'} ? 'Проведено' : (${lesson.status.name() == 'CANCELLED'} ? 'Отменено' : 'Запланировано')"></span>
                        </div>
                        <small class="text-muted" th:if="${lesson.topic}" th:text="${lesson.topic}"></small>
                    </li>
                </ul>
            </div>
        </div>


        <!-- Быстрые действия -->
        <div class="col-lg-4">
            <div class="card">
                <div class="card-header">
                    <h5 class="mb-0">Быстрые действия</h5>
                </div>
                <div class="card-body d-grid gap-2">
                    <a th:href="@{/students/new}" class="btn btn-outline-primary">
                        <i class="bi bi-person-plus me-2"></i> Добавить ученика
                    </a>
                    <a th:href="@{/parents/new}" class="btn btn-outline-primary">
                        <i class="bi bi-person-hearts me-2"></i> Добавить родителя
                    </a>
                    <a th:href="@{/groups/new}" class="btn btn-outline-primary">
                        <i class="bi bi-folder-plus me-2"></i> Создать группу
                    </a>
                </div>
            </div>
        </div>
    </div>
</th:block>
</body>
</html>