מדיה ויקי:סקריפטים/76.js

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

  • פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload), או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
  • גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
  • אינטרנט אקספלורר: להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh), או ללחוץ על צירוף המקשים Ctrl-F5.
  • אופרה: לפתוח תפריט ← הגדרות (במחשב מק: Opera ← העדפות) ואז ללחוץ על פרטיות ואבטחה ← מחק היסטוריית גלישה ← Cached images and files.
/* סקריפט להעברה מהירה של פסקאות בין דפים (לא כולל מרחב הערכים).

הסקריפט מאפשר העברה מהירה של קטעי שיחה בין דפי שיחה, ייעוץ, מדיניות וכדומה.

לאחר הוספת הסקריפט תתווסף בצמוד ללשונית העריכה לשונית נוספת בשם "העברה". לחיצה על הלשונית תשאל את המשתמש להיכן הוא מעוניין להעביר את הפסקה, ולאחר הזנת הנתונים ההעברה תתבצע באופן אוטומטי.

הסקריפט גם מוסיף תקציר עריכה אוטומטי ותבניות {{תב|הועבר|ל}}, {{תב|הועבר|מ}} ו-{{תב|סוף העברה}}.

בגרסה 2 נוסף גאדג'ט להשלמה אוטומטית בעת ציון היעד.

נכתב על ידי [[משתמש:קובי כרמל|קובי כרמל]]

version 2.0 */

$(function(){
	if (mw.config.get( 'wgNamespaceNumber' )<1||mw.config.get( 'wgNamespaceNumber' )>5) return;//checking name space
	var cap = $('.mw-editsection');
 
	for(var i = 0; i < cap.length; i++)
	{
		var tag = $(cap).eq(i).parent()[0].tagName.split('H')[1];
		if (tag<2) continue;
		var href = $(cap).eq(i).children('a').eq(0).attr('href').replace('veaction', 'action').replace('vesection', 'section') + '&move=' + tag;
		var direction = $('.mw-editsection').css('float') == 'left' ? 'left' : 'none';
		$(cap).eq(i).after('<span id = "move-section" style = "float: ' + direction + '; font-weight: normal; font-size: small; margin-right: 1em; line-height: 1em; display: inline-block;"><a href = ' + href + '>[העברה]</a></span>');
	}
	
	//fixing for the VisualEditor:
	
	$('.mw-headline').parent().hover(
		function(){$(this).find('.mw-editsection-link-secondary').show().css('visibility', 'visible')},
		function(){$(this).find('.mw-editsection-link-secondary').hide().css('visibility', 'hidden')}
	).find('.mw-editsection-link-secondary').hide();
	
	//checking if submitted a request for moving
 
	var section = mw.util.getParamValue('move');
	if (section < 2 || section > 6) return;
	var level = '';
	for(var t = 0; t < section; t++)
	{
		level += '=';
	}
 
	var text = $('#wpTextbox1');
	var value = (text.val());
	$('#mw-content-text').append('<div id="sugges" title="לאן להעביר?"><form><input type="text" style="width:95%;margin:10px 3px 0;"/><div><ul></ul></div></form></div>');
	$('#sugges').dialog({
		buttons : {'העברה' : function(){
			$(this).dialog('close');
			move($(this).find('input').val());
			}
		},
		modal : true
	}).find('input').on('keyup', function(e){search($(this), e.keyCode || e.which)});
	
	function search(obj, key){
		var keys = [];
		for(var k in $.ui.keyCode)keys.push($.ui.keyCode[k]);
		if(keys.indexOf(key) + 1 && key != 8)return;
		var param = {action : 'opensearch', search : obj.val()};
		$.getJSON('/w/api.php', param, function(data){
			var ul = obj.next().children();
			ul.empty();
			var bckg = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAABkCAYAAABHLFpgAAAAMUlEQVQYV2P68vPvfyYGIBhCxP//cBacYAAKInGRlIBYaBJQHWAWXBuqoVBZmNhwIgBlYh6Ywkr41gAAAABJRU5ErkJggg==';
			function help1() {
						obj.val($(this).text()).focus();
						ul.empty();
					}
			function help3() {
						$(this).css({background : '#e4f1fb url(' + bckg + ') 50% 50% repeat-x', border : '1px solid #74b2e2', padding : '0 4px'});
					}
			function help5() {
						$(this).css({background : 'none', border : 'none', padding : '1px 5px'});
					}
			for(var i in data[1]){
				ul.append($('<li>').css({cursor : 'pointer', padding : '1px 5px', width : '92%'}).text(data[1][i]).on({
					click : help1,
					mouseenter : help3,
					mouseleave : help5
				}));
			}
		});
	}
 
	function move(to){
		if (to === null || to === '') return alert('חובה לציין יעד להעברה!');
	 
		$('body').prepend('<div id="Processing" style="color:gray;position:absolute;top:58%;left:44%;z-index:1"><img src="https://upload.wikimedia.org/wikipedia/commons/1/10/Loading-special.gif"><br/>מעבד נתונים...</div>');
		var caption = text.val().split(level)[1];
		var oldcap = caption.replace(/[\[\]]/g,'');
		var tosplit = oldcap.split('');
	 
		//removing the space from the caption
	 
		for(var k in tosplit){
			if(k === 0 || k == tosplit.length-1){
				if(tosplit[k] == ' '){
					delete(tosplit[k]);
				}
			}
		}
	 
		//preparing the infprmation for the old page
	 
		var PageName = mw.config.get('wgPageName').replace(/_/g , ' ');
		oldcap = tosplit.join('');
		var from = "{{הועבר|מ=" + PageName + "}}";
		var end = '{{סוף העברה}}';
		var va = text.val().split('\n');
		va[0] += '\n' + from;
		var ba = '\n' + va.join('\n');
		ba += end;
		var tm = level + caption + level + '\n{{הועבר|ל=' + to + '#' + oldcap + '}}';
		text.val(tm.replace(/# /, "#"));
	 
		//preparing the infprmation for the new page
	 
		var token = mw.user.tokens.get('csrfToken');
		var summary = 'העברה מ[[' + PageName + ']]';
		var params = {action: 'edit', title: to, token: token, appendtext: ba, summary: summary};
	 
		//Sends the data to the new destination
	 
		$.post('/w/api.php',params,function(){
			$('#wpSummary').val('/*' + oldcap + '*/[[ויקיפדיה:סקריפטים#סקריפט 76: העברה מהירה של קטעי שיחה בין דפים|סקריפט העברות:]] הועבר ל[[' + to + '#' + oldcap + ']]');
			$('#Processing').remove();
			mw.notify('ההעברה ל' + to + ' בוצעה בהצלחה!');
			//updating the old page
			$('#editform').submit();
		});
	}
});