MediaWiki:Common.js: Difference between revisions

From Lost Waves Wiki
No edit summary
No edit summary
Line 33: Line 33:


     mw.hook("wikipage.content").add(function($content) {
     mw.hook("wikipage.content").add(function($content) {
         var mainElem = $('#file.fullImageLink a[href$=".mp3"]');
         var mainElem = $('#file.fullImageLink a[href$=".mp3"], a[href$=".wav"]');
         var displayAudio = $('<audio controls />');
         var displayAudio = $('<audio controls />');
         displayAudio.attr('src', mainElem.attr('href'));
         displayAudio.attr('src', mainElem.attr('href'));

Revision as of 16:53, 4 July 2024

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

mw.loader.using(['mediawiki.api']).then(function () {
    function addToDMZ() {
        var api = new mw.Api();
        api.postWithToken('csrf', {
            action: 'edit',
            title: 'DMZ:Users',
            appendtext: '\n* ' + mw.config.get('wgUserName'),  // Append the current user's name
            summary: 'User self-added to DMZ'
        }).done(function (response) {
            if (response.edit && response.edit.result === 'Success') {
                alert('You have been added to the DMZ.');
                // Notify administrators
                api.postWithToken('csrf', {
                    action: 'edit',
                    title: 'User_talk:Admin',
                    appendtext: '\n* ' + mw.config.get('wgUserName') + ' added themselves to the DMZ.',
                    summary: 'Notifying admins of DMZ addition'
                });
            } else {
                alert('Error: Unable to add to DMZ.');
            }
        }).fail(function () {
            alert('Error contacting the API.');
        });
    }

    $(document).on('click', '.addToDMZLink', function (e) {
        e.preventDefault();
        addToDMZ();
    });

    mw.hook("wikipage.content").add(function($content) {
        var mainElem = $('#file.fullImageLink a[href$=".mp3"], a[href$=".wav"]');
        var displayAudio = $('<audio controls />');
        displayAudio.attr('src', mainElem.attr('href'));
        mainElem.html(displayAudio);

        $('a[href^="/wiki/index.php/File:"][href$=".mp3"][title^="File:"][title$=".mp3"]').each(function (index, item) {
          var mediaControl = $('<audio controls />');
          mediaControl.attr('src', '/wiki/index.php/Special:Filepath/' + item.textContent.split('File:')[1]);
          $(item).html(mediaControl);
        });

        $('a[href^="/wiki/index.php/File:"][href$=".mp4"][title^="File:"][title$=".mp4"]').each(function (index, item) {
          var mediaControl = $('<video controls />');
          mediaControl.attr('src', '/wiki/index.php/Special:Filepath/' + item.textContent.split('File:')[1]);
          $(item).html(mediaControl);
        });
    });
    
    if ( mw.config.get( 'wgUserGroups' ).includes('checkuser') ) {
	    var chkusr = $('<li />');
        chkusr.attr('id', 't-checkuser');
        chkusr.attr('class', 'mw-list-item');
        chkusr.html('<a href="/wiki/index.php/Special:CheckUser/' + mw.config.get('wgPageName').split(':')[1] + '"><span>Check user</span></a>');
        $('#t-log').after(chkusr);
    }
});