User:Novem Linguae/Scripts/DraftCleaner.js: Difference between revisions

Content deleted Content added
Undid revision 1140346099 by Novem Linguae (talk) - referenceerror
pull request #152: Update link ___location, notification method, and namespace check (publish.php)
Line 100:
function getArticleName() {
return mw.config.get('wgPageName');
}
 
function showMessage(messageText) {
$('#DraftCleaner').hide();
$('#DraftCleanerNoClick').empty();
$('#DraftCleanerNoClick').prepend(messageText);
$('#DraftCleanerNoClick').show();
}
 
function showClickableButton() {
$('#DraftCleanerNoClick').hide();
$('#DraftCleaner').show();
}
 
Line 128 ⟶ 116:
if ( isDiff ) return;
 
// OnlyDon't run in mainspace,virtual draftspace, and sandboxesnamespaces
if (mw.config.get('wgNamespaceNumber') < 0) return;
 
// @ts-ignore
let menuID = window.draftCleanerPutInToolsMenu ? 'p-tbcactions' : 'p-navigation';
 
let titleWithNamespaceAndUnderscores = getArticleName();
let namespaceNumber = mw.config.get('wgNamespaceNumber');
let sandbox = titleWithNamespaceAndUnderscores.match(/sandbox/i);
//if ( ! [0, 118].includes(namespaceNumber) && ! sandbox ) return;
 
let running = false;
// @ts-ignore
let menuID = window.draftCleanerPutInToolsMenu ? 'p-tb' : 'p-navigation';
 
// Add DraftCleaner to leftthe sidebartoolbar
mw.loader.using(['mediawiki.util'], function () {
// Using two <li>s. One of the two is kept hidden at all times. This avoids having to delete #DraftCleanerLink, which would also delete the event listener.
mw.util.addPortletLink(menuID, '#', 'Run DraftCleaner', 'DraftCleanerLink');
$(`#${menuID} ul`).append(`
$('#DraftCleanerLink').on('click', async function() {
<li id="DraftCleaner">
// prevent running the script while script is already in progress
<a id="DraftCleanerLink">Run DraftCleaner</a>
if (running) return;
</li>
running = true;
<li id="DraftCleanerNoClick" style="display:none">
</li>
`);
 
// notify of script starting
$('#DraftCleanerLink').on('click', async function() {
mw.notify('Parsing page content...');
// prevent running the script while script is already in progress
showMessage('Editing. Please wait.');
// get page wikicode
let titleWithNamespaceAndSpaces = titleWithNamespaceAndUnderscores.replace(/_/g, ' ');
let originalWikicode = await getWikicode(titleWithNamespaceAndUnderscores);
let wikicode = originalWikicode;
 
let dc = new DraftCleaner();
wikicode = dc.cleanDraft(wikicode, namespaceNumber, titleWithNamespaceAndSpaces);
 
// if changes to be made
if ( wikicode != originalWikicode ) {
let summary = 'clean up ([[User:Novem Linguae/Scripts/DraftCleaner.js|DraftCleaner]])';
// editPage(titleWithNamespaceAndUnderscores, wikicode);
// hardRefresh();
await goToShowChangesScreen(titleWithNamespaceAndUnderscores, wikicode, summary);
// else display "no changes needed", then reset
} else {
showMessage mw.notify('No changes needed.!');
}
` });
setTimeout(function (){
showClickableButton();
}, 2000);
}
});