Untitled

 avatar
unknown
javascript
a month ago
6.0 kB
3
Indexable
// Haber ekleme işlemi (add-news.html)
document.getElementById('news-form')?.addEventListener('submit', async (event) => {
    event.preventDefault();

    const title = document.getElementById('title').value;
    const content = document.getElementById('content').value;
    const imageUrl = document.getElementById('image-url').value;

    const response = await fetch('/api/add-news', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json'
        },
        body: JSON.stringify({ title, content, imageUrl })
    });

    if (response.ok) {
        alert('Haber başarıyla eklendi!');
        window.location.href = '/public/admin-panel.html'; // Haber eklendikten sonra admin paneline yönlendir
    } else {
        alert('Haber eklenirken bir hata oluştu.');
    }
});

// Haberleri listeleme işlemi (index.html)
async function fetchNews() {
    const response = await fetch('/api/news');
    const news = await response.json();

    const newsHeading = document.getElementById('news-heading');
    const newsCards = document.getElementById('news-cards');

    if (newsCards === null) {
        console.error("newsCards öğesi bulunamadı.");
        return;
    }

    newsCards.innerHTML = '';

    if (news.length === 0) {
        newsHeading.classList.add('d-none'); // Haber yoksa başlığı gizle
    } else {
        newsHeading.classList.remove('d-none'); // Haber varsa başlığı göster

        news.forEach((item, index) => {
            const card = `
                <div class="col-md-4 mb-4">
                    <div class="card">
                        ${item.imageUrl ? `<img src="${item.imageUrl}" class="card-img-top" alt="Haber Resmi">` : ''}
                        <div class="card-body">
                            <h5 class="card-title">${item.title}</h5>
                            <p class="card-text">${item.content}</p>
                        </div>
                    </div>
                </div>
            `;
            newsCards.innerHTML += card;
        });
    }
}

fetchNews();

// Sunucu durumunu almak ve göstermek
document.addEventListener('DOMContentLoaded', function() {
    fetchServerStatus();

    async function fetchServerStatus() {
        try {
            const response = await fetch('/api/server-status');
            const data = await response.json();

            // ID'leri kontrol edelim ve ilgili öğeleri seçelim
            const serverStatusIndicator = document.getElementById('server-status-indicator');
            const playerCount = document.getElementById('player-count');
            const map = document.getElementById('map');
            const gameMode = document.getElementById('game-mode');
            const ping = document.getElementById('ping');
            const playerListElement = document.getElementById('player-list');
            const topThreePlayersElement = document.getElementById('top-three-players');

            // ID'lerin null olup olmadığını kontrol edelim
            if (!serverStatusIndicator || !playerCount || !map || !gameMode || !ping || !playerListElement || !topThreePlayersElement) {
                console.error("HTML öğeleri bulunamadı.");
                return;
            }

            if (data.error) {
                serverStatusIndicator.innerText = data.error;
            } else {
                serverStatusIndicator.innerText = data.status;
                playerCount.innerText = data.players;
                map.innerText = data.map;
                gameMode.innerText = data.gameMode;
                ping.innerText = data.ping;

                playerListElement.innerHTML = '';
                data.playerList.forEach(player => {
                    const listItem = document.createElement('li');
                    listItem.className = 'list-group-item';
                    listItem.innerText = `${player.name} - Score: ${player.score}`;
                    playerListElement.appendChild(listItem);
                });

                // Liderler bölümünü doldur
                const topThreePlayers = data.playerList.slice(0, 3); // İlk üç oyuncuyu al
                topThreePlayersElement.innerHTML = '';
                topThreePlayers.forEach(player => {
                    const playerCard = document.createElement('div');
                    playerCard.className = 'col-md-4';
                    playerCard.innerHTML = `
                        <div class="card">
                            <div class="card-body">
                                <h5 class="card-title">${player.name}</h5>
                                <p class="card-text">Score: ${player.score}</p>
                            </div>
                        </div>
                    `;
                    topThreePlayersElement.appendChild(playerCard);
                });
            }
        } catch (error) {
            document.getElementById('server-status-indicator').innerText = 'Sunucu durumu alınamadı.';
            console.error('Sunucu durumu alınamadı:', error);
        }
    }
});

// Modal açıldığında ve kapatıldığında kaydırma çubuğunu koruma
$('#connectModal').on('show.bs.modal', function () {
    $('body').css('overflow', 'auto');
});

$('#connectModal').on('hide.bs.modal', function () {
    $('body').css('overflow', 'auto');
});

// Buton 2'ye tıklandığında IP adresini ve portu kopyalama
document.getElementById('copyButton')?.addEventListener('click', () => {
    const serverInfo = "192.168.1.1:27015"; // Sunucunuzun IP adresi ve portunu buraya ekleyin
    navigator.clipboard.writeText(serverInfo).then(() => {
        const copyMessage = document.getElementById('copyMessage');
        copyMessage.style.display = 'block'; // Kopyalandı mesajını göster
        setTimeout(() => {
            copyMessage.style.display = 'none'; // 3 saniye sonra mesajı gizle
        }, 3000);
    }).catch(err => {
        console.error('Kopyalama başarısız:', err);
    });
});
Leave a Comment