User:संतोष दहिवळ/स्वयंचलित जोडणी.js
Jump to navigation
Jump to search
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
//
var desclist = {
'फ्रान्सचे विभाग': {
'af': 'Franse departement',
'als': 'Département z Frànkrich',
'an': 'departemento frances',
'ar': 'إقليم فرنسي',
'ast': 'departamentu de Francia',
'bar': 'Französisches Département',
'bg': 'Департамент на Франция',
'ca': 'departament de França',
'co': 'dipartimentu di a Francia',
'cs': 'francouzský departement',
'cy': 'département Ffrainc',
'da': 'fransk departement',
'de': 'französisches Département',
'en': 'French department',
'eo': 'Franca departemento',
'es': 'departamento francés',
'et': 'Prantsusmaa departemang',
'fr': 'département français',
'frp': 'dèpartement francês',
'fy': 'Frânsk departemint',
'gl': 'departamento francés',
'hu': 'megye Franciaországban',
'id': 'sebuah departemen Perancis',
'io': 'departmento di Francia',
'is': 'sýsla í Frakklandi',
'it': 'dipartimento francese',
'ja': 'フランスの県',
'jv': 'Departemen ing Prancis',
'kg': 'kizunga ya Fwalansa',
'ko': '프랑스의 주',
'la': 'praefectura Franciae',
'lad': 'departamento franses',
'lb': 'franséischt Departement',
'lmo': 'dipartiment fransés',
'lt': 'Prancūzijos departamentas',
'lv': 'Francijas departaments',
'mr': 'फ्रान्सचा विभाग',
'ms': 'jabatan di Perancis',
'nds': 'Bezirke vun Frankriek',
'nl': 'Frans departement',
'nn': 'franske departement',
'no': 'fransk departement',
'oc': 'departament francés',
'pam': 'Departamentu ning France',
'pl': 'francuski departament',
'pt': 'departamento da França',
'ro': 'departament Franței',
'ru': 'департамент Франции',
'sco': 'French depairtment',
'se': 'Frankriikka departemeantta',
'simple': 'French department',
'sl': 'departement vo Francúzsku',
'sv': 'franskt departement',
'sw': 'département ya Ufaransa',
'th': 'จังหวัดในประเทศฝรั่งเศส',
'vec': 'dipartimento fransexe',
'vi': 'tỉnh của Pháp',
'vls': 'Frans departement',
'vo': 'Ziläk in Fransän',
'zea': 'Frans departement',
'zh': '法国省份',
'zh-hans': '法国省份',
'zh-hant': '法國省份',
'zh-min-nan': 'Hoat-kok ê chi̍t khóan',
}
};
/////////////////////////LISTES/////////////////////////
( function ( mw, $ ) {
/*
** Return item Number.
*/
var itemId = mw.config.get( 'wbEntityId' );
if ( !itemId ) {
return;
}
importScript( 'User:' + mw.config.get( 'wgUserName' ) + '/autoEditLists.js' );
/*
** Localized message.
*/
var transData = {
'hi': {
'box-title': 'स्वयंचलित जोडणी',
'box-cancel': 'बंद',
'box-send': 'अद्ययावत',
'sended': 'पाठवा',
'labels': 'लेबल',
'descriptions': 'वर्णन',
'parameters': 'घटक',
'list': 'यादी',
'prefix': 'उपसर्ग तसेच ठेवा ',
'none': 'काही नाही',
'warning-autocheck': 'Update automatically labels',
'warning-message': '<ul><li>Labels checkbox : Update automatically the label of all language thanks to the interwiki site links.</li><li>Descriptions checkbox : Update automatically the description thanks to a list that you can custom (<a href="//www.wikidata.org/w/index.php?title=User:'+wgUserName+'/autoEditLists.js&action=edit&editintro=User talk:Jitrixis/autoEdit.js/editintro">link</a>).</li></ul>',
// DO NOT TRANSLATE. ///// If your reading direction is left to right, /////
// if not translate by ('floatRight': 'left','floatLeft': 'right') /////////
'floatRight': 'right',
'floatLeft': 'left'
// DO NOT TRANSLATE. ///////////////////////////////////////////////////////
},
'mr': {
'box-title': 'स्वयंचलित जोडणी',
'box-cancel': 'बंद',
'box-send': 'अद्ययावत',
'sended': 'पाठवा',
'labels': 'लेबल',
'descriptions': 'वर्णन',
'parameters': 'घटक',
'list': 'यादी',
'prefix': 'उपसर्ग तसेच ठेवा ',
'none': 'काही नाही',
'warning-autocheck': 'Update automatically labels',
'warning-message': '<ul><li>Labels checkbox : Update automatically the label of all language thanks to the interwiki site links.</li><li>Descriptions checkbox : Update automatically the description thanks to a list that you can custom (<a href="//www.wikidata.org/w/index.php?title=User:'+wgUserName+'/autoEditLists.js&action=edit&editintro=User talk:Jitrixis/autoEdit.js/editintro">link</a>).</li></ul>',
// DO NOT TRANSLATE. ///// If your reading direction is left to right, /////
// if not translate by ('floatRight': 'left','floatLeft': 'right') /////////
'floatRight': 'right',
'floatLeft': 'left'
// DO NOT TRANSLATE. ///////////////////////////////////////////////////////
}
};
/*
** Check if main language can be translated.
*/
var lang = mw.config.get( 'wgUserLanguage' );
if ( ! transData.hasOwnProperty( lang ) ) {
lang = 'en';
}
/*
** Return localized message.
*/
function translate( key ) {
if ( transData[ lang ].hasOwnProperty( key ) ) {
return transData[ lang ][ key ];
} else {
return transData[ 'en' ][ key ];
}
}
/**
* Return the language code from the ID of the Wiki
*/
function getLanguageCodeFromWikiId( wiki ) {
if ( wiki === 'alswiki' ) {
return 'gsw';
} else if ( wiki === 'be_x_oldwiki' ) {
return 'be-tarask';
} else if ( wiki === 'simplewiki' ) {
return 'en';
}
var splited = wiki.match( /^(.*)wiki$/i );
if ( !splited[1] ) {
return '';
} else {
return splited[1].replace( /_/g, '-' );
}
}
/*
** Dialog and link
*/
function labelLister() {
var nb, selectButton = "";
for ( nb in desclist ) {
if ( desclist[nb][mw.user.options.get( 'language' )] ) {
selectButton += '<option value="' + nb + '">' + desclist[nb][mw.user.options.get( 'language' )] + ' (' + nb + ')</option>';
} else if ( desclist[nb]['en'] ) {
selectButton += '<option value="' + nb + '">' + desclist[nb]['en'] + ' (' + nb + ')</option>';
} else {
selectButton += '<option value="' + nb + '">' + nb + '</option>';
}
}
desclist['none'] = {};
mw.loader.using( ['jquery.ui'], function () {
var formFind, messageFind;
formFind = '<div id="autoEdit" title=""><form id="editForm"><div id="autoEdit-main">' + translate( 'warning-message' ) + '<fieldset><legend>' + translate( 'box-send' ) + ' :</legend><input type="checkbox" id="autoEdit-label"/><label for="autoEdit-label">' + translate( 'labels' ) + '</label> <input type="checkbox" id="autoEdit-desc"/><label for="autoEdit-desc">' + translate( 'descriptions' ) + '</label></fieldset><fieldset><legend>' + translate( 'parameters' ) + '</legend><label for="autoEdit-liste">' + translate( 'list' ) + ' :</label><select id="autoEdit-list" style="width:90%"><option value="null" selected="selected">' + translate( 'none' ) + '</option>' + selectButton;
formFind += '</select><br/><br/><hr style="clear:both"/><input type="checkbox" id="autoEdit-prefix"><label for="autoEdit-prefix">' + translate( 'prefix' ) + '</label></fieldset></div><div id="autoEdit-success" style="width:100%"></div></form></div>';
if ( document.getElementById( 'content' ) ) {
messageFind = $( formFind ).appendTo( '#content' );
} else {
messageFind = $( formFind ).appendTo( '#mw_content' );
}
messageFind.dialog( {
title: '<img id="autoEdit-logo" src="//upload.wikimedia.org/wikipedia/commons/2/28/Symbol_arrow_up.svg" style="color:black;width:20px">' + translate( 'box-title' ),
autoOpen: false,
modal: true,
width: 500,
//height: 355,
show: 'blind',
hide: 'blind',
buttons: [ {
text: '[X] ' + translate( 'labels' ),
id: 'autoCheckLabels',
title: translate( 'warning-autocheck' ),
click: function () {
document.getElementById( 'autoEdit-label' ).checked = true;
document.getElementById( 'autoEdit-main' ).style.display = 'none';
var loader = '<img style="margin-left:45%" id="autoEdit-loader" src="//upload.wikimedia.org/wikipedia/commons/d/de/Ajax-loader.gif"/><br/>';
$( '#autoEdit-success' ).append( loader );
labelListing();
}
},{
text: translate( 'box-cancel' ),
click: function () {
$( this ).dialog( 'close' );
}
},{
text: translate( 'box-send' ),
click: function () {
document.getElementById( 'autoEdit-main' ).style.display = 'none';
var loader = '<img style="margin-left:45%" id="autoEdit-loader" src="//upload.wikimedia.org/wikipedia/commons/d/de/Ajax-loader.gif"/><br/>';
$( '#autoEdit-success' ).append( loader );
labelListing();
}
} ]
} );
//ADD PlUG-IN TO LABELLISTER
var plugin = '<a style="text-align:center;font-size:0.7em" href="#" class="PGautoedit" alt="' + translate( 'box-title' ) + '"><span style="font-color:green">' + translate( 'box-title' ) + '</span></a>';
$( '#labelLister-plugin' ).append( plugin );
$( '.PGautoedit' ).click( function () {
$( '#autoEdit-success' ).empty();
document.getElementById( 'autoEdit-main' ).style.display = 'inline';
$( '.ui-dialog-buttonset' ).css( 'width', '100%' );
$( '.ui-button' ).css( 'float', translate( 'floatRight' ) );
$( 'div#autoEdit' ).dialog( 'open' );
$( '#autoCheckLabels' ).css( 'float', translate( 'floatLeft' ) );
} );
var portletLink = mw.util.addPortletLink( 'p-tb', '#', translate( 'box-title' ), 't-autoEdit', translate( 'box-title' ) );
$( portletLink ).click( function () {
$( '#autoEdit-success' ).empty();
document.getElementById( 'autoEdit-main' ).style.display = 'inline';
$( '.ui-dialog-buttonset' ).css( 'width', '100%' );
$( '.ui-button' ).css( 'float', translate( 'floatRight' ) );
$( 'div#autoEdit' ).dialog( 'open' );
$( '#autoCheckLabels' ).css( 'float', translate( 'floatLeft' ) );
return false;
} );
} );
}
/*
** List label, description and sitelinks
*/
function labelListing() {
$.ajax( {
url: mw.util.wikiScript( 'api' ),
data: {
'format': 'json',
'action': 'wbgetentities',
'ids': itemId,
'props': 'labels|descriptions|sitelinks'
}
} )
.done( function ( data ) {
var id, sitelink, entity = data.entities[itemId], iwiki = {}, inputSelect = $( '#autoEdit-list' ).val();
for ( id in entity.sitelinks ) {
sitelink = entity.sitelinks[id];
if( !document.getElementById( 'autoEdit-prefix' ).checked ){
sitelink.title = sitelink.title.replace( /^(.*:)*/g, "" );
}
iwiki[getLanguageCodeFromWikiId( id )] = sitelink.title.replace( /\(.*\)/g, "" ); //Delete Disambiguation
if ( id === 'enwiki' ) {
iwiki['en-ca'] = sitelink.title.replace( /\(.*\)/g, "" );
iwiki['en-gb'] = sitelink.title.replace( /\(.*\)/g, "" );
} else if ( id === 'zh_yuewiki' ) {
iwiki['yue'] = sitelink.title.replace( /\(.*\)/g, "" );
} else if ( id === 'ptwiki' ) {
iwiki['pt-br'] = sitelink.title.replace( /\(.*\)/g, "" );
} else if ( id === 'dewiki' ) {
iwiki['de'] = sitelink.title.replace( / \(.*?\)$/, "" );
// iwiki['de-formal'] = sitelink.title.replace( /\(.*\)/g, "" ); Disabled per talk page oldid=29709890
if ( iwiki['de'].indexOf( "ß" ) !== -1 ) {
iwiki['de-ch'] = iwiki['de'].replace( /ß/g, "ss" );
}
} else if ( id === 'fawiki' ) {
iwiki['fa'] = sitelink.title;//In Farsi () are important
} else if ( id === 'nowiki' ) {
iwiki['nb'] = sitelink.title.replace( / \(.*?\)$/, "" );
}
}
for ( id in entity.labels ) {
//if ( iwiki[id] ) {
try {
delete iwiki[id];
} catch ( err ) {
}
//}
}
for ( id in entity.descriptions ) {
//if ( desclist[inputSelect][id] ) {
try {
delete desclist[inputSelect][id];
} catch ( err ) {
}
//}
}
sendItem( iwiki, desclist[inputSelect] );
} )
.fail( function () {
mw.notify( 'API Error', { title: 'autoEdit.js :', tag: 'autoEdit' } );
} );
}
/*
** Send the input value on the edit menu
*/
function setItem( item, summary, summarynotify ) {
$.ajax( {
type: 'POST',
url: mw.util.wikiScript( 'api' ),
data: {
'format': 'json',
'action': 'wbeditentity',
'id': itemId,
'token': mw.user.tokens.get( 'csrfToken' ),
'data': item,
'summary': '[[MediaWiki talk:Gadget-autoEdit.js|autoEdit]] ' + summary,
'exclude': 'pageid|ns|title|lastrevid|touched|sitelinks|aliases'
}
} )
.done( function ( data ) {
if ( data.success === 1 ) {
mw.notify( translate( 'sended' ) + summarynotify, { title: 'autoEdit.js :', tag: 'autoEdit' } );
$( '#autoEdit' ).dialog( 'close' );
} else {
$( '#autoEdit-success' ).empty();
mw.notify( 'Error : ' + $.toJSON( data ), { title: 'autoEdit.js :', tag: 'autoEdit' } );
$( '#autoEdit-success' ).append( 'Error : ' );
$( '#autoEdit-success' ).append( $.toJSON( data ) );
}
} )
.fail( function ( data ) {
$( '#autoEdit' ).append( $.toJSON( data.success ) );
} );
}
/*
** Control how to send an item
*/
function sendItem( lbl, desc ) {
var nb;
var inputLabel = document.getElementById( 'autoEdit-label' ).checked;
var inputDesc = document.getElementById( 'autoEdit-desc' ).checked;
var inputSelect = $( '#autoEdit-list' ).val();
var sommaire = "Update ";
var summarynotify = " → ";
//CREATE LABEL SAVE
var jsonLabel = [];
if ( inputLabel ) {
for ( nb in lbl ) {
if ( lbl.hasOwnProperty( nb ) ) {
jsonLabel.push( {
language: nb,
value: lbl[nb]
} );
}
}
sommaire += "Labels ";
summarynotify += translate( 'labels' ) + " ";
}
//CREATE DESCRIPTION SAVE
var jsonDesc = [];
if ( inputDesc ) {
for ( nb in desc ) {
if ( desc.hasOwnProperty( nb ) ) {
jsonDesc.push( {
language: nb,
value: desc[nb]
} );
}
}
sommaire += "Descriptions (" + inputSelect + ")";
summarynotify += translate( 'descriptions' ) + " (" + inputSelect + ")";
}
setItem( $.toJSON( { 'labels': jsonLabel, 'descriptions': jsonDesc } ), sommaire, summarynotify );
}
$( document ).ready( labelLister );
} ( mediaWiki, jQuery ) );