/
kev
/
Nextcloud_File-Changes-Tracker
Обзор
Документация
Войти
/
kev
/
Nextcloud_File-Changes-Tracker
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
templates/settings/admin.php
243 строки
12 KB
Evgeny Konovalov
first_commit
16 фев 2026, 17:45
16 фев 2026, 17:45
476f06c
Код
Авторство
О чём код?
<?php /** * Страница настроек администратора - управление отслеживаемыми папками */ script('file_changes_tracker', 'file_changes_tracker-admin'); style('file_changes_tracker', 'admin'); ?> <div id="file-changes-tracker-admin" class="section"> <h2><?php p($l->t('Отслеживание изменений файлов')); ?></h2> <p class="settings-hint"> <?php p($l->t('Настройте папки для отслеживания изменений файлов. При изменении файлов в указанных папках ответственные лица будут получать уведомления.')); ?> </p> <div class="folders-section"> <div class="section-header"> <h3><?php p($l->t('Отслеживаемые папки')); ?></h3> <button id="btn-add-folder" class="button primary"> <span class="icon-add"></span> <?php p($l->t('Добавить папку')); ?> </button> </div> <div id="folders-list" class="folders-container"> <div class="loading-indicator"> <span class="icon-loading"></span> <p><?php p($l->t('Загрузка...')); ?></p> </div> </div> </div> <div class="info-section"> <h3><?php p($l->t('Просмотр журнала и статистики')); ?></h3> <p><?php p($l->t('Для просмотра журнала событий и статистики перейдите в приложение File Changes Tracker.')); ?></p> <a href="<?php p(\OC::$server->getURLGenerator()->linkToRoute('file_changes_tracker.page.index')); ?>" class="button"> <span class="icon-category-monitoring"></span> <?php p($l->t('Открыть журнал событий')); ?> </a> </div> </div> <!-- Модальное окно для добавления/редактирования папки --> <div id="folder-modal" class="folder-modal" style="display: none;"> <div class="modal-content"> <div class="modal-header"> <h3 id="modal-title"><?php p($l->t('Добавить папку для отслеживания')); ?></h3> <button class="modal-close icon-close"></button> </div> <div class="modal-body"> <form id="folder-form"> <input type="hidden" id="folder-id" value=""> <div class="form-group"> <label for="folder-path"><?php p($l->t('Путь к папке')); ?> *</label> <div class="folder-picker"> <input type="text" id="folder-path" name="folderPath" readonly required placeholder="<?php p($l->t('Выберите папку...')); ?>"> <button type="button" id="btn-pick-folder" class="button"> <span class="icon-folder"></span> <?php p($l->t('Выбрать папку')); ?> </button> </div> <p class="hint"><?php p($l->t('Нажмите кнопку "Выбрать папку" для визуального выбора')); ?></p> </div> <div class="form-group"> <label><?php p($l->t('Тип ответственного')); ?> *</label> <div class="radio-group"> <label> <input type="radio" name="responsible-type" value="user" checked> <?php p($l->t('Пользователь')); ?> </label> <label> <input type="radio" name="responsible-type" value="group"> <?php p($l->t('Группа')); ?> </label> </div> </div> <div class="form-group"> <label for="responsible-display"><?php p($l->t('Ответственный')); ?> *</label> <div class="responsible-picker"> <input type="text" id="responsible-display" readonly required placeholder="<?php p($l->t('Выберите ответственного...')); ?>"> <input type="hidden" id="responsible-id" name="responsibleId"> <button type="button" id="btn-pick-responsible" class="button"> <span class="icon-user"></span> <?php p($l->t('Выбрать')); ?> </button> </div> </div> <div class="form-group"> <label class="checkbox-label"> <input type="checkbox" id="notifications-enabled" name="notificationsEnabled" checked> <?php p($l->t('Включить уведомления для этой папки')); ?> </label> <p class="hint"><?php p($l->t('Основной переключатель. Детальные настройки - через кнопку "Шестеренка" в таблице.')); ?></p> </div> <div class="form-actions"> <button type="submit" class="button primary"> <?php p($l->t('Сохранить')); ?> </button> <button type="button" class="button modal-close"> <?php p($l->t('Отмена')); ?> </button> </div> </form> </div> </div> </div> <!-- Модальное окно выбора ответственного --> <div id="responsible-modal" class="folder-modal" style="display: none;"> <div class="modal-content"> <div class="modal-header"> <h3 id="responsible-modal-title"><?php p($l->t('Выбор пользователя')); ?></h3> <button class="modal-close-responsible icon-close"></button> </div> <div class="modal-body"> <div class="search-box"> <input type="text" id="responsible-search" placeholder="<?php p($l->t('Поиск...')); ?>" autocomplete="off"> </div> <div id="responsible-list" class="responsible-list"> <div class="hint-text"><?php p($l->t('Начните вводить для поиска...')); ?></div> </div> </div> </div> </div> <!-- Модальное окно настроек уведомлений --> <div id="notification-settings-modal" class="folder-modal" style="display: none;"> <div class="modal-content modal-large"> <div class="modal-header"> <h3><?php p($l->t('Настройки уведомлений')); ?></h3> <button class="modal-close-notification-settings icon-close"></button> </div> <div class="modal-body"> <input type="hidden" id="notif-folder-config-id" value=""> <div class="notification-section"> <h4><?php p($l->t('Мгновенные уведомления')); ?></h4> <p class="hint"><?php p($l->t('Уведомления в колокольчик Nextcloud сразу после события')); ?></p> <label class="checkbox-label-block"> <input type="checkbox" id="notif-instant" checked> <strong><?php p($l->t('Включить мгновенные уведомления')); ?></strong> </label> <div class="notification-types-grid"> <label class="checkbox-label-block"> <input type="checkbox" id="notif-on-create" checked> <?php p($l->t('При создании файла')); ?> </label> <label class="checkbox-label-block"> <input type="checkbox" id="notif-on-modify" checked> <?php p($l->t('При изменении файла')); ?> </label> <label class="checkbox-label-block"> <input type="checkbox" id="notif-on-delete" checked> <?php p($l->t('При удалении файла')); ?> </label> <label class="checkbox-label-block"> <input type="checkbox" id="notif-on-rename" checked> <?php p($l->t('При переименовании файла')); ?> </label> </div> </div> <hr class="section-divider"> <div class="notification-section"> <h4><?php p($l->t('Ежедневная сводка по email')); ?></h4> <p class="hint"><?php p($l->t('Отправка сводки всех событий за день на email')); ?></p> <label class="checkbox-label-block"> <input type="checkbox" id="notif-daily-digest"> <strong><?php p($l->t('Включить ежедневную сводку')); ?></strong> </label> <div class="form-row"> <div class="form-group"> <label for="notif-digest-time"><?php p($l->t('Время отправки')); ?></label> <input type="time" id="notif-digest-time" value="09:00" class="input-field"> </div> <div class="form-group"> <label for="notif-digest-email"><?php p($l->t('Email (опционально)')); ?></label> <input type="email" id="notif-digest-email" class="input-field" placeholder="<?php p($l->t('Email ответственного по умолчанию')); ?>"> </div> </div> <p class="hint"> <?php p($l->t('Если email не указан, сводка будет отправлена на email ответственного пользователя')); ?> </p> <div id="test-email-section" style="display: none; margin-top: 20px; padding: 15px; background: #fff3cd; border-radius: 5px; border-left: 4px solid #ffc107;"> <p style="margin: 0 0 10px 0; font-weight: bold; color: #856404;"> <span class="icon-mail" style="display: inline-block; margin-right: 5px;"></span> <?php p($l->t('Проверка отправки email')); ?> </p> <p class="hint" style="margin: 0 0 10px 0;"> <?php p($l->t('Отправить тестовое письмо со сводкой событий за вчерашний день для проверки настроек (не дожидаясь времени автоматической отправки)')); ?> </p> <button id="btn-send-test-email" class="button"> <span class="icon-mail"></span> <?php p($l->t('Отправить тестовое письмо')); ?> </button> </div> </div> <div class="form-actions"> <button id="btn-save-notification-settings" class="button primary"> <?php p($l->t('Сохранить настройки')); ?> </button> <button class="button modal-close-notification-settings"> <?php p($l->t('Отмена')); ?> </button> </div> </div> </div> </div>