Difference between revisions of "MediaWiki:Perseids-toolbar.js"

From EAGLE MediaWiki
Jump to navigation Jump to search
Line 1: Line 1:
 
function generateButton(type, itemId, claimId, lang) {
 
function generateButton(type, itemId, claimId, lang) {
 
 
if(type == 'edit') {
 
if(type == 'edit') {
 
var editUrl = 'http://sosol.perseids.org/sosol/cts_publications/create_from_agent?agent='
 
var editUrl = 'http://sosol.perseids.org/sosol/cts_publications/create_from_agent?agent='
Line 43: Line 42:
   
 
function makeAddButton() {
 
function makeAddButton() {
  +
var propToLang = {
  +
'p11': 'en',
  +
'p13': 'it',
  +
'p16': 'el',
  +
'p19': 'hu',
  +
'p14': 'es',
  +
'p17': 'ru',
  +
'p20': 'ro',
  +
'p57': 'hr',
  +
'p12': 'de',
  +
'p15': 'fr',
  +
'p18': 'si',
  +
'p61': 'se',
  +
};
 
var itemId = wb.entity.getId();
 
var itemId = wb.entity.getId();
$(this).after(generateButton('add', itemId, null, 'EN'));
 
  +
var langClass = $(this).parents('wb-claim-section').attr('class').split(' ')[1];
  +
var langProp = langClass.replace('wb-claim-section-', '');
  +
$(this).after(generateButton('add', itemId, null, propToLang[langProp]));
 
}
 
}
   
  +
// Edit buttons
 
$( '.wb-claimlist .wb-statement-claim .wikibase-toolbareditgroup-innoneditmode .wikibase-toolbar .wikibase-toolbarbutton:first-child' )
 
$( '.wb-claimlist .wb-statement-claim .wikibase-toolbareditgroup-innoneditmode .wikibase-toolbar .wikibase-toolbarbutton:first-child' )
 
.each(makeEditButton);
 
.each(makeEditButton);
   
  +
// Add buttons
 
$( '.wb-claimlist .wb-claim-section > .wb-addtoolbar .wb-editsection a.wikibase-toolbarbutton:first-child')
 
$( '.wb-claimlist .wb-claim-section > .wb-addtoolbar .wb-editsection a.wikibase-toolbarbutton:first-child')
 
.each(makeAddButton);
 
.each(makeAddButton);
   
  +
// Save buttons
 
$( '.wb-claimlist .wb-statement-claim .wikibase-toolbareditgroup-ineditmode .wikibase-toolbar .wikibase-toolbarbutton:first-child')
 
$( '.wb-claimlist .wb-statement-claim .wikibase-toolbareditgroup-ineditmode .wikibase-toolbar .wikibase-toolbarbutton:first-child')
 
.after(generateButton('save'));
 
.after(generateButton('save'));
   
/* Quando clicco sul pulsante "edit"... */
+
// Quando clicco sul pulsante "edit"...
 
$( '.wb-claimlist .wb-statement-claim .wikibase-toolbareditgroup .wikibase-toolbarbutton:first-child:not(.wikibase-toolbarbutton-disabled)' ).click(function () {
 
$( '.wb-claimlist .wb-statement-claim .wikibase-toolbareditgroup .wikibase-toolbarbutton:first-child:not(.wikibase-toolbarbutton-disabled)' ).click(function () {
/* Genero il pulsante "save to Perseids" */
+
// Genero il pulsante "save to Perseids"
 
$( '.wb-claimlist .wb-statement-claim .wikibase-toolbareditgroup-ineditmode .wikibase-toolbar:not(:has(.perseids-save)) .wikibase-toolbarbutton:first-child')
 
$( '.wb-claimlist .wb-statement-claim .wikibase-toolbareditgroup-ineditmode .wikibase-toolbar:not(:has(.perseids-save)) .wikibase-toolbarbutton:first-child')
 
.after(generateButton('save'));
 
.after(generateButton('save'));
 
 
/* Click su "annulla": rigenero il pulsante "edit" */
+
// Click su "annulla": rigenero il pulsante "edit"
 
$( '.wb-claimlist .wb-statement-claim .wikibase-toolbareditgroup-ineditmode .wikibase-toolbar .wikibase-toolbarbutton:last-child').click(function(){
 
$( '.wb-claimlist .wb-statement-claim .wikibase-toolbareditgroup-ineditmode .wikibase-toolbar .wikibase-toolbarbutton:last-child').click(function(){
 
$( '.wb-claimlist .wb-statement-claim .wikibase-toolbareditgroup-innoneditmode .wikibase-toolbar:not(:has(.perseids-edit)) .wikibase-toolbarbutton:first-child' )
 
$( '.wb-claimlist .wb-statement-claim .wikibase-toolbareditgroup-innoneditmode .wikibase-toolbar:not(:has(.perseids-edit)) .wikibase-toolbarbutton:first-child' )

Revision as of 17:39, 15 September 2014

function generateButton(type, itemId, claimId, lang) {
	if(type == 'edit') {
		var editUrl = 'http://sosol.perseids.org/sosol/cts_publications/create_from_agent?agent='
			+ 'http://www.eagle-network.eu&id=' + itemId + '&filter=' + claimId;
		
		return $( '<a>' )
			.attr( {
				'class': 'wikibase-toolbarbutton perseids-edit',
				'href': editUrl,
			} )
			.before( '|' )
			.text( 'edit in Perseids' );
	} else if (type == 'save') {
		return $( '<a>' )
			.attr( {
				'class': 'wikibase-toolbarbutton perseids-save',
				'href': 'javascript:void(0);'
			} )
			.before( '|' )
			.text( 'save to Perseids' );
	} else if (type == 'add') {
		var addUrl = 'http://sosol.perseids.org/sosol/cts_publications/create_from_agent?agent='
			+ 'http://www.eagle-network.eu&id=' + itemId + '&lang=' + lang;
		
		return $( '<a>' )
			.attr( {
				'class': 'wikibase-toolbarbutton perseids-add',
				'href': addUrl,
			} )
			.before( '|' )
			.text( 'add via Perseids' );
	}
}

function makeEditButton() {
	var itemId = wb.entity.getId();
	var claimClass = $(this).parents('.wb-statement-claim').find('.wb-claim').attr('class').split(' ')[1];
	var claimId = claimClass.replace('wb-claim-', '');
	
	$(this).after(generateButton('edit', itemId, claimId, null));
}

function makeAddButton() {
	var propToLang = {
		'p11': 'en',
		'p13': 'it',
		'p16': 'el',
		'p19': 'hu',
		'p14': 'es',
		'p17': 'ru',
		'p20': 'ro',
		'p57': 'hr',
		'p12': 'de',
		'p15': 'fr',
		'p18': 'si',
		'p61': 'se',
	};
	var itemId = wb.entity.getId();
	var langClass = $(this).parents('wb-claim-section').attr('class').split(' ')[1];
	var langProp = langClass.replace('wb-claim-section-', '');
	$(this).after(generateButton('add', itemId, null, propToLang[langProp]));
}

// Edit buttons
$( '.wb-claimlist .wb-statement-claim .wikibase-toolbareditgroup-innoneditmode .wikibase-toolbar .wikibase-toolbarbutton:first-child' )
	.each(makeEditButton);

// Add buttons
$( '.wb-claimlist .wb-claim-section > .wb-addtoolbar .wb-editsection a.wikibase-toolbarbutton:first-child')
	.each(makeAddButton);

// Save buttons
$( '.wb-claimlist .wb-statement-claim .wikibase-toolbareditgroup-ineditmode .wikibase-toolbar .wikibase-toolbarbutton:first-child')
	.after(generateButton('save'));

// Quando clicco sul pulsante "edit"...
$( '.wb-claimlist .wb-statement-claim .wikibase-toolbareditgroup .wikibase-toolbarbutton:first-child:not(.wikibase-toolbarbutton-disabled)' ).click(function () {
	// Genero il pulsante "save to Perseids"
	$( '.wb-claimlist .wb-statement-claim .wikibase-toolbareditgroup-ineditmode .wikibase-toolbar:not(:has(.perseids-save)) .wikibase-toolbarbutton:first-child')
		.after(generateButton('save'));
	
	// Click su "annulla": rigenero il pulsante "edit"
	$( '.wb-claimlist .wb-statement-claim .wikibase-toolbareditgroup-ineditmode .wikibase-toolbar .wikibase-toolbarbutton:last-child').click(function(){
		$( '.wb-claimlist .wb-statement-claim .wikibase-toolbareditgroup-innoneditmode .wikibase-toolbar:not(:has(.perseids-edit)) .wikibase-toolbarbutton:first-child' )
			.each(makeEditButton);
	});
});