MediaWiki:Common.js

From LearnSocialStudies
Revision as of 13:54, 17 May 2026 by Admin (talk | contribs)

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
/* Any JavaScript here will be loaded for all users on every page load. */

console.log("COMMON JS LOADED");

mw.loader.using('jquery', function () {

    $(function () {

        // Remove line breaks
        $(document).on('click', '#removeBreaksBtn', function () {

            let text = $('#oldText').val() || '';

            let option =
                $('input[name="paragraphs"]:checked').val();

            let result = '';

            // Preserve paragraphs
            if (option === 'para') {

                result = text
                    .replace(/\r\n/g, '\n')
                    .replace(/\n{2,}/g, '||PARA||')
                    .replace(/\n/g, ' ')
                    .replace(/\|\|PARA\|\|/g, '\n\n');

            }

            // Replace line breaks with spaces
            else if (option === 'nopara') {

                result = text.replace(
                    /(\r\n|\n|\r)/gm,
                    ' '
                );

            }

            // Remove all line breaks
            else {

                result = text.replace(
                    /(\r\n|\n|\r)/gm,
                    ''
                );

            }

            $('#newText').val(result);

        });


        // Reset button
        $(document).on('click', '#clearText', function () {

            $('#oldText').val('');
            $('#newText').val('');

        });


        // Copy button
        $(document).on('click', '#copyClip', function () {

            let text = $('#newText').val();

            // MediaWiki-safe fallback copy
            let temp = $('<textarea>');

            $('body').append(temp);

            temp.val(text).select();

            document.execCommand('copy');

            temp.remove();

            alert('Copied to clipboard!');

        });

    });

});