<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://fallout-wiki.com/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-CatRename.js</id>
	<title>MediaWiki:Gadget-CatRename.js - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://fallout-wiki.com/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-CatRename.js"/>
	<link rel="alternate" type="text/html" href="https://fallout-wiki.com/index.php?title=MediaWiki:Gadget-CatRename.js&amp;action=history"/>
	<updated>2026-08-05T11:18:44Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://fallout-wiki.com/index.php?title=MediaWiki:Gadget-CatRename.js&amp;diff=146802&amp;oldid=prev</id>
		<title>Kharmitch : Ajout de la fonction permettant aux utilisateurs sans droit de suppression d&#039;ajouter le bandeau de suppression sur l&#039;ancienne catégorie.</title>
		<link rel="alternate" type="text/html" href="https://fallout-wiki.com/index.php?title=MediaWiki:Gadget-CatRename.js&amp;diff=146802&amp;oldid=prev"/>
		<updated>2023-02-12T16:02:40Z</updated>

		<summary type="html">&lt;p&gt;Ajout de la fonction permettant aux utilisateurs sans droit de suppression d&amp;#039;ajouter le bandeau de suppression sur l&amp;#039;ancienne catégorie.&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 12 février 2023 à 18:02&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l17&quot;&gt;Ligne 17 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 17 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		// Site-related parameters&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		// Site-related parameters&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		const TAG = &amp;#039;RenommageCategorie&amp;#039;;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		const TAG = &amp;#039;RenommageCategorie&amp;#039;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		const DAILY_LIMIT = &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;25000&lt;/del&gt;;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		const DAILY_LIMIT = &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2500&lt;/ins&gt;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		const DR_TEMPLATE = &#039;{{Suppression|utilisateur=$1}}\n\n&#039;;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		// Literal non-breaking space, for situations where HTML entities can&amp;#039;t be used&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		// Literal non-breaking space, for situations where HTML entities can&amp;#039;t be used&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		const NBSP = String.fromCharCode( 0xA0 );&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		const NBSP = String.fromCharCode( 0xA0 );&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l652&quot;&gt;Ligne 652 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 653 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;						dialog.errorHandler( error );&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;						dialog.errorHandler( error );&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;					}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;					}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;				} );&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;				return this.deferred;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;			};&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;			/**&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;			 * Post a deletion request.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;			 *&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;			 * @return {JQuery.Deferred} Promise telling to continue the process&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;			 * when it is its turn to execute.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;			 */&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;			CatRename.prototype.postDR = function () {&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;				var dialog = this;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;				this.deferred = $.Deferred();&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;				this.showStatus( mw.msg( &#039;catrename-status-postdr&#039; ) );&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;				var content = DR_TEMPLATE&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;					.replace( /\$1/g, mw.config.get( &#039;wgUserName&#039; ) );&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;				this.api.postWithToken( &#039;csrf&#039;, {&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;					&#039;action&#039;: &#039;edit&#039;,&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;					&#039;format&#039;: &#039;json&#039;,&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;					&#039;title&#039;: this.oldPageName,&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;					&#039;summary&#039;: mw.msg( &#039;catrename-dr-summary&#039; ),&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;					&#039;tags&#039;: TAG,&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;					&#039;nocreate&#039;: 1,&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;					&#039;prependtext&#039;: content,&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;					&#039;formatversion&#039;: &#039;2&#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;				} ).then( function ( data ) {&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;					dialog.deferred.resolve();&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;				} ).fail( function ( error ) {&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;					dialog.errorHandler( error );&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				} );&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				} );&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key admin_falloutwikidb:diff:1.41:old-80576:rev-146802:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Kharmitch</name></author>
	</entry>
	<entry>
		<id>https://fallout-wiki.com/index.php?title=MediaWiki:Gadget-CatRename.js&amp;diff=80576&amp;oldid=prev</id>
		<title>Kharmitch le 10 novembre 2021 à 22:05</title>
		<link rel="alternate" type="text/html" href="https://fallout-wiki.com/index.php?title=MediaWiki:Gadget-CatRename.js&amp;diff=80576&amp;oldid=prev"/>
		<updated>2021-11-10T22:05:37Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 11 novembre 2021 à 00:05&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l17&quot;&gt;Ligne 17 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 17 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		// Site-related parameters&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		// Site-related parameters&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		const TAG = &amp;#039;RenommageCategorie&amp;#039;;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		const TAG = &amp;#039;RenommageCategorie&amp;#039;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		const DAILY_LIMIT = &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2500&lt;/del&gt;;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		const DAILY_LIMIT = &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;25000&lt;/ins&gt;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		// Literal non-breaking space, for situations where HTML entities can&amp;#039;t be used&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		// Literal non-breaking space, for situations where HTML entities can&amp;#039;t be used&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key admin_falloutwikidb:diff:1.41:old-79142:rev-80576:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Kharmitch</name></author>
	</entry>
	<entry>
		<id>https://fallout-wiki.com/index.php?title=MediaWiki:Gadget-CatRename.js&amp;diff=79142&amp;oldid=prev</id>
		<title>Kharmitch le 10 novembre 2021 à 21:14</title>
		<link rel="alternate" type="text/html" href="https://fallout-wiki.com/index.php?title=MediaWiki:Gadget-CatRename.js&amp;diff=79142&amp;oldid=prev"/>
		<updated>2021-11-10T21:14:24Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 10 novembre 2021 à 23:14&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l501&quot;&gt;Ligne 501 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 501 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				this.noSpammingDelay = &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;500;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				this.noSpammingDelay = 50;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;				/*if ( this.members.length &amp;gt; &lt;/del&gt;50 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;) {&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;					this.noSpammingDelay = 20000;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;				}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;				else if ( this.members.length &amp;gt; 10 ) {&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;					this.noSpammingDelay = 10000&lt;/del&gt;;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;				}*/&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				this.showStatus( mw.msg( &amp;#039;catrename-status-checklimits&amp;#039; ) );&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				this.showStatus( mw.msg( &amp;#039;catrename-status-checklimits&amp;#039; ) );&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key admin_falloutwikidb:diff:1.41:old-79113:rev-79142:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Kharmitch</name></author>
	</entry>
	<entry>
		<id>https://fallout-wiki.com/index.php?title=MediaWiki:Gadget-CatRename.js&amp;diff=79113&amp;oldid=prev</id>
		<title>Kharmitch le 10 novembre 2021 à 21:12</title>
		<link rel="alternate" type="text/html" href="https://fallout-wiki.com/index.php?title=MediaWiki:Gadget-CatRename.js&amp;diff=79113&amp;oldid=prev"/>
		<updated>2021-11-10T21:12:17Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 10 novembre 2021 à 23:12&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l501&quot;&gt;Ligne 501 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 501 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				this.noSpammingDelay = &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;5000&lt;/del&gt;;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				this.noSpammingDelay = &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;500&lt;/ins&gt;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				if ( this.members.length &amp;gt; 50 ) {&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/*&lt;/ins&gt;if ( this.members.length &amp;gt; 50 ) {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;					this.noSpammingDelay = 20000;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;					this.noSpammingDelay = 20000;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				else if ( this.members.length &amp;gt; 10 ) {&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				else if ( this.members.length &amp;gt; 10 ) {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;					this.noSpammingDelay = 10000;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;					this.noSpammingDelay = 10000;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				}&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*/&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				this.showStatus( mw.msg( &amp;#039;catrename-status-checklimits&amp;#039; ) );&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				this.showStatus( mw.msg( &amp;#039;catrename-status-checklimits&amp;#039; ) );&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key admin_falloutwikidb:diff:1.41:old-79092:rev-79113:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Kharmitch</name></author>
	</entry>
	<entry>
		<id>https://fallout-wiki.com/index.php?title=MediaWiki:Gadget-CatRename.js&amp;diff=79092&amp;oldid=prev</id>
		<title>Kharmitch le 10 novembre 2021 à 20:54</title>
		<link rel="alternate" type="text/html" href="https://fallout-wiki.com/index.php?title=MediaWiki:Gadget-CatRename.js&amp;diff=79092&amp;oldid=prev"/>
		<updated>2021-11-10T20:54:31Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 10 novembre 2021 à 22:54&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l316&quot;&gt;Ligne 316 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 316 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				// Disable actions button when a process is runing&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				// Disable actions button when a process is runing&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				this.getActions().get( { actions: &amp;#039;rename&amp;#039; } )[ 0 ].setDisabled( true );&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				this.getActions().get( { actions: &amp;#039;rename&amp;#039; } )[ 0 ].setDisabled( true );&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;				this.getActions().get( { actions: &#039;rbot&#039; } )[ 0 ].setDisabled( true );&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				// Except for the cancel button, which behaviour change to cancel the ongoing process&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				// Except for the cancel button, which behaviour change to cancel the ongoing process&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				this.getActions().get( { actions: &amp;#039;cancel&amp;#039; } )[ 0 ].on( &amp;#039;click&amp;#039;, function () {&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				this.getActions().get( { actions: &amp;#039;cancel&amp;#039; } )[ 0 ].on( &amp;#039;click&amp;#039;, function () {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l741&quot;&gt;Ligne 741 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 740 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				this.getActions().get( { actions: &amp;#039;rename&amp;#039; } )[ 0 ].setDisabled( false );&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				this.getActions().get( { actions: &amp;#039;rename&amp;#039; } )[ 0 ].setDisabled( false );&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;				this.getActions().get( { actions: &#039;rbot&#039; } )[ 0 ].setDisabled( false );&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				this.deferred.reject( errorMessage );&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				this.deferred.reject( errorMessage );&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key admin_falloutwikidb:diff:1.41:old-79090:rev-79092:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Kharmitch</name></author>
	</entry>
	<entry>
		<id>https://fallout-wiki.com/index.php?title=MediaWiki:Gadget-CatRename.js&amp;diff=79090&amp;oldid=prev</id>
		<title>Kharmitch : Page créée avec « /* * CatRename * * Ajoute un onglet permettant de renommer une catégorie, en déplaçant les pages * incluses dans celle-ci. Permet de faire faire l&#039;action à un bot en un clic. * * Fonction copiée depuis Wikipédia : https://fr.wikipedia.org/wiki/MediaWiki:Gadget-CatRename.js */ /* &lt;nowiki&gt; */  /* globals mw, OO, $ */  if ( mw.config.get( &#039;wgNamespaceNumber&#039; ) === 14 ) { 	mw.loader.using( &#039;mediawiki.util&#039;, function () { 		&#039;use strict&#039;;  		// Site-related parameter... »</title>
		<link rel="alternate" type="text/html" href="https://fallout-wiki.com/index.php?title=MediaWiki:Gadget-CatRename.js&amp;diff=79090&amp;oldid=prev"/>
		<updated>2021-11-10T20:51:14Z</updated>

		<summary type="html">&lt;p&gt;Page créée avec « &lt;span class=&quot;autocomment&quot;&gt;* CatRename * * Ajoute un onglet permettant de renommer une catégorie, en déplaçant les pages * incluses dans celle-ci. Permet de faire faire l&amp;#039;action à un bot en un clic. * * Fonction copiée depuis Wikipédia : https://fr.wikipedia.org/wiki/MediaWiki:Gadget-CatRename.js : &lt;/span&gt; &lt;span class=&quot;autocomment&quot;&gt;&amp;lt;nowiki&amp;gt; : &lt;/span&gt;  &lt;span class=&quot;autocomment&quot;&gt;globals mw, OO, $ : &lt;/span&gt;  if ( mw.config.get( &amp;#039;wgNamespaceNumber&amp;#039; ) === 14 ) { 	mw.loader.using( &amp;#039;mediawiki.util&amp;#039;, function () { 		&amp;#039;use strict&amp;#039;;  		// Site-related parameter... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/*&lt;br /&gt;
* CatRename&lt;br /&gt;
*&lt;br /&gt;
* Ajoute un onglet permettant de renommer une catégorie, en déplaçant les pages&lt;br /&gt;
* incluses dans celle-ci. Permet de faire faire l&amp;#039;action à un bot en un clic.&lt;br /&gt;
*&lt;br /&gt;
* Fonction copiée depuis Wikipédia : https://fr.wikipedia.org/wiki/MediaWiki:Gadget-CatRename.js&lt;br /&gt;
*/&lt;br /&gt;
/* &amp;lt;nowiki&amp;gt; */&lt;br /&gt;
&lt;br /&gt;
/* globals mw, OO, $ */&lt;br /&gt;
&lt;br /&gt;
if ( mw.config.get( &amp;#039;wgNamespaceNumber&amp;#039; ) === 14 ) {&lt;br /&gt;
	mw.loader.using( &amp;#039;mediawiki.util&amp;#039;, function () {&lt;br /&gt;
		&amp;#039;use strict&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
		// Site-related parameters&lt;br /&gt;
		const TAG = &amp;#039;RenommageCategorie&amp;#039;;&lt;br /&gt;
		const DAILY_LIMIT = 2500;&lt;br /&gt;
&lt;br /&gt;
		// Literal non-breaking space, for situations where HTML entities can&amp;#039;t be used&lt;br /&gt;
		const NBSP = String.fromCharCode( 0xA0 );&lt;br /&gt;
&lt;br /&gt;
		// Messages&lt;br /&gt;
		const messages = {&lt;br /&gt;
			&amp;#039;fr&amp;#039;: {&lt;br /&gt;
				&amp;#039;catrename-title&amp;#039;: &amp;#039;Renommer une catégorie&amp;#039;,&lt;br /&gt;
				&amp;#039;catrename-portlet-title&amp;#039;: &amp;#039;CatRename&amp;#039;,&lt;br /&gt;
&lt;br /&gt;
				&amp;#039;catrename-action-rename&amp;#039;: &amp;#039;Renommer&amp;#039;,&lt;br /&gt;
				&amp;#039;catrename-action-cancel&amp;#039;: &amp;#039;Annuler&amp;#039;,&lt;br /&gt;
				&amp;#039;catrename-action-rbot&amp;#039;: &amp;#039;… ou faire faire la tâche par un bot&amp;#039;,&lt;br /&gt;
&lt;br /&gt;
				&amp;#039;catrename-checkbox-movetalk&amp;#039;: &amp;#039;Renommer aussi la page de discussion associée&amp;#039;,&lt;br /&gt;
				&amp;#039;catrename-checkbox-leave-redirect&amp;#039;: &amp;#039;Laisser une redirection vers le nouveau titre&amp;#039;,&lt;br /&gt;
				&amp;#039;catrename-checkbox-post-dr&amp;#039;: &amp;#039;Déposer une demande de suppression de l\&amp;#039;ancienne catégorie&amp;#039;,&lt;br /&gt;
				&amp;#039;catrename-checkbox-watch&amp;#039;: &amp;#039;Suivre les catégories originale et nouvelle&amp;#039;,&lt;br /&gt;
				&amp;#039;catrename-checkbox-watch-members&amp;#039;: &amp;#039;Suivre les pages modifiées&amp;#039;,&lt;br /&gt;
&lt;br /&gt;
				&amp;#039;catrename-field-title&amp;#039;: &amp;#039;Nouveau titre&amp;#039; + NBSP + &amp;#039;:&amp;#039;,&lt;br /&gt;
				&amp;#039;catrename-field-reason&amp;#039;: &amp;#039;Motif&amp;#039; + NBSP + &amp;#039;:&amp;#039;,&lt;br /&gt;
&lt;br /&gt;
				&amp;#039;catrename-summary&amp;#039;: &amp;#039;Remplacement de la catégorie [[Catégorie:$1]] par [[Catégorie:$2]]&amp;amp;nbsp;: $3&amp;#039;,&lt;br /&gt;
				&amp;#039;catrename-dr-summary&amp;#039;: &amp;#039;Demande de suppression après renommage&amp;#039;,&lt;br /&gt;
				&amp;#039;catrename-rbot-summary&amp;#039;: &amp;#039;RBOT&amp;amp;nbsp;: Demande de renommage de catégorie&amp;#039;,&lt;br /&gt;
&lt;br /&gt;
				&amp;#039;catrename-status-checkcategory&amp;#039;: &amp;#039;Vérification de la catégorie cible&amp;#039;,&lt;br /&gt;
				&amp;#039;catrename-status-getmembers&amp;#039;: &amp;#039;Récupération des pages membres de la catégorie&amp;#039;,&lt;br /&gt;
				&amp;#039;catrename-status-waitinglock&amp;#039;: &amp;#039;En attente de la fin de renommage dans d\&amp;#039;autres onglets&amp;#039;,&lt;br /&gt;
				&amp;#039;catrename-status-checklimits&amp;#039;: &amp;#039;Vérification de la limite journalière&amp;#039;,&lt;br /&gt;
				&amp;#039;catrename-status-editmembers&amp;#039;: &amp;#039;Modification de la page $1 sur $2&amp;#039;,&lt;br /&gt;
				&amp;#039;catrename-status-renamecategory&amp;#039;: &amp;#039;Renommage de la catégorie&amp;#039;,&lt;br /&gt;
				&amp;#039;catrename-status-postdr&amp;#039;: &amp;#039;Dépôt de la demande de suppression&amp;#039;,&lt;br /&gt;
				&amp;#039;catrename-status-postrbot&amp;#039;: &amp;#039;Dépôt de la requête aux bots&amp;#039;,&lt;br /&gt;
&lt;br /&gt;
				&amp;#039;catrename-error-canceled&amp;#039;: &amp;#039;Le processus de renommage a été annulé.&amp;#039;,&lt;br /&gt;
				&amp;#039;catrename-error-same&amp;#039;: &amp;#039;Le nouveau titre est identique au titre actuel.&amp;#039;,&lt;br /&gt;
				&amp;#039;catrename-error-invalidtitle&amp;#039;: &amp;#039;Le titre de la catégorie demandée est non valide, vide, ou mal formé.&amp;#039;,&lt;br /&gt;
				&amp;#039;catrename-error-noreason&amp;#039;: &amp;#039;Veuillez indiquer un motif pour ce renommage.&amp;#039;,&lt;br /&gt;
				&amp;#039;catrename-error-protected&amp;#039;: &amp;#039;Cette catégorie est protégée, vous n\&amp;#039;êtes pas autorisé à la renommer.&amp;#039;,&lt;br /&gt;
				&amp;#039;catrename-error-categoryexist&amp;#039;: &amp;#039;Il existe déjà une catégorie avec ce nom…&amp;#039;,&lt;br /&gt;
				&amp;#039;catrename-error-limitreached&amp;#039;: &amp;#039;Le renommage de cette catégorie vous ferait faire plus de $1 modifications avec ce script en moins de 24h. Vous pouvez cependant faire une requête aux bots via le bouton en bas à gauche.&amp;#039;,&lt;br /&gt;
				&amp;#039;catrename-error-categorypresent&amp;#039;: &amp;#039;La page contient déjà la nouvelle catégorie.&amp;#039;,&lt;br /&gt;
				&amp;#039;catrename-error-notfound&amp;#039;: &amp;#039;La catégorie n\&amp;#039;a pas été trouvée dans le code de la page, peut-être est-elle incluse via un modèle&amp;#039; + NBSP + &amp;#039;?&amp;#039;,&lt;br /&gt;
				&amp;#039;catrename-error-pageprotected&amp;#039;: &amp;#039;La page est protégée en écriture.&amp;#039;,&lt;br /&gt;
				&amp;#039;catrename-error-articleexists&amp;#039;: &amp;#039;Impossible de déplacer la catégorie, la page de destination «&amp;#039; + NBSP + &amp;#039;$1&amp;#039; + NBSP + &amp;#039;» existe déjà.&amp;#039;,&lt;br /&gt;
			}&lt;br /&gt;
		};&lt;br /&gt;
		mw.messages.set( messages.fr );&lt;br /&gt;
		var lang = mw.config.get( &amp;#039;wgUserLanguage&amp;#039; );&lt;br /&gt;
		if ( lang !== &amp;#039;fr&amp;#039; &amp;amp;&amp;amp; lang in messages ) {&lt;br /&gt;
			mw.messages.set( messages[ lang ] );&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
		var isBootstrapped = false;&lt;br /&gt;
		var instanceWindowManager;&lt;br /&gt;
		var instanceCatRename;&lt;br /&gt;
&lt;br /&gt;
		$( function ( $ ) {&lt;br /&gt;
			var portlet = mw.util.addPortletLink( &amp;#039;p-cactions&amp;#039;, &amp;#039;#&amp;#039;, mw.msg( &amp;#039;catrename-portlet-title&amp;#039; ) );&lt;br /&gt;
			$( portlet ).on( &amp;#039;click&amp;#039;, function ( e ) {&lt;br /&gt;
				e.preventDefault();&lt;br /&gt;
				mw.loader.using( [ &amp;#039;oojs-ui&amp;#039;, &amp;#039;mediawiki.storage&amp;#039;, &amp;#039;mediawiki.api&amp;#039; ], function () {&lt;br /&gt;
					bootstrapOnce();&lt;br /&gt;
					instanceCatRename.open();&lt;br /&gt;
				} );&lt;br /&gt;
			} );&lt;br /&gt;
		} );&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
		/* Instanciate CatRename and add it to MediaWiki&amp;#039;s UI. */&lt;br /&gt;
&lt;br /&gt;
		function bootstrapOnce() {&lt;br /&gt;
			if (isBootstrapped) {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			isBootstrapped = true;&lt;br /&gt;
&lt;br /&gt;
			/**&lt;br /&gt;
			 * Main class of the gadget CatRename, which is displayed as a ProcessDialog&lt;br /&gt;
			 *&lt;br /&gt;
			 * @class&lt;br /&gt;
			 * @extends OO.ui.ProcessDialog&lt;br /&gt;
			 *&lt;br /&gt;
			 * @constructor&lt;br /&gt;
			 */&lt;br /&gt;
			var CatRename = function () {&lt;br /&gt;
				// Initialize config&lt;br /&gt;
				var config = { size: &amp;#039;medium&amp;#039; };&lt;br /&gt;
&lt;br /&gt;
				// Parent constructor&lt;br /&gt;
				CatRename.parent.call( this, config );&lt;br /&gt;
&lt;br /&gt;
				// Properties&lt;br /&gt;
				this.api = new mw.Api( { timeout: 7000 } );&lt;br /&gt;
				this.oldTitle;&lt;br /&gt;
				this.newTitle;&lt;br /&gt;
				this.oldPageName;&lt;br /&gt;
				this.newPageName;&lt;br /&gt;
				this.reason;&lt;br /&gt;
				this.deferred;&lt;br /&gt;
				this.members;&lt;br /&gt;
				this.lockID;&lt;br /&gt;
				this.nextTab;&lt;br /&gt;
				this.noSpammingDelay;&lt;br /&gt;
&lt;br /&gt;
				// Graphical properties&lt;br /&gt;
				this.configContent = new OO.ui.PanelLayout( { padded: true, expanded: false } );&lt;br /&gt;
				this.statusContent = new OO.ui.PanelLayout( { padded: true, expanded: false } );&lt;br /&gt;
				this.newNameInput;&lt;br /&gt;
				this.reasonInput;&lt;br /&gt;
				this.optionCheckboxes;&lt;br /&gt;
				this.layout;&lt;br /&gt;
				this.$body;&lt;br /&gt;
				this.statusIndicator;&lt;br /&gt;
				this.pagesInError;&lt;br /&gt;
			};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
			/* Setup */&lt;br /&gt;
&lt;br /&gt;
			OO.inheritClass( CatRename, OO.ui.ProcessDialog );&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
			/* Static Properties */&lt;br /&gt;
&lt;br /&gt;
			CatRename.static.name = &amp;#039;catrename&amp;#039;;&lt;br /&gt;
			CatRename.static.title = mw.msg( &amp;#039;catrename-title&amp;#039; );&lt;br /&gt;
			CatRename.static.actions = [&lt;br /&gt;
				{ action: &amp;#039;rename&amp;#039;, label: mw.msg( &amp;#039;catrename-action-rename&amp;#039; ), flags: [ &amp;#039;primary&amp;#039;, &amp;#039;progressive&amp;#039; ] },&lt;br /&gt;
				{ action: &amp;#039;cancel&amp;#039;, label: mw.msg( &amp;#039;catrename-action-cancel&amp;#039; ), flags: [ &amp;#039;safe&amp;#039;, &amp;#039;back&amp;#039; ] }&lt;br /&gt;
			];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
			/* ProcessDialog-related Methods */&lt;br /&gt;
&lt;br /&gt;
			/**&lt;br /&gt;
			 * Build the interface displayed inside the ProcessDialog box.&lt;br /&gt;
			 */&lt;br /&gt;
			CatRename.prototype.initialize = function () {&lt;br /&gt;
				CatRename.parent.prototype.initialize.apply( this, arguments );&lt;br /&gt;
&lt;br /&gt;
				this.newNameInput = new OO.ui.TextInputWidget( { value: mw.config.get( &amp;#039;wgTitle&amp;#039; ) } );&lt;br /&gt;
				this.reasonInput = new OO.ui.TextInputWidget( {&lt;br /&gt;
					maxLength: 500,&lt;br /&gt;
					name: &amp;#039;wpSummary&amp;#039;&lt;br /&gt;
				} );&lt;br /&gt;
&lt;br /&gt;
				this.optionCheckboxes = new OO.ui.CheckboxMultiselectInputWidget( {&lt;br /&gt;
					value: [ &amp;#039;movetalk&amp;#039;, &amp;#039;post-dr&amp;#039; ],&lt;br /&gt;
					options: [&lt;br /&gt;
						{ data: &amp;#039;movetalk&amp;#039;, label: mw.msg( &amp;#039;catrename-checkbox-movetalk&amp;#039; ) },&lt;br /&gt;
						( this.userInGroup( &amp;#039;sysop&amp;#039; ) || this.userInGroup( &amp;#039;bot&amp;#039; ) ?&lt;br /&gt;
							{ data: &amp;#039;leave-redirect&amp;#039;, label: mw.msg( &amp;#039;catrename-checkbox-leave-redirect&amp;#039; ) } :&lt;br /&gt;
							{ data: &amp;#039;post-dr&amp;#039;, label: mw.msg( &amp;#039;catrename-checkbox-post-dr&amp;#039; ) }&lt;br /&gt;
						),&lt;br /&gt;
						{ data: &amp;#039;watch&amp;#039;, label: mw.msg( &amp;#039;catrename-checkbox-watch&amp;#039; ) },&lt;br /&gt;
						{ data: &amp;#039;watch-members&amp;#039;, label: mw.msg( &amp;#039;catrename-checkbox-watch-members&amp;#039; ) }&lt;br /&gt;
					]&lt;br /&gt;
				} );&lt;br /&gt;
&lt;br /&gt;
				this.layout = new OO.ui.Widget( {&lt;br /&gt;
					content: [&lt;br /&gt;
						new OO.ui.FieldLayout(&lt;br /&gt;
							this.newNameInput, {&lt;br /&gt;
								align: &amp;#039;top&amp;#039;,&lt;br /&gt;
								label: mw.msg( &amp;#039;catrename-field-title&amp;#039; ),&lt;br /&gt;
							}&lt;br /&gt;
						),&lt;br /&gt;
						new OO.ui.FieldLayout(&lt;br /&gt;
							this.reasonInput, {&lt;br /&gt;
								align: &amp;#039;top&amp;#039;,&lt;br /&gt;
								label: mw.msg( &amp;#039;catrename-field-reason&amp;#039; ),&lt;br /&gt;
							}&lt;br /&gt;
						),&lt;br /&gt;
						new OO.ui.FieldLayout(&lt;br /&gt;
							this.optionCheckboxes, {}&lt;br /&gt;
						)&lt;br /&gt;
					],&lt;br /&gt;
				} );&lt;br /&gt;
&lt;br /&gt;
				this.configContent.$element.append( this.layout.$element );&lt;br /&gt;
&lt;br /&gt;
				this.$body.append( this.configContent.$element );&lt;br /&gt;
&lt;br /&gt;
				this.statusIndicator = $( &amp;#039;&amp;lt;h3&amp;gt;&amp;#039; )&lt;br /&gt;
					.css( &amp;#039;text-align&amp;#039;, &amp;#039;center&amp;#039; )&lt;br /&gt;
					.css( &amp;#039;margin-top&amp;#039;, &amp;#039;1em&amp;#039; )&lt;br /&gt;
					.css( &amp;#039;margin-bottom&amp;#039;, &amp;#039;2em&amp;#039; );&lt;br /&gt;
				this.pagesInError = $( &amp;#039;&amp;lt;ul&amp;gt;&amp;#039; );&lt;br /&gt;
				this.statusContent.$element.append( this.statusIndicator ).append( this.pagesInError );&lt;br /&gt;
&lt;br /&gt;
				this.setSize( this.size );&lt;br /&gt;
				this.updateSize();&lt;br /&gt;
			};&lt;br /&gt;
&lt;br /&gt;
			/**&lt;br /&gt;
			 * Get a process for taking action.&lt;br /&gt;
			 *&lt;br /&gt;
			 * This method is called within the ProcessDialog when the user clicks&lt;br /&gt;
			 * on an action button (the one defined in CatRename.static.actions).&lt;br /&gt;
			 * Here is defined in which order each method of the category moving&lt;br /&gt;
			 * process is called.&lt;br /&gt;
			 * @param {string} action Name of the action button clicked.&lt;br /&gt;
			 * @return {OO.ui.Process} Action process.&lt;br /&gt;
			 */&lt;br /&gt;
			CatRename.prototype.getActionProcess = function ( action ) {&lt;br /&gt;
				var process = new OO.ui.Process(),&lt;br /&gt;
					options = this.optionCheckboxes.getValue();&lt;br /&gt;
&lt;br /&gt;
				if ( action === &amp;#039;cancel&amp;#039; || action === &amp;#039;&amp;#039; ) { // empty string when closing with Escape key&lt;br /&gt;
					return process.next( this.unlockMultitabs, this )&lt;br /&gt;
						.next( this.closeDialog, this );&lt;br /&gt;
				}&lt;br /&gt;
				else if ( action === &amp;#039;rename&amp;#039; ) {&lt;br /&gt;
					process.next( this.prepare, this )&lt;br /&gt;
						.next( this.checkCategory, this )&lt;br /&gt;
						.next( this.getMembers, this )&lt;br /&gt;
						.next( this.lockMultitabs, this )&lt;br /&gt;
						.next( this.checkLimits, this )&lt;br /&gt;
						.next( this.editMembers, this )&lt;br /&gt;
						.next( this.renameCategory, this );&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				if ( options.indexOf( &amp;#039;post-dr&amp;#039; ) &amp;gt; -1 ) {&lt;br /&gt;
					process.next( this.postDR, this );&lt;br /&gt;
				}&lt;br /&gt;
				process.next( this.unlockMultitabs, this )&lt;br /&gt;
					.next( this.success, this )&lt;br /&gt;
					.next( this.closeDialog, this );&lt;br /&gt;
&lt;br /&gt;
				return process;&lt;br /&gt;
			};&lt;br /&gt;
&lt;br /&gt;
			/**&lt;br /&gt;
			 * Close the window.&lt;br /&gt;
			 *&lt;br /&gt;
			 * @return {jQuery.Promise} Promise resolved when window is closed&lt;br /&gt;
			 */&lt;br /&gt;
			CatRename.prototype.closeDialog = function () {&lt;br /&gt;
				var dialog = this;&lt;br /&gt;
&lt;br /&gt;
				var lifecycle = dialog.close();&lt;br /&gt;
&lt;br /&gt;
				return lifecycle.closed;&lt;br /&gt;
			};&lt;br /&gt;
&lt;br /&gt;
			/**&lt;br /&gt;
			 * Get the height of the window body.&lt;br /&gt;
			 * Used by the ProcessDialog to set an accurate height to the dialog.&lt;br /&gt;
			 *&lt;br /&gt;
			 * @return {number} Height in px the dialog should be.&lt;br /&gt;
			 */&lt;br /&gt;
			CatRename.prototype.getBodyHeight = function () {&lt;br /&gt;
				return this.configContent.$element.outerHeight( true );&lt;br /&gt;
			};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
			/* Process step methods */&lt;br /&gt;
&lt;br /&gt;
			/**&lt;br /&gt;
			 * Fetch and validate user&amp;#039;s input to make it easily accessible later.&lt;br /&gt;
			 *&lt;br /&gt;
			 * @return {undefined|OO.ui.Error} Error message for the ProcessDialog&lt;br /&gt;
			 *         to display, if any.&lt;br /&gt;
			 */&lt;br /&gt;
			CatRename.prototype.prepare = function () {&lt;br /&gt;
				var dialog = this;&lt;br /&gt;
&lt;br /&gt;
				this.oldTitle = mw.config.get( &amp;#039;wgTitle&amp;#039; );&lt;br /&gt;
				this.newTitle = this.newNameInput.getValue().trim().replace(/^([Cc]atégorie|[Cc]ategory):/, &amp;#039;&amp;#039;);&lt;br /&gt;
				this.reason = this.reasonInput.getValue().trim();&lt;br /&gt;
&lt;br /&gt;
				if ( mw.config.get( &amp;#039;wgCaseSensitiveNamespaces&amp;#039; ).indexOf( 14 ) === -1 ) {&lt;br /&gt;
					this.newTitle = this.newTitle.charAt( 0 ).toUpperCase() + this.newTitle.slice( 1 );&lt;br /&gt;
				}&lt;br /&gt;
				if ( this.newTitle === this.oldTitle ) {&lt;br /&gt;
					return new OO.ui.Error( mw.msg( &amp;#039;catrename-error-same&amp;#039; ) );&lt;br /&gt;
				}&lt;br /&gt;
				if ( mw.Title.makeTitle( 14, this.newTitle ) === null ) {&lt;br /&gt;
					return new OO.ui.Error( mw.msg( &amp;#039;catrename-error-invalidtitle&amp;#039; ) );&lt;br /&gt;
				}&lt;br /&gt;
				if ( this.reason === &amp;#039;&amp;#039; ) {&lt;br /&gt;
					return new OO.ui.Error( mw.msg( &amp;#039;catrename-error-noreason&amp;#039; ) );&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				this.oldPageName = mw.config.get(&amp;#039;wgFormattedNamespaces&amp;#039;)[ 14 ] + &amp;#039;:&amp;#039; + this.oldTitle;&lt;br /&gt;
				this.newPageName = mw.config.get(&amp;#039;wgFormattedNamespaces&amp;#039;)[ 14 ] + &amp;#039;:&amp;#039; + this.newTitle;&lt;br /&gt;
&lt;br /&gt;
				// Disable actions button when a process is runing&lt;br /&gt;
				this.getActions().get( { actions: &amp;#039;rename&amp;#039; } )[ 0 ].setDisabled( true );&lt;br /&gt;
				this.getActions().get( { actions: &amp;#039;rbot&amp;#039; } )[ 0 ].setDisabled( true );&lt;br /&gt;
				// Except for the cancel button, which behaviour change to cancel the ongoing process&lt;br /&gt;
				this.getActions().get( { actions: &amp;#039;cancel&amp;#039; } )[ 0 ].on( &amp;#039;click&amp;#039;, function () {&lt;br /&gt;
					dialog.errorHandler( mw.msg( &amp;#039;catrename-error-canceled&amp;#039; ) );&lt;br /&gt;
				} );&lt;br /&gt;
&lt;br /&gt;
				return;&lt;br /&gt;
			};&lt;br /&gt;
&lt;br /&gt;
			/**&lt;br /&gt;
			 * Check if it is technically possible to move the category.&lt;br /&gt;
			 *&lt;br /&gt;
			 * Two main checks are performed:&lt;br /&gt;
			 * * Has the user the right to move the category according to the&lt;br /&gt;
			 *   protection level?&lt;br /&gt;
			 * * Is the target title free?&lt;br /&gt;
			 * @return {JQuery.Deferred} Promise telling to continue the process if&lt;br /&gt;
			 *         successful or stopping the process if rejected.&lt;br /&gt;
			 */&lt;br /&gt;
			CatRename.prototype.checkCategory = function () {&lt;br /&gt;
				var dialog = this;&lt;br /&gt;
				this.deferred = $.Deferred();&lt;br /&gt;
&lt;br /&gt;
				this.showStatus( mw.msg( &amp;#039;catrename-status-checkcategory&amp;#039; ) );&lt;br /&gt;
&lt;br /&gt;
				var restrictionMove = mw.config.get( &amp;#039;wgRestrictionMove&amp;#039; );&lt;br /&gt;
				for ( var i = 0; i &amp;lt; restrictionMove.length; i++ ) {&lt;br /&gt;
					if ( ! this.userInGroup( restrictionMove[ i ] ) ) {&lt;br /&gt;
						this.errorHandler( mw.msg( &amp;#039;catrename-error-protected&amp;#039; ) );&lt;br /&gt;
						return this.deferred;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				this.api.get( {&lt;br /&gt;
					&amp;#039;action&amp;#039;: &amp;#039;query&amp;#039;,&lt;br /&gt;
					&amp;#039;format&amp;#039;: &amp;#039;json&amp;#039;,&lt;br /&gt;
					&amp;#039;formatversion&amp;#039;: 2,&lt;br /&gt;
					&amp;#039;prop&amp;#039;: &amp;#039;categoryinfo&amp;#039;,&lt;br /&gt;
					&amp;#039;titles&amp;#039;: this.newPageName&lt;br /&gt;
				} ).then( function ( data ) {&lt;br /&gt;
					if ( data.query.pages[ 0 ].missing !== true ) {&lt;br /&gt;
						//TODO: Allow user to move pages without renaming the cat&lt;br /&gt;
						dialog.errorHandler( mw.msg( &amp;#039;catrename-error-categoryexist&amp;#039; ) );&lt;br /&gt;
						return;&lt;br /&gt;
					}&lt;br /&gt;
&lt;br /&gt;
					dialog.deferred.resolve();&lt;br /&gt;
				} ).fail( function ( error ) {&lt;br /&gt;
					dialog.errorHandler( error );&lt;br /&gt;
				} );&lt;br /&gt;
&lt;br /&gt;
				return this.deferred;&lt;br /&gt;
			};&lt;br /&gt;
&lt;br /&gt;
			/**&lt;br /&gt;
			 * Get all pages, files and sub-categories in the source category.&lt;br /&gt;
			 *&lt;br /&gt;
			 * This method populates the attribute &amp;#039;members&amp;#039;.&lt;br /&gt;
			 * @return {JQuery.Deferred} Promise telling to continue the process if&lt;br /&gt;
			 *         successful or stopping the process if rejected.&lt;br /&gt;
			 */&lt;br /&gt;
			CatRename.prototype.getMembers = function () {&lt;br /&gt;
				var dialog = this;&lt;br /&gt;
				this.deferred = $.Deferred();&lt;br /&gt;
				this.members = [];&lt;br /&gt;
&lt;br /&gt;
				this.showStatus( mw.msg( &amp;#039;catrename-status-getmembers&amp;#039; ) );&lt;br /&gt;
&lt;br /&gt;
				function doGetMembers( paramsContinue ) {&lt;br /&gt;
					var params = {&lt;br /&gt;
						&amp;#039;action&amp;#039;: &amp;#039;query&amp;#039;,&lt;br /&gt;
						&amp;#039;format&amp;#039;: &amp;#039;json&amp;#039;,&lt;br /&gt;
						&amp;#039;list&amp;#039;: &amp;#039;categorymembers&amp;#039;,&lt;br /&gt;
						&amp;#039;formatversion&amp;#039;: &amp;#039;2&amp;#039;,&lt;br /&gt;
						&amp;#039;cmtitle&amp;#039;: mw.config.get( &amp;#039;wgPageName&amp;#039; ),&lt;br /&gt;
						&amp;#039;cmprop&amp;#039;: &amp;#039;title&amp;#039;,&lt;br /&gt;
						&amp;#039;cmlimit&amp;#039;: &amp;#039;max&amp;#039;,&lt;br /&gt;
					};&lt;br /&gt;
					if ( paramsContinue ) {&lt;br /&gt;
						$.extend( params, paramsContinue );&lt;br /&gt;
					}&lt;br /&gt;
&lt;br /&gt;
					dialog.api.get( params ).then( function ( data ) {&lt;br /&gt;
&lt;br /&gt;
						var categoryMembers = data.query.categorymembers;&lt;br /&gt;
						for ( var i = 0; i &amp;lt; categoryMembers.length; i++ ) {&lt;br /&gt;
							dialog.members.push( categoryMembers[ i ].title );&lt;br /&gt;
						}&lt;br /&gt;
&lt;br /&gt;
						if ( data[ &amp;#039;continue&amp;#039; ] ) {&lt;br /&gt;
							doGetMembers( data[ &amp;#039;continue&amp;#039; ] );&lt;br /&gt;
						}&lt;br /&gt;
						else {&lt;br /&gt;
							dialog.deferred.resolve();&lt;br /&gt;
						}&lt;br /&gt;
					} ).fail( function ( error ) {&lt;br /&gt;
						dialog.errorHandler( error );&lt;br /&gt;
					} );&lt;br /&gt;
&lt;br /&gt;
				}&lt;br /&gt;
				doGetMembers();&lt;br /&gt;
&lt;br /&gt;
				return this.deferred;&lt;br /&gt;
			};&lt;br /&gt;
&lt;br /&gt;
			/**&lt;br /&gt;
			 * Lock the process while other instances of CatRename are running.&lt;br /&gt;
			 *&lt;br /&gt;
			 * This method acts a bit like the POSIX sem_wait.&lt;br /&gt;
			 * @return {JQuery.Deferred} Promise telling to continue the process&lt;br /&gt;
			 * when it is its turn to execute.&lt;br /&gt;
			 */&lt;br /&gt;
			CatRename.prototype.lockMultitabs = function () {&lt;br /&gt;
				var dialog = this;&lt;br /&gt;
				this.deferred = $.Deferred();&lt;br /&gt;
&lt;br /&gt;
				if ( this.userInGroup( &amp;#039;bot&amp;#039; ) ) {&lt;br /&gt;
					return;&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				this.lockID = &amp;#039;catrename-&amp;#039; + this.randomString( 16 );&lt;br /&gt;
				this.nextTab = null;&lt;br /&gt;
&lt;br /&gt;
				this.showStatus( mw.msg( &amp;#039;catrename-status-waitinglock&amp;#039; ) );&lt;br /&gt;
&lt;br /&gt;
				//TODO: check lock timestamp&lt;br /&gt;
				if ( mw.storage.get( &amp;#039;catrename-lock&amp;#039; ) === null ) {&lt;br /&gt;
					mw.storage.set( &amp;#039;catrename-lock&amp;#039;, this.lockID );&lt;br /&gt;
					this.deferred.resolve();&lt;br /&gt;
				}&lt;br /&gt;
				else {&lt;br /&gt;
					$( window ).on( &amp;#039;storage.catrename.catrename-waiting&amp;#039;, function ( event ) {&lt;br /&gt;
						if ( event.originalEvent.key === &amp;#039;catrename-lock&amp;#039; &amp;amp;&amp;amp; event.originalEvent.newValue === dialog.lockID ) {&lt;br /&gt;
							$( window ).off( &amp;#039;storage.catrename-waiting&amp;#039; );&lt;br /&gt;
							dialog.deferred.resolve();&lt;br /&gt;
						}&lt;br /&gt;
					} );&lt;br /&gt;
					mw.storage.set( &amp;#039;catrename-addtab&amp;#039;, this.lockID );&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
				$( window ).on( &amp;#039;storage.catrename&amp;#039;, function ( event ) {&lt;br /&gt;
					// if this tab has no successor and a new one appears, add it as our successor&lt;br /&gt;
					if ( dialog.nextTab === null &amp;amp;&amp;amp; event.originalEvent.key === &amp;#039;catrename-addtab&amp;#039; &amp;amp;&amp;amp; event.originalEvent.newValue !== null ) {&lt;br /&gt;
						dialog.nextTab = event.originalEvent.newValue;&lt;br /&gt;
						mw.storage.set( dialog.lockID, dialog.nextTab );&lt;br /&gt;
					}&lt;br /&gt;
					// if our successor decides to leave, remove it and take its successor&lt;br /&gt;
					else if ( dialog.nextTab !== null &amp;amp;&amp;amp; event.originalEvent.key === &amp;#039;catrename-removetab&amp;#039; &amp;amp;&amp;amp; event.originalEvent.newValue === dialog.nextTab ) {&lt;br /&gt;
						dialog.nextTab = mw.storage.get( dialog.nextTab );&lt;br /&gt;
						if ( dialog.nextTab !== null ) {&lt;br /&gt;
							mw.storage.set( dialog.lockID, dialog.nextTab );&lt;br /&gt;
						}&lt;br /&gt;
						else {&lt;br /&gt;
							mw.storage.remove( dialog.lockID );&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
				} );&lt;br /&gt;
&lt;br /&gt;
				window.addEventListener( &amp;#039;unload&amp;#039;, function (e) {&lt;br /&gt;
					dialog.unlockMultitabs();&lt;br /&gt;
				} );&lt;br /&gt;
&lt;br /&gt;
				return this.deferred;&lt;br /&gt;
			};&lt;br /&gt;
&lt;br /&gt;
			/**&lt;br /&gt;
			 * Check if the daily limit of edits using this script would be reached&lt;br /&gt;
			 * if the move is performed.&lt;br /&gt;
			 *&lt;br /&gt;
			 * In fact, we are not looking realy on a daily basis, but a 24h rolling&lt;br /&gt;
			 * period.&lt;br /&gt;
			 * @return {JQuery.Deferred} Promise telling to continue the process&lt;br /&gt;
			 * when it is its turn to execute.&lt;br /&gt;
			 */&lt;br /&gt;
			CatRename.prototype.checkLimits = function () {&lt;br /&gt;
				var dialog = this;&lt;br /&gt;
				this.deferred = $.Deferred();&lt;br /&gt;
				var yesterday = new Date();&lt;br /&gt;
				yesterday.setDate( yesterday.getDate() - 1 );&lt;br /&gt;
&lt;br /&gt;
				if ( this.userInGroup( &amp;#039;bot&amp;#039; ) ) {&lt;br /&gt;
					this.noSpammingDelay = 0;&lt;br /&gt;
					return;&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				this.noSpammingDelay = 5000;&lt;br /&gt;
				if ( this.members.length &amp;gt; 50 ) {&lt;br /&gt;
					this.noSpammingDelay = 20000;&lt;br /&gt;
				}&lt;br /&gt;
				else if ( this.members.length &amp;gt; 10 ) {&lt;br /&gt;
					this.noSpammingDelay = 10000;&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				this.showStatus( mw.msg( &amp;#039;catrename-status-checklimits&amp;#039; ) );&lt;br /&gt;
&lt;br /&gt;
				this.api.get( {&lt;br /&gt;
					&amp;#039;action&amp;#039;: &amp;#039;query&amp;#039;,&lt;br /&gt;
					&amp;#039;format&amp;#039;: &amp;#039;json&amp;#039;,&lt;br /&gt;
					&amp;#039;list&amp;#039;: &amp;#039;usercontribs&amp;#039;,&lt;br /&gt;
					&amp;#039;formatversion&amp;#039;: &amp;#039;2&amp;#039;,&lt;br /&gt;
					&amp;#039;uclimit&amp;#039;: &amp;#039;max&amp;#039;, // only query DAILY_LIMIT results ?&lt;br /&gt;
					&amp;#039;ucend&amp;#039;: yesterday.toISOString(),&lt;br /&gt;
					&amp;#039;ucuser&amp;#039;: mw.config.get( &amp;#039;wgUserName&amp;#039; ),&lt;br /&gt;
					&amp;#039;ucprop&amp;#039;: &amp;#039;timestamp&amp;#039;,&lt;br /&gt;
					&amp;#039;uctag&amp;#039;: TAG&lt;br /&gt;
				} ).then( function ( data ) {&lt;br /&gt;
&lt;br /&gt;
					if ( data.query.usercontribs.length + dialog.members.length &amp;gt;= DAILY_LIMIT ) {&lt;br /&gt;
						dialog.errorHandler( mw.msg( &amp;#039;catrename-error-limitreached&amp;#039;, DAILY_LIMIT ), false );&lt;br /&gt;
					}&lt;br /&gt;
					else {&lt;br /&gt;
						dialog.deferred.resolve();&lt;br /&gt;
					}&lt;br /&gt;
				} ).fail( function ( error ) {&lt;br /&gt;
					dialog.errorHandler( error );&lt;br /&gt;
				} );&lt;br /&gt;
&lt;br /&gt;
				return this.deferred;&lt;br /&gt;
			};&lt;br /&gt;
&lt;br /&gt;
			/**&lt;br /&gt;
			 * Try to move all the pages inside the &amp;#039;members&amp;#039; attribute from the old&lt;br /&gt;
			 * to the new category name by fetching and editing their wikicode.&lt;br /&gt;
			 *&lt;br /&gt;
			 * @return {JQuery.Deferred} Promise telling to continue the process&lt;br /&gt;
			 * when it is its turn to execute.&lt;br /&gt;
			 */&lt;br /&gt;
			CatRename.prototype.editMembers = function () {&lt;br /&gt;
				var dialog = this,&lt;br /&gt;
					totalPages = this.members.length,&lt;br /&gt;
					oldCatRegex = this.buildRegex( this.oldTitle ),&lt;br /&gt;
					newCatRegex = this.buildRegex( this.newTitle ),&lt;br /&gt;
					summary = mw.msg( &amp;#039;catrename-summary&amp;#039;, this.oldTitle, this.newTitle, this.reason ),&lt;br /&gt;
					commonPayload = {&lt;br /&gt;
						summary: summary,&lt;br /&gt;
						minor: true,&lt;br /&gt;
						tags: TAG&lt;br /&gt;
					};&lt;br /&gt;
				this.deferred = $.Deferred();&lt;br /&gt;
&lt;br /&gt;
				if ( this.userInGroup( &amp;#039;bot&amp;#039; ) ) {&lt;br /&gt;
					commonPayload[ &amp;#039;bot&amp;#039; ] = 1;&lt;br /&gt;
				}&lt;br /&gt;
				if ( this.optionCheckboxes.getValue().indexOf( &amp;#039;watch-members&amp;#039; ) &amp;gt; -1 ) {&lt;br /&gt;
					commonPayload[ &amp;#039;watchlist&amp;#039; ] = &amp;#039;watch&amp;#039;;&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				function doEdit() {&lt;br /&gt;
					var member = dialog.members.pop();&lt;br /&gt;
					if ( dialog.deferred.state() !== &amp;#039;pending&amp;#039; ) {&lt;br /&gt;
						return;&lt;br /&gt;
					}&lt;br /&gt;
					if ( member === undefined ) {&lt;br /&gt;
						dialog.deferred.resolve();&lt;br /&gt;
						return;&lt;br /&gt;
					}&lt;br /&gt;
&lt;br /&gt;
					//TODO: a progress-bar ?&lt;br /&gt;
					dialog.showStatus( mw.msg( &amp;#039;catrename-status-editmembers&amp;#039;, totalPages - dialog.members.length, totalPages ) );&lt;br /&gt;
&lt;br /&gt;
					dialog.api.edit( member, function ( revision ) {&lt;br /&gt;
						var content = revision.content,&lt;br /&gt;
								newCatInPageList = content.match( newCatRegex );&lt;br /&gt;
&lt;br /&gt;
						if ( newCatInPageList !== null ) {&lt;br /&gt;
							dialog.logFailedPages( member, mw.msg( &amp;#039;catrename-error-categorypresent&amp;#039; ) );&lt;br /&gt;
						}&lt;br /&gt;
						else {&lt;br /&gt;
							content = content.replace(&lt;br /&gt;
								oldCatRegex,&lt;br /&gt;
								&amp;#039;$1[[&amp;#039; + dialog.newPageName + &amp;#039;$6]]&amp;#039;&lt;br /&gt;
							);&lt;br /&gt;
						}&lt;br /&gt;
&lt;br /&gt;
						return $.extend( { text: content }, commonPayload );&lt;br /&gt;
					} )&lt;br /&gt;
						.then( function ( result ) {&lt;br /&gt;
						if ( result.nochange === true ) {&lt;br /&gt;
							dialog.logFailedPages( member, mw.msg( &amp;#039;catrename-error-notfound&amp;#039; ) );&lt;br /&gt;
						}&lt;br /&gt;
&lt;br /&gt;
						setTimeout( doEdit, dialog.noSpammingDelay );&lt;br /&gt;
					} )&lt;br /&gt;
						.fail( function ( code, data ) {&lt;br /&gt;
						if ( code === &amp;#039;protectedpage&amp;#039; ) {&lt;br /&gt;
							dialog.logFailedPages( member, mw.msg( &amp;#039;catrename-error-pageprotected&amp;#039; ) );&lt;br /&gt;
							doEdit();&lt;br /&gt;
						}&lt;br /&gt;
						else {&lt;br /&gt;
							dialog.errorHandler( code );&lt;br /&gt;
						}&lt;br /&gt;
					} );&lt;br /&gt;
				}&lt;br /&gt;
				doEdit();&lt;br /&gt;
&lt;br /&gt;
				return this.deferred;&lt;br /&gt;
			};&lt;br /&gt;
&lt;br /&gt;
			/**&lt;br /&gt;
			 * Move the category itself.&lt;br /&gt;
			 *&lt;br /&gt;
			 * @return {JQuery.Deferred} Promise telling to continue the process&lt;br /&gt;
			 * when it is its turn to execute.&lt;br /&gt;
			 */&lt;br /&gt;
			CatRename.prototype.renameCategory = function () {&lt;br /&gt;
				var dialog = this;&lt;br /&gt;
				this.deferred = $.Deferred();&lt;br /&gt;
&lt;br /&gt;
				this.showStatus( mw.msg( &amp;#039;catrename-status-renamecategory&amp;#039; ) );&lt;br /&gt;
&lt;br /&gt;
				var payload = {&lt;br /&gt;
					&amp;#039;action&amp;#039;: &amp;#039;move&amp;#039;,&lt;br /&gt;
					&amp;#039;format&amp;#039;: &amp;#039;json&amp;#039;,&lt;br /&gt;
					&amp;#039;from&amp;#039;: mw.config.get( &amp;#039;wgPageName&amp;#039; ),&lt;br /&gt;
					&amp;#039;to&amp;#039;: this.newPageName,&lt;br /&gt;
					&amp;#039;reason&amp;#039;: this.reason,&lt;br /&gt;
					&amp;#039;tags&amp;#039;: TAG,&lt;br /&gt;
					&amp;#039;formatversion&amp;#039;: &amp;#039;2&amp;#039;&lt;br /&gt;
				};&lt;br /&gt;
&lt;br /&gt;
				var options = this.optionCheckboxes.getValue();&lt;br /&gt;
				if ( options.indexOf( &amp;#039;movetalk&amp;#039; ) &amp;gt; -1 ) {&lt;br /&gt;
					payload[ &amp;#039;movetalk&amp;#039; ] = 1;&lt;br /&gt;
				}&lt;br /&gt;
				if ( options.indexOf( &amp;#039;watch&amp;#039; ) &amp;gt; -1 ) {&lt;br /&gt;
					payload[ &amp;#039;watchlist&amp;#039; ] = &amp;#039;watch&amp;#039;;&lt;br /&gt;
				}&lt;br /&gt;
				if ( this.userInGroup( &amp;#039;sysop&amp;#039; ) || this.userInGroup( &amp;#039;bot&amp;#039; ) ) {&lt;br /&gt;
					if ( options.indexOf( &amp;#039;leave-redirect&amp;#039; ) === -1 ) {&lt;br /&gt;
						payload[ &amp;#039;noredirect&amp;#039; ] = 1;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				this.api.postWithToken( &amp;#039;csrf&amp;#039;,	payload ).then( function ( data ) {&lt;br /&gt;
					dialog.deferred.resolve();&lt;br /&gt;
				} ).fail( function ( error ) {&lt;br /&gt;
					if ( error === &amp;#039;articleexists&amp;#039; ) {&lt;br /&gt;
						dialog.errorHandler( mw.msg( &amp;#039;catrename-error-articleexists&amp;#039;, dialog.newPageName ) );&lt;br /&gt;
					}&lt;br /&gt;
					else {&lt;br /&gt;
						dialog.errorHandler( error );&lt;br /&gt;
					}&lt;br /&gt;
				} );&lt;br /&gt;
&lt;br /&gt;
				return this.deferred;&lt;br /&gt;
			};&lt;br /&gt;
&lt;br /&gt;
			/**&lt;br /&gt;
			 * Release the lock to allow other instances of CatRename to execute.&lt;br /&gt;
			 *&lt;br /&gt;
			 * This method acts a bit like the POSIX sem_post.&lt;br /&gt;
			 */&lt;br /&gt;
			CatRename.prototype.unlockMultitabs = function () {&lt;br /&gt;
				if ( this.lockID !== undefined ) {&lt;br /&gt;
					$( window ).off( &amp;#039;storage.catrename&amp;#039; );&lt;br /&gt;
&lt;br /&gt;
					mw.storage.set( &amp;#039;catrename-removetab&amp;#039;, this.lockID ); //Inform other tabs that we&amp;#039;re closing&lt;br /&gt;
					mw.storage.remove( this.lockID ); //Clean up our mess from the localStorage&lt;br /&gt;
&lt;br /&gt;
					// wake up the next tab, or reset if there is none&lt;br /&gt;
					if ( mw.storage.get( &amp;#039;catrename-lock&amp;#039; ) === this.lockID ) {&lt;br /&gt;
						if ( this.nextTab !== null ) {&lt;br /&gt;
							mw.storage.set( &amp;#039;catrename-lock&amp;#039;, this.nextTab );&lt;br /&gt;
						}&lt;br /&gt;
						else {&lt;br /&gt;
							mw.storage.remove( &amp;#039;catrename-lock&amp;#039; );&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
&lt;br /&gt;
					delete this.lockID;&lt;br /&gt;
				}&lt;br /&gt;
			};&lt;br /&gt;
&lt;br /&gt;
			/**&lt;br /&gt;
			 * Method called when all has gone well (yeah !).&lt;br /&gt;
			 */&lt;br /&gt;
			CatRename.prototype.success = function () {&lt;br /&gt;
				var dialog = this;&lt;br /&gt;
&lt;br /&gt;
				setTimeout( function () {&lt;br /&gt;
					window.location = mw.util.getUrl( dialog.newPageName );&lt;br /&gt;
				}, 1000 );&lt;br /&gt;
			};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
			/* Helper Methods */&lt;br /&gt;
&lt;br /&gt;
			/**&lt;br /&gt;
			 * Get information about the current user&amp;#039;s groups.&lt;br /&gt;
			 *&lt;br /&gt;
			 * @param {string} groupName Name of the group to check.&lt;br /&gt;
			 * @return {boolean} Whether the current user is in the given group.&lt;br /&gt;
			 */&lt;br /&gt;
			CatRename.prototype.userInGroup = function ( groupName ) {&lt;br /&gt;
				return ( mw.config.get( &amp;#039;wgUserGroups&amp;#039; ).indexOf( groupName ) &amp;gt; -1 );&lt;br /&gt;
			};&lt;br /&gt;
&lt;br /&gt;
			/**&lt;br /&gt;
			 * Display a status message inside the main content of the dialog.&lt;br /&gt;
			 *&lt;br /&gt;
			 * @return {string} Status message to display.&lt;br /&gt;
			 */&lt;br /&gt;
			CatRename.prototype.showStatus = function ( status ) {&lt;br /&gt;
				this.statusIndicator.text( status );&lt;br /&gt;
				this.$body.children().detach();&lt;br /&gt;
				this.$body.append( this.statusContent.$element );&lt;br /&gt;
			};&lt;br /&gt;
&lt;br /&gt;
			/**&lt;br /&gt;
			 * Raise an error using OO.ui.Error, and reset all what should be.&lt;br /&gt;
			 *&lt;br /&gt;
			 * @param {string} error Error message to display to the user.&lt;br /&gt;
			 * @param {boolean} recoverable Is the error recoverable (default to true).&lt;br /&gt;
			 * @param {boolean} warning Should we raise a warning instead an error (default to false).&lt;br /&gt;
			 */&lt;br /&gt;
			CatRename.prototype.errorHandler = function ( error, recoverable, warning ) {&lt;br /&gt;
				var errorMessage = new OO.ui.Error( error, { recoverable: recoverable || true, warning: warning || false } );&lt;br /&gt;
&lt;br /&gt;
				this.unlockMultitabs();&lt;br /&gt;
				this.$body.children().detach();&lt;br /&gt;
				this.$body.append( this.configContent.$element );&lt;br /&gt;
&lt;br /&gt;
				this.getActions().get( { actions: &amp;#039;rename&amp;#039; } )[ 0 ].setDisabled( false );&lt;br /&gt;
				this.getActions().get( { actions: &amp;#039;rbot&amp;#039; } )[ 0 ].setDisabled( false );&lt;br /&gt;
&lt;br /&gt;
				this.deferred.reject( errorMessage );&lt;br /&gt;
			};&lt;br /&gt;
&lt;br /&gt;
			/**&lt;br /&gt;
			 * Add a page to the error log.&lt;br /&gt;
			 *&lt;br /&gt;
			 * @param {string} pageName Name (including namespace) of the page.&lt;br /&gt;
			 * @param {string} reason Explaination of the error.&lt;br /&gt;
			 */&lt;br /&gt;
			CatRename.prototype.logFailedPages = function ( pageName, reason ) {&lt;br /&gt;
				var li = $( &amp;#039;&amp;lt;li&amp;gt;&amp;#039; ).text( &amp;#039; - &amp;#039; + reason ),&lt;br /&gt;
					a = $( &amp;#039;&amp;lt;a&amp;gt;&amp;#039; ).attr( &amp;#039;href&amp;#039;, mw.util.getUrl( pageName ) ).text( pageName );&lt;br /&gt;
				this.pagesInError.append( li.prepend( a ) );&lt;br /&gt;
			};&lt;br /&gt;
&lt;br /&gt;
			/**&lt;br /&gt;
			 * Build a regex to extract the link to a given category from wikicode.&lt;br /&gt;
			 *&lt;br /&gt;
			 * @param {string} category Name (without namespace) of the category.&lt;br /&gt;
			 * @return {RegExp} Regex object to extract the given category.&lt;br /&gt;
			 */&lt;br /&gt;
			CatRename.prototype.buildRegex = function ( category ) {&lt;br /&gt;
				var formattedNamespace = mw.config.get( &amp;#039;wgFormattedNamespaces&amp;#039; )[ 14 ],&lt;br /&gt;
					isFirstLetterCaseSensitive = ( mw.config.get( &amp;#039;wgCaseSensitiveNamespaces&amp;#039; ).indexOf( 14 ) &amp;gt; -1 ),&lt;br /&gt;
					namespace = &amp;#039;(?:[&amp;#039; + formattedNamespace.charAt( 0 ) + formattedNamespace.charAt( 0 ).toLowerCase() + &amp;#039;]&amp;#039; + formattedNamespace.slice( 1 ) + &amp;#039;|[Cc]ategory)&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
				category = category.replace( /([\\\^\$\*\+\?\.\|\{\}\[\]\(\)])/g, &amp;#039;\\$1&amp;#039; );&lt;br /&gt;
&lt;br /&gt;
				if ( ! isFirstLetterCaseSensitive ) {&lt;br /&gt;
					var firstLetter = category.charAt(0);&lt;br /&gt;
					if ( firstLetter.toUpperCase() !== firstLetter.toLowerCase() ) {&lt;br /&gt;
						category = &amp;#039;[&amp;#039; + firstLetter.toUpperCase() + firstLetter.toLowerCase() + &amp;#039;]&amp;#039;&lt;br /&gt;
							+ category.slice(1);&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				return new RegExp(&amp;#039;(\\s*)\\[\\[( |_)*&amp;#039; + namespace + &amp;#039;( |_)*:( |_)*&amp;#039; + category + &amp;#039;( |_)*(\\|[^\\]]*)?\\]\\]&amp;#039;, &amp;#039;g&amp;#039;);&lt;br /&gt;
			};&lt;br /&gt;
&lt;br /&gt;
			/**&lt;br /&gt;
			 * Generate a random string.&lt;br /&gt;
			 *&lt;br /&gt;
			 * @param {number} length Length of the string to generate.&lt;br /&gt;
			 * @return {string} The generated string.&lt;br /&gt;
			 */&lt;br /&gt;
			CatRename.prototype.randomString = function ( length ) {&lt;br /&gt;
				var result = &amp;#039;&amp;#039;;&lt;br /&gt;
				var chars = &amp;#039;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789&amp;#039;;&lt;br /&gt;
				for ( var i = 0; i &amp;lt; length; ++i ) {&lt;br /&gt;
					result += chars.charAt( Math.floor( Math.random() * chars.length ) );&lt;br /&gt;
				}&lt;br /&gt;
				return result;&lt;br /&gt;
			};&lt;br /&gt;
&lt;br /&gt;
			instanceWindowManager = new OO.ui.WindowManager();&lt;br /&gt;
			$( &amp;#039;body&amp;#039; ).append( instanceWindowManager.$element );&lt;br /&gt;
&lt;br /&gt;
			instanceCatRename = new CatRename();&lt;br /&gt;
			instanceWindowManager.addWindows( [ instanceCatRename ] );&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
	} );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* &amp;lt;/nowiki&amp;gt; */&lt;/div&gt;</summary>
		<author><name>Kharmitch</name></author>
	</entry>
</feed>