مدیاویکی:Gadget-friendlyshared-2020.js
نکته: پس از انتشار ممکن است برای دیدن تغییرات نیاز باشد که حافظهٔ نهانی مرورگر خود را پاک کنید.
- فایرفاکس / سافاری: کلید Shift را نگه دارید و روی دکمهٔ Reload کلیک کنید، یا کلیدهای Ctrl-F5 یا Ctrl-R را با هم فشار دهید (در رایانههای اپل مکینتاش کلیدهای ⌘-R)
- گوگل کروم: کلیدهای Ctrl+Shift+R را با هم فشار دهید (در رایانههای اپل مکینتاش کلیدهای ⌘-Shift-R)
- اینترنت اکسپلورر/ Edge: کلید Ctrl را نگهدارید و روی دکمهٔ Refresh کلیک کنید، یا کلیدهای Ctrl-F5 را با هم فشار دهید
- اپرا: Ctrl-F5 را بفشارید.
// <nowiki>
(function($) { // eslint-disable-line no-unused-vars
/*
****************************************
*** friendlyshared.js: Shared IP tagging module
****************************************
* Mode of invocation: Tab ("Shared")
* Active on: Existing 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', 'برچسبزدن آیپیهای اشتراکی'); // localized
}
};
Twinkle.shared.callback = function friendlysharedCallback() {
var Window = new Morebits.simpleWindow(600, 420);
Window.setTitle('برچسب زدن نشانیهای آیپی اشتراکی'); // localized
Window.setScriptName('توینکل'); // localized
Window.addFooterLink('راهنمای توینکل', 'en:WP:TW/DOC#shared'); // localiezd
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: 'الگوهای نشانی آیپی اشتراکی' }); // localized
div.append({ type: 'radio', name: 'shared', list: Twinkle.shared.standardList,
event: function(e) {
Twinkle.shared.callback.change_shared(e);
e.stopPropagation();
}
});
var org = form.append({ type: 'field', label: 'سایر جزئیات (اختیاری) را پر کنید و روی دکمهٔ پایین فرم کلیک کنید' }); // localized
org.append({
type: 'input',
name: 'organization',
label: 'مالک/گردانندهٔ نشانی آیپی', // localized
disabled: true,
tooltip: 'میتوانید به صورت اختیاری نام سازمانی را که مالک/گردانندهٔ نشانی آیپی است، وارد کنید. در صورت لزوم میتوانید از ویکیکد استفاده کنید.' // localized
}
);
org.append({
type: 'input',
name: 'host',
label: 'نام میزبان (اختیاری)', // localized
disabled: true,
tooltip: 'نام میزبان (نظیر proxy.example.com) میتواند به صورت اختیاری در اینجا وارد شود و با الگو پیوند خواهد یافت.' // localized
}
);
org.append({
type: 'input',
name: 'contact',
label: 'اطلاعات تماس (فقط در صورت درخواست)', // localized
disabled: true,
tooltip: 'میتوانید به طور اختیاری برخی از اطلاعات تماس را برای آن سازمان وارد کنید. از این پارامتر فقط در صورتی استفاده کنید که سازمان بهطور خاص درخواست کرده است که آن را اضافه کنید. در صورت لزوم میتوانید از ویکیکد استفاده کنید.' // localized
}
);
form.append({ type: 'submit' });
var result = form.render();
Window.setContent(result);
Window.display();
};
Twinkle.shared.standardList = [
{
label: '{{آیپی مشترک}}: الگوی استاندارد نشانی آیپی مشترک', // localized
value: 'آیپی مشترک', // localized
tooltip: 'الگوی صفحه بحث کاربر آیپی که اطلاعات مفیدی را برای کاربران آیپی و کسانی که مایل به هشدار به آنها یا بستن یا تحریم آنها هستند نشان میدهد' // localized
},
{
label: '{{آیپی مشترک آموزشی}}: الگوی اصلاحشده نشانی آیپی مشترک برای مؤسسات آموزشی', // localized
value: 'آیپی مشترک آموزشی' // localized
},
{
label: '{{آیپی مشترک شرکتی}}: الگوی اصلاحشده نشانی آیپی مشترک برای مشاغل', // localized
value: 'آیپی مشترک آموزشی' // localized
},
{
label: '{{نشانی آیپی مشترک (عمومی)}}: الگوی اصلاحشده نشانی آیپی مشترک برای پایانههای عمومی', // localized
value: 'آیپی مشترک (عمومی)' // localized
},
{
label: '{{آیپی مشترک دولتی}}: الگوی اصلاحشده نشانی آیپی مشترک برای آژانسهای دولتی یا دفترهای خدماتی', // localized
value: 'آیپی مشترک دولتی' // localized
},
{
label: '{{آیپی پویا}}: الگوی اصلاحشده نشانی آیپی مشترک برای سازمانهایی با آدرسدهی پویا', // localized
value: 'آیپی پویا' // localized
},
{
label: '{{آیپی ایستا}}: الگوی اصلاحشده نشانی آیپی مشترک برای آدرسهای آیپی ثابت', // localized
value: 'آیپی ایستا' // localized
},
{
label: '{{آیاسپی}}: الگوی اصلاحشده نشانی آیپی مشترک برای سازمانهای ISP (به طور خاص پراکسی)', // localized
value: 'آیاسپی' // localized
},
{
label: '{{آیپی تلفن همراه}}:الگوی اصلاحشده نشانی آیپی مشترک برای شرکتهای تلفن همراه و مشتریان آنها', // localized
value: 'آیپی تلفن همراه' // localized
},
{
label: '{{Whois}}: الگوی آدرسهای آیپی که نیاز به نظارت دارند، اما معلوم نیست که ایستا، پویا یا مشترک هستند', // localized
value: 'Whois'
}
];
Twinkle.shared.callback.change_shared = function friendlysharedCallbackChangeShared(e) {
e.target.form.contact.disabled = e.target.value !== 'آیپی مشترک آموزشی'; // only supported by {{Shared IP edu}} // localized
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;
var text = '{{';
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('Info', 'الگوی {{' + Twinkle.shared.standardList[i].value + '}} روی صفحهٔ بحث پیدا شد؛ نصب الگو متوقف شد.'); // localized
found = true;
}
}
if (found) {
return;
}
Morebits.status.info('Info', 'الگوی نشانی آیپی مشترک را در بالای صفحه بحث کاربر اضافه میکند.'); // localized
text += params.value + '|' + params.organization;
if (params.value === 'Shared IP edu' && params.contact !== '') {
text += '|' + params.contact;
}
if (params.value !== 'Whois' && params.host !== '') {
text += '|host=' + params.host;
}
text += '}}\n\n';
var summaryText = 'Added {{[[Template:' + params.value + '|' + params.value + ']]}} template.';
pageobj.setPageText(text + pageText);
pageobj.setEditSummary(summaryText + Twinkle.getPref('summaryAd'));
pageobj.setMinorEdit(Twinkle.getPref('markSharedIPAsMinor'));
pageobj.setCreateOption('recreate');
pageobj.save();
}
};
Twinkle.shared.callback.evaluate = function friendlysharedCallbackEvaluate(e) {
var shared = e.target.getChecked('shared');
if (!shared || shared.length <= 0) {
alert('برای استفاده باید یک الگوی نشانی آیپی مشترک انتخاب کنید!'); // localized
return;
}
var value = shared[0];
if (e.target.organization.value === '') {
alert('برای الگوی {{' + value + '}} باید نام سازمان را وارد کنید!'); // localized
return;
}
var params = {
value: value,
organization: e.target.organization.value,
host: e.target.host.value,
contact: e.target.contact.value
};
Morebits.simpleWindow.setButtonsEnabled(false);
Morebits.status.init(e.target);
Morebits.wiki.actionCompleted.redirect = mw.config.get('wgPageName');
Morebits.wiki.actionCompleted.notice = 'برچسب زدن کامل شد، بارگیری صفحه بحث ظرف چند ثانیهٔ دیگر'; // localized
var wikipedia_page = new Morebits.wiki.page(mw.config.get('wgPageName'), 'اصلاح صفحهٔ بحث کاربر'); // localized
wikipedia_page.setFollowRedirect(true);
wikipedia_page.setCallbackParameters(params);
wikipedia_page.load(Twinkle.shared.callbacks.main);
};
})(jQuery);
// </nowiki>