مستخدم:Salam32/friendlyshared.js
يمكن توفير توثيق لسكربت المستخدم هذا في الصفحة : مستخدم:Salam32/friendlyshared. |
ملاحظة: بعد الحفظ، قد يلزمك إفراغ الكاش لرؤية التغييرات ( ).
// <nowiki>
// If FriendlyConfig aint exist.
if( typeof( FriendlyConfig ) == 'undefined' ) {
FriendlyConfig = {};
}
/**
FriendlyConfig.summaryAd ( string )
If ad should be added or not to summary, default [[وب:فرندلي|فرندلي]]
*/
if( typeof( FriendlyConfig.summaryAd ) == 'undefined' ) {
FriendlyConfig.summaryAd = " باستخدام [[وب:فرندلي|فرندلي]]";
}
/**
FriendlyConfig.markSharedIPAsMinor ( boolean )
*/
if( typeof( FriendlyConfig.markSharedIPAsMinor ) == 'undefined' ) {
FriendlyConfig.markSharedIPAsMinor = true;
}
$(friendlyshared);
function friendlyshared() {
if( wgNamespaceNumber == 3 && isIPAddress( wgTitle ) ) {
var username = wgTitle.split( '/' )[0].replace( /\"/, "\\\""); // only first part before any slashes
mw.util.addPortletLink( 'p-cactions', "javascript:friendlyshared.callback(\"" + username + "\")", "آي بي مشترك", "friendly-shared", "إضافة وسم للآي بي المشترك", "");
}
}
friendlyshared.callback = function friendlysharedCallback( uid ) {
var Window = new SimpleWindow( 600, 400 );
Window.setTitle( "اختر قالب لعنوان اللآي بي المشترك" );
var form = new QuickForm( friendlyshared.callback.evaluate );
form.append( { type:'header', label:'قوالب اللآي بي المشترك' } );
form.append( { type: 'radio', name: 'shared', list: friendlyshared.standardList,
event: function( e ) {
friendlyshared.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: 'بعض هذه القوالب تدعم نطاقا اختياريا لمعلومات الاتصال بالمؤسسة. استخدم هذا النطاق فقط عندما تطلب المؤسسة اضافة هذه المعلومات. يمكن اضافة معلومات الاتصال هنا.'
}
);
form.append( { type:'submit', label:'أرسل' } );
var result = form.render();
Window.setContent( result );
Window.display();
}
friendlyshared.standardList = [
{
label: '{{sharedip}}: قالب آي بي مشترك',
value: 'sharedip',
tooltip: 'قالب نقاش الآي بي يوضح معلومات مفيدة لمستخدمي الآي بي و من يريد تحذيرهم أو منعهم من المساهمة' },
{
label: '{{sharedipedu}}: قالب آي بي مشترك للمؤسسات التعليمية',
value: 'sharedipedu' },
{
label: '{{sharedippublic}}: قالب آي بي مشترك للمحطات العامة',
value: 'sharedippublic' },
{
label: '{{sharedipusmilitary}}: قالب آي بي مشترك للجيش الأمريكي',
value: 'sharedipusmilitary' },
{
label: '{{dynamicip}}: قالب آي بي مشترك لمؤسسات ذات عنونة دينامكية',
value: 'dynamicip' },
{
label: '{{isp}}: قالب آي بي مشترك لمزودي خدمة الإنترنت',
value: 'isp' },
{
label: '{{mobileip}}: قالب آي بي مشترك لشركات الهواتف المحمولة و زبائنهم',
value: 'mobileip' }
]
friendlyshared.callback.change_shared = function friendlytagCallbackChangeShared(e) {
if( e.target.value == 'sharedipedu' ) {
e.target.form.contact.disabled = false;
} else {
e.target.form.contact.disabled = true;
}
e.target.form.organization.disabled=false;
e.target.form.host.disabled=false;
}
friendlyshared.callbacks = {
main: function( self ) {
var form = self.responseXML.getElementById( 'editform' );
var found = false;
var text = '{{';
for( var i=0; i < friendlyshared.standardList.length; i++ ) {
tagRe = new RegExp( '(\{\{' + friendlyshared.standardList[i].value + '(\||\}\}))', 'im' );
if( tagRe.exec( form.wpTextbox1.value ) ) {
Status.info( 'ملاحظة', 'تم العثور على {{' + friendlyshared.standardList[i].value + '}} موجودة على صفحة نقاش المستخدم...يتم ايقاف العمل' );
found = true;
text = form.wpTextbox1.value;
}
}
if( !found ) {
Status.info( 'ملاحظة', 'سيتم إضافة قالب الآي بي المشترك في أعلى صفحة نقاش المستخدم.' );
text += self.params.value + '|' + self.params.organization;
if( self.params.value == 'sharedipedu' && self.params.contact != '') {
text += '|' + self.params.contact;
}
if( self.params.host != '' ) {
text += '|host=' + self.params.host;
}
text += '}}\n\n' + form.wpTextbox1.value;
}
var postData = {
'wpMinoredit': FriendlyConfig.markSharedIPAsMinor ? 1 : undefined,
'wpWatchthis': form.wpWatchthis.checked ? 1 : undefined,
'wpStarttime': form.wpStarttime.value,
'wpEdittime': form.wpEdittime.value,
'wpAutoSummary': form.wpAutoSummary.value,
'wpEditToken': form.wpEditToken.value,
'wpSummary': 'إضافة قالب \{\{[[Template:' + self.params.value + '|' + self.params.value + ']]\}\} في صفحة نقاش المستخدم.' + FriendlyConfig.summaryAd,
'wpTextbox1': text
};
self.post( postData );
}
}
friendlyshared.callback.evaluate = function friendlysharedCallbackEvaluate(e) {
var shared = e.target.getChecked( 'shared' );
if( !shared || shared.length <= 0 ) {
alert( 'ينبغي اختيار قالب آي بي مشترك لاستخدامه!' );
return;
}
var value = shared[0];
if( e.target.organization.value == '') {
alert( 'ينبغي إضافة اسم مؤسسة لقالب{{' + value + '}}!' );
return;
}
var params = {
value: value,
organization: e.target.organization.value,
host: e.target.host.value,
contact: e.target.contact.value
};
Status.init( e.target );
var query = {
'title': wgPageName,
'action': 'submit'
};
Wikipedia.actionCompleted.redirect = wgPageName;
Wikipedia.actionCompleted.notice = "تم وسم الآي بي المشترك، يتم إعادة تحميل صفحة النقاش";
var wikipedia_wiki = new Wikipedia.wiki( 'يتم تعديل صفحة النقاش', query, friendlyshared.callbacks.main );
wikipedia_wiki.params = params;
wikipedia_wiki.get();
}
// </nowiki>