Newer
Older
teacher-diary / src / main / resources / templates / student / view.html
<!DOCTYPE html>
<html lang="ru" xmlns:th="http://www.thymeleaf.org"
      th:replace="~{layout/main :: html(pageTitle=${student.fullName}, activeMenu='students', content=~{::content}, scripts=~{})}">
<body>
<th:block th:fragment="content">
    <div th:if="${success}" class="alert alert-success" th:text="${success}"></div>
    <div th:if="${error}" class="alert alert-danger" th:text="${error}"></div>

    <div class="row">
        <!-- Информация об ученике -->
        <div class="col-lg-8">
            <div class="card mb-4">
                <div class="card-header d-flex justify-content-between align-items-center">
                    <h5 class="mb-0">Информация</h5>
                    <div>
                        <a th:href="@{/students/{id}/edit(id=${student.id})}" class="btn btn-sm btn-outline-primary">
                            <i class="bi bi-pencil"></i> Редактировать
                        </a>
                    </div>
                </div>
                <div class="card-body">
                    <div class="row">
                        <div class="col-md-6 mb-3">
                            <label class="text-muted small">ФИО</label>
                            <p class="mb-0 fw-medium" th:text="${student.fullName}"></p>
                        </div>
                        <div class="col-md-6 mb-3">
                            <label class="text-muted small">Телефон</label>
                            <p class="mb-0" th:text="${student.phone ?: '—'}"></p>
                        </div>
                        <div class="col-md-6 mb-3">
                            <label class="text-muted small">Дата рождения</label>
                            <p class="mb-0" th:text="${student.birthDate != null} ? ${#temporals.format(student.birthDate, 'dd.MM.yyyy')} : '—'"></p>
                        </div>
                    </div>
                    <div th:if="${student.notes}">
                        <label class="text-muted small">Заметки</label>
                        <p class="mb-0" th:text="${student.notes}"></p>
                    </div>
                </div>
            </div>

            <!-- Родители -->
            <div class="card">
                <div class="card-header">
                    <h5 class="mb-0">Родители</h5>
                </div>
                <div class="card-body" th:if="${student.studentParents.isEmpty()}">
                    <p class="text-muted mb-0">Родители не привязаны</p>
                </div>
                <ul class="list-group list-group-flush" th:if="${!student.studentParents.isEmpty()}">
                    <li class="list-group-item d-flex justify-content-between align-items-center" th:each="sp : ${student.studentParents}">
                        <div>
                            <span class="badge bg-secondary me-2" th:text="${sp.parentType.name()}"></span>
                            <a th:href="@{/parents/{id}(id=${sp.parent.id})}" th:text="${sp.parent.fullName}"></a>
                            <small class="text-muted ms-2" th:text="${sp.parent.phone}"></small>
                        </div>
                        <form th:action="@{/students/{sid}/unlink-parent/{pid}(sid=${student.id}, pid=${sp.parent.id})}" method="post" class="d-inline">
                            <button type="submit" class="btn btn-sm btn-outline-danger" onclick="return confirm('Удалить связь?')">
                                <i class="bi bi-x-lg"></i>
                            </button>
                        </form>
                    </li>
                </ul>
            </div>
        </div>

        <!-- Боковая панель -->
        <div class="col-lg-4">
            <!-- Привязка родителя -->
            <div class="card mb-4">
                <div class="card-header">
                    <h6 class="mb-0">Привязать родителя</h6>
                </div>
                <div class="card-body">
                    <form th:action="@{/students/{id}/link-parent(id=${student.id})}" method="post" th:if="${!parents.isEmpty()}">
                        <div class="mb-3">
                            <select name="parentId" class="form-select" required>
                                <option value="">Выберите родителя</option>
                                <option th:each="p : ${parents}" th:value="${p.id}" th:text="${p.fullName}"></option>
                            </select>
                        </div>
                        <div class="mb-3">
                            <select name="parentType" class="form-select" required>
                                <option value="">Кем приходится</option>
                                <option value="MOTHER">Мама</option>
                                <option value="FATHER">Папа</option>
                                <option value="GRANDMOTHER">Бабушка</option>
                                <option value="GRANDFATHER">Дедушка</option>
                                <option value="BROTHER">Брат</option>
                                <option value="SISTER">Сестра</option>
                                <option value="GUARDIAN">Опекун</option>
                            </select>
                        </div>
                        <button type="submit" class="btn btn-primary w-100">Привязать</button>
                    </form>
                    <div th:if="${parents.isEmpty()}">
                        <p class="text-muted mb-2">Сначала добавьте родителя</p>
                        <a th:href="@{/parents/new}" class="btn btn-outline-primary btn-sm">Добавить родителя</a>
                    </div>
                </div>
            </div>

            <!-- Удаление -->
            <div class="card border-danger">
                <div class="card-body">
                    <h6 class="text-danger">Удалить ученика</h6>
                    <p class="small text-muted mb-3">Это действие нельзя отменить</p>
                    <form th:action="@{/students/{id}/delete(id=${student.id})}" method="post">
                        <button type="submit" class="btn btn-danger w-100" onclick="return confirm('Удалить ученика?')">
                            <i class="bi bi-trash me-1"></i> Удалить
                        </button>
                    </form>
                </div>
            </div>
        </div>
    </div>
</th:block>
</body>
</html>