میڈیاویکی:Gadget-friendlyshared-2022.js

تفصیل کے لیے کھولیں کے بٹن پر کلک کریں یاددہانی: محفوظ کرنے کے بعد تازہ ترین تبدیلیوں کو دیکھنے کے لیے آپ کو اپنے براؤزر کا کیش صاف کرنا ہوگا۔

  • فائرفاکس/ سفاری: جب Reload پر کلک کریں تو Shift دبا کر رکھیں، یا Ctrl-F5 یا Ctrl-R دبائیں (Mac پر R- )
  • گوگل کروم: Ctrl-Shift-R دبائیں (Mac پر Shift-R-⌘)
  • انٹرنیٹ ایکسپلورر: جب Refresh پر کلک کریں تو Ctrl یا Ctrl-F5 دبائیں
  • اوپیرا: Tools → Preferences میں جائیں اور کیش صاف کریں

// <nowiki>


(function($) {


/*
 ****************************************
 *** friendlyshared.js: Shared IP tagging module
 ****************************************
 * Mode of invocation:     Tab ("مشترک")
 * Active on:              IP user talk pages
 */

Twinkle.shared = function friendlyshared() {
	if (mw.config.get('wgNamespaceNumber') === 3 && mw.util.isIPAddress(mw.config.get('wgTitle'))) {
		var username = mw.config.get('wgRelevantUserName');
		Twinkle.addPortletLink(function() {
			Twinkle.shared.callback(username);
		}, 'مشترک', 'friendly-shared', 'مشترکہ آئی پی کی ٹیگ کاری');
	}
};

Twinkle.shared.callback = function friendlysharedCallback() {
	var Window = new Morebits.simpleWindow(600, 450);
	Window.setTitle('مشترکہ آئی پی پتوں کی ٹیگ کاری');
	Window.setScriptName('پلک');
	Window.addFooterLink('مشترکہ آئی پی کی ترجیحات', 'وپ:پلک/ترجیحات#shared');
	Window.addFooterLink('رہنمائے پلک', ':en:WP:TW/DOC#shared');
	Window.addFooterLink('آپ کے تاثرات', 'تبادلۂ خیال ویکیپیڈیا:پلک');

	var form = new Morebits.quickForm(Twinkle.shared.callback.evaluate);

	var div = form.append({
		type: 'div',
		id: 'sharedip-templatelist',
		className: 'morebits-scrollbox'
	}
	);
	div.append({ type: 'header', label: 'مشترکہ آئی پی پتے کے سانچے' });
	div.append({ type: 'radio', name: 'template', list: Twinkle.shared.standardList,
		event: function(e) {
			Twinkle.shared.callback.change_shared(e);
			e.stopPropagation();
		}
	});

	var org = form.append({ type: 'field', label: 'دیگر تفصیلات کو پُر کریں (اختیاری) اور «درخواست دیجیے» پر کلک کریں' });
	org.append({
		type: 'input',
		name: 'organization',
		label: 'آئی پی پتے کا مالک / منتظم',
		disabled: true,
		tooltip: 'یہاں آپ اس تنظیم کا نام درج کر سکتے ہیں جو اس آئی پی پتے کی مالک یا منصرم ہے۔ اگر ضرورت ہو تو ویکی مارک اپ کے استعمال کی بھی گنجائش ہے۔'
	}
	);
	org.append({
		type: 'input',
		name: 'host',
		label: 'میزبان کا نام (اختیاری)',
		disabled: true,
		tooltip: 'میزبان کا نام (مثلاً proxy.example.com) یہاں درج کیا جا سکتا ہے جو سانچے سے مربوط ہو جائے گا۔'
	}
	);
	org.append({
		type: 'input',
		name: 'contact',
		label: 'رابطہ کی تفصیلات (صرف پوچھے جانے کی صورت میں)',
		disabled: true,
		tooltip: 'یہاں آپ تنظیم سے رابطہ کی تفصیلات مہیا کر سکتے ہیں۔ اس پیرامیٹر کو اسی وقت پُر کریں جب تنظیم آپ سے اس بابت مطالبہ کرے۔ بوقت ضرورت ویکی مارک اپ استعمال کرنے کی بھی گنجائش ہے۔'
	}
	);

	var previewlink = document.createElement('a');
	$(previewlink).click(function() {
		Twinkle.shared.preview(result);
	});
	previewlink.style.cursor = 'pointer';
	previewlink.textContent = 'نمائش';
	form.append({ type: 'div', id: 'sharedpreview', label: [ previewlink ] });
	form.append({ type: 'submit' });

	var result = form.render();
	Window.setContent(result);
	Window.display();
};

Twinkle.shared.standardList = [
	{
		label: '{{Shared IP}}: مشترکہ آئی پی پتے کا معیاری سانچہ',
		value: 'Shared IP',
		tooltip: 'آئی پی صارف کے تبادلۂ خیال صفحہ کا سانچہ جس میں آئی پی صارفین اور انھیں انتباہ دینے، پابندی عائد کرنے اور بے دخل کرنے والے صارفین کے لیے مفید معلومات درج ہوتی ہیں'
	},
	{
		label: '{{Shared IP edu}}: تعلیمی اداروں کے مشترکہ آئی پتوں کے لیے تیار شدہ سانچہ',
		value: 'Shared IP edu'
	},
	{
		label: '{{Shared IP corp}}: کاروباری اداروں کے مشترکہ آئی پتوں کے لیے تیار شدہ سانچہ',
		value: 'Shared IP corp'
	},
	{
		label: '{{Shared IP public}}: عوامی مقامات کے مشترکہ آئی پتوں کے لیے تیار شدہ سانچہ',
		value: 'Shared IP public'
	},
	{
		label: '{{Shared IP gov}}: سرکاری اداروں کے مشترکہ آئی پتوں کے لیے تیار شدہ سانچہ',
		value: 'Shared IP gov'
	},
	{
		label: '{{Dynamic IP}}: متحرک آئی پی استعمال کرنے والے اداروں کے مشترکہ آئی پتوں کے لیے تیار شدہ سانچہ',
		value: 'Dynamic IP'
	},
	{
		label: '{{Static IP}}: ساکن آئی پی کے مشترکہ آئی پتوں کے لیے تیار شدہ سانچہ',
		value: 'Static IP'
	},
	{
		label: '{{ISP}}: انٹرنٹ کی خدمات فراہم کرنے والے اداروں کے مشترکہ آئی پتوں کے لیے تیار شدہ سانچہ (بالخصوص پراکسی)',
		value: 'ISP'
	},
	{
		label: '{{Mobile IP}}: موبائل فون بنانے والی کمپنیوں اور ان کے گاہکوں کے مشترکہ آئی پتوں کے لیے تیار شدہ سانچہ',
		value: 'Mobile IP'
	},
	{
		label: '{{Whois}}: ان آئی پی پتوں کا سانچہ جن کی نگرانی ضروری ہے لیکن اس کا علم نہیں کہ وہ ساکن ہیں، متحرک ہیں یا مشترک',
		value: 'Whois'
	}
];

Twinkle.shared.callback.change_shared = function friendlysharedCallbackChangeShared(e) {
	e.target.form.contact.disabled = e.target.value !== 'Shared IP edu';  // only supported by {{Shared IP edu}}
	e.target.form.organization.disabled = false;
	e.target.form.host.disabled = e.target.value === 'Whois';  // host= not supported by {{Whois}}
};

Twinkle.shared.callbacks = {
	main: function(pageobj) {
		var params = pageobj.getCallbackParameters();
		var pageText = pageobj.getPageText();
		var found = false;

		for (var i = 0; i < Twinkle.shared.standardList.length; i++) {
			var tagRe = new RegExp('(\\{\\{' + Twinkle.shared.standardList[i].value + '(\\||\\}\\}))', 'im');
			if (tagRe.exec(pageText)) {
				Morebits.status.warn('اطلاع', 'صارف کے تبادلۂ خیال صفحہ پر {{' + Twinkle.shared.standardList[i].value + '}} پہلے سے ہی چسپاں ہے۔۔۔۔ کارروائی منسوخ کی جا رہی ہے');
				found = true;
			}
		}

		if (found) {
			return;
		}

		Morebits.status.info('اطلاع', 'صارف کے تبادلۂ خیال صفحہ میں اوپر کی جانب مشترکہ آئی پی پتے کا سانچہ چسپاں کیا جائے گا۔');
		var text = Twinkle.shared.getTemplateWikitext(params);

		var summaryText = 'اضافۂ سانچہ {{[[سانچہ:' + params.template + '|' + params.template + ']]}}۔';
		pageobj.setPageText(text + pageText);
		pageobj.setEditSummary(summaryText);
		pageobj.setChangeTags(Twinkle.changeTags);
		pageobj.setMinorEdit(Twinkle.getPref('markSharedIPAsMinor'));
		pageobj.setCreateOption('recreate');
		pageobj.save();
	}
};

Twinkle.shared.preview = function(form) {
	var input = Morebits.quickForm.getInputData(form);
	if (input.template) {
		var previewDialog = new Morebits.simpleWindow(700, 500);
		previewDialog.setTitle('مشترکہ آئی پی پتے کے سانچے کی نمائش');
		previewDialog.setScriptName('اضافۂ سانچہ مشترکہ آئی پی پتا');
		previewDialog.setModality(true);

		var previewdiv = document.createElement('div');
		previewdiv.style.marginRight = previewdiv.style.marginLeft = '0.5em';
		previewdiv.style.fontSize = 'small';
		previewDialog.setContent(previewdiv);

		var previewer = new Morebits.wiki.preview(previewdiv);
		previewer.beginRender(Twinkle.shared.getTemplateWikitext(input), mw.config.get('wgPageName'));

		var submit = document.createElement('input');
		submit.setAttribute('type', 'submit');
		submit.setAttribute('value', 'Close');
		previewDialog.addContent(submit);

		previewDialog.display();

		$(submit).click(function() {
			previewDialog.close();
		});
	}
};

Twinkle.shared.getTemplateWikitext = function(input) {
	var text = '{{' + input.template + '|' + input.organization;
	if (input.contact) {
		text += '|' + input.contact;
	}
	if (input.host) {
		text += '|host=' + input.host;
	}
	text += '}}\n\n';
	return text;
};

Twinkle.shared.callback.evaluate = function friendlysharedCallbackEvaluate(e) {
	var params = Morebits.quickForm.getInputData(e.target);
	if (!params.template) {
		alert('مشترکہ آئی پی پتے کے کسی سانچہ کو منتخب کرنا لازمی ہے!');
		return;
	}
	if (!params.organization) {
		alert('سانچہ {{' + params.template + '}} کو استعمال کرنے کے لیے کسی ادارہ کا نام درج کرنا ضروری ہے!');
		return;
	}

	Morebits.simpleWindow.setButtonsEnabled(false);
	Morebits.status.init(e.target);

	Morebits.wiki.actionCompleted.redirect = mw.config.get('wgPageName');
	Morebits.wiki.actionCompleted.notice = 'ٹیگ کاری مکمل ہوئی، اگلے چند ثانیوں میں تبادلۂ خیال صفحہ از سر نو لوڈ ہوگا';

	var wikipedia_page = new Morebits.wiki.page(mw.config.get('wgPageName'), 'صارف کے تبادلۂ خیال صفحہ میں ترمیم');
	wikipedia_page.setFollowRedirect(true);
	wikipedia_page.setCallbackParameters(params);
	wikipedia_page.load(Twinkle.shared.callbacks.main);
};

Twinkle.addInitCallback(Twinkle.shared, 'shared');
})(jQuery);


// </nowiki>