📁 PHP Dosya Yöneticisi
/
/
home
/
demodesigncom
/
falscripti.demodesign.com.tr
/
ns-admin
📝
chat.js
← Geri Dön
var currentUserKey = null; var chats = []; var bildirimToken = ''; firebase.database().ref('chat').limitToLast(30).on('value', function (snapshot) { chats = []; snapshot.forEach(function (chatSnapshot) { var chat = chatSnapshot.val(); chat.key = chatSnapshot.key; if (chat.adminGorunur === true) { var latestSentTime = 0; for (var messageKey in chat.messages) { var sentTime = chat.messages[messageKey].sentTime; if (sentTime) { var sentTimeAsNumber = new Date(sentTime).getTime(); if (sentTimeAsNumber > latestSentTime) { latestSentTime = sentTimeAsNumber; } } } chat.latestSentTime = latestSentTime; chats.push(chat); } }); chats.sort(function (a, b) { return b.latestSentTime - a.latestSentTime; }); var usersList = document.getElementById('chat-list'); usersList.innerHTML = ''; chats.forEach(function (chat) { var userDiv = document.createElement('li'); userDiv.className = 'chat-contact-list-item'; userDiv.innerHTML = ` <a class="d-flex align-items-center"> <div class="flex-shrink-0 avatar"> <img src="${chat.userFoto}" alt="Avatar" class="rounded-circle" /> </div> <div class="chat-contact-info flex-grow-1 ms-2"> <h6 class="chat-contact-name text-truncate m-0">${chat.falBaktiran}</h6> <p class="chat-contact-status text-muted text-truncate mb-0"> ${chat.sonMesaj} </p> </div> <small class="text-muted mb-auto">${chat.saat}</small> </a>`; userDiv.addEventListener('click', () => { // Diğer tüm chat öğelerinden aktif sınıfını kaldırın chats.forEach(function (item) { item.isActive = false; }); // Tıklanan chat'i aktif olarak işaretleyin chat.isActive = true; // Tüm chat-contact-list-item öğelerinden aktif sınıfını kaldırın var chatContactListItems = document.querySelectorAll('.chat-contact-list-item'); chatContactListItems.forEach(function (item) { item.classList.remove('active'); }); // Tıklanan chat-contact-list-item öğesine aktif sınıfını ekle userDiv.classList.add('active'); // Avatar resmini ve başlığı güncelleyin var avatarImage = document.querySelector('.chatAvatar'); if (avatarImage) { avatarImage.src = chat.userFoto; } var onaylaGonderButton = document.querySelector('.onaylaGonder'); var konusmBitirButton = document.querySelector('.konusmaBitir'); var sohbetGorunmezYapButton = document.querySelector('.sohbetGorunmezYap'); var onayDurumu = document.querySelector('.onayDurumu'); if (chat.onay == 0 || chat.onay == "0") { onayDurumu.textContent = 'Bekleniyor... '; onaylaGonderButton.style.visibility = "visible"; konusmBitirButton.style.visibility = "visible"; sohbetGorunmezYapButton.style.visibility = "visible"; } if (chat.onay == 1 || chat.onay == "1") { onayDurumu.textContent = 'Onaylama Gönderildi... '; onaylaGonderButton.style.visibility = "hidden"; konusmBitirButton.style.visibility = "visible"; sohbetGorunmezYapButton.style.visibility = "visible"; } if (chat.onay == 2 || chat.onay == "2") { onayDurumu.textContent = 'Onaylandı... '; onaylaGonderButton.style.visibility = "hidden"; konusmBitirButton.style.visibility = "visible"; sohbetGorunmezYapButton.style.visibility = "visible"; } if (chat.onay == 3 || chat.onay == "3") { onaylaGonderButton.style.visibility = "hidden"; konusmBitirButton.style.visibility = "hidden"; onayDurumu.textContent = 'Konuşma Bitti... '; sohbetGorunmezYapButton.style.visibility = "visible"; } if (chat.onay == 4 || chat.onay == "4") { onaylaGonderButton.style.visibility = "hidden"; konusmBitirButton.style.visibility = "hidden"; onayDurumu.textContent = 'Reddedildi... '; sohbetGorunmezYapButton.style.visibility = "visible"; } var selectedUserTitle = document.querySelector('.chatAdSoyad'); var kisiselBilgilerTitle = document.querySelector('.kisiselBilgiler'); selectedUserTitle.textContent = `${chat.falBaktiran} | Falcısı : ${chat.falciAd}`; kisiselBilgilerTitle.textContent = `${chat.kisiselBilgiler}`; displayChat(chat.key); }); if (chat.isActive) { userDiv.classList.add('active'); } usersList.appendChild(userDiv); var hr = document.createElement('hr'); hr.className = 'my-2'; usersList.appendChild(hr); }); if (currentUserKey === null) { var firstChatElement = document.querySelector('.chat-contact-list-item'); if (firstChatElement) { firstChatElement.click(); } } }); // Firebase veritabanındaki chat verilerinde değişiklikleri dinleyin firebase.database().ref('chat').on('child_changed', function (snapshot) { var updatedChat = snapshot.val(); var chatKey = snapshot.key; // Güncelleme yapılan chat'i tespit edin ve sayfadaki bilgileri güncelleyin var updatedChatIndex = chats.findIndex(function (chat) { return chat.key === chatKey; }); if (updatedChatIndex !== -1) { chats[updatedChatIndex] = updatedChat; updateChatUI(updatedChat); } }); // Sayfadaki chat görünümünü güncelleyen fonksiyon function updateChatUI(chat) { var onayDurumu = document.querySelector('.onayDurumu'); var onaylaGonderButton = document.querySelector('.onaylaGonder'); var konusmBitirButton = document.querySelector('.konusmaBitir'); var sohbetGorunmezYapButton = document.querySelector('.sohbetGorunmezYap'); if (onayDurumu) { if (chat.onay == 0 || chat.onay == "0") { onayDurumu.textContent = 'Bekleniyor... '; onaylaGonderButton.style.visibility = "visible"; konusmBitirButton.style.visibility = "visible"; sohbetGorunmezYapButton.style.visibility = "visible"; } if (chat.onay == 1 || chat.onay == "1") { onayDurumu.textContent = 'Onaylama Gönderildi... '; onaylaGonderButton.style.visibility = "hidden"; konusmBitirButton.style.visibility = "visible"; sohbetGorunmezYapButton.style.visibility = "visible"; } if (chat.onay == 2 || chat.onay == "2") { onayDurumu.textContent = 'Onaylandı... '; onaylaGonderButton.style.visibility = "hidden"; konusmBitirButton.style.visibility = "visible"; sohbetGorunmezYapButton.style.visibility = "visible"; } if (chat.onay == 3 || chat.onay == "3") { onaylaGonderButton.style.visibility = "hidden"; konusmBitirButton.style.visibility = "hidden"; sohbetGorunmezYapButton.style.visibility = "visible"; onayDurumu.textContent = 'Konuşma Bitti... '; } if (chat.onay == 4 || chat.onay == "4") { onaylaGonderButton.style.visibility = "hidden"; konusmBitirButton.style.visibility = "hidden"; sohbetGorunmezYapButton.style.visibility = "visible"; onayDurumu.textContent = 'Reddedildi... '; } console.log('Çalıştı'); bildirimToken = chat.userBildirimToken; console.log(bildirimToken); } } function displayChat(chatRoomKey) { var chatHistoryBody = document.querySelector('.chat-history-body'); currentUserKey = chatRoomKey; var messagesRef = firebase.database().ref('chat/' + chatRoomKey + '/messages'); messagesRef.on('value', function (snapshot) { var messages = snapshot.val(); var chatHistory = document.getElementById('chat-history'); chatHistory.innerHTML = ''; for (var key in messages) { var message = messages[key]; var messageDiv = document.createElement('li'); messageDiv.className = message.uid === 'Falci' ? 'chat-message chat-message-right ' : 'chat-message'; var tarihM = message.sentTime; var saatM = new Date(tarihM).getHours(); var dakikaM = new Date(tarihM).getMinutes(); var messageContent = message.isText ? `<p class="mb-0" style="white-space: normal; word-break: break-word; overflow-wrap: break-word;">${message.message}</p>` : `<img class="mb-0" src="${message.message}" width="200" />`; messageDiv.innerHTML = `<div class="chat-message-wrapper flex-grow-1"> <div class="chat-message-text"> ${messageContent} </div> <div class="text-end text-muted mt-1"> <small>${saatM}:${dakikaM}</small> </div> </div>`; chatHistory.appendChild(messageDiv); } chatHistoryBody.scrollTop = chatHistoryBody.scrollHeight; }); chatHistoryBody.scrollTop = 0; setTimeout(function () { chatHistoryBody.scrollTop = chatHistoryBody.scrollHeight; }, 1000); } document.querySelector('.send-msg-btn').addEventListener('click', function (e) { e.preventDefault(); var messageText = document.querySelector('.message-input').value; if (currentUserKey && messageText) { var simdikiZaman = new Date(); var tarihDizisi = simdikiZaman.toISOString(); tarihDizisi = tarihDizisi.slice(0, 26); var newMessageRef = firebase.database().ref('chat/' + currentUserKey + '/messages').push(); newMessageRef.set({ isText: true, uid: 'Falci', sentTime: tarihDizisi, message: messageText, }); var saat = simdikiZaman.getHours(); var dakika = simdikiZaman.getMinutes(); var chatUpdate = firebase.database().ref('chat/' + currentUserKey); chatUpdate.update({ saat: `${saat}:${dakika}`, sonMesaj: messageText, }); var message = "Yeni bir mesajınız var: " + messageText; var playerIds = []; playerIds.push(bildirimToken); playerIds.forEach(playerId => { sendOneSignalNotification(playerId, message); }); document.querySelector('.message-input').value = ''; } }); document.querySelector('.onaylaGonder').addEventListener('click', function (e) { e.preventDefault(); if (currentUserKey) { var chatUpdate = firebase.database().ref('chat/' + currentUserKey); chatUpdate.update({ onay: `1`, }); document.querySelector('.message-input').value = ''; } }); document.querySelector('.konusmaBitir').addEventListener('click', function (e) { e.preventDefault(); if (currentUserKey) { var chatUpdate = firebase.database().ref('chat/' + currentUserKey); chatUpdate.update({ onay: `3`, }); document.querySelector('.message-input').value = ''; } }); document.querySelector('.sohbetGorunmezYap').addEventListener('click', function (e) { e.preventDefault(); if (currentUserKey) { var chatUpdate = firebase.database().ref('chat/' + currentUserKey); chatUpdate.update({ adminGorunur: false, }); document.querySelector('.message-input').value = ''; currentUserKey = null; window.location.reload(false); } }); function sendOneSignalNotification(playerId, message) { var headers = { "Content-Type": "application/json; charset=utf-8", "Authorization": "Basic MzYyYTIyNTYtZDE5YS00NWY3LTk4YjUtMTE0NDQyMzZlMzU5" }; var payload = { app_id: "3feebca9-8d32-42e5-90e1-6c6aae3147b6", include_player_ids: [playerId], contents: { "en": message } }; fetch("https://onesignal.com/api/v1/notifications", { method: "POST", headers: headers, body: JSON.stringify(payload) }) .then(response => response.json()) .then(data => { console.log("Notification sent successfully:", data); }) .catch(error => { console.error("Error sending notification:", error); }); }
💾 Kaydet
İptal
📝 Yeniden Adlandır
İptal
Kaydet
🔐 Dosya İzinleri (chmod)
İzin Değeri:
Hızlı Seçim:
777
755
644
600
777
= Herkes okur/yazar/çalıştırır
755
= Sahip tam, diğerleri okur/çalıştırır
644
= Sahip okur/yazar, diğerleri okur
600
= Sadece sahip okur/yazar
İptal
Uygula