{% extends "admin/admin_base.html" %}

{% block admin_content %}
<div class="container-fluid">
    <div class="row">
        <div class="col-12">
            <div class="admin-toolbar">
                <h1 class="admin-toolbar__title"><i class="bi bi-plugin" aria-hidden="true"></i> Управление плагинами</h1>
            </div>
            <!-- Вкладки -->
            <ul class="nav nav-tabs mb-4" id="pluginTabs" role="tablist">
                <li class="nav-item" role="presentation">
                    <button class="nav-link active" id="list-tab" data-bs-toggle="tab" data-bs-target="#list" type="button" role="tab">
                        <i class="bi bi-list-ul"></i> Список плагинов
                    </button>
                </li>
                <li class="nav-item" role="presentation">
                    <button class="nav-link" id="order-tab" data-bs-toggle="tab" data-bs-target="#order" type="button" role="tab">
                        <i class="bi bi-sort-alpha-down"></i> Порядок выполнения
                    </button>
                </li>
                <li class="nav-item" role="presentation">
                    <button class="nav-link" id="metrics-tab" data-bs-toggle="tab" data-bs-target="#metrics" type="button" role="tab">
                        <i class="bi bi-speedometer2"></i> Метрики
                    </button>
                </li>
            </ul>
            
            <!-- Содержимое вкладок -->
            <div class="tab-content" id="pluginTabsContent">
                <!-- Вкладка: Список плагинов -->
                <div class="tab-pane fade show active" id="list" role="tabpanel">
                    <div class="admin-card">
                        <div class="card-header d-flex flex-wrap justify-content-between align-items-center gap-2">
                            <h5 class="mb-0">Плагины</h5>
                            <div class="admin-toolbar__filters">
                                <input type="text" class="form-control form-control-sm" id="pluginSearch" placeholder="Поиск по имени, описанию, автору..." style="max-width: 220px;">
                                <select class="form-select form-select-sm" id="pluginStatusFilter" style="max-width: 140px;">
                                    <option value="">Все статусы</option>
                                    <option value="started">Запущен</option>
                                    <option value="stopped">Остановлен</option>
                                    <option value="loaded">Загружен</option>
                                    <option value="available">Доступен</option>
                                </select>
                                <select class="form-select form-select-sm" id="pluginCompatibleFilter" style="max-width: 140px;">
                                    <option value="">Совместимость</option>
                                    <option value="true">Совместим</option>
                                    <option value="false">Не совместим</option>
                                </select>
                                <select class="form-select form-select-sm" id="pluginRequiredFilter" style="max-width: 120px;">
                                    <option value="">Обязательность</option>
                                    <option value="true">Обязательный</option>
                                    <option value="false">Не обязательный</option>
                                </select>
                                <div class="form-check form-check-inline mb-0">
                                    <input class="form-check-input" type="checkbox" id="pluginIncludeAvailable" onchange="refreshPlugins()">
                                    <label class="form-check-label small" for="pluginIncludeAvailable">Показать доступные</label>
                                </div>
                                <button class="btn btn-primary btn-sm" onclick="refreshPlugins()">
                                    <i class="bi bi-arrow-clockwise"></i> Обновить
                                </button>
                            </div>
                        </div>
                        <div class="card-body p-0">
                            <div class="admin-table-wrap">
                                <div id="pluginsContainer">
                                <div class="text-center">
                                    <div class="spinner-border text-primary" role="status">
                                        <span class="visually-hidden">Загрузка...</span>
                                    </div>
                                </div>
                            </div>
                            </div>
                        </div>
                    </div>
                </div>
                
                <!-- Вкладка: Порядок выполнения -->
                <div class="tab-pane fade" id="order" role="tabpanel">
                    <div class="admin-card">
                        <div class="card-header">
                            <h5 class="mb-0">Порядок выполнения плагинов</h5>
                        </div>
                        <div class="card-body">
                            <p class="text-muted">Перетащите плагины для изменения порядка выполнения</p>
                            <div id="executionOrderContainer">
                                <div class="text-center">
                                    <div class="spinner-border text-primary" role="status">
                                        <span class="visually-hidden">Загрузка...</span>
                                    </div>
                                </div>
                            </div>
                            <button class="btn btn-success mt-3" onclick="saveExecutionOrder()">
                                <i class="bi bi-save"></i> Сохранить порядок
                            </button>
                        </div>
                    </div>
                </div>
                
                <!-- Вкладка: Метрики -->
                <div class="tab-pane fade" id="metrics" role="tabpanel">
                    <div class="admin-card">
                        <div class="card-header d-flex justify-content-between align-items-center">
                            <h5 class="mb-0">Метрики производительности плагинов</h5>
                            <button class="btn btn-primary btn-sm" onclick="refreshMetrics()">
                                <i class="bi bi-arrow-clockwise"></i> Обновить
                            </button>
                        </div>
                        <div class="card-body">
                            <div id="metricsContainer">
                                <div class="text-center">
                                    <div class="spinner-border text-primary" role="status">
                                        <span class="visually-hidden">Загрузка...</span>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<!-- Модальное окно для конфигурации плагина -->
<div class="modal fade" id="configModal" tabindex="-1">
    <div class="modal-dialog modal-lg">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title">Конфигурация плагина: <span id="configPluginName"></span></h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal"></button>
            </div>
            <div class="modal-body">
                <div id="configEditor" style="min-height: 300px;"></div>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Отмена</button>
                <button type="button" class="btn btn-primary" onclick="savePluginConfig()">Сохранить</button>
            </div>
        </div>
    </div>
</div>

<!-- Модальное окно для подробной информации о плагине -->
<div class="modal fade" id="infoModal" tabindex="-1">
    <div class="modal-dialog modal-lg">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title">Информация о плагине: <span id="infoPluginName"></span></h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal"></button>
            </div>
            <div class="modal-body" id="pluginInfoContainer">
                <div class="text-center">
                    <div class="spinner-border text-primary" role="status"></div>
                </div>
            </div>
        </div>
    </div>
</div>

<!-- Модальное окно для логов плагина -->
<div class="modal fade" id="logsModal" tabindex="-1">
    <div class="modal-dialog modal-xl">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title">Логи плагина: <span id="logsPluginName"></span></h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal"></button>
            </div>
            <div class="modal-body">
                <div class="mb-3">
                    <select class="form-select form-select-sm d-inline-block w-auto" id="logLevelFilter" onchange="refreshPluginLogs()">
                        <option value="">Все уровни</option>
                        <option value="info">Info</option>
                        <option value="warning">Warning</option>
                        <option value="error">Error</option>
                        <option value="debug">Debug</option>
                    </select>
                    <button class="btn btn-sm btn-primary ms-2" onclick="refreshPluginLogs()">
                        <i class="bi bi-arrow-clockwise"></i> Обновить
                    </button>
                </div>
                <div id="pluginLogsContainer" style="max-height: 500px; overflow-y: auto;">
                    <div class="text-center">
                        <div class="spinner-border text-primary" role="status">
                            <span class="visually-hidden">Загрузка...</span>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
{% endblock %}

{% block admin_scripts %}
<script src="{{ url_for('static', filename='js/plugins.js') }}"></script>
{% endblock %}
