MediaWiki:Common.js: Difference between revisions

From PsychoactiveWiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 27: Line 27:


//aesthetic
//aesthetic
function randomColor() {
// Optional dynamic gradient cycling
    return '#' + Math.floor(Math.random()*16777215).toString(16);
document.addEventListener("DOMContentLoaded", () => {
}
  const body = document.body;


document.addEventListener("DOMContentLoaded", function() {
  // Array of trippy gradients
    const colors = [randomColor(), randomColor(), randomColor(), randomColor()];
  const gradients = [
    document.body.style.background = `linear-gradient(270deg, ${colors.join(', ')})`;
    "radial-gradient(circle at center, #ff00cc, #3333ff)",
     document.body.style.backgroundSize = '800% 800%';
    "radial-gradient(circle at center, #00ffcc, #cc00ff)",
    "radial-gradient(circle at center, #ffcc00, #cc00ff)",
    "radial-gradient(circle at center, #ff0066, #6600ff)"
  ];
 
  let index = 0;
 
  setInterval(() => {
    index = (index + 1) % gradients.length;
     body.style.background = gradients[index];
  }, 20000); // switch every 20s
});
});

Revision as of 06:13, 26 November 2025

/* Any JavaScript here will be loaded for all users on every page load. */

// Auto-preload template for Shared_Experiences new story form
mw.hook('wikipage.content').add(function () {
    // Only run on new-section add
    if (
        mw.config.get('wgPageName') === 'Shared_Experiences' &&
        mw.config.get('wgAction') === 'edit' &&
        new URLSearchParams(window.location.search).get('section') === 'new'
    ) {
        var textbox = document.getElementById('wpTextbox1');

        // Only insert if the textbox is empty
        if (textbox && textbox.value.trim() === '') {
            new mw.Api().get({
                action: 'parse',
                page: 'Template:SharedExperience/Preload',
                prop: 'wikitext',
                format: 'json'
            }).done(function (data) {
                // FIX: MediaWiki stores wikitext under ['*']
                textbox.value = data.parse.wikitext['*'];
            });
        }
    }
});

//aesthetic
// Optional dynamic gradient cycling
document.addEventListener("DOMContentLoaded", () => {
  const body = document.body;

  // Array of trippy gradients
  const gradients = [
    "radial-gradient(circle at center, #ff00cc, #3333ff)",
    "radial-gradient(circle at center, #00ffcc, #cc00ff)",
    "radial-gradient(circle at center, #ffcc00, #cc00ff)",
    "radial-gradient(circle at center, #ff0066, #6600ff)"
  ];

  let index = 0;

  setInterval(() => {
    index = (index + 1) % gradients.length;
    body.style.background = gradients[index];
  }, 20000); // switch every 20s
});