User:Addshore/QuickRef.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.
//THIS SCRIPT REQUIRES A CHROME EXTENSION TO WORK!
( function ( mw, $ ) {
'use strict';
document.addEventListener("drop", function(event) {
if( event.target.parentNode.className == "wikibase-snakview-property" ){
var claimPatt = /[Qq][0-9]+\$[\-A-Fa-f0-9]+/;
var targetClaim = claimPatt.exec( event.target.closest( '.wikibase-statementview' ).className );
var eventDate = new Date();
var snaks = {
'P1683' : [{
'snaktype': 'value',
'property': 'P1683',
'datavalue': {
'value': {
'text': event.dataTransfer.getData("Text"),
'language': 'en'
},
'type': 'monolingualtext'
}
}],
'P854' : [{
'snaktype': 'value',
'property': 'P854',
'datavalue': {
'value': event.dataTransfer.getData("wikidataExt-URI"),
'type': 'string'
}
}],
'P813' : [{
'snaktype': 'value',
'property': 'P813',
'datavalue': {
'type': 'time',
'value': {
'time': '+0000000' + eventDate.getFullYear().toString() + '-' + ('0' + (eventDate.getMonth()+1).toString()).slice(-2) + '-' + ('0' + eventDate.getDate().toString()).slice(-2) + 'T00:00:00Z',
'timezone': 0,
'before': 0,
'after': 0,
'precision': 11,
'calendarmodel': 'http://www.wikidata.org/entity/Q1985727'
},
}
}]
};
new mw.Api()
.postWithToken( 'edit', {
'action': 'wbsetreference',
'statement': targetClaim[0],
'snaks': JSON.stringify( snaks ),
'baserevid': mw.config.get( 'wgRevisionId' )
} )
.done( function ( /* data */ ) {
console.log( "Saved successfully" );
location.reload();
} )
.fail( function ( code, result ){
if ( code === "http" ) {
console.log( "HTTP error: " + result.textStatus ); // result.xhr contains the jqXHR object
} else if ( code === "ok-but-empty" ) {
console.log( "Got an empty response from the server" );
} else {
console.log( "API error: " + code );
console.log( result );
}
} );
}
});
}( mediaWiki, jQuery ) );