MediaWiki:Common.js: Difference between revisions

From Riverview Legal Group
Access restrictions were established for this page. If you see this message, you have no access to this page.
mNo edit summary
mNo edit summary
Line 3: Line 3:
mw.loader.using(['jquery', 'mediawiki.user'], function () {
mw.loader.using(['jquery', 'mediawiki.user'], function () {
     $(document).ready(function () {
     $(document).ready(function () {
        var popupShown = sessionStorage.getItem("popupShown");
         var popupTimeout1 = 120000; // 2 minutes for first popup
         var popupTimeout1 = 120000; // 2 minutes for first popup
         var popupTimeout2 = 180000; // 3 minutes for second popup
         var popupTimeout2 = 180000; // 3 minutes for second popup
        var timeoutTriggered = false;


         // Define the two popups
         // Define the two popups
         var popups = [
         var popups = [
             {
             {
                id: "popup1",
                 title: "Free Legal Consultation <br> Riverview Legal Group (Ontario)",
                 title: "Free Legal Consultation <br> Riverview Legal Group (Ontario)",
                 content: "Our primary focus is the Ontario Landlord and Tenant Board.<br>Call us for help at (888) 655-1076",
                 content: "Our primary focus is the Ontario Landlord and Tenant Board.<br>Call us for help at (888) 655-1076",
Line 19: Line 18:
             },
             },
             {
             {
                id: "popup2",
                 title: "Are you a Legal Professional?",
                 title: "Are you a Legal Professional?",
                 content: "Support our work with the Caselaw Ninja on Patreon.<br>Become a member today",
                 content: "Support our work with the Caselaw Ninja on Patreon.<br>Become a member today",
Line 41: Line 41:


         function showPopup(popupData) {
         function showPopup(popupData) {
             var popup = $('<div class="popup-overlay">' +
            if (sessionStorage.getItem(popupData.id)) return; // Prevent duplicate popups
           
             var popup = $('<div class="popup-overlay" id="' + popupData.id + '">' +
                 '<div class="popup-box" style="' + popupData.position + '">' +
                 '<div class="popup-box" style="' + popupData.position + '">' +
                 '<h2>' + popupData.title + '</h2>' +
                 '<h2>' + popupData.title + '</h2>' +
Line 52: Line 54:
             $("body").append(popup);
             $("body").append(popup);
             sendAnalyticsEvent(popupData.eventLabel);
             sendAnalyticsEvent(popupData.eventLabel);
            sessionStorage.setItem(popupData.id, "true");


             $(".popup-close").click(function () {
             $(".popup-close").click(function () {
Line 60: Line 63:
         var loggedInUser = mw.config.get('wgUserName');
         var loggedInUser = mw.config.get('wgUserName');
         console.log("Logged-in User:", loggedInUser);
         console.log("Logged-in User:", loggedInUser);
        sessionStorage.removeItem("popupShown");


         if (!loggedInUser) {
         if (!loggedInUser) {

Revision as of 05:12, 25 February 2025

console.log("Common.js is loading correctly!");

mw.loader.using(['jquery', 'mediawiki.user'], function () {
    $(document).ready(function () {
        var popupTimeout1 = 120000; // 2 minutes for first popup
        var popupTimeout2 = 180000; // 3 minutes for second popup

        // Define the two popups
        var popups = [
            {
                id: "popup1",
                title: "Free Legal Consultation <br> Riverview Legal Group (Ontario)",
                content: "Our primary focus is the Ontario Landlord and Tenant Board.<br>Call us for help at (888) 655-1076",
                link: "https://riverview.legal/about-us/",
                linkText: "Book a Consultation",
                eventLabel: "Legal Consultation Popup",
                position: "top: 20%; left: 50%; transform: translate(-50%, 0);"
            },
            {
                id: "popup2",
                title: "Are you a Legal Professional?",
                content: "Support our work with the Caselaw Ninja on Patreon.<br>Become a member today",
                link: "https://patreon.com/CaselawNinja",
                linkText: "Join Here",
                eventLabel: "Patreon Popup",
                position: "top: 60%; left: 50%; transform: translate(-50%, 0);"
            }
        ];

        function sendAnalyticsEvent(label) {
            if (typeof gtag === "function") {
                gtag('event', 'popup_shown', {
                    'event_category': 'Engagement',
                    'event_label': label,
                    'value': 1
                });
            } else {
                console.warn("Google Analytics not detected.");
            }
        }

        function showPopup(popupData) {
            if (sessionStorage.getItem(popupData.id)) return; // Prevent duplicate popups
            
            var popup = $('<div class="popup-overlay" id="' + popupData.id + '">' +
                '<div class="popup-box" style="' + popupData.position + '">' +
                '<h2>' + popupData.title + '</h2>' +
                '<p>' + popupData.content + '</p>' +
                '<a href="' + popupData.link + '" target="_blank" class="popup-button">' + popupData.linkText + '</a>' +
                '<span class="popup-close">×</span>' +
                '</div>' +
                '</div>');

            $("body").append(popup);
            sendAnalyticsEvent(popupData.eventLabel);
            sessionStorage.setItem(popupData.id, "true");

            $(".popup-close").click(function () {
                $(this).closest(".popup-overlay").fadeOut(function() { $(this).remove(); });
            });
        }

        var loggedInUser = mw.config.get('wgUserName');
        console.log("Logged-in User:", loggedInUser);

        if (!loggedInUser) {
            setTimeout(function () {
                showPopup(popups[0]);
            }, popupTimeout1);

            setTimeout(function () {
                showPopup(popups[1]);
            }, popupTimeout2);
        }
    });
});

// Unified CSS for popups
mw.util.addCSS(
    ".popup-overlay {" +
    "position: fixed; top: 0; left: 0; width: 100%; height: 100%;" +
    "background: rgba(0, 0, 0, 0.6); display: flex; justify-content: center; align-items: center; z-index: 9999;" +
    "}" +
    ".popup-box {" +
    "background: white; padding: 20px; border-radius: 10px; text-align: center; width: 300px;" +
    "box-shadow: 0 0 10px rgba(0, 0, 0, 0.5); position: absolute;" +
    "}" +
    ".popup-button {" +
    "display: inline-block; background: #007bff; color: white; padding: 10px;" +
    "text-decoration: none; border-radius: 5px; margin-top: 10px;" +
    "}" +
    ".popup-close {" +
    "position: absolute; top: 10px; right: 15px; cursor: pointer; font-size: 20px;" +
    "}"
);