מדיה ויקי:סקריפטים/1.js: הבדלים בין גרסאות בדף

מתוך חב"דפדיה, אנציקלופדיה חב"דית חופשית
קפיצה לניווט קפיצה לחיפוש
(יצירת דף עם התוכן "/* סקריפט להעברה מהירה של פסקאות בין דפים (לא כולל מרחב הערכים). הסקריפט מאפשר העברה מהירה...")
 
אין תקציר עריכה
שורה 124: שורה 124:
 
 
$.post('/w/api.php',params,function(){
$.post('/w/api.php',params,function(){
$('#wpSummary').val('/*' + oldcap + '*/[[ויקיפדיה:סקריפטים#סקריפט 76: העברה מהירה של קטעי שיחה בין דפים|סקריפט העברות:]] הועבר ל[[' + to + '#' + oldcap + ']]');
$('#wpSummary').val('/*' + oldcap + '*/[[חב"דפדיה:סקריפטים#סקריפט 76: העברה מהירה של קטעי שיחה בין דפים|סקריפט העברות:]] הועבר ל[[' + to + '#' + oldcap + ']]');
$('#Processing').remove();
$('#Processing').remove();
mw.notify('ההעברה ל' + to + ' בוצעה בהצלחה!');
mw.notify('ההעברה ל' + to + ' בוצעה בהצלחה!');

גרסה מ־08:47, 10 באוקטובר 2021

/* סקריפט להעברה מהירה של פסקאות בין דפים (לא כולל מרחב הערכים).

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

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

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

בגרסה 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(/]+/,'').replace(/\[+/,'');
		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 = 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);
	 
		//preparing the infprmation for the new page
	 
		var token = mw.user.tokens.get('editToken');
		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();
		});
	}
});