MediaWiki:Gadget-watchlist.js

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая Alex Smotrov (обсуждение | вклад) в 22:59, 15 января 2008 (из user:Alex Smotrov/watchlist.js). Она может серьёзно отличаться от текущей версии.
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску
JS-код ниже относится к гаджету «В списке наблюдения: только новые изменения, сортировка списка, мгновенное „не следить“, возможность прятать кнопку отката» (править описание). Его использует около 3700 учётных записей.

После сохранения или недавних изменений очистите кэш браузера.

if (wgCanonicalSpecialPageName && wgCanonicalSpecialPageName == 'Watchlist' && wgAction=='view')
addOnloadHook(function () {
  var then = +(new Date());
  var fixLinkHref = function () {
    var url = window.location.href.split('#')[0];
    var days = ( +(new Date()) - then + 20000)/(1000 * 3600 * 24); //+20 sec just in case
    if (url.match(/[?&]days=/))
      this.href = url.replace(/([?&]days=)[^&]*/, '$1'+days);
    else
      this.href = url + (url.indexOf('?') < 0 ? '?':'&') + 'days=' + days;
    return true;
  }
  //add Unwatch... link
  var frm = document.getElementsByTagName('form')[0];
  if (!frm && !(frm=document.getElementById('contentSub'))) return;
  var lnk = document.createElement('a');
  var text = (window.wgAjaxWatch ? wgAjaxWatch.unwatchMsg : 'Unwatch') + '…';
  lnk.appendChild(document.createTextNode(text));
  lnk.href = 'javascript:callWLUnwatch()';
  lnk.title = 'Добавить (x) ссылки удаления страниц из списка наблюдения';
  frm.parentNode.insertBefore(document.createTextNode(' | '), frm);
  frm.parentNode.insertBefore(lnk, frm);
  //add Only new link
  var el = lnk;
  while ((el = el.previousSibling) && el.nodeName != 'BR');
  if (!el) el = frm;
  lnk = document.createElement('a');
  lnk.id = 'wlNew';
  lnk.href = '#listSince';
  lnk.onclick = fixLinkHref;
  lnk.onmousedown = fixLinkHref; // react to middle clicks too
  lnk.appendChild(document.createTextNode(wgUserLanguage=='ru'?'Только новые':'Only new'));
  lnk.title = 'Показать изменения с момента загрузки этой страницы';
  el.parentNode.insertBefore(document.createTextNode(' | '), el);
  el.parentNode.insertBefore(lnk, el);
});
function callWLUnwatch(){
  if (window.wlUnwatch) 
    alert('Для удаления страниц из списка наблюдения используйте появившиеся ссылки (x)')
  else
    importScript('User:Alex_Smotrov/wlunwatch.js','en');
}