Newer
Older
simple-opds / src / main / resources / templates / settings.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"
      xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
      layout:decorate="~{main}">
<head>
    <title>Настройки - SOPDS</title>
    <style>
        .settings-section {
            background: white;
            border-radius: 5px;
            padding: 20px;
            margin-bottom: 20px;
            box-shadow: 0 2px 4px rgba(0,0,0,0.1);
        }

        .settings-section h3 {
            color: #2c3e50;
            border-bottom: 2px solid #3498db;
            padding-bottom: 10px;
            margin-bottom: 20px;
        }

        .setting-row {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 10px 0;
            border-bottom: 1px solid #ecf0f1;
        }

        .setting-label {
            flex: 1;
            font-weight: 500;
        }

        .setting-control {
            flex: 1;
            text-align: right;
        }

        .switch {
            position: relative;
            display: inline-block;
            width: 60px;
            height: 34px;
        }

        .switch input {
            opacity: 0;
            width: 0;
            height: 0;
        }

        .slider {
            position: absolute;
            cursor: pointer;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background-color: #ccc;
            transition: .4s;
            border-radius: 34px;
        }

        .slider:before {
            position: absolute;
            content: "";
            height: 26px;
            width: 26px;
            left: 4px;
            bottom: 4px;
            background-color: white;
            transition: .4s;
            border-radius: 50%;
        }

        input:checked + .slider {
            background-color: #3498db;
        }

        input:checked + .slider:before {
            transform: translateX(26px);
        }

        .form-input {
            width: 200px;
            padding: 8px 12px;
            border: 1px solid #bdc3c7;
            border-radius: 4px;
            font-size: 14px;
        }

        .form-input:focus {
            border-color: #3498db;
            outline: none;
            box-shadow: 0 0 5px rgba(52, 152, 219, 0.3);
        }

        .help-text {
            font-size: 12px;
            color: #7f8c8d;
            margin-top: 5px;
        }

        .config-info {
            background: #f8f9fa;
            padding: 15px;
            border-radius: 4px;
            margin-top: 10px;
            font-size: 12px;
        }
    </style>
</head>
<body>
<div layout:fragment="content">
    <div class="row">
        <div class="large-12 columns">
            <h1>Настройки системы</h1>

            <!-- Форма настроек -->
            <form th:action="@{/settings/save}" method="post">

                <!-- Настройки интерфейса -->
                <div class="settings-section">
                    <h3><i class="fi-widget"></i> Настройки интерфейса</h3>

                    <div class="setting-row">
                        <div class="setting-label">
                            <strong>SOPDS_ALPHABET_MENU</strong>
                            <div class="help-text">
                                Включить выпадающее меню с выбором языка для книг, авторов и серий
                            </div>
                        </div>
                        <div class="setting-control">
                            <label class="switch">
                                <input type="checkbox" name="SOPDS_ALPHABET_MENU"
                                       th:checked="${alphabetMenu}">
                                <span class="slider"></span>
                            </label>
                        </div>
                    </div>

                    <div class="setting-row">
                        <div class="setting-label">
                            <strong>SOPDS_TITLE</strong>
                            <div class="help-text">
                                Заголовок приложения
                            </div>
                        </div>
                        <div class="setting-control">
                            <input type="text" name="SOPDS_TITLE"
                                   th:value="${title}"
                                   class="form-input">
                        </div>
                    </div>

                    <div class="setting-row">
                        <div class="setting-label">
                            <strong>SOPDS_PAGE_SIZE</strong>
                            <div class="help-text">
                                Количество элементов на одной странице
                            </div>
                        </div>
                        <div class="setting-control">
                            <input type="number" name="SOPDS_PAGE_SIZE"
                                   th:value="${pageSize}"
                                   class="form-input" min="10" max="100">
                        </div>
                    </div>

                    <div class="setting-row">
                        <div class="setting-label">
                            <strong>SOPDS_LANGUAGE</strong>
                            <div class="help-text">
                                Язык интерфейса
                            </div>
                        </div>
                        <div class="setting-control">
                            <select name="SOPDS_LANGUAGE" class="form-input">
                                <option value="ru" th:selected="${language == 'ru'}">Русский</option>
                                <option value="en" th:selected="${language == 'en'}">English</option>
                            </select>
                        </div>
                    </div>
                </div>

                <!-- Настройки сканера -->
                <div class="settings-section">
                    <h3><i class="fi-magnifying-glass"></i> Настройки сканера</h3>

                    <div class="setting-row">
                        <div class="setting-label">
                            <strong>SOPDS_SCAN_ENABLED</strong>
                            <div class="help-text">
                                Включить автоматическое сканирование книг
                            </div>
                        </div>
                        <div class="setting-control">
                            <label class="switch">
                                <input type="checkbox" name="SOPDS_SCAN_ENABLED"
                                       th:checked="${scanEnabled}">
                                <span class="slider"></span>
                            </label>
                        </div>
                    </div>

                    <div class="setting-row">
                        <div class="setting-label">
                            <strong>SOPDS_SCAN_PATH</strong>
                            <div class="help-text">
                                Директория для поиска книг
                            </div>
                        </div>
                        <div class="setting-control">
                            <input type="text" name="SOPDS_SCAN_PATH"
                                   th:value="${scanPath}"
                                   class="form-input">
                        </div>
                    </div>
                </div>

                <!-- Кнопки действий -->
                <div class="settings-section">
                    <div class="setting-row" style="border-bottom: none;">
                        <div class="setting-label">
                            <button type="submit" class="button success">
                                <i class="fi-save"></i> Сохранить настройки
                            </button>
                            <a th:href="@{/settings/reload}" class="button secondary">
                                <i class="fi-refresh"></i> Перезагрузить
                            </a>
                            <a th:href="@{/}" class="button alert">
                                <i class="fi-x"></i> Отмена
                            </a>
                        </div>
                        <div class="setting-control">
                            <a th:href="@{/settings/alphabet/toggle}" class="button warning">
                                <i class="fi-list"></i> Переключить меню
                            </a>
                        </div>
                    </div>
                </div>
            </form>

            <!-- Информация о конфигурации -->
            <div class="settings-section">
                <h3><i class="fi-info"></i> Информация о конфигурации</h3>
                <div class="config-info">
                    <p><strong>Файл конфигурации:</strong> sopds.properties</p>
                    <p><strong>Расположение:</strong> Корневая директория приложения (рядом с JAR файлом)</p>
                    <p><strong>Формат:</strong> Properties файл с комментариями</p>
                    <p><strong>Изменения:</strong> Вступают в силу после сохранения</p>
                    <p><strong>Резервная копия:</strong> Исходный файл в ресурсах используется только при первом запуске</p>
                </div>
            </div>
        </div>
    </div>
</div>
</body>
</html>