MediaWiki:SysopDelete.js
Билгалдаккхар: Ӏалашйинчул тӀаьхьа хийцамаш га браузеран кэш цӀанйан йезаш хила мега.
- Firefox / Safari: Shift тӀетаӀийна йитина, гӀирсийн панелан тӀера тӀетаӀайе Карлайаккха йа Ctrl+F5 йа Ctrl+R (⌘+R Mac тӀехь)
- Google Chrome: тӀетаӀайе Ctrl+Shift+R (⌘+Shift+R Mac тӀехь)
- Internet Explorer / Edge: тӀетаӀийна йитина Ctrl, тӀетаӀайе Карлайаккха йа тӀетаӀайе Ctrl+F5
- Opera: тӀетаӀайе Ctrl+F5.
function sysopDeletePage(){
var msgDiv, oldValue, curValue, opt, quoteRegExp = /^\/\*(.*)\*\//
var hiddenGroups = [], hiddenGroupsNames = '', btnUnhide
var select = document.getElementById('wpDeleteReasonList')
var reason = document.getElementById('wpReason')
if (!select || !reason) return
groups = select.getElementsByTagName('optgroup')
//simplify list
for (var i=1; i<select.length; i++){
opt = select.options[i]
opt.title = opt.value
opt.text = opt.value.replace(/\[\[[^|]+\|([^\]]+)\]\]/,'$1')
}
if (mw.config.get('wgNamespaceNumber') == 6) return //file delete page, nothing else to do
if (!window.opera) hideGroups()
if (window.delPageExpandSelect) {
expandSelect()
select.form.scrollIntoView()
}
guessReasonFromTemplate()
addHandler(select, 'change', onReasonChange)
//add "info" link
var p = select.form.nextSibling
if (p && p.className && p.className=='mw-delete-editreasons')
p.innerHTML = '<a href="' + mw.config.get('wgArticlePath').replace('$1', 'MediaWiki_talk:Sysop.js') + '">Оцу метта башхо</a> | ' + p.innerHTML
return
// *** FUNCTIONS ***
//remove groups that are not applicable; doesn't work in Opera
function hideGroups(){
if (mw.config.get('wgNamespaceNumber')!=0) hideGroup ('Йаззамаш')
if (mw.config.get('wgNamespaceNumber')!=2 && mw.config.get('wgNamespaceNumber')!=3) hideGroup ('Долахь агӀонаш')
if (mw.config.get('wgNamespaceNumber')==14) hideGroup ('Дlасхьажайарш'); else hideGroup ('Категореш')
//create button to return removed groups
if (!hiddenGroupsNames) return
btnUnhide = document.createElement('input')
btnUnhide.type = 'button'; btnUnhide.value = '*'; btnUnhide.onclick = unHideGroups
btnUnhide.title = 'йухайерзайе къайла йахна тобанаш ' + hiddenGroupsNames
btnUnhide.style.cssText = 'margin-left:10px; background:inherit; height:1.2em'
//if (!delPageExpandSelect) select.parentNode.insertBefore(btnUnhide, select)
select.parentNode.insertBefore(btnUnhide, select.nextSibling)
}
function hideGroup(name){
for (var i=0; i<groups.length; i++) if (groups[i].label == name) break
if (i==groups.length) return
hiddenGroups.push( [ groups[i].nextSibling, select.removeChild(groups[i]) ] )
hiddenGroupsNames += (hiddenGroupsNames? ', ':'') + '«'+name+'»'
//groups[i].style.display = 'none' // doesn't work in IE
}
function unHideGroups(){
for (var i=hiddenGroups.length-1; i>=0; i--)
select.insertBefore(hiddenGroups[i][1], hiddenGroups[i][0])
btnUnhide.style.display = 'none'
expandSelect()
}
function guessReasonFromTemplate(){ //try to guess reason from the db- template in quote
var delTemplates = {
'О1': 'хlоттаделдоцу|nonsense|гlурте|nocontext',
'О2': 'хьажарна|test',
'О3': 'гал-верг|vand|галдаьлларгдяш-верг|vandal|attack ',
'О4': 'йухааl|repost',
'О5': 'куьгда|author',
'О6': 'дийцар|talk',
'О7': 'цlе-хийца|move|цlе-хийца|rename',
'О8': 'кхисанна|fork',
'С1': 'ясса|empty',
'С2': 'кхечуматтахь|foreign',
'С3': 'хьажорг|nocontent',
'С5': 'дз|nn|дазалдоцаш',
'С6': 'copyvio|цхьанах-хьаэцна',
'П1': 'цхьанхьа-доцаш|redirect|redirnone',
'П2': 'энаюккъараллийн|redirspace',
'П3': 'цахууш|гlалато|redirtypo',
'П4': 'дожар|redirflect',
'П5': 'маьlна|redirsense',
'К1': 'яссакад|catempty',
'У1': 'оцуьнда|owner|self|user',
'У2': 'anon|хlинц',
'У3': 'йоцуаш|nouser'
}
var ma
if (ma=reason.value.match(/\{\{\s*(db|дх)-?([\wа-яА-Я\s]+).*\}\}/i)){
var dbReason = '|' + ma[2].toLowerCase()
for (var name in delTemplates)
if (('|'+delTemplates[name]).indexOf(dbReason) != -1){
if (setSelect(name))
dispMsg('Шашех хаьржин '+name+' резонна кепца «' + ma[1]+'-'+ma[2]+'»', '#F4FFF4')
break
}
// {ДӀаяаккха хlар|2010-03-18}
}else if (ma=reason.value.match(/\{\{ДӀайаккха хӀара *\| *(\d\d\d\d)-(\d\d)-(\d\d)/i)){
setReason('хилам оцу дийцар кху \[\[ВП:ДӀайаккха хӀара/'+ma[3].replace(/^0/,'')+' '
+'январь|февраль|март|апрель|май|июнь|июль|август|сентябрь|октябрь|ноябрь|декабрь'
.split('|')[parseInt(ma[2],10)-1]+' '+ma[1]
+'#'+mw.config.get('wgPageName').replace(/_/g, ' ')+']]')
dispMsg('Шашех хӀоттийна хьажориг кху ВП:ДХ', '#F4FFF4')
delPageExpandSelect = false
}else if (ma=reason.value.match(/\{\{ДӀайаккха хӀара *\| *([^\}]+) *\}\}/i)){
setReason('хилам оцу дийцар кху \[\[Википеди:ДӀайаккха хӀара/'+ma[1]+'#'+mw.config.get('wgPageName').replace(/_/g, ' ')+']]')
dispMsg('Шашех хӀоттийна хьажорг кху ВП:ДХ', '#F4FFF4')
delPageExpandSelect = false
}else if (ma=reason.value.match(/#REDIRECT ?\[\[([^\]]+:)/i)){
var ma2 = mw.config.get('wgPageName').match(/.+:/)
if (ma2 && ma[1]!=ma2[0])
if (setSelect('П2'))
dispMsg('Шашех хаьржина П2', '#F4FFF4')
}else if ((mw.config.get('wgNamespaceNumber')==1 || mw.config.get('wgNamespaceNumber')==5)
&& (ma=document.getElementById('ca-nstab-main'))
&& (ma.getAttribute('class').indexOf('new') != -1) ){
setSelect('О6')
dispMsg('Шашех хаьржина О6', '#F4FFF4')
}
}
function dispMsg(msg, color){
if (!msgDiv){ //create DIV for messages
msgDiv = document.createElement('div')
msgDiv.style.cssText = 'padding:0 3px 0 3px; border:1px dotted gray; line-height:1.2em; margin-left:20px; float:right; display:none'
var el = document.getElementById('wpConfirmB')
if (el) el.parentNode.insertBefore(msgDiv, el)
else select.form.appendChild(msgDiv)
}
if (msg) {
msgDiv.innerHTML = msg
msgDiv.style.display = ''
msgDiv.style.backgroundColor = color || ''
}else msgDiv.style.display = 'none'
}
function onReasonChange(){
select.style.backgroundColor = select.selectedIndex==0 ? '#F5F5F5' : ''
if (/(#ХГ|харцлер|гlолелар)/.test(select.value)){ //then remove quote
if (oldValue) return //user selected one vand criteria after another
var newV = reason.value
newV = newV.replace(quoteRegExp,'')
if (setReason(newV)) dispMsg('Шашех дlадаьлла аьллахетарг', '#FFF5F5')
}else if (oldValue && reason.value==curValue){ //return quote back
setReason(oldValue, true)
dispMsg()
}else
dispMsg()
}
function expandSelect(){ //not for Opera (sometimes works in 9.27 though)
if (!window.delPageExpandSelect) return
var count = 1
for (var i=0; i<groups.length; i++)
if (groups[i].style.display != 'none')
count += groups[i].getElementsByTagName('option').length + 1
select.size = count
}
function setSelect(name){
for (var i=0; i<select.options.length; i++)
if (select.options[i].value.indexOf('#'+name+'|') != -1 ){
//messageStays = true
select.selectedIndex = i
onReasonChange()
return true
}
return false
}
function setReason(val, forgetOld){
if (val == reason.value) return false
oldValue = reason.value
curValue = val
reason.value = curValue
if (reason.onupdate) reason.onupdate() //for compatibility with "summary preview" script
if (forgetOld) oldValue = ''
return true
}
}
sysopDeletePage()