Diferencia entre revisiones de «Usuario:Stargazer/common.js»
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: | ||
}) |
}) |
||
⚫ | |||
⚫ | |||
+ | new mw.Api().edit( |
||
⚫ | |||
+ | 'page_name', |
||
− | |||
− | function |
+ | function try_claiming_objective( revision ) { |
⚫ | |||
− | |||
⚫ | |||
− | const api = new mw.Api |
||
⚫ | |||
⚫ | |||
+ | minor: true |
||
− | |||
+ | }; |
||
− | console.warn('gadget:', 'objective-claim-button', 'button pressed') |
||
+ | } |
||
− | |||
⚫ | |||
− | // try to edit the article |
||
− | + | .then( function () { |
|
+ | console.log( 'Saved!' ); |
||
− | |||
+ | } ); |
||
⚫ | |||
− | // find {{t|objective|date=}} and replace with {{t|objective|claim=user|date=}} |
||
⚫ | |||
⚫ | |||
− | } |
||
− | |||
⚫ | |||
− | |||
− | } |
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!' ); } );