403Webshell
Server IP : 173.209.174.21  /  Your IP : 216.73.216.89
Web Server : Apache/2.4.58 (Ubuntu)
System : Linux wcfs-server 6.8.0-124-generic #124-Ubuntu SMP PREEMPT_DYNAMIC Tue May 26 13:00:45 UTC 2026 x86_64
User : nodor ( 1000)
PHP Version : 8.3.6
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/www/wcsd/School-alert/js/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/wcsd/School-alert/js/main.js
// Function to request notification permission
function requestNotificationPermission() {
    if (Notification.permission === "default") {
        Notification.requestPermission().then(function(permission) {
            if (permission === "granted") {
                console.log("Permission granted for notifications.");
            } else {
                console.log("Permission denied for notifications.");
            }
        });
    }
}

// Request permission when the page loads
document.addEventListener('DOMContentLoaded', function() {
    requestNotificationPermission();
});

// Function to show notification
function showNotification(alert) {
    if (Notification.permission === "granted") {
        const notification = new Notification("New Alert: " + alert.type, {
            body: alert.message,
            icon: "images/edulert-logo.png" // You can specify an icon
        });

        // Add a click event to the notification (optional)
        notification.onclick = function () {
            window.focus(); // Bring the window to the foreground
            notification.close();
        };
    }
}

// Function to fetch the latest alerts from the server
function fetchAlerts() {
    fetch('alerts.php')  // Send GET request to alerts.php
        .then(response => response.json())  // Parse JSON response
        .then(data => {
            console.log("Alerts fetched:", data); // Debugging: Check the fetched alerts
            if (data.length > 0) {
                updateAlertList(data);  // Update the alert list if data is returned
                // Show notifications for new alerts
                data.forEach(alert => showNotification(alert));
            } else {
                console.log("No new alerts.");
            }
        })
        .catch(error => {
            console.error('Error fetching alerts:', error);
        });
}

// Function to update the alert list on the page
function updateAlertList(alerts) {
    const alertContainer = document.getElementById('active-alerts-container');  // Get the correct container
    alertContainer.innerHTML = '';  // Clear any existing alerts

    // Loop through the alerts and create HTML elements for them
    alerts.forEach(alert => {
        const alertElement = document.createElement('div');
        alertElement.classList.add('alert', 'blinking-alert');  // Add blinking-alert class to active alerts
        alertElement.innerHTML = `
            <h4>${alert.type}</h4>
            <p>${alert.message}</p>
            <p><strong>Date:</strong> ${alert.timestamp}</p>
            <!-- Acknowledge button for active alerts -->
            <form method="POST" action="dashboard.php" style="display:inline;">
                <input type="hidden" name="acknowledge_alert_id" value="${alert.alert_id}">
                <button type="submit" style="background-color: green; color: white; padding: 5px 10px; border: none; cursor: pointer;">Acknowledge</button>
            </form>
        `;
        alertContainer.appendChild(alertElement);  // Append new alert to the Active Alerts container
    });
}

// Start polling for new alerts every 2 seconds
setInterval(fetchAlerts, 2000);

// Call fetchAlerts initially when the page loads
fetchAlerts();

Youez - 2016 - github.com/yon3zu
LinuXploit