Diferencia entre revisiones de «Usuario:Stargazer/common.js»
Ir a la navegación
Ir a la búsqueda
m (Function's probably necessary, but let's try this) |
m (Hmm) |
||
Línea 20: | Línea 20: | ||
mw.hook('wikipage.content').add(function objective_claim_button() { |
mw.hook('wikipage.content').add(function objective_claim_button() { |
||
− | // only show button on latest revision of page |
+ | // only show button on latest revision of page |
− | if (mw.config.get('wgCurRevisionId') != mw.config.get('wgRevisionId')) return; |
+ | if (mw.config.get('wgCurRevisionId') != mw.config.get('wgRevisionId')) return; |
− | // find the {{t| |
+ | // find the {{t|objective}} template |
− | const notice = document.querySelector('.objective') |
+ | const notice = document.querySelector('.objective') |
− | if (!notice) return; |
+ | if (!notice) return; |
− | // don't show button on edit |
+ | // don't show button on edit |
− | const editor = document.querySelector('.mw-editform') |
+ | const editor = document.querySelector('.mw-editform') |
− | if (editor) return; |
+ | if (editor) return; |
− | const button = document.createElement('button') |
+ | const button = document.createElement('button') |
− | button.textContent = 'Claim Objective' |
+ | button.textContent = 'Claim Objective' |
− | button.onclick = mark_objective_as_claimed |
+ | button.onclick = mark_objective_as_claimed |
− | // find the message to replace with a button |
+ | // find the message to replace with a button |
− | const place_for_button = notice.querySelector('.unclaimed') |
+ | const place_for_button = notice.querySelector('.unclaimed') |
− | if (!place_for_button) return |
+ | if (!place_for_button) return; |
− | place_for_button.replaceWith(button) |
+ | place_for_button.replaceWith(button) |
− | console.warn('gadget:', 'objective-claim-button') |
+ | console.warn('gadget:', 'objective-claim-button') |
}) |
}) |
||
+ | function mark_objective_as_claimed() { |
||
⚫ | |||
− | const |
+ | const page_name = mw.config.get('wgPageName'); |
⚫ | |||
− | console.warn('gadget:', 'objective-claim-button', 'button pressed'); |
+ | console.warn('gadget:', 'objective-claim-button', 'button pressed'); |
− | // try to edit the article |
+ | // try to edit the article |
⚫ | |||
− | new mw.Api().edit( |
+ | new mw.Api().edit( |
− | + | 'page_name', |
|
− | + | function try_claiming_objective(revision) { |
|
⚫ | |||
+ | return { |
||
− | text: revision.content.replace( '{{objective|date=}}', '{{objective|claim=user|date=}}' ), |
+ | text: revision.content.replace( '{{objective|date=}}', '{{objective|claim=user|date=}}' ), |
− | summary: 'claimed objective', |
+ | summary: 'claimed objective', |
− | minor: true |
+ | minor: true |
− | }; |
+ | }; |
⚫ | |||
+ | } |
||
− | ) |
+ | ) |
⚫ | |||
− | .then( function () { |
||
+ | } |
||
− | console.log( 'Saved!' ); |
||
− | } ); |
Revisión del 23:59 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|objective}} 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') }) function mark_objective_as_claimed() { const page_name = mw.config.get('wgPageName'); const user = mw.config.get( 'wgUserName' ); console.warn('gadget:', 'objective-claim-button', 'button pressed'); // try to edit the article return { 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 }; } ) }; }