MediaWiki:Gadget-ajaxPreview.js

Nota: Depois de publicar, poderá ter de contornar a cache do seu navegador para ver as alterações.

  • Firefox / Safari: Pressione Shift enquanto clica Recarregar, ou pressione Ctrl-F5 ou Ctrl-R (⌘-R no Mac)
  • Google Chrome: Pressione Ctrl-Shift-R (⌘-Shift-R no Mac)
  • Internet Explorer / Edge: Pressione Ctrl enquanto clica Recarregar, ou pressione Ctrl-F5
  • Opera: Pressione Ctrl-F5.
/** ajaxPreview
 * Adiciona novos botões para prever o resultado de uma edição sem precisar
 * recarregar a página toda (usa AJAX). Também fornece outra opção para mostrar
 * diferenças. Em ambos os casos, mantém o histórico de uso do (Ctrl-Z) e a posição
 * do cursor.
 * @source: [[w:en:User:Js/ajaxPreview.js]] (oldid=516790157)
 * @see: [[w:en:User:js/ajaxPreview]], [[w:en:User:Js/preview2.js]]
 * @author: [[w:en:User:Alex Smotrov]]
 */
/*jslint browser: true, white: true, eqeq: true, es5: true, vars: true */
/*global jQuery, mediaWiki */
( function ( mw, $ ) {
'use strict';

window.ajaxPreviewMsg = {
  emptydiff: 'No changes',
 difftip: 'shift-click the button to show changes compared to this old version',
 diff2old: 'comparison to old version',
 viewtip: 'shift-click the button to update interwiki and categories as well\
 (<a href="//en.wikipedia.org/wiki/User:Js/ajaxPreview#Preview" target=_blank>more</a>)'
};


function ajaxPreviewButtons(){

 var ajaxPreviewPos = window.ajaxPreviewPos || 'right'
 if( !document.getElementById('wpSave') ){
	return;
 }
 mw.loader.load( '//en.wikipedia.org/w/index.php?title=User:Js/preview2.js&action=raw&ctype=text/javascript' );

 if( ajaxPreviewPos != 'bottom' ){
   var previewToolbar = $('<div style="float:'+ajaxPreviewPos+'" />')
   
   if ( mw.user.options.get('usebetatoolbar') ) {
     $('#wikiPreview').after('<div style="width:100%; clear:both" />', previewToolbar)
   } else {
     var el = $('#toolbar')
     if( el.length ) el.prepend(previewToolbar)
     else $('#editform').before(previewToolbar)
   }
 }

 addBtn(window.ajaxPreviewButton, 'wpPreview', window.ajaxPreviewKey || 'p')

 if( mw.config.get( 'wgArticleId' ) )
   addBtn(window.ajaxDiffButton, 'wpDiff', window.ajaxDiffKey || 'v')

 function addBtn(name, id, akey){
  var $btnOld = $(document.getElementById(id))
  if( $btnOld.length === 0 ) return
  var $btn = $('<input type="button" />')
   .attr('id', id + 'Live')
   .attr( 'title', $btnOld.val() + ' (ajax)');
  if( ajaxPreviewPos == 'bottom' ){
    $btn.val( $btnOld.val() ).insertBefore( $btnOld.val('>') )
  }else{
    if( !name ){ //extract last word from standard buttons
      var name = $btnOld.val(); var i = name.lastIndexOf(' ') + 1
      name = name.substring(i, i+1).toUpperCase() + name.substring(i+1)
    }
    $btn.val(name).css({height:'22px', padding:'0 1px'}).appendTo(previewToolbar)
  }
  if( akey ){ //reassign acces key
    if( $btnOld.attr('accesskey') == akey )
      $btnOld.removeAttr('accesskey').updateTooltipAccessKeys()
  $btn.attr('accesskey', akey).updateTooltipAccessKeys()
  }
 }
}



if( $.inArray(mw.config.get('wgAction'), ['edit', 'submit']) !== -1 && mw.config.get('wgCanonicalNamespace') !== 'Special' ){
  mw.loader.using( ['mediawiki.util', 'user.options', 'jquery.textSelection', 'mediawiki.util'], function () {
    $(ajaxPreviewButtons);
   } );
}

}( mediaWiki, jQuery ) );

// [[Categoria:Gadgets|AjaxPreview.js]]
// [[Categoria:Scripts do Wikilivros|AjaxPreview.js]]