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 55: Line 55:


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



Revision as of 05:08, 25 February 2025

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

mw.loader.using(['jquery', 'mediawiki.user'], function () {
    $(document).ready(function () {
        var popupShown = sessionStorage.getItem("popupShown");
        var popupTimeout = 120000; // 2 minutes
        var timeoutTriggered = false;

        // Define the two popups
        var popups = [
            {
                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"
            },
            {
                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"
            }
        ];

        // Choose a popup randomly or based on logic
        var selectedPopup = popups[Math.floor(Math.random() * popups.length)];

        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() {
            var popup = $('<div id="popup-overlay">' +
                '<div id="popup-box">' +
                '<h2>' + selectedPopup.title + '</h2>' +
                '<p>' + selectedPopup.content + '</p>' +
                '<a href="' + selectedPopup.link + '" target="_blank" class="popup-button">' + selectedPopup.linkText + '</a>' +
                '<span id="popup-close">×</span>' +
                '</div>' +
                '</div>');

            $("body").append(popup);
            sessionStorage.setItem("popupShown", "true");
            sendAnalyticsEvent(selectedPopup.eventLabel);

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

            $(document).off("scroll", scrollHandler);
        }

        function scrollHandler() {
            if (!popupShown || timeoutTriggered) {
                showPopup();
            }
        }

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

        sessionStorage.removeItem("popupShown");

        if (!loggedInUser) {
            $(document).one("scroll", scrollHandler);
            setTimeout(function () {
                timeoutTriggered = true;
                $(document).one("scroll", scrollHandler);
            }, popupTimeout);
        }
    });
});

// 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: relative;" +
    "}" +
    ".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;" +
    "}"
);