MediaWiki:Pahyl.js

Z WikiSkript

Poznámka: Po zveřejnění musíte vyprázdnit cache vašeho prohlížeče, jinak změny neuvidíte.

  • Firefox / Safari: Při kliknutí na Aktualizovat držte Shift nebo stiskněte Ctrl-F5 nebo Ctrl-R (na Macu ⌘-R)
  • Google Chrome: Stiskněte Ctrl-Shift-R (na Macu ⌘-Shift-R)
  • Internet Explorer / Edge: Při kliknutí na Aktualizovat držte Ctrl nebo stiskněte Ctrl-F5
  • Opera: Stiskněte Ctrl-F5.
/**
 * Nástroj "Pahýl" pro editace
 *
 * @file Nástroj "Pahýl" pro editace
 * @license https://www.gnu.org/licenses/gpl.html GNU General Public License 3.0
 */

var gadgetStub = {

  /**
   * Vložení šablony pahýlu na pozici kurzoru
   *
   * @param {reason} Důvod pahýlu.
   */
  vlozitTextarea : function(reason) {

    textovePole = "wpTextbox1";

    pridanyText = "{{Pahýl|" + reason + "}}";

    // vyhledání zadaného ID
    if(!document.getElementById(textovePole)) return;
    textovePole = document.getElementById(textovePole);
 
    // Microsoft Internet Explorer
    if (document.selection) {
      textovePole.focus();
 
      // vložení do výběru
      oblastVlozeni = document.selection.createRange();
      oblastVlozeni.text = pridanyText;
    }
 
    // ostatní prohlížeče
    else if (textovePole.selectionStart || textovePole.selectionStart == 0) {
 
      // vložení do pole a aktualizace celého textu
      startText = textovePole.selectionStart;
      endText = textovePole.selectionEnd;
      aktualniText = textovePole.value;
      textovePole.value = aktualniText.substring(0, startText);
      textovePole.value += pridanyText;
      textovePole.value += aktualniText.substring(endText, aktualniText.length);
    }
 
    // nepodporující prohlížeče: vložení textu na konec pole
    else {
      textovePole.value += pridanyText;
    }
  },

  /**
   * Volání tlačítkem editační lišty.
   *
   */
  thisIsStub : function() {
    reason = window.prompt("Upřesněte, prosím, co především danému článku chybí.", "");
    gadgetStub.vlozitTextarea(reason);
    return false;
  },

  /**
   * Definice tlačítka Pahýl
   */
  insertStubButton : function() {
    $('#wpTextbox1').wikiEditor('addToToolbar', {
      'section': 'advanced',
      'group': 'insert',
      'tools': {'stub': {
        label: 'Označit jako pahýl',
        type: 'button',
        icon: 'https://upload.wikimedia.org/wikipedia/commons/thumb/f/f5/Symbol_stub_class.svg/19px-Symbol_stub_class.svg.png',
        action: {type: 'callback',
          execute: function(context){gadgetStub.thisIsStub();}
        }
      }}
    });
  }
}

/**
 * Spuštění nástroje
 */
if ( [ 'edit', 'submit' ].indexOf( mw.config.get( 'wgAction' ) ) !== -1 ) {
	mw.loader.using( 'user.options' ).then( function () {
		// This can be the string "0" if the user disabled the preference ([[phab:T54542#555387]])
		if ( mw.user.options.get( 'usebetatoolbar' ) == 1 ) {
			$.when(
				mw.loader.using( 'ext.wikiEditor' ), $.ready
			).then( gadgetStub.insertStubButton );
		}
	} );
}