/* global $, window, document */ $(document).ready(function() { // Функция для получения базового пути API const getApiPath = () => { // Проверяем, содержит ли путь /ms/ (продакшн на dev.bro-js.ru) const pathname = window.location.pathname; const isMsPath = pathname.includes('/ms/questioneer'); if (isMsPath) { // Для продакшна: если в пути есть /ms/, то API доступно по /ms/questioneer/api return '/ms/questioneer/api'; } else { // Для локальной разработки: формируем путь к API для главной страницы // Убираем завершающий слеш, если он есть const basePath = pathname.endsWith('/') ? pathname.slice(0, -1) : pathname; // Путь до API приложения return basePath + '/api'; } }; // Функция для загрузки списка опросов const loadQuestionnaires = () => { $.ajax({ url: getApiPath() + '/questionnaires', method: 'GET', success: function(result) { if (result.success) { renderQuestionnaires(result.data); } else { $('#questionnaires-container').html(`

Ошибка: ${result.error}

`); } }, error: function(error) { console.error('Error loading questionnaires:', error); $('#questionnaires-container').html('

Не удалось загрузить опросы. Пожалуйста, попробуйте позже.

'); } }); }; // Функция для отображения списка опросов const renderQuestionnaires = (questionnaires) => { if (!questionnaires || questionnaires.length === 0) { $('#questionnaires-container').html('

У вас еще нет созданных опросов.

'); return; } // Получаем базовый путь (для работы и с /questioneer, и с /ms/questioneer) const basePath = (() => { const pathname = window.location.pathname; const isMsPath = pathname.includes('/ms/questioneer'); if (isMsPath) { // Для продакшна: нужно использовать /ms/questioneer/ для ссылок return '/ms/questioneer/'; } else { // Для локальной разработки: используем текущий путь return pathname.endsWith('/') ? pathname : pathname + '/'; } })(); const questionnairesHTML = questionnaires.map(q => `

${q.title}

${q.description || 'Нет описания'}

Создан: ${new Date(q.createdAt).toLocaleString()}

`).join(''); $('#questionnaires-container').html(questionnairesHTML); }; // Инициализация страницы loadQuestionnaires(); // Обновление данных каждые 30 секунд setInterval(loadQuestionnaires, 30000); });