<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fa">
	<id>https://www.islamical.org/w/index.php?action=history&amp;feed=atom&amp;title=%D9%85%D8%AF%DB%8C%D8%A7%D9%88%DB%8C%DA%A9%DB%8C%3AGadget-DiffPicker.js</id>
	<title>مدیاویکی:Gadget-DiffPicker.js - تاریخچهٔ نسخه‌ها</title>
	<link rel="self" type="application/atom+xml" href="https://www.islamical.org/w/index.php?action=history&amp;feed=atom&amp;title=%D9%85%D8%AF%DB%8C%D8%A7%D9%88%DB%8C%DA%A9%DB%8C%3AGadget-DiffPicker.js"/>
	<link rel="alternate" type="text/html" href="https://www.islamical.org/w/index.php?title=%D9%85%D8%AF%DB%8C%D8%A7%D9%88%DB%8C%DA%A9%DB%8C:Gadget-DiffPicker.js&amp;action=history"/>
	<updated>2026-06-06T22:35:50Z</updated>
	<subtitle>تاریخچهٔ نسخه‌ها برای این صفحه در ویکی</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://www.islamical.org/w/index.php?title=%D9%85%D8%AF%DB%8C%D8%A7%D9%88%DB%8C%DA%A9%DB%8C:Gadget-DiffPicker.js&amp;diff=349&amp;oldid=prev</id>
		<title>Aboammar: صفحه‌ای تازه حاوی «(function ($, mw) { 	&#039;use strict&#039;; 	var bookmarks = []; 	 	$(function () { 		$(mw.util.addPortletLink(&#039;p-tb&#039;, &#039;#&#039;, &#039;تفاوت‌ها&#039;, &#039;t-pickeddiffs&#039;)) 			.click(function (e) { 				e.preventDefault(); 				bookmarks = cookie.get(&#039;pickedDiffs&#039;); 				if (bookmarks.length &gt; 0) { 					openDiffPicker(); 				} else { 					mw.notify(&#039;هیچ تفاوت ذخیره شده‌ای وجود ندارد.&#039;); 				} 				return false; 			}); 		counter()...» ایجاد کرد</title>
		<link rel="alternate" type="text/html" href="https://www.islamical.org/w/index.php?title=%D9%85%D8%AF%DB%8C%D8%A7%D9%88%DB%8C%DA%A9%DB%8C:Gadget-DiffPicker.js&amp;diff=349&amp;oldid=prev"/>
		<updated>2023-01-12T17:24:30Z</updated>

		<summary type="html">&lt;p&gt;صفحه‌ای تازه حاوی «(function ($, mw) { 	&amp;#039;use strict&amp;#039;; 	var bookmarks = []; 	 	$(function () { 		$(mw.util.addPortletLink(&amp;#039;p-tb&amp;#039;, &amp;#039;#&amp;#039;, &amp;#039;تفاوت‌ها&amp;#039;, &amp;#039;t-pickeddiffs&amp;#039;)) 			.click(function (e) { 				e.preventDefault(); 				bookmarks = cookie.get(&amp;#039;pickedDiffs&amp;#039;); 				if (bookmarks.length &amp;gt; 0) { 					openDiffPicker(); 				} else { 					mw.notify(&amp;#039;هیچ تفاوت ذخیره شده‌ای وجود ندارد.&amp;#039;); 				} 				return false; 			}); 		counter()...» ایجاد کرد&lt;/p&gt;
&lt;p&gt;&lt;b&gt;صفحهٔ تازه&lt;/b&gt;&lt;/p&gt;&lt;div&gt;(function ($, mw) {&lt;br /&gt;
	&amp;#039;use strict&amp;#039;;&lt;br /&gt;
	var bookmarks = [];&lt;br /&gt;
	&lt;br /&gt;
	$(function () {&lt;br /&gt;
		$(mw.util.addPortletLink(&amp;#039;p-tb&amp;#039;, &amp;#039;#&amp;#039;, &amp;#039;تفاوت‌ها&amp;#039;, &amp;#039;t-pickeddiffs&amp;#039;))&lt;br /&gt;
			.click(function (e) {&lt;br /&gt;
				e.preventDefault();&lt;br /&gt;
				bookmarks = cookie.get(&amp;#039;pickedDiffs&amp;#039;);&lt;br /&gt;
				if (bookmarks.length &amp;gt; 0) {&lt;br /&gt;
					openDiffPicker();&lt;br /&gt;
				} else {&lt;br /&gt;
					mw.notify(&amp;#039;هیچ تفاوت ذخیره شده‌ای وجود ندارد.&amp;#039;);&lt;br /&gt;
				}&lt;br /&gt;
				return false;&lt;br /&gt;
			});&lt;br /&gt;
		counter();&lt;br /&gt;
	});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	var cookie = {&lt;br /&gt;
		set: function(name, value){&lt;br /&gt;
			mw.cookie.set(name, JSON.stringify(value));&lt;br /&gt;
		},&lt;br /&gt;
		get: function(name){&lt;br /&gt;
			var value = mw.cookie.get(name);&lt;br /&gt;
			if (value) {&lt;br /&gt;
				return JSON.parse(value);&lt;br /&gt;
			} else {&lt;br /&gt;
				return [];&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	var diff = mw.config.get(&amp;#039;wgDiffNewId&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
	if (diff) {&lt;br /&gt;
		$(&amp;#039;.diff-ntitle&amp;#039;).prepend(&amp;#039;&amp;lt;div id=&amp;quot;diffPeaker-btn&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;);&lt;br /&gt;
		icon();&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	$(document).on(&amp;#039;click&amp;#039;, &amp;#039;#diffPeaker-btn&amp;#039;, function(){&lt;br /&gt;
		doIt(diff);&lt;br /&gt;
	});&lt;br /&gt;
&lt;br /&gt;
	function counter(){&lt;br /&gt;
		$(&amp;#039;#t-pickeddiffs a&amp;#039;).html(&amp;#039;تفاوت‌ها &amp;lt;span id=&amp;quot;diffCounter&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;#039;);&lt;br /&gt;
		var n = cookie.get(&amp;#039;pickedDiffs&amp;#039;).length;&lt;br /&gt;
		$(&amp;#039;#diffCounter&amp;#039;).removeClass();&lt;br /&gt;
		if (n &amp;gt; 0) {&lt;br /&gt;
			$(&amp;#039;#diffCounter&amp;#039;).addClass(&amp;#039;red&amp;#039;);&lt;br /&gt;
		}&lt;br /&gt;
		if (n == 0) {&lt;br /&gt;
			n = &amp;#039;&amp;#039;;&lt;br /&gt;
		}&lt;br /&gt;
		$(&amp;#039;#diffCounter&amp;#039;).text(toPersianNum(n));&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function doIt(revId){&lt;br /&gt;
		revId = parseInt(revId);&lt;br /&gt;
		bookmarks = cookie.get(&amp;#039;pickedDiffs&amp;#039;);&lt;br /&gt;
		var index = bookmarks.indexOf(revId);&lt;br /&gt;
		if (index == -1) {&lt;br /&gt;
			bookmarks.push(revId);&lt;br /&gt;
		} else {&lt;br /&gt;
			bookmarks.splice(index, 1);&lt;br /&gt;
		}&lt;br /&gt;
		cookie.set(&amp;#039;pickedDiffs&amp;#039;, bookmarks);&lt;br /&gt;
		icon();&lt;br /&gt;
		counter();&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function icon(){&lt;br /&gt;
		bookmarks = cookie.get(&amp;#039;pickedDiffs&amp;#039;);&lt;br /&gt;
		$(&amp;#039;#diffPeaker-btn&amp;#039;).removeClass();&lt;br /&gt;
		if (bookmarks.indexOf(diff) != -1) {&lt;br /&gt;
			$(&amp;#039;#diffPeaker-btn&amp;#039;).addClass(&amp;#039;picked&amp;#039;);&lt;br /&gt;
		} else {&lt;br /&gt;
			$(&amp;#039;#diffPeaker-btn&amp;#039;).addClass(&amp;#039;notPicked&amp;#039;);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function toPersianNum(num, dontTrim) {&lt;br /&gt;
		var i = 0,&lt;br /&gt;
&lt;br /&gt;
		dontTrim = dontTrim || false,&lt;br /&gt;
&lt;br /&gt;
		num = dontTrim ? num.toString() : num.toString().trim(),&lt;br /&gt;
		len = num.length,&lt;br /&gt;
&lt;br /&gt;
		res = &amp;#039;&amp;#039;,&lt;br /&gt;
		pos,&lt;br /&gt;
&lt;br /&gt;
		persianNumbers = typeof persianNumber == &amp;#039;undefined&amp;#039; ?&lt;br /&gt;
			[&amp;#039;۰&amp;#039;, &amp;#039;۱&amp;#039;, &amp;#039;۲&amp;#039;, &amp;#039;۳&amp;#039;, &amp;#039;۴&amp;#039;, &amp;#039;۵&amp;#039;, &amp;#039;۶&amp;#039;, &amp;#039;۷&amp;#039;, &amp;#039;۸&amp;#039;, &amp;#039;۹&amp;#039;] :&lt;br /&gt;
			persianNumbers;&lt;br /&gt;
&lt;br /&gt;
		for (; i &amp;lt; len; i++) {&lt;br /&gt;
			if (( pos = persianNumbers[num.charAt(i)] ))&lt;br /&gt;
				res += pos;&lt;br /&gt;
			else&lt;br /&gt;
				res += num.charAt(i);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		return res;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	function insertAtCursor(selector, value) {&lt;br /&gt;
		var cursorPos = $(selector).prop(&amp;#039;selectionStart&amp;#039;);&lt;br /&gt;
		var v = $(selector).val();&lt;br /&gt;
		var textBefore = v.substring(0,  cursorPos);&lt;br /&gt;
		var textAfter  = v.substring(cursorPos, v.length);&lt;br /&gt;
&lt;br /&gt;
		$(selector).val(textBefore + value + textAfter);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	$(document).on(&amp;#039;click&amp;#039;, &amp;#039;.DiffList .unpickDiff&amp;#039;, function(){&lt;br /&gt;
		var row = $(this);&lt;br /&gt;
		doIt(row.attr(&amp;#039;diff&amp;#039;));&lt;br /&gt;
		row.parents(&amp;#039;tr&amp;#039;).remove();&lt;br /&gt;
	});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	// Interface&lt;br /&gt;
&lt;br /&gt;
	var DiffModule = {};&lt;br /&gt;
	function DiffPicker( config ) {&lt;br /&gt;
		DiffPicker.parent.call( this, config );&lt;br /&gt;
	}&lt;br /&gt;
	OO.inheritClass( DiffPicker, OO.ui.ProcessDialog );&lt;br /&gt;
&lt;br /&gt;
	DiffPicker.static.name = &amp;#039;DiffPicker&amp;#039;;&lt;br /&gt;
	DiffPicker.static.title = &amp;#039;گزینش‌گر تفاوت&amp;#039;;&lt;br /&gt;
	DiffPicker.static.actions = [];&lt;br /&gt;
	if ($(&amp;#039;#wpTextbox1&amp;#039;).length &amp;gt; 0) {&lt;br /&gt;
		DiffPicker.static.actions.push({ action: &amp;#039;insert&amp;#039;, label: &amp;#039;درج&amp;#039;, flags: &amp;#039;primary&amp;#039; });&lt;br /&gt;
	}&lt;br /&gt;
	DiffPicker.static.actions.push({action: &amp;#039;cancel&amp;#039;, label: &amp;#039;بستن&amp;#039;, flags: &amp;#039;safe&amp;#039;});&lt;br /&gt;
	DiffPicker.static.actions.push({action: &amp;#039;clear&amp;#039;, label: &amp;#039;خالی کردن فهرست&amp;#039;});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	DiffPicker.prototype.initialize = function () {&lt;br /&gt;
		DiffPicker.parent.prototype.initialize.apply( this, arguments );&lt;br /&gt;
		this.content = new OO.ui.PanelLayout( { padded: true, expanded: false } );&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
		DiffModule = new OO.ui.ToggleSwitchWidget({&lt;br /&gt;
			value: true&lt;br /&gt;
		});&lt;br /&gt;
&lt;br /&gt;
		var fieldset = new OO.ui.FieldsetLayout();&lt;br /&gt;
		fieldset.addItems( [&lt;br /&gt;
			new OO.ui.FieldLayout( DiffModule, { label: &amp;#039;الگوی تفاوت‌ها&amp;#039; } )&lt;br /&gt;
		] );&lt;br /&gt;
		this.content.$element.append(fieldset.$element);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
		bookmarks = cookie.get(&amp;#039;pickedDiffs&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
		var diffsList = &amp;#039;&amp;lt;table class=&amp;quot;DiffList&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;پیوند تفاوت&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;حذف&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
		for (var i in bookmarks) {&lt;br /&gt;
			diffsList += &amp;#039;&amp;lt;tr&amp;gt;&amp;#039;;&lt;br /&gt;
			diffsList += &amp;#039;&amp;lt;td&amp;gt;&amp;lt;a href=&amp;quot;https://fa.wikipedia.org/w/index.php?diff=&amp;#039; + bookmarks[i] + &amp;#039;&amp;quot;&amp;gt;[[ویژه:تفاوت/&amp;#039; + bookmarks[i] + &amp;#039;]]&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&amp;#039;;&lt;br /&gt;
			diffsList += &amp;#039;&amp;lt;td&amp;gt;&amp;lt;img src=&amp;quot;https://upload.wikimedia.org/wikipedia/commons/d/d0/OOjs_UI_icon_clear-progressive.svg&amp;quot; class=&amp;quot;unpickDiff&amp;quot; diff=&amp;quot;&amp;#039; + bookmarks[i] + &amp;#039;&amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&amp;#039;;&lt;br /&gt;
			diffsList += &amp;#039;&amp;lt;/tr&amp;gt;&amp;#039;;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		diffsList += &amp;#039;&amp;lt;/table&amp;gt;&amp;#039;;&lt;br /&gt;
		this.content.$element.append(diffsList);&lt;br /&gt;
		this.$body.append( this.content.$element );&lt;br /&gt;
	};&lt;br /&gt;
	DiffPicker.prototype.getActionProcess = function ( action ) {&lt;br /&gt;
		var dialog = this;&lt;br /&gt;
		bookmarks = cookie.get(&amp;#039;pickedDiffs&amp;#039;);&lt;br /&gt;
		if (action == &amp;#039;insert&amp;#039; &amp;amp;&amp;amp; bookmarks.length &amp;gt; 0) {&lt;br /&gt;
			var out = &amp;#039;&amp;#039;;&lt;br /&gt;
			if (DiffModule.getValue()) {&lt;br /&gt;
				out += &amp;#039;{{تفاوت‌ها|&amp;#039;;&lt;br /&gt;
				for (var i in bookmarks) {&lt;br /&gt;
					out += bookmarks[i];&lt;br /&gt;
					if (i &amp;lt;= bookmarks.length - 2) {&lt;br /&gt;
						out += &amp;#039;|&amp;#039;;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
				out += &amp;#039;}}&amp;#039;&lt;br /&gt;
			} else {&lt;br /&gt;
				for (var i in bookmarks) {&lt;br /&gt;
					out += &amp;#039;[[ویژه:تفاوت/&amp;#039; + bookmarks[i] + &amp;#039;]]&amp;#039;;&lt;br /&gt;
					if (i &amp;lt;= bookmarks.length - 3) {&lt;br /&gt;
						out += &amp;#039;، &amp;#039;;&lt;br /&gt;
					}&lt;br /&gt;
					if (i == bookmarks.length - 2) {&lt;br /&gt;
						out += &amp;#039; و &amp;#039;;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			insertAtCursor(&amp;#039;#wpTextbox1&amp;#039;, out);&lt;br /&gt;
			mw.notify(&amp;#039;پیوندهای تفاوت در متن درج شدند.&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
		} else if (action == &amp;#039;clear&amp;#039;) {&lt;br /&gt;
			cookie.set(&amp;#039;pickedDiffs&amp;#039;, []);&lt;br /&gt;
			counter();&lt;br /&gt;
			return new OO.ui.Process( function () {&lt;br /&gt;
				dialog.close( { action: action } );&lt;br /&gt;
			} );&lt;br /&gt;
		} else {&lt;br /&gt;
			return new OO.ui.Process( function () {&lt;br /&gt;
				dialog.close( { action: action } );&lt;br /&gt;
			} );&lt;br /&gt;
		}&lt;br /&gt;
		return DiffPicker.parent.prototype.getActionProcess.call( this, action );&lt;br /&gt;
	};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	function openDiffPicker() {&lt;br /&gt;
		var windowManager = new OO.ui.WindowManager();&lt;br /&gt;
		$( &amp;#039;body&amp;#039; ).append( windowManager.$element );&lt;br /&gt;
&lt;br /&gt;
		var dialog = new DiffPicker();&lt;br /&gt;
		windowManager.addWindows( [ dialog ] );&lt;br /&gt;
		windowManager.openWindow( dialog );&lt;br /&gt;
	}&lt;br /&gt;
}(jQuery, mediaWiki));&lt;/div&gt;</summary>
		<author><name>Aboammar</name></author>
	</entry>
</feed>