/* global $, window, document */ $(document).ready(function() { // Функция для получения базового пути API const getApiPath = () => { // Извлекаем базовый путь из URL страницы const pathParts = window.location.pathname.split('/'); // Если последний сегмент пустой (из-за /) - удаляем его if (pathParts[pathParts.length - 1] === '') { pathParts.pop(); } // Путь до корня приложения return pathParts.join('/') + '/api'; }; // Функция для загрузки списка опросов const loadQuestionnaires = () => { $.ajax({ url: getApiPath() + '/questionnaires', method: 'GET', success: function(result) { if (result.success) { renderQuestionnaires(result.data); } else { $('#questionnaires-container').html(`<p class="error">Ошибка: ${result.error}</p>`); } }, error: function(error) { console.error('Error loading questionnaires:', error); $('#questionnaires-container').html('<p class="error">Не удалось загрузить опросы. Пожалуйста, попробуйте позже.</p>'); } }); }; // Функция для отображения списка опросов const renderQuestionnaires = (questionnaires) => { if (!questionnaires || questionnaires.length === 0) { $('#questionnaires-container').html('<p>У вас еще нет созданных опросов.</p>'); return; } // Получаем базовый путь (для работы и с /questioneer, и с /ms/questioneer) const basePath = window.location.pathname.endsWith('/') ? window.location.pathname : window.location.pathname + '/'; const questionnairesHTML = questionnaires.map(q => ` <div class="questionnaire-item"> <h3>${q.title}</h3> <p>${q.description || 'Нет описания'}</p> <p>Создан: ${new Date(q.createdAt).toLocaleString()}</p> <div class="questionnaire-links"> <a href="${basePath}admin/${q.adminLink}" class="btn btn-small">Редактировать</a> <a href="${basePath}poll/${q.publicLink}" class="btn btn-small btn-primary" target="_blank">Смотреть как участник</a> </div> </div> `).join(''); $('#questionnaires-container').html(questionnairesHTML); }; // Инициализация страницы loadQuestionnaires(); // Обновление данных каждые 30 секунд setInterval(loadQuestionnaires, 30000); });