コンテンツにスキップ

利用者:Akaniji/lockrollback.js

お知らせ: 保存した後、ブラウザのキャッシュをクリアしてページを再読み込みする必要があります。

多くの WindowsLinux のブラウザ

  • Ctrl を押しながら F5 を押す。

Mac における Safari

  • Shift を押しながら、更新ボタン をクリックする。

Mac における ChromeFirefox

  • Cmd Shift を押しながら R を押す。

詳細についてはWikipedia:キャッシュを消すをご覧ください。

// 
// LockRollback ver 0.1
// https://commons.wikimedia.org/wiki/User:Whym/lockrollback.js
//

// Warning: this script is nowhere close to finished.  Use it at your own risk.

//
// How to use:
//
// Add below to [[Special:MyPage/common.js]].
//  importScript("User:Whym/lockrollback.js");
//
// This script disables rollback links.
// They can be reactivated when you click a portlet link "unlock rollback" in the side bar.
// 

(function ($, mw, undefined) {
"use strict";

var lrb = mw.LockRollback = {

targets: $('.mw-rollback-link a'),

init: function(lang) {
  // exit if there is no rollback links
  if (lrb.targets.length == 0) return;

  // set up messages
  mw.messages.set({
    'lrb-portlettext-unlock'  : 'Unlock rollbacks',
    'lrb-portlettext-lock':     'Lock rollbacks'
  });

  // set up CSS classes
  mw.util.addCSS('.lockrollback-locked,   .lockrollback-locked:hover   { text-decoration: line-through; }');
  mw.util.addCSS('.lockrollback-unlocked, .lockrollback-unlocked:hover { text-decoration: underline; }');

  // set the default state to locked
  lrb.lock();

  // set up a portlet link to toggle locked/unlocked
  $( mw.util.addPortletLink('p-tb', '#', mw.msg('lrb-portlettext-unlock'), 't-lockrollback-trigger') ).click( function ( e ) {
    e.preventDefault();
    if ( lrb.locked() ) {
      lrb.unlock();
    } else {
      lrb.lock();
    }
  });
},

locked: function() {
  return lrb.targets.hasClass('lockrollback-locked');
},

unlock: function() {
  $('#t-lockrollback-trigger a').html(mw.msg('lrb-portlettext-lock'));
  lrb.targets.removeClass('lockrollback-locked').addClass('lockrollback-unlocked');
  lrb.targets.unbind('click').click(function(x){
    x.preventDefault();
    document.location.replace($(x.target).attr('href'));
  });
},

lock: function() {
  $('#t-lockrollback-trigger a').html(mw.msg('lrb-portlettext-unlock'));
  lrb.targets.addClass('lockrollback-locked').removeClass('lockrollback-unlocked');
  lrb.targets.unbind('click').click(function(x){
    x.preventDefault();
  });
},

}; // LockRollback

// executed from here when loaded
mw.loader.using(['mediawiki.util'], function() {
  lrb.init();
});

})(jQuery, mediaWiki);