MediaWiki:Common.js

From YOU SEEM PRETTY SAD FOR A GIRL SO IN LOVE

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)
  • Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
$(function () {
    if (mw.config.get('wgNamespaceNumber') !== 0) return;

    var pageName = mw.config.get('wgPageName');

    // --- Kudos ---
    var kudosKey = 'kudos_' + pageName;
    var kudosGiven = localStorage.getItem(kudosKey) === 'true';

    var kudosBtn = $('<span>')
        .addClass('ao3-button')
        .text(kudosGiven ? 'Kudos given! ♥' : 'Kudos ♥')
        .css('background-color', kudosGiven ? '#c8e6c9' : '')
        .on('click', function () {
            if (!kudosGiven) {
                kudosGiven = true;
                localStorage.setItem(kudosKey, 'true');
                $(this).text('Kudos given! ♥');
                $(this).css('background-color', '#c8e6c9');
            }
        });

    // --- Bookmark ---
    var bookmarkKey = 'bookmark_' + pageName;
    var isBookmarked = localStorage.getItem(bookmarkKey) === 'true';

    var bookmarkBtn = $('<span>')
        .addClass('ao3-button')
        .text(isBookmarked ? 'Bookmarked ✓' : 'Bookmark')
        .css({ 'margin-left': '6px', 'background-color': isBookmarked ? '#c8e6c9' : '' })
        .on('click', function () {
            isBookmarked = !isBookmarked;
            localStorage.setItem(bookmarkKey, isBookmarked);
            $(this).text(isBookmarked ? 'Bookmarked ✓' : 'Bookmark');
            $(this).css('background-color', isBookmarked ? '#c8e6c9' : '');
        });

    // --- Inject ---
    var bar = $('<div>', { style: 'margin-bottom: 1em;' })
        .append(kudosBtn, bookmarkBtn);

    $('#mw-content-text').prepend(bar);
});