<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://en.bharatpedia.org/w/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-BharatMitra-revert.js</id>
	<title>MediaWiki:Gadget-BharatMitra-revert.js - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://en.bharatpedia.org/w/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-BharatMitra-revert.js"/>
	<link rel="alternate" type="text/html" href="https://en.bharatpedia.org/w/index.php?title=MediaWiki:Gadget-BharatMitra-revert.js&amp;action=history"/>
	<updated>2026-11-07T10:11:28Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://en.bharatpedia.org/w/index.php?title=MediaWiki:Gadget-BharatMitra-revert.js&amp;diff=739625&amp;oldid=prev</id>
		<title>Bharatwiki Socrates at 06:54, 7 November 2026</title>
		<link rel="alternate" type="text/html" href="https://en.bharatpedia.org/w/index.php?title=MediaWiki:Gadget-BharatMitra-revert.js&amp;diff=739625&amp;oldid=prev"/>
		<updated>2026-11-07T06:54:55Z</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;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:24, 7 November 2026&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-l44&quot;&gt;Line 44:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 44:&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;				onSubmit: function ( v ) {&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;				onSubmit: function ( v ) {&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;					return BM.core.getPage( title ).then( function ( cur ) {&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;					return BM.core.getPage( title ).then( function ( cur ) {&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;						var summary = &#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Bharat Mitra: restored &lt;/del&gt;an old revision (revision &#039; + revid + &#039;)&#039;;&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;						var summary = &#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Restored &lt;/ins&gt;an old revision (revision &#039; + revid + &#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;) (using [[Bharatpedia:Bharat Mitra|Bharat Mitra]]&lt;/ins&gt;)&#039;;&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;						if ( v.reason ) { summary += &amp;#039;: &amp;#039; + BM.core.cleanParam( v.reason ); }&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;						if ( v.reason ) { summary += &amp;#039;: &amp;#039; + BM.core.cleanParam( v.reason ); }&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;						return BM.core.savePage( title, rev.slots.main.content, summary, cur.revid );&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;						return BM.core.savePage( title, rev.slots.main.content, summary, cur.revid );&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-l114&quot;&gt;Line 114:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 114:&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;							done = BM.core.api().postWithToken( &amp;#039;edit&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;							done = BM.core.api().postWithToken( &amp;#039;edit&amp;#039;, {&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;								action: &amp;#039;edit&amp;#039;, title: title, undo: v.revid,&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;								action: &amp;#039;edit&amp;#039;, title: title, undo: v.revid,&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;								summary: &#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Bharat Mitra: undid &lt;/del&gt;one revision (revision &#039; + v.revid + &#039;)&#039;, format: &#039;json&#039;&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;								summary: &#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Undid &lt;/ins&gt;one revision (revision &#039; + v.revid + &#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;) (using [[Bharatpedia:Bharat Mitra|Bharat Mitra]]&lt;/ins&gt;)&#039;, format: &#039;json&#039;&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;							} ).then( function ( r ) {&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;							} ).then( function ( r ) {&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;								if ( r &amp;amp;&amp;amp; r.edit &amp;amp;&amp;amp; r.edit.result === &amp;#039;Success&amp;#039; ) { return r; }&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;								if ( r &amp;amp;&amp;amp; r.edit &amp;amp;&amp;amp; r.edit.result === &amp;#039;Success&amp;#039; ) { return r; }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key bharatpedia-enwiki:diff:1.41:old-738701:rev-739625:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Bharatwiki Socrates</name></author>
	</entry>
	<entry>
		<id>https://en.bharatpedia.org/w/index.php?title=MediaWiki:Gadget-BharatMitra-revert.js&amp;diff=738701&amp;oldid=prev</id>
		<title>Bharatwiki Socrates: Bharat Mitra restore: open the current page after a successful restore</title>
		<link rel="alternate" type="text/html" href="https://en.bharatpedia.org/w/index.php?title=MediaWiki:Gadget-BharatMitra-revert.js&amp;diff=738701&amp;oldid=prev"/>
		<updated>2026-11-01T10:00:05Z</updated>

		<summary type="html">&lt;p&gt;Bharat Mitra restore: open the current page after a successful restore&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;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 15:30, 1 November 2026&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-l47&quot;&gt;Line 47:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 47:&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;						if ( v.reason ) { summary += &amp;#039;: &amp;#039; + BM.core.cleanParam( v.reason ); }&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;						if ( v.reason ) { summary += &amp;#039;: &amp;#039; + BM.core.cleanParam( v.reason ); }&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;						return BM.core.savePage( title, rev.slots.main.content, summary, cur.revid );&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;						return BM.core.savePage( title, rev.slots.main.content, summary, cur.revid );&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 () {&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;						// Go to the plain current page afterwards.&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;						// A plain reload would reopen this old revision view, so the restore bar would be&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;						// drawn again even though the restore succeeded.&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;						setTimeout( function () { location.href = mw.util.getUrl( title ); }, 600 );&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;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;/table&gt;</summary>
		<author><name>Bharatwiki Socrates</name></author>
	</entry>
	<entry>
		<id>https://en.bharatpedia.org/w/index.php?title=MediaWiki:Gadget-BharatMitra-revert.js&amp;diff=738699&amp;oldid=prev</id>
		<title>Bharatwiki Socrates: Bharat Mitra restore: do not reload the old revision view after restoring</title>
		<link rel="alternate" type="text/html" href="https://en.bharatpedia.org/w/index.php?title=MediaWiki:Gadget-BharatMitra-revert.js&amp;diff=738699&amp;oldid=prev"/>
		<updated>2026-11-01T09:56:02Z</updated>

		<summary type="html">&lt;p&gt;Bharat Mitra restore: do not reload the old revision view after restoring&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;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 15:26, 1 November 2026&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-l42&quot;&gt;Line 42:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 42:&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;				submitLabel: &amp;#039;Restore&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;				submitLabel: &amp;#039;Restore&amp;#039;,&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;				success: &amp;#039;The old revision has been restored.&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;				success: &amp;#039;The old revision has been restored.&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;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;				reload: 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;				onSubmit: function ( v ) {&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;				onSubmit: function ( v ) {&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;					return BM.core.getPage( title ).then( function ( cur ) {&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;					return BM.core.getPage( title ).then( function ( cur ) {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Bharatwiki Socrates</name></author>
	</entry>
	<entry>
		<id>https://en.bharatpedia.org/w/index.php?title=MediaWiki:Gadget-BharatMitra-revert.js&amp;diff=738536&amp;oldid=prev</id>
		<title>Bharatwiki Socrates: Create Bharat Mitra gadget page (English port)</title>
		<link rel="alternate" type="text/html" href="https://en.bharatpedia.org/w/index.php?title=MediaWiki:Gadget-BharatMitra-revert.js&amp;diff=738536&amp;oldid=prev"/>
		<updated>2026-11-01T04:16:20Z</updated>

		<summary type="html">&lt;p&gt;Create Bharat Mitra gadget page (English port)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/* &amp;lt;nowiki&amp;gt; */&lt;br /&gt;
/* Bharat Mitra: revert module (rollback, undo, restore an old revision) */&lt;br /&gt;
( function () {&lt;br /&gt;
	&amp;#039;use strict&amp;#039;;&lt;br /&gt;
	var BM = window.BharatMitra;&lt;br /&gt;
	function pageTitle() { return mw.config.get( &amp;#039;wgPageName&amp;#039; ).replace( /_/g, &amp;#039; &amp;#039; ); }&lt;br /&gt;
	function getRevisions( title, limit ) {&lt;br /&gt;
		return BM.core.api().get( {&lt;br /&gt;
			action: &amp;#039;query&amp;#039;, prop: &amp;#039;revisions&amp;#039;, titles: title,&lt;br /&gt;
			rvprop: &amp;#039;ids|user|timestamp|comment&amp;#039;, rvlimit: limit || 10, formatversion: 2&lt;br /&gt;
		} ).then( function ( r ) {&lt;br /&gt;
			var p = r.query.pages[ 0 ];&lt;br /&gt;
			return ( p &amp;amp;&amp;amp; p.revisions ) || [];&lt;br /&gt;
		} );&lt;br /&gt;
	}&lt;br /&gt;
	function getRevisionContent( revid ) {&lt;br /&gt;
		return BM.core.api().get( {&lt;br /&gt;
			action: &amp;#039;query&amp;#039;, prop: &amp;#039;revisions&amp;#039;, revids: revid,&lt;br /&gt;
			rvprop: &amp;#039;ids|user|timestamp|comment|content&amp;#039;, rvslots: &amp;#039;main&amp;#039;, formatversion: 2&lt;br /&gt;
		} ).then( function ( r ) {&lt;br /&gt;
			var p = r.query.pages[ 0 ];&lt;br /&gt;
			if ( !p || !p.revisions || !p.revisions[ 0 ] ) { throw new Error( &amp;#039;Revision not found.&amp;#039; ); }&lt;br /&gt;
			var rev = p.revisions[ 0 ];&lt;br /&gt;
			rev.title = p.title;&lt;br /&gt;
			return rev;&lt;br /&gt;
		} );&lt;br /&gt;
	}&lt;br /&gt;
	function restoreDialog( revid ) {&lt;br /&gt;
		var title = pageTitle();&lt;br /&gt;
		getRevisionContent( revid ).then( function ( rev ) {&lt;br /&gt;
			var when = String( rev.timestamp || &amp;#039;&amp;#039; ).replace( &amp;#039;T&amp;#039;, &amp;#039; &amp;#039; ).replace( &amp;#039;Z&amp;#039;, &amp;#039;&amp;#039; );&lt;br /&gt;
			BM.core.dialog( {&lt;br /&gt;
				title: &amp;#039;Restore an old revision&amp;#039;,&lt;br /&gt;
				help: &amp;#039;Page: &amp;#039; + title + &amp;#039;. Revision &amp;#039; + revid + &amp;#039; (&amp;#039; + rev.user + &amp;#039;, &amp;#039; + when + &amp;#039;) will be made the current revision. The current content will remain safe in the history.&amp;#039;,&lt;br /&gt;
				fields: [&lt;br /&gt;
					{ name: &amp;#039;reason&amp;#039;, label: &amp;#039;Reason (optional)&amp;#039;, type: &amp;#039;text&amp;#039; }&lt;br /&gt;
				],&lt;br /&gt;
				preview: function () {&lt;br /&gt;
					return &amp;#039;\&amp;#039;\&amp;#039;\&amp;#039;Revision to be restored:\&amp;#039;\&amp;#039;\&amp;#039; &amp;#039; + revid + &amp;#039; - &amp;#039; + rev.user + &amp;#039; (&amp;#039; + when + &amp;#039;)&amp;#039;;&lt;br /&gt;
				},&lt;br /&gt;
				previewTitle: function () { return title; },&lt;br /&gt;
				submitLabel: &amp;#039;Restore&amp;#039;,&lt;br /&gt;
				success: &amp;#039;The old revision has been restored.&amp;#039;,&lt;br /&gt;
				reload: true,&lt;br /&gt;
				onSubmit: function ( v ) {&lt;br /&gt;
					return BM.core.getPage( title ).then( function ( cur ) {&lt;br /&gt;
						var summary = &amp;#039;Bharat Mitra: restored an old revision (revision &amp;#039; + revid + &amp;#039;)&amp;#039;;&lt;br /&gt;
						if ( v.reason ) { summary += &amp;#039;: &amp;#039; + BM.core.cleanParam( v.reason ); }&lt;br /&gt;
						return BM.core.savePage( title, rev.slots.main.content, summary, cur.revid );&lt;br /&gt;
					} );&lt;br /&gt;
				}&lt;br /&gt;
			} );&lt;br /&gt;
		} ).catch( function () {&lt;br /&gt;
			mw.notify( &amp;#039;Revision details could not be retrieved.&amp;#039;, { type: &amp;#039;error&amp;#039; } );&lt;br /&gt;
		} );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	BM.register( &amp;#039;revert&amp;#039;, {&lt;br /&gt;
		addRestoreLink: function ( revid ) {&lt;br /&gt;
			if ( $( &amp;#039;.bm-restore-bar&amp;#039; ).length ) { return; }&lt;br /&gt;
			var bar = $( &amp;#039;&amp;lt;div&amp;gt;&amp;#039; ).addClass( &amp;#039;bm-restore-bar&amp;#039; );&lt;br /&gt;
			bar.append( $( &amp;#039;&amp;lt;span&amp;gt;&amp;#039; ).text( &amp;#039;You are viewing an old revision of this page. &amp;#039; ) );&lt;br /&gt;
			var btn = $( &amp;#039;&amp;lt;button&amp;gt;&amp;#039; ).attr( &amp;#039;type&amp;#039;, &amp;#039;button&amp;#039; ).addClass( &amp;#039;bm-btn bm-primary&amp;#039; ).text( &amp;#039;⟲ Restore this revision&amp;#039; );&lt;br /&gt;
			btn.on( &amp;#039;click&amp;#039;, function () { restoreDialog( revid ); } );&lt;br /&gt;
			bar.append( btn );&lt;br /&gt;
			var host = $( &amp;#039;#mw-content-text&amp;#039; );&lt;br /&gt;
			if ( host.length ) { host.prepend( bar ); }&lt;br /&gt;
			else { $( document.body ).append( bar ); }&lt;br /&gt;
		},&lt;br /&gt;
		open: function () {&lt;br /&gt;
			var title = pageTitle();&lt;br /&gt;
			getRevisions( title, 10 ).then( function ( revs ) {&lt;br /&gt;
				if ( !revs.length ) { mw.notify( &amp;#039;No revisions were found for this page.&amp;#039;, { type: &amp;#039;error&amp;#039; } ); return; }&lt;br /&gt;
				var last = revs[ 0 ];&lt;br /&gt;
				BM.core.dialog( {&lt;br /&gt;
					title: &amp;#039;Revert / Undo&amp;#039;,&lt;br /&gt;
					help: &amp;#039;Page: &amp;#039; + title + &amp;#039;. Most recent editor: &amp;#039; + last.user + &amp;#039;. Rollback reverts all consecutive edits by the most recent editor at once.&amp;#039;,&lt;br /&gt;
					fields: [&lt;br /&gt;
						{ name: &amp;#039;mode&amp;#039;, label: &amp;#039;Method&amp;#039;, type: &amp;#039;select&amp;#039;, required: true, options: [&lt;br /&gt;
							[ &amp;#039;rollback&amp;#039;, &amp;#039;Rollback: revert consecutive edits by the last editor&amp;#039; ],&lt;br /&gt;
							[ &amp;#039;undo&amp;#039;, &amp;#039;Undo: revert one chosen revision&amp;#039; ]&lt;br /&gt;
						], value: &amp;#039;rollback&amp;#039; },&lt;br /&gt;
						{ name: &amp;#039;revid&amp;#039;, label: &amp;#039;Revision to revert (for Undo only)&amp;#039;, type: &amp;#039;select&amp;#039;, required: true,&lt;br /&gt;
							options: revs.map( function ( r ) {&lt;br /&gt;
								var c = ( r.comment || &amp;#039;&amp;#039; ).replace( /\s+/g, &amp;#039; &amp;#039; );&lt;br /&gt;
								if ( c.length &amp;gt; 40 ) { c = c.slice( 0, 40 ) + &amp;#039;…&amp;#039;; }&lt;br /&gt;
								return [ String( r.revid ), r.revid + &amp;#039; - &amp;#039; + r.user + ( c ? &amp;#039; - &amp;#039; + c : &amp;#039;&amp;#039; ) ];&lt;br /&gt;
							} ), value: String( last.revid ) },&lt;br /&gt;
						{ name: &amp;#039;warnAfter&amp;#039;, label: &amp;#039;Open the warning dialog after reverting&amp;#039;, type: &amp;#039;checkbox&amp;#039;, value: false }&lt;br /&gt;
					],&lt;br /&gt;
					preview: function ( v ) {&lt;br /&gt;
						if ( v.mode === &amp;#039;rollback&amp;#039; ) {&lt;br /&gt;
							return &amp;#039;\&amp;#039;\&amp;#039;\&amp;#039;Rollback:\&amp;#039;\&amp;#039;\&amp;#039; the consecutive edits of &amp;#039; + last.user + &amp;#039; will be reverted.&amp;#039;;&lt;br /&gt;
						}&lt;br /&gt;
						return &amp;#039;\&amp;#039;\&amp;#039;\&amp;#039;Undo:\&amp;#039;\&amp;#039;\&amp;#039; revision &amp;#039; + v.revid + &amp;#039; will be reverted.&amp;#039;;&lt;br /&gt;
					},&lt;br /&gt;
					previewTitle: function () { return title; },&lt;br /&gt;
					submitLabel: &amp;#039;Revert&amp;#039;,&lt;br /&gt;
					success: &amp;#039;The edit has been reverted.&amp;#039;,&lt;br /&gt;
					onSubmit: function ( v ) {&lt;br /&gt;
						var done;&lt;br /&gt;
						if ( v.mode === &amp;#039;rollback&amp;#039; ) {&lt;br /&gt;
							done = BM.core.api().postWithToken( &amp;#039;rollback&amp;#039;, {&lt;br /&gt;
								action: &amp;#039;rollback&amp;#039;, title: title, user: last.user, format: &amp;#039;json&amp;#039;&lt;br /&gt;
							} ).then( function ( r ) {&lt;br /&gt;
								if ( r &amp;amp;&amp;amp; r.rollback ) { return r; }&lt;br /&gt;
								throw new Error( &amp;#039;Rollback failed.&amp;#039; );&lt;br /&gt;
							} );&lt;br /&gt;
						} else {&lt;br /&gt;
							done = BM.core.api().postWithToken( &amp;#039;edit&amp;#039;, {&lt;br /&gt;
								action: &amp;#039;edit&amp;#039;, title: title, undo: v.revid,&lt;br /&gt;
								summary: &amp;#039;Bharat Mitra: undid one revision (revision &amp;#039; + v.revid + &amp;#039;)&amp;#039;, format: &amp;#039;json&amp;#039;&lt;br /&gt;
							} ).then( function ( r ) {&lt;br /&gt;
								if ( r &amp;amp;&amp;amp; r.edit &amp;amp;&amp;amp; r.edit.result === &amp;#039;Success&amp;#039; ) { return r; }&lt;br /&gt;
								throw new Error( &amp;#039;Undo failed.&amp;#039; );&lt;br /&gt;
							} );&lt;br /&gt;
						}&lt;br /&gt;
						return done.then( function () {&lt;br /&gt;
							if ( v.warnAfter &amp;amp;&amp;amp; BM.loadModule ) {&lt;br /&gt;
								BM.loadModule( &amp;#039;warn&amp;#039; ).then( function () {&lt;br /&gt;
									if ( BM.modules.warn ) { BM.modules.warn.open(); }&lt;br /&gt;
								} );&lt;br /&gt;
							}&lt;br /&gt;
							setTimeout( function () { location.reload(); }, 600 );&lt;br /&gt;
						} );&lt;br /&gt;
					}&lt;br /&gt;
				} );&lt;br /&gt;
			} ).catch( function () {&lt;br /&gt;
				mw.notify( &amp;#039;The revision list could not be loaded.&amp;#039;, { type: &amp;#039;error&amp;#039; } );&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>Bharatwiki Socrates</name></author>
	</entry>
</feed>