User:Molarus/globe.js

From Wikidata
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.
$(document).ready(function(){
var feature = (function() {
test = function() {
var d = "<div style='padding:3px; border:thin solid black; position:absolute; right:0px; top:15px;";
    d += "background-color:#ffe1bc'>Change parameter globe in item<br/>" ;
    d += "<tr>";
    d += "item: <input type='text' size='8' id='item' value='Q'>";
    d += " globe: <input type='text' size='8' id='globe' value='Q'>";    
    d += " <input type='button' value='go' id='go'>";
    d += "<textarea id='message' cols='40' rows='2' lang='en'>enter item and globe</textarea>";    
    d += "</tr>";
    d += "</div>" ;
    $('#mw-content-text').append ( d ) ;

$('#go').click(function () {
	console.log ('#go: ' + item.value + ' ' + globe.value);
	$.post ('/w/api.php', { action:'query', meta:'tokens', type:'csrf', titles: item.value, format: 'json' }, 
	function ( data ) {
		console.log(data);
		var mytoken = data.query.tokens.csrftoken ;
		if ( undefined === mytoken ) { console.log ( "Cannot get edit token for " + entity ); return; }
		$.post ('/w/api.php', { action: 'wbgetclaims', entity: item.value, property: 'P625', format: 'json' }, 
		function ( data ) {
			console.log(data);
			var id = data.claims.P625[0].id;
			var lat = data.claims.P625[0].mainsnak.datavalue.value.latitude;
			var long = data.claims.P625[0].mainsnak.datavalue.value.longitude;
			var prec = data.claims.P625[0].mainsnak.datavalue.value.precision;
            var glob = data.claims.P625[0].mainsnak.datavalue.value.globe;
            var alt = data.claims.P625[0].mainsnak.datavalue.value.altitude;
            
		    var x = '{"id":"'+id+'","type":"statement", "mainsnak":{"snaktype":"value","property":"P625","datatype":"globe-coordinate",';
			    x += '"datavalue":{"type":"globecoordinate", "value": {"latitude":'+lat + ',"longitude":'+ long;
                x += ', "altitude":'+ alt + ', "precision":'+ prec+ ', "globe": "http://www.wikidata.org/entity/'+globe.value+'"}}}}';
        
			//console.log (x);
		    $.post ('/w/api.php', { action:'wbsetclaim', claim: x, token: mytoken, format: 'json' }, 
		    function ( data ) {
				console.log(data);
				if (data.error !== undefined ) { 
					console.log("Error-code: "+data.error.code ); 
					$('#message').val('Can´t create claim: '+data.error.code);
				}
				if (data.success === 1) {
                    console.log ( "Creating data" ) ;
                    $('#message').val('Creating data');
  				 } 
    		}, 'json' ) ;
	    }, 'json' ) ;	
   });	
});

   }; // end function test
        return {
            test: test
        };
     })();

     feature.test ();              
});