Участник:X-romix/summary show overload.js

Материал из Википедии — свободной энциклопедии
mw.log.warn("Скрипт Участник:X-romix/summary show overload.js устарел. Отключите его в вашем персональном оформлении");
/*
//Показывает переполнение поля «Описание изменений».
//Поле «Описание изменений» принимает 250 латинских символов или 125 русских (каждый русский символ кодируется
//двумя байтами). Скрипт подсчитывает число символов и пишет сообщение, если размер поля был превышен.
//Сделан по аналогии со скриптом [[Участник:Js/summary.js]]

$(summaryPreview)
   
function summaryPreview(){
 
 var select, inputId, isEdit,  maxChars = 250, useMWPreview
 
 if (mw.config.get('wgAction') == 'edit' || mw.config.get('wgAction') == 'submit'){
   inputId = 'wpSummary'
 }else if (mw.config.get('wgCanonicalNamespace') == 'Special' && mw.config.get('wgCanonicalSpecialPageName') == 'Movepage'){
   inputId = 'wpReason'
  }else if (mw.config.get('wgAction') == 'protect'){
   inputId = 'mwProtect-reason'
 }else return
 
 var input = document.getElementById(inputId)
 if (!input) return
 
 //create counter span
 var cnt = document.createElement('span')
 cnt.id = 'inputCounter'
 cnt.style.marginLeft = '3px'
 input.parentNode.insertBefore(cnt, input.nextSibling)
  
 update()
 //assign events
 addHandler(input, 'change', update)
 addHandler(input, 'keyup', update)
 addHandler(input, 'mouseup', update)
 useMWPreview = false
 
 function update(){
  var text = input.value, cutAt, bb

  
  var chars = text.length

  bytes = 0
  for (var i=0; i<chars; i++){
    bytes++
    bb = text.charCodeAt(i)
    if (bb > 127) { 
      bytes++
      if (bb > 2048) bytes++
    }
  }

 
  var left;
  left=maxChars-bytes;
  if (left>=0){
    //cnt.innerHTML = left;
    cnt.innerHTML = "";
  }else{
    cnt.innerHTML = "<br><font color=red>Превышена предельная длина строки описания на "+(-left)+" символов.</font>";
  }
 }  
}
*/