<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://wikiminecraft.es/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-RfDHelper.js</id>
	<title>MediaWiki:Gadget-RfDHelper.js - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://wikiminecraft.es/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-RfDHelper.js"/>
	<link rel="alternate" type="text/html" href="https://wikiminecraft.es/index.php?title=MediaWiki:Gadget-RfDHelper.js&amp;action=history"/>
	<updated>2026-05-01T16:52:33Z</updated>
	<subtitle>Historial de revisiones de esta página en la wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://wikiminecraft.es/index.php?title=MediaWiki:Gadget-RfDHelper.js&amp;diff=728&amp;oldid=prev</id>
		<title>Bth0: Página creada con «/*!  * Some enhancement on RfD that is enabled by default just for admins  * Originally was developed inside Merge.js by me but I decided to split it  * It will add a quick...»</title>
		<link rel="alternate" type="text/html" href="https://wikiminecraft.es/index.php?title=MediaWiki:Gadget-RfDHelper.js&amp;diff=728&amp;oldid=prev"/>
		<updated>2014-04-09T07:00:22Z</updated>

		<summary type="html">&lt;p&gt;Página creada con «/*!  * Some enhancement on RfD that is enabled by default just for admins  * Originally was developed inside Merge.js by me but I decided to split it  * It will add a quick...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/*!&lt;br /&gt;
 * Some enhancement on RfD that is enabled by default just for admins&lt;br /&gt;
 * Originally was developed inside Merge.js by me but I decided to split it&lt;br /&gt;
 * It will add a quick delete button near each header that is requested by merge.js&lt;br /&gt;
 * and will add a number near links button so admins can quickly detect an item has&lt;br /&gt;
 * not any back link then safely delete it. It also will check recent delete&lt;br /&gt;
 * log every 5 seconds and will make deleted item links on RfD red link&lt;br /&gt;
 * to prevent conflicts on deletion.&lt;br /&gt;
 * &lt;br /&gt;
 * @author User:Ebraminio &amp;lt;ebrahim -at- gnu.org&amp;gt;&lt;br /&gt;
 * @license CC-Zero&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
/*jslint indent: 2, regexp: true, unparam: true, browser: true*/&lt;br /&gt;
/*jshint unused: false*/&lt;br /&gt;
/*global mediaWiki, jQuery*/&lt;br /&gt;
(function ($, mw) {&lt;br /&gt;
  &amp;#039;use strict&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
  /**&lt;br /&gt;
   * Get backlink (50 limited)&lt;br /&gt;
   */&lt;br /&gt;
  function getBackLinks(itemId, callback) {&lt;br /&gt;
    new mw.Api().get({&lt;br /&gt;
      action: &amp;#039;query&amp;#039;,&lt;br /&gt;
      list: &amp;#039;backlinks&amp;#039;,&lt;br /&gt;
      bltitle: itemId,&lt;br /&gt;
      blnamespace: 0,&lt;br /&gt;
      bllimit: 50,&lt;br /&gt;
      format: &amp;#039;json&amp;#039;&lt;br /&gt;
    }).done(function (data) {&lt;br /&gt;
      callback($.map(data.query.backlinks, function (value) {&lt;br /&gt;
        return value.title;&lt;br /&gt;
      }));&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /**&lt;br /&gt;
   * Delete an item&lt;br /&gt;
   */&lt;br /&gt;
  function deleteItem(id, reason, callback) {&lt;br /&gt;
    new mw.Api().post({&lt;br /&gt;
      action: &amp;#039;delete&amp;#039;,&lt;br /&gt;
      title: id,&lt;br /&gt;
      reason: reason,&lt;br /&gt;
      token: mw.user.tokens.get(&amp;#039;editToken&amp;#039;)&lt;br /&gt;
    }).done(callback);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /**&lt;br /&gt;
   * Get recent deletions&lt;br /&gt;
   */&lt;br /&gt;
  function recentDeletions(callback) {&lt;br /&gt;
    new mw.Api().get({&lt;br /&gt;
      action: &amp;#039;query&amp;#039;,&lt;br /&gt;
      list: &amp;#039;recentchanges&amp;#039;,&lt;br /&gt;
      rctype: &amp;#039;log&amp;#039;,&lt;br /&gt;
      format: &amp;#039;json&amp;#039;,&lt;br /&gt;
      rcprop: &amp;#039;title|loginfo&amp;#039;&lt;br /&gt;
    }).done(callback);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if (mw.config.get(&amp;#039;wgPageName&amp;#039;).indexOf(&amp;#039;Wikidata:Requests_for_deletions&amp;#039;) === 0 &amp;amp;&amp;amp;&lt;br /&gt;
      mw.config.get(&amp;#039;wgAction&amp;#039;) === &amp;#039;view&amp;#039;) {&lt;br /&gt;
    $(function () {&lt;br /&gt;
      var itemLinks = {};&lt;br /&gt;
      $(&amp;#039;a[href^=&amp;quot;/wiki/Q&amp;quot;]:not(.new)&amp;#039;).each(function (i, x) { itemLinks[x.href.replace(/.*\//, &amp;#039;&amp;#039;)] = x; });&lt;br /&gt;
&lt;br /&gt;
      setInterval(function () {&lt;br /&gt;
        recentDeletions(function (r) {&lt;br /&gt;
          $.each(r.query.recentchanges, function (i, x) {&lt;br /&gt;
            if (x.ns !== 0 || x.logtype !== &amp;#039;delete&amp;#039;) { return; }&lt;br /&gt;
            $(itemLinks[x.title]).addClass(&amp;#039;new&amp;#039;);&lt;br /&gt;
            itemLinks[x.title] = undefined;&lt;br /&gt;
          });&lt;br /&gt;
        });&lt;br /&gt;
      }, 5000);&lt;br /&gt;
&lt;br /&gt;
      $(&amp;quot;#mw-content-text &amp;gt; p &amp;gt; .plainlinks&amp;quot;).each(function (i, x) {&lt;br /&gt;
        var link = $(x).find(&amp;#039;a:first&amp;#039;),&lt;br /&gt;
          deleteQuery = new mw.Uri(link.prop(&amp;#039;href&amp;#039;)).query,&lt;br /&gt;
          header,&lt;br /&gt;
          button;&lt;br /&gt;
        if (deleteQuery.action !== &amp;#039;delete&amp;#039;) {&lt;br /&gt;
          return;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        header = link.parent().parent().prev().find(&amp;#039;.mw-headline a&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
        // add backlinks count&lt;br /&gt;
        getBackLinks(deleteQuery.title, function (backlinks) {&lt;br /&gt;
          var blcount = backlinks.length;&lt;br /&gt;
          if (blcount === 50) {&lt;br /&gt;
            blcount = &amp;#039;50+&amp;#039;;&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          $(&amp;#039;[href*=&amp;quot;Special:WhatLinksHere&amp;quot;]&amp;#039;, x).after(&lt;br /&gt;
            $(&amp;#039;&amp;lt;span /&amp;gt;&amp;#039;)&lt;br /&gt;
              .css(&amp;#039;color&amp;#039;, blcount === 0 ? &amp;#039;black&amp;#039; : &amp;#039;red&amp;#039;)&lt;br /&gt;
              .text(&amp;#039; (&amp;#039; + mw.language.convertNumber(blcount) + &amp;#039;)&amp;#039;)&lt;br /&gt;
          );&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        // if deletion request is not done by merge.js and admin has not&lt;br /&gt;
        // `var rfdHero = true` on her/his common.js don&amp;#039;t add quick delete button&lt;br /&gt;
        if (deleteQuery.wpReason.indexOf(&amp;#039;Merge.js&amp;#039;) === -1 &amp;amp;&amp;amp; window.rfdHero !== true) {&lt;br /&gt;
          return;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // don&amp;#039;t add delete button if is deleted already&lt;br /&gt;
        if (header.hasClass(&amp;#039;new&amp;#039;)) {&lt;br /&gt;
          return;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        button = $(&amp;#039;&amp;lt;button&amp;gt;&amp;#039;, {&lt;br /&gt;
          title: &amp;#039;Quick Delete&amp;#039;,&lt;br /&gt;
          style: &amp;#039;cursor: pointer&amp;#039;&lt;br /&gt;
        }).append($(&amp;#039;&amp;lt;img /&amp;gt;&amp;#039;, {&lt;br /&gt;
          src: &amp;#039;//upload.wikimedia.org/wikipedia/commons/thumb/8/89/Symbol_delete_vote.svg/15px-Symbol_delete_vote.svg.png&amp;#039;,&lt;br /&gt;
          width: &amp;#039;15&amp;#039;,&lt;br /&gt;
          height: &amp;#039;15&amp;#039;&lt;br /&gt;
        })).click(function (x) {&lt;br /&gt;
          header.css(&amp;#039;text-decoration&amp;#039;, &amp;#039;line-through&amp;#039;);&lt;br /&gt;
          deleteItem(deleteQuery.title, deleteQuery.wpReason, function () {&lt;br /&gt;
            header.addClass(&amp;#039;new&amp;#039;);&lt;br /&gt;
          });&lt;br /&gt;
          // delete button after delete request&lt;br /&gt;
          button.remove();&lt;br /&gt;
        });&lt;br /&gt;
        // insert the button&lt;br /&gt;
        header.after(button);&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
}(jQuery, mediaWiki));&lt;/div&gt;</summary>
		<author><name>Bth0</name></author>
	</entry>
</feed>