Diferencia entre revisiones de «Usuario:Stargazer/common.js»
Ir a la navegación
Ir a la búsqueda
m (All set) Etiqueta: Deshacer |
m (Remove unused toolbar stuff) |
||
Línea 150: | Línea 150: | ||
*/ |
*/ |
||
+ | /* |
||
− | /* Claim button for objectives */ |
||
+ | // Claim button for objectives |
||
+ | // I'm pretty sure I didn't quite get this to work; objective-related stuff isn't really a priority right now, but I'm leaving it here commented out to maybe look at later |
||
mw.hook('wikipage.content').add(function objective_claim_button() { |
mw.hook('wikipage.content').add(function objective_claim_button() { |
||
Línea 194: | Línea 196: | ||
}) |
}) |
||
} |
} |
||
+ | */ |
||
+ | //Tweaks to editing toolbar |
||
− | |||
− | //Playing around with editing toolbar |
||
var customizeToolbar = function() { |
var customizeToolbar = function() { |
||
/* Your code goes here */ |
/* Your code goes here */ |
||
− | // Add category button |
||
− | $('#wpTextbox1').wikiEditor('addToToolbar', { |
||
− | section: 'advanced', |
||
− | group: 'insert', |
||
− | tools: { |
||
− | "category": { |
||
− | label: 'Category', |
||
− | type: 'button', |
||
− | icon: '//upload.wikimedia.org/wikipedia/commons/2/2d/Button_clipboard_category.png', |
||
− | action: { |
||
− | type: 'encapsulate', |
||
− | options: { |
||
− | pre: "[[Category: ", |
||
− | post: "]]" |
||
− | } |
||
− | } |
||
− | } |
||
− | } |
||
− | }); |
||
//Remove references button |
//Remove references button |
||
Línea 225: | Línea 208: | ||
'tool': 'reference' |
'tool': 'reference' |
||
}); |
}); |
||
− | |||
− | //Add new references dropdown |
||
− | $( '#wpTextbox1' ).wikiEditor( 'addToToolbar', { |
||
− | section: 'advanced', |
||
− | groups: { |
||
− | list: { |
||
− | tools: { |
||
− | references: { |
||
− | label: 'References', |
||
− | type: 'select', |
||
− | list: { |
||
− | 'book-button': { |
||
− | label: '{' + '{book ref}}', |
||
− | action: { |
||
− | type: 'encapsulate', |
||
− | options: { |
||
− | pre: '{' + '{book ref|', |
||
− | post: '}}' |
||
− | } |
||
− | } |
||
− | }, |
||
− | 'wob-button': { |
||
− | label: '{' + '{wob ref}}', |
||
− | action: { |
||
− | type: 'encapsulate', |
||
− | options: { |
||
− | pre: '{' + '{wob ref|', |
||
− | post: '}}' |
||
− | } |
||
− | } |
||
− | }, |
||
− | 'ref-button': { |
||
− | label: '{' + '{ref}}', |
||
− | action: { |
||
− | type: 'encapsulate', |
||
− | options: { |
||
− | pre: '{' + '{ref|', |
||
− | post: '}}' |
||
− | } |
||
− | } |
||
− | }, |
||
− | 'epigraph-button': { |
||
− | label: '{' + '{epigraph ref}}', |
||
− | action: { |
||
− | type: 'encapsulate', |
||
− | options: { |
||
− | pre: '{' + '{epigraph ref|', |
||
− | post: '}}' |
||
− | } |
||
− | } |
||
− | }, |
||
− | 'au-button': { |
||
− | label: '{' + '{au ref}}', |
||
− | action: { |
||
− | type: 'encapsulate', |
||
− | options: { |
||
− | pre: '{' + '{au ref|', |
||
− | post: '}}' |
||
− | } |
||
− | } |
||
− | }, |
||
− | 'msh-button': { |
||
− | label: '{' + '{msh ref}}', |
||
− | action: { |
||
− | type: 'encapsulate', |
||
− | options: { |
||
− | pre: '{' + '{msh ref|', |
||
− | post: '}}' |
||
− | } |
||
− | } |
||
− | }, |
||
− | 'file-button': { |
||
− | label: '{' + '{file ref}}', |
||
− | action: { |
||
− | type: 'encapsulate', |
||
− | options: { |
||
− | pre: '{' + '{file ref|', |
||
− | post: '}}' |
||
− | } |
||
− | } |
||
− | }, |
||
− | 'url-button': { |
||
− | label: '{' + '{url ref}}', |
||
− | action: { |
||
− | type: 'encapsulate', |
||
− | options: { |
||
− | pre: '{' + '{url ref|', |
||
− | post: '}}' |
||
− | } |
||
− | } |
||
− | } |
||
− | } |
||
− | } |
||
− | } |
||
− | } |
||
− | } |
||
− | } ); |
||
− | }; |
||
/* |
/* |
Revisión del 01:42 5 mar 2021
// Copy of the "tag status change" gadget that is case insensitive (i.e. works for {{t|Stub}}, {{t|Partial}}, and {{t|Complete}}) and excludes non-articles mw.hook('wikipage.diff').add(function tag_status_change() { // 2021-02-22 exclude pages outside ns 0 if (mw.config.get('wgNamespaceNumber') != 0) return // 2018-11-06 add status-change tags to pages with diffs that change the status const diff = document.querySelector('.diff') if (!diff) return; diff.querySelectorAll('.diff-addedline').forEach(function find_status_change(el) { if (!/\{\{([sS]tub|[pP]artial|[cC]omplete)\}\}/.test(el.innerText)) return const row = el.parentElement const rem = row.querySelector('.diff-deletedline') const add = row.querySelector('.diff-addedline') const msg = rem.innerText.trim() +' => '+ add.innerText.trim() // guard against tagging latest revision in multi-change diffs if (diff.querySelector('.diff-multi')) { // TODO: determine which of the revisions to tag? console.warn('gadget:', 'tag-status-change', 'ignored on combination diff') mw.notify('theses revisions contain a potential status-change ('+ msg +') which has been ignored') return; } console.warn('gadget:', 'tag-status-change') // send the notification ;(new mw.Api).postWithToken('csrf', { action: 'tag', revid: mw.config.get('wgRevisionId'), add: 'status-change', reason: msg, }).then(function notify_success() { mw.notify('revision tagged with '+ msg) }) }) }) // Copy of the "mark as reviewed" button gadget that is case insensitive (i.e. works for {{t|Complete}}) mw.hook('wikipage.content').add(function tag_complete_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('.quality-complete') if (!notice) return; // don't show button on edit const editor = document.querySelector('.mw-editform') if (editor) return; // TODO: instead add a button that saves and marks as complete const button = document.createElement('button') button.textContent = 'Mark as Reviewed' button.onclick = mark_article_as_complete // find the message to replace with a button const place_for_button = notice.querySelector('.unsigned') if (!place_for_button) return place_for_button.replaceWith(button) console.warn('gadget:', 'tag-complete-button') }) function mark_article_as_complete(ev) { const api = new mw.Api const page_name = mw.config.get('wgPageName') console.warn('gadget:', 'tag-complete-button', 'button pressed') // try to edit the article return api.edit(page_name, function try_signing_article(revision) { return { // find {{t|complete}} and replace with {{t|complete|~x4}} text: revision.content.replace( /\{\{[cC]omplete}}/, '{'+'{complete|~~'+'~~}}' ), summary: 'mark as complete', } }).catch(console.warn).then(function try_tagging_revision(revision) { console.debug('gadget:', 'tag-complete-button', 'revision:', revision) if (revision.nochange === true) return console.warn('gadget:', 'tag-complete-button', 'tagging') // tag the revision return api.postWithToken('csrf', { action: 'tag', revid: revision.newrevid, add: 'completed', reason: 'from tag-complete-button gadget', }).catch(console.warn).then(function show_result_of_complet_button_press() { // show the user that it worked mw.notify('Article marked as complete?') console.warn('gadget:', 'tag-complete-button', 'tagged') // TODO: replace button with signature/reload button section }) }) } /* // Add edit notice when editing pages in certain categories // Problems: When editing an old version of the page, this needs to drop the ? function addEditIntro( name ) { $( '#ca-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' ); } } ); } // Add edit notice when editing sections of pages in certain categories // Problems: When clicking the [edit] link on templates, this gets appended to the URL, making the page name invalid function addEditSectionIntro( name ) { $( '.mw-editsection' ).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 ) { addEditSectionIntro( 'MediaWiki:Top-notice-ns-0' ); } } ); } */ /* // Claim button for objectives // I'm pretty sure I didn't quite get this to work; objective-related stuff isn't really a priority right now, but I'm leaving it here commented out to maybe look at later 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 api = new mw.Api 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 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 } }) } */ //Tweaks to editing toolbar var customizeToolbar = function() { /* Your code goes here */ //Remove references button $( '#wpTextbox1' ).wikiEditor( 'removeFromToolbar', { 'section': 'main', 'group': 'insert', 'tool': 'reference' }); /* * Check if view is in edit mode and that the required modules are available. Then, customize the toolbar... * Don't touch below this line! */ if (['edit', 'submit'].indexOf(mw.config.get('wgAction')) !== -1) { mw.loader.using('user.options').then(function() { // This can be the string "0" if the user disabled the preference ([[phab:T54542#555387]]) if (mw.user.options.get('usebetatoolbar') == 1) { $.when( mw.loader.using('ext.wikiEditor'), $.ready ).then(customizeToolbar); } }); }