MediaWiki:Editpage.js: различия между версиями

Материал из ВикиФизтех
Перейти к навигации Перейти к поиску
imported>Admin2
imported>Admin2
 
(нет различий)

Текущая версия от 19:08, 20 декабря 2012

function addWikifButton() {
        var toolbar = document.getElementById('toolbar')
        if (!toolbar) return
        var i = document.createElement('img')
        i.src = 'http://upload.wikimedia.org/wikisource/ru/d/d1/Button-wikifikator.png'
        i.alt = i.title = 'викификатор'
        i.onclick = Wikify
        i.style.cursor = 'pointer'
        toolbar.appendChild(i,toolbar.firstChild)
}
if (wgAction == 'edit' || wgAction == 'submit') {
        importScriptURI('http://ru.wikipedia.org/w/index.php?title=MediaWiki:Wikificator.js&action=raw&ctype=text/javascript')
        addOnloadHook(addWikifButton)
}

if( mw.user.options.get('usebetatoolbar') ){
  var gTlbLoc = '#wikiEditor-ui-toolbar'
  mw.util.addCSS('#gadget-toolbar {height:26px; border-right:1px solid #ddd; margin:3px; padding-right:6px} #gadget-toolbar img {padding:2px}')
  $('#wpTextbox1').bind('wikiEditor-toolbar-buildSection-main', function(e, sec){
     sec.groups.insert.tools.file.action.options.post = '|thumb]]'
  })
}else if( document.getElementById('toolbar') ){
   var gTlbLoc = '#toolbar'
   mwCustomEditButtons['wikif'][1] = 'commons/3/38/Button_wikify.png'
   importMW('ToolbarOld')
 }else{
   var gTlbLoc = '#editform'
   importMW('ToolbarNone')
 }


$(function(){
 gToolbar()
 setTimeout(gToolbar, 2000)
 setTimeout(gToolbar, 6000)
})



function gToolbar(){

 if( !document.getElementById('gadget-toolbar') ){
   var where = $(gTlbLoc)
   if( !where.length ) return //beta toolbar not  ready yet
   $('<div id=gadget-toolbar style="float:left" />').prependTo(where)
 }
   
 for( var id in mwCustomEditButtons ){
   var b = mwCustomEditButtons[id]
   if( ! b.length ) continue
   createFuncBtn(id, b[0], b[1], b[2])
   delete mwCustomEditButtons[id]
 }
 
}



function createFuncBtn(id, func, img, tip){
 $('<img id="'+id+'" src="'+wgImg(img)+'" style="cursor:pointer" '
     +'title="'+tip+'" alt="'+tip.substr(0,3)+'" />')
  .appendTo('#gadget-toolbar')
  .click(func)
}


function wgImg(img){
 return '//upload.wikimedia.org/wikipedia/' + img
}


//for userscripts
function addFuncBtn(id, func, img, tip){
 if( document.getElementById('gadget-toolbar') )
   createFuncBtn(id, func, img, tip)
 else
   mwCustomEditButtons[id] = [func, img, tip]
}





//Summary buttons

function insertSummary(txt){
 if( typeof txt != 'string' ) txt = this.title
 var vv = $('#wpSummary').val()
 if( vv.indexOf(txt) != -1 ) return
 if( /[^,; \/]$/.test(vv) ) vv += ','
 if( /[^ ]$/.test(vv) ) vv += ' '
 $('#wpSummary').val(vv + txt)
}
 
function addSumButton(btn, txt){
 $('<a title="' + txt + '">' + btn + '</a>')
 .appendTo('#userSummaryButtonsA')
 .click(insertSummary)
}

$(function(){
 var frm = document.getElementById('editform')
 if( !wgArticleId || !frm || $(frm.wpSection).val() == 'new' ) return
 mw.util.addCSS('\
 input#wpSummary {margin-bottom: 0}\
 #userSummaryButtonsA a {background:#cef; border:1px solid #adf; padding:0 2px;\
  margin:0 2px;cursor:pointer; font-size:80%; color:#666}\
 #userSummaryButtonsA a:hover {background:#bdf; color:black; text-decoration:none}')
 $('<div id=userSummaryButtonsA />').insertAfter('#wpSummary')
 $.each( ['викиф|икация', 'оформл|ение', 'стил|евые правки', 'орфогр|афия',
  'пункт|уация', 'интервики', 'кат|егория', 'шаб|лон', 'к удал|ению', 'иллюстрация',
  'источ|ники', 'доп|олнение', 'уточ|нение', 'обнов|ление данных'],
  function(i,s){  addSumButton( s.replace(/\|.*/,''), s.replace(/\|/,'') )  }
 )
})




//sig reminder
if (wgNamespaceNumber % 2 || wgNamespaceNumber==4)
$(function (){
 var cp = document.getElementById('editpage-copywarn')
 var wpSave = document.getElementById('wpSave')
 if (!cp || !wpSave) return
 if (wgNamespaceNumber == 4 &&
  (!wgTitle.match('^(Форум[/ ]|Голосования/|Опросы/|Обсуждение правил/|Заявки на .*|Запросы.|Кандидаты в .*/|К (удалению|объединению|переименованию|разделению|улучшению)/|Рецензирование/|Проверка участников/|Инкубатор/(Мини-рецензирование|Форум[/ ]))') || wgTitle.match ('/Архив'))) return
 var ins = ' <a href=\'javascript:insertTags(" ~~\~~\","","")\'>~~\~~</a>'
 cp.innerHTML += '&nbsp;&nbsp;Не забудьте добавить к вашему сообщению подпись с помощью' + ins
 if (wgUserGroups && wgUserGroups.join().indexOf('autoconfirmed') != -1 && !window.sigWarning) return
 //unreg/new users only
 var warningDone = false
 wpSave.onclick = function(){
   try{
    if (warningDone || document.editform.wpTextbox1.value.indexOf('~~\~~') >= 0 ) return true
    warningDone = true
    cp.innerHTML = 'Пожалуйста, <b>подпишитесь</b>, добавив  в конце своего сообщения' + ins
    + ' (<a href="' + wgArticlePath.replace(/\$1/, 'Википедия:Подписывайтесь')
    + '" title="(ссылка откроется в новом окне)" target=_blank>подробнее&nbsp;↗</a>)'//→ ↗
    cp.style.background = '#FFD080'
    cp.style.border = '1px solid orange'
    return false
   }catch(e) {return true}
 }
})


if (wgAction=='edit' && / rv:1\.[0-8].+Gecko/.test(navigator.userAgent))
  importMW('Firefox2')


if( window.opera && /11\.6[01]/.test(opera.version()) )
 $('#wpTextbox1')
 .mousedown(function(){ this.sT = this.scrollTop })
 .click(function(){ if( this.scrollTop == 0 ) this.scrollTop = this.sT })