$(document).ready(function() { const regionList = $('#region-list'); const userInfo = $('#user-info'); const userList = $('#user-list'); const curentRegion = $('#curent-region') const pagination = $('#pagination'); let regions = []; let users = []; let selectedRegionName = null; let selectedRegionId = null; const regionsPerPage = 10; let currentPage = 1; // Загрузка регионов function loadRegions() { $.getJSON('/telezab/regions/get', function(data) { regions = data; regions.sort((a, b) => a.region_id - b.region_id); // Сортировка по региону renderRegions(); renderPagination(); }).fail(function() { console.error("Не удалось получить регионы."); }); } // Загрузка пользователей function loadUsers() { $.getJSON('/telezab/users/get', function(data) { users = data; }).fail(function() { console.error("Не удалось получить пользователей."); }); } // Отрисовка списка регионов function renderRegions() { regionList.empty(); const start = (currentPage - 1) * regionsPerPage; const end = start + regionsPerPage; const paginatedRegions = regions.slice(start, end); paginatedRegions.forEach(region => { const listItem = $('', { href: '#', class: 'list-group-item list-group-item-action', text: `${region.region_name} (${region.region_id})`, 'data-region-id': region.region_id, 'data-region-name': region.region_name }).on('click', function() { selectedRegionId = $(this).data('region-id'); selectedRegionName = $(this).data('region-name'); showRegionDetails(); }); regionList.append(listItem); }); } // Отрисовка кнопок пагинации function renderPagination() { pagination.empty(); const totalPages = Math.ceil(regions.length / regionsPerPage); for (let i = 1; i <= totalPages; i++) { const pageItem = $('
  • ', { class: `page-item ${i === currentPage ? 'active' : ''}` }).append($('', { class: 'page-link', href: '#', text: i }).on('click', function(e) { e.preventDefault(); currentPage = i; renderRegions(); renderPagination(); })); pagination.append(pageItem); } } // Показать детали региона function showRegionDetails() { userInfo.empty(); userList.empty(); curentRegion.empty(); // Очистить текущий элемент // Найти текущий регион по selectedRegionId const selectedRegion = regions.find(region => region.region_name === selectedRegionName); // Проверить, что регион найден if (selectedRegion) { // Создать и добавить заголовок h3 с именем региона var newHeading = $('

    ').text(selectedRegion.region_name); $('#curent-region').append(newHeading); } else { $('#curent-region').text('Регион не найден.'); } // Фильтровать пользователей, подписанных на этот регион const subscribedUsers = users.filter(user => user.subscriptions.split(', ').includes(selectedRegionId.toString()) ); // Показать список пользователей или сообщение, если подписчиков нет if (subscribedUsers.length > 0) { subscribedUsers.forEach(user => { userList.append(`
  • ${user.email}
  • `); }); } else { userInfo.text('Нет подписчиков на этот регион.'); } } // Инициализация loadRegions(); loadUsers(); // Обработчики кнопок в модальном окне $('#delete-region').on('click', function() { // Функция удаления региона console.log('Удалить регион', selectedRegionId); }); $('#disable-region').on('click', function() { // Функция отключения региона console.log('Отключить регион', selectedRegionId); }); $('#activate-region').on('click', function() { // Функция активации региона console.log('Активировать регион', selectedRegionId); }); });