Jump to content

User:Js/ajaxPreview.js

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by TheDJ (talk | contribs) at 09:24, 25 February 2013 (fix case). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
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&smaxage=21600&maxage=86400' );

 if( ajaxPreviewPos != 'bottom' ){
   var previewToolbar = $('<div style="float:'+ajaxPreviewPos+'" />')
   
   mw.loader.using( 'user.options', function () {
     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( wgArticleId )
   addBtn(window.ajaxDiffButton, 'wpDiff', window.ajaxDiffKey || 'v')

 function addBtn(name, id, akey){
  var btnOld = $('#'+id)
  if( btnOld.length <= 0 ) return
  var btn = $('<input type=button id="'+id+'Live" 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').attr('title', btnOld.attr('title').replace(tooltipAccessKeyRegexp, '') )
  btn.attr('accesskey', akey).attr('title', btn.attr('title') + ' ['+tooltipAccessKeyPrefix+akey+']' )
  }
 }
}



if( $.inArray(mw.config.get('wgAction'), ['edit', 'submit']) !== -1 && mw.config.get('wgCanonicalNamespace') !== 'Special' ){
  $(ajaxPreviewButtons);
}