Diferencia entre revisiones de «Usuario:Stargazer/common.js»

De La Coppermind
Ir a la navegación Ir a la búsqueda
(Trying a button for claiming articles, mostly copied from MediaWiki:Gadget-tag-complete-button.js)
m (Okay, button renders, but clicking it isn't working)
Línea 44: Línea 44:
   
 
})
 
})
 
const user = mw.config.get( 'wgUserName' );
 
const page_name = mw.config.get('wgPageName');
   
  +
new mw.Api().edit(
var user = mw.config.get( 'wgUserName' );
 
  +
'page_name',
 
function mark_objective_as_claimed(ev) {
+
function try_claiming_objective( revision ) {
 
return {
 
 
text: revision.content.replace( '{{objective|date=}}', '{{objective|claim=user|date=}}' ),
const api = new mw.Api
 
 
summary: 'Claimed objective',
const page_name = mw.config.get('wgPageName')
 
  +
minor: true
 
  +
};
console.warn('gadget:', 'objective-claim-button', 'button pressed')
 
  +
}
 
 
)
// try to edit the article
 
return api.edit(page_name, function try_claiming_objective(revision) {
+
.then( function () {
  +
console.log( 'Saved!' );
 
  +
} );
return {
 
// find {{t|objective|date=}} and replace with {{t|objective|claim=user|date=}}
 
text: revision.content.replace( '{'+'{objective|date=}}', '{'+'{objective|claim=user|date=}}' ),
 
summary: 'claimed objective',
 
}
 
 
})
 
 
}
 

Revisión del 23:24 28 jul 2020

function addEditIntro( name ) {
	$( '.mw-editsection, #ca-edit, #ca-ve-edit' ).find( 'a' ).each( function ( i, el ) {
		el.href = $( this ).attr( 'href' ) + '?&editintro=' + name;
	} );
}

if ( mw.config.get( 'wgNamespaceNumber' ) === 0 ) {
	$( function () {
		var cats = mw.config.get( 'wgCategories' );
		if ( !cats ) {
			return;
		}
		if ( $.inArray( 'Stormlight Archive', cats ) !== -1 || $.inArray( 'General cosmere', cats ) !== -1 ) {
			addEditIntro( 'MediaWiki:Top-notice-ns-0' );
		}
	} );
}

/* Claim button for objectives */
mw.hook('wikipage.content').add(function objective_claim_button() {

// only show button on latest revision of page
if (mw.config.get('wgCurRevisionId') != mw.config.get('wgRevisionId')) return;

// find the {{t|complete}} template
const notice = document.querySelector('.objective')
if (!notice) return;

// don't show button on edit
const editor = document.querySelector('.mw-editform')
if (editor) return;

const button = document.createElement('button')
button.textContent = 'Claim Objective'
button.onclick = mark_objective_as_claimed

// find the message to replace with a button
const place_for_button = notice.querySelector('.unclaimed')
if (!place_for_button) return

place_for_button.replaceWith(button)

console.warn('gadget:', 'objective-claim-button')

})
const user = mw.config.get( 'wgUserName' );
const page_name = mw.config.get('wgPageName');

new mw.Api().edit(
    'page_name',
    function try_claiming_objective( revision ) {
        return {
            text: revision.content.replace( '{{objective|date=}}', '{{objective|claim=user|date=}}' ),
            summary: 'Claimed objective',
            minor: true
        };
    }
)
.then( function () {
    console.log( 'Saved!' );
} );