User:SHEIKH/Restor.js

From Meta, a Wikimedia project coordination wiki

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
$(function() {
	function restore (user, revid) {
		var add_sum = prompt("সম্পাদনা বাতিলের কারণ (ঐচ্ছিক)");
		if( add_sum === null ){
			mw.notify('পুনরুদ্ধার কার্য বাতিল করা হয়েছে');
		} else{
		$.post( mw.config.get('wgScriptPath') + '/api.php', {
			action: 'edit',
			pageid: mw.config.get('wgArticleId'),
			undo: mw.config.get('wgCurRevisionId'),
			undoafter: revid,
			summary: user + '-এর করা ' + revid + ' নং সংস্করণ পুনরুদ্ধার করা হয়েছে  ' + add_sum + '([[:bn:user:Al Riaz Uddin Ripon/পুনরুদ্ধারকারী|পুনরুদ্ধারকারক]])',
			token: mw.user.tokens.get('csrfToken'),
			format: 'json'
		})
		.fail(function (a,b,c,d,e) {
			mw.notify('সংস্করণ পুনরুদ্ধারের সময় ত্রুটি ঘটেছে', {type:'error'});
		})
		.done(function (result) {
			if (result.error) {
				mw.notify(result.error.info, {type:'error'});
			} else {
				mw.notify('সংস্করণ পুনরুদ্ধার সফল হয়েছে');
				location.reload();
			}
		});
		}
	}
function addLink (item) {
		var revid = item.getAttribute('data-mw-revid'), user, links, ele, parent;
		if (revid != mw.config.get('wgCurRevisionId')) {
			user = item.getElementsByClassName('mw-userlink')[0].
textContent.replace('User:','');
			links = item.getElementsByClassName('mw-changeslist-links');
			links = links[links.length - 1];
			parent = document.createElement('span');
			parent.classList.add("mw-history-undo");
			ele = document.createElement('a');
			ele.addEventListener('click', function() {
			restore(user, revid);
			});
			ele.innerHTML = 'পুনরুদ্ধার';
			parent.appendChild(ele);
			links.appendChild(parent);
		}
	}
	(function () {
		if (location.search.includes('action=history')) {
			var i, parents = document.querySelectorAll('li[data-mw-revid]');
			for (i = 0; i < parents.length; i++) {
				addLink(parents[i]);
			}
		}
	})();
});