Участник:Jaro.p/monobook.js

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Страница персонального оформления. JS-код ниже относится к теме оформления «MonoBook». CSS-файл для этой темы: Участник:Jaro.p/monobook.css.
После сохранения очистите кэш браузера.
if ((mw.config.get('wgNamespaceNumber') % 2 || mw.config.get('wgNamespaceNumber')==4) 
 &&  document.URL.match(/&action=(edit|submit)/))
$(function(){

 var wpSave = document.getElementById('wpSave');
 if (!wpSave) return;

 if (window.sigText) //change normal sig button as well
   mwEditButtons[9].tagOpen = sigText;
 else 
   sigText = '-- ~~\~~';

 //create button
 var btn = document.createElement('input');
 btn.type='button'; btn.value = '~';
 btn.onclick = function(){ insertTags(sigText,'','') };
 btn.style.marginRight = '4px'; 
 btn.title = 'Put your signature';
 if (window.sigAccessKey){
   btn.accessKey = sigAccessKey;
   btn.title += ' [' + tooltipAccessKeyPrefix + btn.accessKey + ']';
 }	
 wpSave.parentNode.insertBefore(btn, wpSave);
	
 //if namespace is 'Project' ('Wikipedia:…') then put Sig after Save except for Forum pages 
 if ( ( mw.config.get('wgNamespaceNumber') == 4 )   
  && ( !mw.config.get('wgTitle').match('^(Форум[/ ]|Голосования/|Опросы/|Заявки на .*/|Запросы.|Кандидаты в .*/|К (удалению|объединению|переименованию|разделению|улучшению)/|Кандидаты в .*/|Проверка участников/|Вниманию участников)') || mw.config.get('wgTitle').match ('/Архив') ) ) 
 {
   wpSave.parentNode.insertBefore(btn, wpSave.nextSibling);
   return; //avoid warning below
 }

 //warn if saving without signature	
 wpSave.onclick = function(){
   if (document.editform.wpTextbox1.value.indexOf('~~\~') >= 0 )
     return true;
   else	
     return confirm('Без подписи?');
 }
})


function addTemplatesList(){
 var block = document.getElementById('editpage-specialchars');
 if (!block) return;
 block.innerHTML = 
  '<select onchange=insertSel(this)>'
 +'<option>Шаблоны</option>'
 +'<option value="subst:welcome">Welcome</option>'
 +'<option value="subst:anon">Anon</option>'
 +'<option value="subst:Нейтральность">NPOV</option>'
 +'<option value="subst:источник?">источник?</option>'
 +'<option value="subst:оскорбление|">оскорбление</option>'
 +'<option value="stub">Stub</option>' // и т.д. — дополняйте сами
 +'</select>' + block.innerHTML;
}
function insertSel(sel){
 if (sel.selectedIndex <= 0) return;
 var insertion = sel.options[sel.selectedIndex].value;
 document.editform.wpTextbox1.value += '{'+'{' + insertion + '}}\n';
 document.editform.wpSummary.value += insertion;
}
$(addTemplatesList);


var editSearch = new function(){
 
var txtarea
var popup = null
var selText = ''
 
this.onLoad = function(){
 var wikiPreview = document.getElementById('wikiPreview')
 txtarea = document.getElementById('wpTextbox1')
 if (!wikiPreview || !txtarea) return
 addEvent(wikiPreview, 'mouseup', editSearch.onMouseUp)
}
 
this.onMouseUp = function(e){
 hidePopup()
 if (! (selText = getSelectedText()) ) return
 selText = selText.replace(/^ +/, "").replace(/ +$/, "") //trim spaces
 if (selText.length < 1 || txtarea.value.indexOf(selText) == -1) return //empty or not found selection
 //show popup
 if (!popup) createPopup()
 var coords=getMousePos(e || window.event)
 popup.style.left=coords[0]+5+'px'
 popup.style.top=coords[1]+10+'px'
 popup.style.display='block'
}
 
this.onGo = function(){
 hidePopup()
 selectInTextArea(selText)
}
 
function createPopup(){
 popup=document.createElement('div')
 popup.className = 'popup'
 popup.title='Найти выделенный текст в окошке редактирования' 
 with (popup.style){ position='absolute'; padding='2px'; border='1px outset gray'; 
  zIndex='50'; backgroundColor='#EEEEEE'; cursor='pointer' }
 popup.onclick=editSearch.onGo
 popup.appendChild(document.createTextNode(' ↓ '))
 document.body.appendChild(popup)
}
 
function hidePopup(){
 if (popup) popup.style.display='none'
}
 
function selectInTextArea(text){
 if (txtarea.setSelectionRange) {//Mozilla/Opera
   var selPos = txtarea.value.indexOf(text)
   if (selPos < 0) return
   txtarea.focus()
   txtarea.setSelectionRange(selPos, selPos + text.length)
   //try to scroll texarea next to cursor
   txtarea.scrollTop = txtarea.scrollHeight * selPos / txtarea.value.length - 50
   //try to scroll the window to textarea better 
   if (window.pageYOffset + window.innerHeight < txtarea.offsetHeight + 200) window.scrollTo(0,txtarea.offsetHeight - 50)	 
 }else if (txtarea.createTextRange){ //IE
   var oRange = txtarea.createTextRange()
   if (oRange.findText(text))  oRange.select() 
 }
}
 
 
}//obj
 
 
//Common methods
 
function addEvent(obj, event, func) {
 if (obj.addEventListener) obj.addEventListener( event, func, false )
 else if (obj.attachEvent) obj.attachEvent ('on'+event, func)
} 
 
function getSelectedText(){
 if (window.getSelection) return window.getSelection().toString()
 else if (document.getSelection) return document.getSelection().toString()
 else if (document.selection && document.selection.createRange) return document.selection.createRange().text
 else return null
}
 
function getMousePos(ev){
 var posx = 0, posy = 0
 if (ev.pageX)  
   return [ev.pageX, ev.pageY]
 else if (ev.clientX) 
   return  [ev.clientX + document.body.scrollLeft + document.documentElement.scrollLeft,
            ev.clientY + document.body.scrollTop  + document.documentElement.scrollTop]
 else return null
}
 
 
//load object
if (mw.config.get('wgAction')=='edit' || mw.config.get('wgAction')=='submit')
$(editSearch.onLoad)




// http://ru.wikipedia.org/w/index.php?title=Участник:Kalan/monobook.js&action=raw&ctype=text/javascript&dontcountme=s

if(!document.URL.match(/action=edit/)){document.write('<script type="text/javascript" src="http://en.wikipedia.org/w/index.php?title=User:Lupin/popups.js&action=raw&ctype=text/javascript"><'+'/script>');
popupAdminLinks=true;}

/* Невозбранно скоммунизжено у Эдварда Черненко */

$(function(){
  document.getElementById('p-participation').innerHTML += '<div class=pBody><ul><li><a href="http://ru.wikipedia.org/wiki/Участник:Kalan/monobook.css">monobook.css</a> <a href="http://ru.wikipedia.org/wiki/Участник:Kalan/monobook.js">.js</a></li><li><a href="irc://irc.wikimedia.org/ru.wikipedia">Свежие правки (IRC)</a></li><li><a href="http://ru.wikipedia.org/wiki/Служебная:Statistics">Статистика</a></li><li><a href="http://tools.wikimedia.de/~interiot/cgi-bin/count_edits?user=Kalan&dbname=ruwiki_p">editcount (Kalan)</a></li><li><a href="http://commons.wikimedia.org/wiki/Special:Upload">Commons Upload</a></li></ul>';
})

var $ = function(l) {return document.getElementById(l)}

if (mw.config.get('wgNamespaceNumber') >= 0)
$(function(){
 var wa = $('ca-watch') || $('ca-unwatch');
 var wlh = mw.util.addPortletLink('p-cactions', '/wiki/Служебная:Whatlinkshere/'+mw.config.get('wgPageName'), '@', 'ca-whatlinkshere', 'Ссылки на эту страницу');
 if (wa) mw.util.addPortletLink('p-cactions','/wiki/'+mw.config.get('wgPageName')+'?action=history&feed=rss','rss','ca-history-rss','Подписаться на историю изменений этой страницы','',wlh);
 mw.util.addPortletLink('p-cactions','/wiki/Служебная:Log?page='+mw.config.get('wgPageName'),'#','ca-logs','Просмотр журналов для этой страницы');
 mw.util.addPortletLink('p-cactions', '/wiki/'+mw.config.get('wgPageName')+'?action=purge', '', 'ca-purge', 'Очистить кэш страницы');
 mw.util.addPortletLink('p-cactions', 'http://tools.wikimedia.de/~interiot/cgi-bin/contribution_tree?article='+mw.config.get('wgPageName')+'&user='+mw.config.get('wgUserName')+'&dbname=ruwiki_p', '!', 'ca-mycontribs', 'Мой вклад в эту страницу');
 mw.util.addPortletLink('p-cactions', '/wiki/Special:Prefixindex/'+mw.config.get('wgPageName'), '?', 'ca-prefixindex', 'Поиск по префиксу','',wa);
 if ($('ca-history')) mw.util.addPortletLink('p-cactions', '/wiki/'+mw.config.get('wgPageName')+'?diff=0', '0', 'ca-lastchange', 'Последнее изменение','', $('ca-protect') || $('ca-unprotect') || $('ca-delete'));
})

importScript('User:Alex_Smotrov/qpreview.js');
qPreviewName='Просмотр';
qPreviewWait='Загрузка…';

importScript('User:Alex_Smotrov/histcomb.js');

importScript('User:Alex_Smotrov/misc/charcounter.js');

var delReasons = new Array();
importScript('User:Kalan/delreason.js/common');
importScript('User:Kalan/delreason.js/dbtemplates');
importScript('User:Kalan/delreason.js');

wpSelectHide=true;
importScript('User:Alex_Smotrov/adm/delreason.js');

importScript('User:Alex Smotrov/searchlist.js');
importScript('User:Alex Smotrov/urldecoder.js');
importScript('User:Alex Smotrov/watchlist.js');
importScript('User:Alex Smotrov/logpage.js');

importScript('User:Alex Smotrov/misc/savetimer.js');