Difference between revisions of "MediaWiki:Common.js"
Jump to navigation
Jump to search
Wikipatents (talk | contribs) |
Wikipatents (talk | contribs) |
||
Line 16: | Line 16: | ||
}); | }); | ||
− | + | ||
(function() { | (function() { | ||
// Use a unique key for this script | // Use a unique key for this script | ||
var SCRIPT_KEY = 'patentAlertScriptExecuted'; | var SCRIPT_KEY = 'patentAlertScriptExecuted'; | ||
+ | var POPUP_KEY = 'patentAlertPopupCreated'; | ||
// Function to check if the script has already run | // Function to check if the script has already run | ||
Line 29: | Line 30: | ||
function markScriptAsRun() { | function markScriptAsRun() { | ||
window[SCRIPT_KEY] = true; | window[SCRIPT_KEY] = true; | ||
+ | } | ||
+ | |||
+ | // Function to check if popup has been created | ||
+ | function hasPopupBeenCreated() { | ||
+ | return window[POPUP_KEY] === true; | ||
+ | } | ||
+ | |||
+ | // Function to mark popup as created | ||
+ | function markPopupAsCreated() { | ||
+ | window[POPUP_KEY] = true; | ||
} | } | ||
Line 53: | Line 64: | ||
function createPopup() { | function createPopup() { | ||
+ | // Check if popup has already been created | ||
+ | if (hasPopupBeenCreated()) return; | ||
+ | |||
+ | // Mark popup as created | ||
+ | markPopupAsCreated(); | ||
+ | |||
var $popup = $('<div>') | var $popup = $('<div>') | ||
+ | .attr('id', 'patentAlertPopup') | ||
.css({ | .css({ | ||
position: 'fixed', | position: 'fixed', | ||
Line 68: | Line 86: | ||
zIndex: 1000, | zIndex: 1000, | ||
fontFamily: 'Arial, sans-serif', | fontFamily: 'Arial, sans-serif', | ||
− | textAlign: 'center' | + | textAlign: 'center', |
+ | display: 'none' // Start hidden | ||
}) | }) | ||
.html('<h2 style="color: #333; font-size: 24px; margin-bottom: 20px;">Patent Application Monitoring</h2>' + | .html('<h2 style="color: #333; font-size: 24px; margin-bottom: 20px;">Patent Application Monitoring</h2>' + | ||
Line 120: | Line 139: | ||
.appendTo($popup); | .appendTo($popup); | ||
− | // Show popup with fade-in effect | + | // Show popup with fade-in effect after a short delay |
setTimeout(function() { | setTimeout(function() { | ||
− | $popup | + | $popup.fadeIn(500); |
}, 1000); | }, 1000); | ||
} | } | ||
− | + | function createBanner() { | |
var $banner = $('<div>') | var $banner = $('<div>') | ||
.css({ | .css({ | ||
Line 190: | Line 209: | ||
} | } | ||
− | // Use | + | // Use a more reliable method to ensure the script runs only once when the DOM is ready |
− | + | if (document.readyState === 'loading') { | |
− | + | document.addEventListener('DOMContentLoaded', createPatentAlert); | |
− | + | } else { | |
− | + | createPatentAlert(); | |
+ | } | ||
})(); | })(); |
Revision as of 06:38, 6 September 2024
mw.loader.load('https://static.addtoany.com/menu/page.js'); $(document).ready(function() { if ($('#content').length) { $('#content').append('<div class="a2a_kit a2a_kit_size_32 a2a_default_style">' + '<a class="a2a_dd" href="https://www.addtoany.com/share"></a>' + '<a class="a2a_button_email"></a>' + '<a class="a2a_button_x"></a>' + '<a class="a2a_button_telegram"></a>' + '<a class="a2a_button_whatsapp"></a>' + '<a class="a2a_button_facebook"></a>' + '<a class="a2a_button_facebook_messenger"></a>' + '<a class="a2a_button_google_gmail"></a>' + '</div>'); } }); (function() { // Use a unique key for this script var SCRIPT_KEY = 'patentAlertScriptExecuted'; var POPUP_KEY = 'patentAlertPopupCreated'; // Function to check if the script has already run function hasScriptRun() { return window[SCRIPT_KEY] === true; } // Function to mark the script as run function markScriptAsRun() { window[SCRIPT_KEY] = true; } // Function to check if popup has been created function hasPopupBeenCreated() { return window[POPUP_KEY] === true; } // Function to mark popup as created function markPopupAsCreated() { window[POPUP_KEY] = true; } // Main function to create popup and banner function createPatentAlert() { // Check if the script has already been executed if (hasScriptRun()) return; // Mark the script as run markScriptAsRun(); // Check if the alert has been shown in the last 24 hours var lastShown = localStorage.getItem('patentAlertLastShown'); var now = new Date().getTime(); if (!lastShown || now - lastShown > 24 * 60 * 60 * 1000) { // Create and show popup createPopup(); // Create and show banner createBanner(); } } function createPopup() { // Check if popup has already been created if (hasPopupBeenCreated()) return; // Mark popup as created markPopupAsCreated(); var $popup = $('<div>') .attr('id', 'patentAlertPopup') .css({ position: 'fixed', top: '50%', left: '50%', transform: 'translate(-50%, -50%)', backgroundColor: 'rgba(255, 255, 255, 0.95)', padding: '30px', borderRadius: '20px', border: '8px solid #ffbe18', boxShadow: '0 10px 40px rgba(0,0,0,0.2)', width: '400px', maxWidth: '90%', zIndex: 1000, fontFamily: 'Arial, sans-serif', textAlign: 'center', display: 'none' // Start hidden }) .html('<h2 style="color: #333; font-size: 24px; margin-bottom: 20px;">Patent Application Monitoring</h2>' + '<p style="color: #555; font-size: 16px; line-height: 1.5; margin-bottom: 25px;">Want to monitor Patent Applications? Submit your custom request and get a free weekly report!</p>' + '<button id="patentAlertButton">Get Alerts</button>') .appendTo('body'); $('#patentAlertButton').css({ display: 'inline-block', padding: '12px 24px', backgroundColor: '#ffbe18', color: '#333', border: 'none', borderRadius: '25px', fontSize: '18px', fontWeight: 'bold', cursor: 'pointer', transition: 'background-color 0.3s, transform 0.1s', outline: 'none' }).on('click', function() { window.open('https://docs.google.com/forms/d/e/1FAIpQLSfvGeHyDW-ND9TqqVhbPOrYsKWsvUgFp9Rl-gfsyZCaLp7fXA/viewform?usp=sf_link', '_blank'); $popup.fadeOut(300); localStorage.setItem('patentAlertLastShown', new Date().getTime()); }).on('mouseover', function() { $(this).css('backgroundColor', '#e5ab16'); }).on('mouseout', function() { $(this).css('backgroundColor', '#ffbe18'); }).on('mousedown', function() { $(this).css('transform', 'scale(0.95)'); }).on('mouseup', function() { $(this).css('transform', 'scale(1)'); }); // Add close button $('<button>') .text('×') .css({ position: 'absolute', top: '10px', right: '10px', background: 'none', border: 'none', fontSize: '24px', color: '#666', cursor: 'pointer' }) .on('click', function() { $popup.fadeOut(300); localStorage.setItem('patentAlertLastShown', new Date().getTime()); }) .appendTo($popup); // Show popup with fade-in effect after a short delay setTimeout(function() { $popup.fadeIn(500); }, 1000); } function createBanner() { var $banner = $('<div>') .css({ position: 'fixed', top: '0', left: '0', width: '100%', backgroundColor: '#ffbe18', padding: '10px', boxShadow: '0 2px 10px rgba(0,0,0,0.1)', zIndex: 999, fontFamily: 'Arial, sans-serif', textAlign: 'center', display: 'flex', justifyContent: 'center', alignItems: 'center' }) .html('<p style="color: #333; font-size: 16px; margin: 0 20px 0 0;">Want to monitor Patent Applications? Get a free weekly report!</p>' + '<button id="patentAlertBannerButton">Get Alerts</button>') .prependTo('body'); $('#patentAlertBannerButton').css({ display: 'inline-block', padding: '8px 16px', backgroundColor: '#333', color: '#fff', border: 'none', borderRadius: '25px', fontSize: '14px', fontWeight: 'bold', cursor: 'pointer', transition: 'background-color 0.3s', outline: 'none' }).on('click', function() { window.open('https://docs.google.com/forms/d/e/1FAIpQLSfvGeHyDW-ND9TqqVhbPOrYsKWsvUgFp9Rl-gfsyZCaLp7fXA/viewform?usp=sf_link', '_blank'); }).on('mouseover', function() { $(this).css('backgroundColor', '#555'); }).on('mouseout', function() { $(this).css('backgroundColor', '#333'); }); // Add close button for banner $('<button>') .text('×') .css({ background: 'none', border: 'none', fontSize: '20px', color: '#333', cursor: 'pointer', marginLeft: '20px' }) .on('click', function() { $banner.slideUp(300); }) .appendTo($banner); // Show banner with slide-down effect $banner.hide().slideDown(500); // Adjust body padding to accommodate the banner $('body').css('padding-top', $banner.outerHeight()); } // Use a more reliable method to ensure the script runs only once when the DOM is ready if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', createPatentAlert); } else { createPatentAlert(); } })();