User:Xover/notext.js

From Wikisource
Jump to navigation Jump to search
Note: After saving, changes may not occur immediately. Click here to learn how to bypass your browser's cache.
  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (Cmd-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (Cmd-Shift-R on a Mac)
  • Internet Explorer: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Clear the cache in Tools → Preferences

For details and instructions about other browsers, see Wikipedia:Bypass your cache.

// ==================================================================
// Empty out "Without text" pages.
// ==================================================================

// Global holding the selector for the edtor's text boxes.
var boxSelector = '#wpHeaderTextbox, #wpTextbox1, #wpFooterTextbox';

// Make sure the necessary modules are loaded
mw.loader.using(['mediawiki.util'], function () {
  console.log("notext.js starting load.");
  // Wait for the page to be parsed (new-style $(document).ready())
  $(function () { 

    /*
     *  First check that this is a context we should be active in.
     */

    // Only active on Page:-namespace pages.
    if (mw.config.get('wgCanonicalNamespace') !== 'Page') {
      return;
    }

    // Only active on pages with content model 'proofread-page'.
    if (mw.config.get('wgPageContentModel') !== 'proofread-page') {
      return;
    }

    // Only active when in edit/preview/diff mode.
    if ($.inArray(mw.config.get('wgAction'), ['edit', 'submit']) < 0) {
        return;
    }

    $('.prp-quality-radio.quality0 > input').on('click', function () {
    	console.log("saveDataAndClearField() will be called.");
		$(boxSelector).each(saveDataAndClearField);
    });
    var q = [1, 2, 3, 4]; // Page quality level values.
    for (var i in q) {
    	var selector = '.prp-quality-radio.quality' + q[i] + ' > input';
    	$(selector).on('click', function () {
    		console.log("restoreDataAndClearSave() will be called.");
    		$(boxSelector).each(restoreDataAndClearSave);
    	});
    }
  }); // END: $(document).ready()
}); // END: mw.loader.using()

function saveDataAndClearField () {
	console.log("notext.js save handler called.");
	$(this).data('wsg-notext-saved-value', $(this).val()); // Save data.
	$(this).val(''); // Clear field.
}

function restoreDataAndClearSave () {
	console.log("notext.js restore handler called.");
	if ($(this).data('wsg-notext-saved-value')) {
		$(this).val($(this).data('wsg-notext-saved-value')); // Restore data.
		$(this).data('wsg-notext-saved-value', ''); // Clear saved data.
	}
}