# app/pages/Home/index.coffee document.head.insertAdjacentHTML('beforeend','') module.exports = name: 'Home' render: (new Function '_ctx', '_cache', renderFns['app/pages/Home/index.pug'])() data: -> heroSlides: [ { id: 1, image: 'https://avesta.tj/wp-content/uploads/2018/03/10-22.jpg', title: 'Классическая музыка', description: 'Вечер симфонической музыки', cta: 'Купить билеты' }, { id: 2, image: 'https://asiaplustj.info/sites/default/files/articles/176582/borbad.jpg', title: 'Фольклорные ансамбли', description: 'Традиционная музыка Таджикистана', cta: 'Подробнее' }, { id: 3, image: 'https://asiaplustj.info/sites/default/files/articles/211528/vdushanbeprosheltadzhiksko-indiyskiyselskohozyaystvennyyforum.jpg', title: 'Современные исполнители', description: 'Лучшие артисты страны', cta: 'Узнать расписание' } ] events: [ { id: 1, title: 'ШОМИ ДӮСТӢ»-И ТОҶИКИСТОНУ ҚАЗОҚИСТОН', date: '18 апрель 2022', description: 'Асосгузори сулҳу ваҳдати миллӣ — Пешвои миллат, Президенти Ҷумҳурии Тоҷикистон муҳтарам Эмомалӣ Раҳмон ва Раиси Маҷлиси миллии Маҷлиси Олии Ҷумҳурии Тоҷикистон, Раиси шаҳри Душанбе муҳтарам Рустам Эмомалӣ Президенти Ҷумҳурии Қазоқистон муҳтарам Қосим-Жомарт Токаев дар барномаи консертии «Шоми дӯстӣ» дар Маҷмааи давлатии «Кохи Борбад», ки дар доираи Рӯзҳои фарҳанги Қазоқистон баргузор мегардад, ҳузур доранд.', image: 'https://borbad.s5l.ru/assets/borbad.s5l.ru/001.jpg', category: '', price: '' }, { id: 2, title: 'ШОМИ ДӮСТӢ»-И ТОҶИКИСТОНУ ҚИРҒИЗИСТОН', date: '22 августа 2024', description: "Шоми 8 июл дар доираи сафари давлатии Президенти Қирғизистон ба Тоҷикистон дар толори бошукуҳи “Кохи Борбад” барномаи фарҳангии арбобони санъати Тоҷикистону Қирғизистон бо номи “Дӯстии абадӣ” баргузор гардид. Дар чорабинии фарҳангӣ Президенти мамлакат Эмомалӣ Раҳмон ва Президенти Қирғизистон Садир Жапаров иштирок намуданд.", image: 'https://borbad.s5l.ru/assets/borbad.s5l.ru/002.jpg', category: '', price: '' }, { id: 3, title: 'ШОМИ ДӮСТӢ»-И ТОҶИКИСТОНУ ӮЗБЕКИСТОН', date: '08 июля 2025', description: '10 июн Президенти Ҷумҳурии Тоҷикистон муҳтарам Эмомалӣ Раҳмон бо Президенти Ҷумҳурии Ӯзбекистон муҳтарам Шавкат Мирзиёев дар консерти тантанавии ходимони фарҳангу санъати Тоҷикистон ва Ӯзбекистон таҳти унвони “Шоми дӯстӣ”, ки дар Кохи Борбад баргузор шуд, иштирок намуданд.', image: 'https://borbad.s5l.ru/assets/borbad.s5l.ru/003.jpg', category: '', price: '' } ] eventFilters: [ { key: 'category', label: 'Категория', type: 'select', options: [ { value: 'all', label: 'Все' }, { value: 'classical', label: 'Классическая' }, { value: 'folk', label: 'Фольклор' }, { value: 'jazz', label: 'Джаз' }, { value: 'pop', label: 'Поп-музыка' } ]} ] eventSortOptions: [ { value: 'date-asc', label: 'По дате (сначала ближайшие)' }, { value: 'date-desc', label: 'По дате (сначала дальние)' }, { value: 'price-asc', label: 'По цене (сначала дешевые)' }, { value: 'price-desc', label: 'По цене (сначала дорогие)' } ] filteredEvents: [] mounted: -> #await this.loadData() this.filteredEvents = [...this.events] methods: loadData: -> # Получаем данные из глобального состояния this.heroSlides = _.getSliderEvents() || [] this.events = _.getFeaturedEvents() || [] # Если данных нет, ждем загрузки if this.heroSlides.length == 0 || this.events.length == 0 setTimeout => this.loadData() , 100 handleFilterChange: (filteredItems) -> this.filteredEvents = filteredItems handleSortChange: (sortedItems) -> this.filteredEvents = sortedItems openEventModal: (event) -> debug.log event openModal('EventDetailModal', { event: event }) handleSlideClick: (slide) -> if slide.category this.filteredEvents = this.events.filter((event) -> event.category == slide.category) this.scrollToEvents() else this.$router.push('/events') scrollToEvents: -> document.querySelector('.event-card')?.scrollIntoView({ behavior: 'smooth', block: 'start' }) handleSubscription: (formData) -> debug.log "Подписка оформлена: "+JSON.stringify(formData) openModal('SuccessModal', { title: 'Подписка оформлена!' content: 'Вы успешно подписались на рассылку анонсов мероприятий.' }) preloadHeroImages: -> this.heroSlides.forEach (slide) -> img = new Image() img.src = slide.image components: 'imageslider': require 'app/shared/ImageSlider' 'formvalidator': require 'app/shared/FormValidator' 'filtersort': require 'app/shared/FilterSort'