מדיה ויקי:Gadget-Revert.js

מתוך אוצר הספרים היהודי השיתופי
קפיצה לניווט קפיצה לחיפוש

הערה: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.

  • פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload), או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
  • גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
  • אינטרנט אקספלורר / אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh), או ללחוץ על צירוף המקשים Ctrl-F5.
  • אופרה: ללחוץ על Ctrl-F5.
$(function () {
	
	function revertSummary() {
		
		var oldid = mw.util.getParamValue('oldid'), pageID = mw.config.get('wgArticleId');
		
		new mw.Api().get({
			action: 'query',
			prop: 'revisions',
			pageids: pageID,
			rvprop: 'timestamp|user',
			rvlimit: 1,
			rvstartid: oldid,
			rvendid: oldid
		}).then(function (ret) {
			
			var timestamp = new Date(ret.query.pages[pageID].revisions[0].timestamp),
			    monthNames = ['בינואר', 'בפברואר', 'במרץ', 'באפריל', 'במאי', 'ביוני', 'ביולי', 'באוגוסט', 'בספטמבר', 'באוקטובר', 'בנובמבר', 'בדצמבר'],
			    getHours = timestamp.getHours() < 10 ? '0' + timestamp.getHours() : timestamp.getHours(),
			    getMinutes = timestamp.getMinutes() < 10 ? '0' + timestamp.getMinutes() : timestamp.getMinutes(),
			    revDate = getHours + ':' + getMinutes + ', ' + timestamp.getDate() + ' ' + monthNames[timestamp.getMonth()] + ' ' + timestamp.getFullYear(),
			    revUser = ret.query.pages[pageID].revisions[0].user,
			    autoSummary = 'שחזור לגרסה ' + oldid + ' מ־' + revDate + ' מאת ' + '[[:User:' + revUser + '|' + revUser + ']]';
			
			if (mw.config.get('wgAction') === 'edit' && document.getElementById('wpSummary')) {
				$('#wpSummary').val(autoSummary);
			}
			
			mw.hook('ve.saveDialog.stateChanged').add(function () {
				ve.init.target.saveDialog.$body.find('.ve-ui-mwSaveDialog-summary textarea').val(autoSummary);
			});

		});
		
	}
	
	if (mw.util.getParamValue('oldid')) {
		revertSummary();
	}
	
});