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 32: Line 32:
                 "filter": "blur(8px)",
                 "filter": "blur(8px)",
                 "pointer-events": "none",
                 "pointer-events": "none",
                 "user-select": "none"
                 "user-select": "none",
                "position": "relative"
             });
             });
            // Create persistent overlay message
            var $overlayMessage = $('<div id="patreon-overlay">' +
                '<p>Subscribe to our <a href="https://www.patreon.com/c/CaselawNinja" target="_blank">Patreon</a> for full access! <br> Only $4.99 CAD per month.</p>' +
                '</div>');
            // Append message to the blurred content area
            $thirdHeader.after($overlayMessage);


             // Create the Stripe popup
             // Create the Stripe popup
Line 69: Line 78:
});
});


// Unified CSS for popups
// Unified CSS for popups & overlay text
mw.util.addCSS(
mw.util.addCSS(
     ".popup-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%;" +
     ".popup-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%;" +
Line 79: Line 88:
     ".popup-close { position: absolute; top: 10px; right: 15px; cursor: pointer; font-size: 20px;" +
     ".popup-close { position: absolute; top: 10px; right: 15px; cursor: pointer; font-size: 20px;" +
     "color: black; font-weight: bold; }" +
     "color: black; font-weight: bold; }" +
     ".popup-close:hover { color: red; }"
     ".popup-close:hover { color: red; }" +
 
    /* Patreon Overlay Styling */
    "#patreon-overlay { position: absolute; width: 100%; text-align: center; top: 50px;" +
    "left: 50%; transform: translateX(-50%); background: rgba(255, 255, 255, 0.8);" +
    "padding: 10px; font-size: 18px; font-weight: bold; color: #333; border-radius: 5px;" +
    "z-index: 10; }" +
    "#patreon-overlay a { color: #E85D04; text-decoration: none; font-weight: bold; }" +
    "#patreon-overlay a:hover { text-decoration: underline; }"
);
);

Revision as of 00:17, 2 March 2025

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

// Ensure the script only loads after dependencies
mw.loader.using(['jquery', 'mediawiki.user'], function () {
    $(document).ready(function () {
        var loggedInUser = mw.config.get('wgUserName');
        var pageNamespace = mw.config.get('wgCanonicalNamespace');
        console.log("Logged-in User:", loggedInUser);
        console.log("Page Namespace:", pageNamespace);

        // Exit script if user is logged in or on a category page
        if (loggedInUser || pageNamespace === "Category") {
            console.log("User is logged in or on a category page. No blur applied.");
            return;
        }

        console.log("User is not logged in. Applying blur effect.");

        // Find the third subheader
        var $subHeaders = $("#mw-content-text h2");

        if ($subHeaders.length >= 3) {
            console.log("Applying blur after third header.");
            var $thirdHeader = $subHeaders.eq(2);

            // Select only content below the third header, excluding side menus
            var $contentToBlur = $thirdHeader.nextAll()
                .not(".sidebar, .mw-portlet, #p-tb, #p-personal, #footer, #catlinks");

            // Apply blur effect
            $contentToBlur.css({
                "filter": "blur(8px)",
                "pointer-events": "none",
                "user-select": "none",
                "position": "relative"
            });

            // Create persistent overlay message
            var $overlayMessage = $('<div id="patreon-overlay">' +
                '<p>Subscribe to our <a href="https://www.patreon.com/c/CaselawNinja" target="_blank">Patreon</a> for full access! <br> Only $4.99 CAD per month.</p>' +
                '</div>');

            // Append message to the blurred content area
            $thirdHeader.after($overlayMessage);

            // Create the Stripe popup
            var $stripePopup = $('<div class="popup-overlay" id="stripe-popup">' +
                '<div class="popup-box" style="top: 50%; left: 50%; transform: translate(-50%, -50%);">' +
                '<h2>Subscribe to Unlock Content</h2>' +
                '<p>Subscribe to view the full article.</p>' +
                '<button id="subscribe-button" class="popup-button">Subscribe</button>' +
                '<span class="popup-close">×</span>' +
                '</div>' +
                '</div>');

            $("body").append($stripePopup);

            // Stripe Checkout Handler
            $("#subscribe-button").click(function () {
                var stripe = Stripe("your_stripe_publishable_key");
                stripe.redirectToCheckout({
                    sessionId: "your_checkout_session_id"
                }).then(function (result) {
                    if (result.error) {
                        alert(result.error.message);
                    }
                });
            });

            // Close Stripe popup
            $("#stripe-popup .popup-close").click(function () {
                $("#stripe-popup").fadeOut(function () { $(this).remove(); });
            });
        } else {
            console.warn("Not enough headers found for blur effect.");
        }
    });
});

// Unified CSS for popups & overlay text
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;" +
    "color: black; font-weight: bold; }" +
    ".popup-close:hover { color: red; }" +

    /* Patreon Overlay Styling */
    "#patreon-overlay { position: absolute; width: 100%; text-align: center; top: 50px;" +
    "left: 50%; transform: translateX(-50%); background: rgba(255, 255, 255, 0.8);" +
    "padding: 10px; font-size: 18px; font-weight: bold; color: #333; border-radius: 5px;" +
    "z-index: 10; }" +
    "#patreon-overlay a { color: #E85D04; text-decoration: none; font-weight: bold; }" +
    "#patreon-overlay a:hover { text-decoration: underline; }"
);