Mayıs 2025
Pzt
Sal
Çar
Per
Cum
Cmt
Paz
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 1
31

22 Mayıs 2025

Bugün için planlanmış etkinlik bulunmuyor.

","Telefon":"0318 357 42 42 - 2300","Santral":"0318-3574242","Faks":"0318-3574242","OgrenciIsleriTelefon":"444 99 71","Email":"iktisat@kku.edu.tr","Durum":true,"SiteDili":"1","YoneticiDilDurum":true,"DefaultDil":"1","No":188,"Tarih":"2020-08-16T15:19:14.197"},"BaslikTr":"KADIN EMEĞİNE DEĞER KATAN BİR BULUŞMA: \"Kadın Emeği Boşa Gitmesin\" Etkinliği","GirisTr":"KADIN EMEĞİNE DEĞER KATAN BİR BULUŞMA: \"Kadın Emeği Boşa Gitmesin\" Etkinliği","IcerikTr":"","IcerikEng":"","EtkinlikTarih":"2025-05-30T00:00:00","BaslangicTarih":"2025-05-20T00:00:00","BitisTarih":"2025-07-19T14:46:16","Durum":true,"DilNo":1,"SiteNo":188,"Sira":1,"No":7051,"Tarih":"2025-05-20T14:47:15"}]; // Takvim ve etkinlik listesi yüksekliğini eşitleme function equalizeHeight() { const takvimEl = document.querySelector('.etkinlik-takvimi'); const etkinlikEl = document.querySelector('.gunun-etkinlikleri'); if (!takvimEl || !etkinlikEl) return; // Önce doğal yüksekliklere dönüş takvimEl.style.height = 'auto'; etkinlikEl.style.height = 'auto'; // Kısa bir gecikme sonra yükseklikleri ölç ve eşitle (DOM'un düzgün render olması için) setTimeout(() => { // Minimum yükseklik 440px const minHeight = 350; // Her ikisine de min-height uygulanmış olsa da, daha büyük olanın yüksekliğini al const height = Math.max( minHeight, takvimEl.offsetHeight, etkinlikEl.offsetHeight ); // Her iki elemana da aynı yüksekliği uygula takvimEl.style.height = height + 'px'; etkinlikEl.style.height = height + 'px'; takvimEl.style.width = height-34 + 'px'; etkinlikEl.style.width = height-34 + 'px'; // Badge'lerin görünürlüğünü yeniden kontrol et fixEventBadges(); }, 100); } // Sayfa yüklendiğinde ve yeniden boyutlandırıldığında çalıştır window.addEventListener('load', equalizeHeight); window.addEventListener('resize', () => { // Boyut değişikliklerinde throttling uygula clearTimeout(window.resizeTimer); window.resizeTimer = setTimeout(equalizeHeight, 250); }); // Takvim içindeki event badgelerin görünürlüğünü iyileştir function fixEventBadges() { document.querySelectorAll('.etkinlik-gosterge').forEach(badge => { // Badge'lerin görünürlüğünü sağla badge.style.visibility = 'visible'; badge.style.display = 'flex'; badge.style.opacity = '1'; badge.style.zIndex = '10'; // Badge içindeki içeriğin görünürlüğünü sağla const badgeContent = badge.querySelector('.event-badge, .nokta'); if (badgeContent) { badgeContent.style.visibility = 'visible'; badgeContent.style.display = 'flex'; badgeContent.style.opacity = '1'; } }); } // Event badgeleri birkaç kez kontrol et - ilk yüklenme sorunlarını çözmek için fixEventBadges(); // Hemen çalıştır setTimeout(fixEventBadges, 100); setTimeout(fixEventBadges, 500); setTimeout(fixEventBadges, 1000); // Takvim etkileşimleri const tarihler = document.querySelectorAll('.tarih:not(.bos)'); const gunBaslik = document.querySelector('.gunun-etkinlikleri h3'); const etkinlikListesi = document.getElementById('etkinlik-listesi'); let selectedMonth = 5; let selectedYear = 2025; // Ay-Yıl Popover Oluşturma const ayYilSecici = document.getElementById('ay-yil-secici'); const currentMonthEl = document.getElementById('current-month'); const currentYearEl = document.getElementById('current-year'); // Popover içeriği oluştur let popoverContent = `
Ay Seçin
Yıl Seçin
`; // Ayları ekle const aylar = []; for(let i = 0; i < 12; i++) { const date = new Date(2020, i, 1); const ayAdi = date.toLocaleString('tr-TR', { month: 'long' }); const isActive = i + 1 === selectedMonth ? 'active' : ''; popoverContent += `
${ayAdi}
`; } popoverContent += `
`; // Yılları ekle const currentYear = new Date().getFullYear(); for(let i = currentYear - 2; i <= currentYear + 5; i++) { const isActive = i === selectedYear ? 'active' : ''; popoverContent += `
${i}
`; } popoverContent += `
`; // Popover oluştur $(ayYilSecici).popover({ html: true, content: popoverContent, container: 'body', trigger: 'click' }); // Popover açıldığında olayları ekle $(ayYilSecici).on('shown.bs.popover', function() { // Tab geçişleri document.querySelectorAll('.popover-tab').forEach(tab => { tab.addEventListener('click', function() { // Aktif tab'ı değiştir document.querySelectorAll('.popover-tab').forEach(t => t.classList.remove('active')); this.classList.add('active'); // Aktif paneli göster const targetPanel = this.getAttribute('data-target'); document.querySelectorAll('.popover-panel').forEach(p => p.classList.remove('active')); document.getElementById(targetPanel).classList.add('active'); }); }); // Ay seçimi document.querySelectorAll('.ay-item').forEach(item => { item.addEventListener('click', function() { const month = parseInt(this.getAttribute('data-month')); selectedMonth = month; // Ay adını güncelle currentMonthEl.textContent = new Date(selectedYear, month - 1, 1).toLocaleString('tr-TR', { month: 'long' }); // Popover'ı kapat $(ayYilSecici).popover('hide'); // Takvimi güncelle takvimGuncelle(selectedMonth, selectedYear); }); }); // Yıl seçimi document.querySelectorAll('.yil-item').forEach(item => { item.addEventListener('click', function() { const year = parseInt(this.getAttribute('data-year')); selectedYear = year; // Yıl metnini güncelle currentYearEl.textContent = year; // Popover'ı kapat $(ayYilSecici).popover('hide'); // Takvimi güncelle takvimGuncelle(selectedMonth, selectedYear); }); }); }); // Takvim tarihleri için tıklama olayı tarihler.forEach(tarih => { tarih.addEventListener('click', function() { // Tüm seçili tarihleri temizle tarihler.forEach(t => t.classList.remove('secili')); // Bu tarihi seçili olarak işaretle this.classList.add('secili'); // Seçili tarihin bilgilerini al const gun = this.getAttribute('data-day'); const ay = this.getAttribute('data-month'); const yil = this.getAttribute('data-year'); const ayAdi = new Date(yil, ay - 1, 1).toLocaleString('tr-TR', { month: 'long' }); // Başlığı güncelle gunBaslik.textContent = `${gun} ${ayAdi} ${yil}`; // Etkinlik listesini güncelle gununEtkinlikleriniGoster(gun, ay, yil); }); }); // Etkinlikleri göster fonksiyonu function gununEtkinlikleriniGoster(gun, ay, yil) { // Gerçek uygulamada AJAX ile verileri çekebiliriz // Bu örnekte statik veri ile gösteriyoruz // Önce listeyi temizle ve yükleniyor göster etkinlikListesi.innerHTML = '
Etkinlikler yükleniyor...
'; // Gecikme ekleyerek yükleme hissi ver setTimeout(() => { // Seçilen gün için etkinlikleri filtrele const seciliGunEtkinlikleri =tumetkinlikler .filter(e => { const etkinlikTarih = new Date(e.EtkinlikTarih); return etkinlikTarih.getDate() == gun && (etkinlikTarih.getMonth() + 1) == ay && etkinlikTarih.getFullYear() == yil; }); // Listeyi güncelle if (seciliGunEtkinlikleri.length > 0) { let html = ''; seciliGunEtkinlikleri.forEach((etkinlik, index) => { html += ` `; }); etkinlikListesi.innerHTML = html; } else { etkinlikListesi.innerHTML = '

Bu gün için planlanmış etkinlik bulunmuyor.

'; } // Yükseklikleri yeniden eşitle setTimeout(equalizeHeight, 100); }, 300); } // Etkinlik URL oluşturucu yardımcı fonksiyonu function getEtkinlikUrl(no) { return '/Anasayfa/Etkinlik/Index/' + no; } // Önceki ve sonraki ay butonları const ayOncekiBtn = document.querySelector('.ay-onceki'); const aySonrakiBtn = document.querySelector('.ay-sonraki'); ayOncekiBtn.addEventListener('click', function() { selectedMonth--; if (selectedMonth < 1) { selectedMonth = 12; selectedYear--; } // Ay ve yıl görüntüsünü güncelle currentMonthEl.textContent = new Date(selectedYear, selectedMonth - 1, 1).toLocaleString('tr-TR', { month: 'long' }); currentYearEl.textContent = selectedYear; // Takvimi güncelle takvimGuncelle(selectedMonth, selectedYear); }); aySonrakiBtn.addEventListener('click', function() { selectedMonth++; if (selectedMonth > 12) { selectedMonth = 1; selectedYear++; } // Ay ve yıl görüntüsünü güncelle currentMonthEl.textContent = new Date(selectedYear, selectedMonth - 1, 1).toLocaleString('tr-TR', { month: 'long' }); currentYearEl.textContent = selectedYear; // Takvimi güncelle takvimGuncelle(selectedMonth, selectedYear); }); // Takvimi güncelleme fonksiyonu function takvimGuncelle(ay, yil) { const takvimEl = document.getElementById('takvim-tarihler'); // Yükleniyor efekti takvimEl.style.opacity = '0.5'; setTimeout(() => { // Ayın ilk günü ve gün sayısı const firstDay = new Date(yil, ay - 1, 1); const lastDay = new Date(yil, ay, 0); const daysInMonth = lastDay.getDate(); // Haftanın hangi gününde başlıyor (0: Pazar, 1: Pazartesi...) let firstDayOfWeek = firstDay.getDay(); // Pazartesi = 0 olacak şekilde ayarla firstDayOfWeek = firstDayOfWeek == 0 ? 6 : firstDayOfWeek - 1; // Bugünün tarihi const today = new Date(); // Takvimi oluştur let html = ''; // Boş günler for (let i = 0; i < firstDayOfWeek; i++) { html += '
'; } // Ayın günleri for (let day = 1; day <= daysInMonth; day++) { const isToday = day === today.getDate() && ay === (today.getMonth() + 1) && yil === today.getFullYear(); // Bu gün için etkinlik var mı kontrol et const etkinlikler = tumetkinlikler .filter(e => { const etkinlikTarih = new Date(e.EtkinlikTarih); return etkinlikTarih.getDate() == day && (etkinlikTarih.getMonth() + 1) == ay && etkinlikTarih.getFullYear() == yil; }); const hasEvent = etkinlikler.length > 0; html += `
${day} ${hasEvent ? ` ${etkinlikler.length} ` : ''}
`; } takvimEl.innerHTML = html; takvimEl.style.opacity = '1'; // Badge'lerin görünürlüğünü düzenle fixEventBadges(); setTimeout(fixEventBadges, 50); setTimeout(fixEventBadges, 150); // Yükseklikleri eşitle setTimeout(equalizeHeight, 100); // Yeni tarihlere tıklama olayı ekle const yeniTarihler = document.querySelectorAll('.tarih:not(.bos)'); yeniTarihler.forEach(tarih => { tarih.addEventListener('click', function() { // Tüm seçili tarihleri temizle yeniTarihler.forEach(t => t.classList.remove('secili')); // Bu tarihi seçili olarak işaretle this.classList.add('secili'); // Seçili tarihin bilgilerini al const gun = this.getAttribute('data-day'); const ay = this.getAttribute('data-month'); const yil = this.getAttribute('data-year'); const ayAdi = new Date(yil, ay - 1, 1).toLocaleString('tr-TR', { month: 'long' }); // Başlığı güncelle gunBaslik.textContent = `${gun} ${ayAdi} ${yil}`; // Etkinlik listesini güncelle gununEtkinlikleriniGoster(gun, ay, yil); }); }); }, 300); } // Sayfa ilk yüklendiğinde bugünün tarihini işaretle const bugun = document.querySelector('.tarih.bugun'); if (bugun) { bugun.classList.add('secili'); } // İlk yüklemede mevcut ayın verilerini yenile // Sayfanın tam yüklenmesi için kısa bir gecikme ekleyelim setTimeout(() => { // Mevcut ayın verilerini yeniden yükle takvimGuncelle(selectedMonth, selectedYear); // Badge'lerin doğru görünmesi için birkaç kez kontrol fixEventBadges(); setTimeout(fixEventBadges, 200); setTimeout(fixEventBadges, 400); setTimeout(fixEventBadges, 800); }, 100); });