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

Content deleted Content added
pull request #152: Update link ___location, notification method, and namespace check (publish.php)
pull request #152: Update link ___location, notification method, and namespace check (publish.php)
Tag: Reverted
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
let namespaceNumber =if (mw.config.get('wgNamespaceNumber') < 0) return;
let titleWithNamespaceAndUnderscores = getArticleName();
let namespaceNumber = mw.config.get('wgNamespaceNumber');
let sandbox = titleWithNamespaceAndUnderscores.match(/sandbox/i);
//if ( ! [0, 118].includes(namespaceNumber) && ! sandbox ) return;
 
// @ts-ignore
let menuID = window.draftCleanerPutInToolsMenu ? 'p-tb' : 'p-navigation';
 
let running = false;
// Add DraftCleaner to left sidebar
 
// 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.
// Add DraftCleaner to leftthe sidebartoolbar
$(`#${menuID} ul`).append(`
mw.loader.using(['mediawiki.util'], function () {
<li id="DraftCleaner">
mw.util.addPortletLink('p-cactions', '#', 'Run DraftCleaner', 'DraftCleanerLink');
<a id="DraftCleanerLink">Run DraftCleaner</a>
$('#DraftCleanerLink').on('click', async function() {
</li>
// prevent running the script while script is already in progress
if (running) return;
running = true;
 
// notify of script starting
mw.notify('Parsing page content...');
// get page wikicode
<li id="DraftCleanerNoClick" style="display:none">
let sandboxtitleWithNamespaceAndSpaces = titleWithNamespaceAndUnderscores.matchreplace(/sandbox_/ig, ' ');
let originalWikicode = await getWikicode(titleWithNamespaceAndUnderscores);
</li>
let wikicode = originalWikicode;
`);
 
$('# let dc = new DraftCleaner').hide();
$('#DraftCleanerLink').on('click', async function() {
wikicode = dc.cleanDraft(wikicode, namespaceNumber, titleWithNamespaceAndSpaces);
// 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;
 
// if changes to be made
let dc = new DraftCleaner();
if ( wikicode != originalWikicode ) {
wikicode = dc.cleanDraft(wikicode, namespaceNumber, titleWithNamespaceAndSpaces);
let summary = 'clean up ([[User:Novem Linguae/Scripts/DraftCleaner.js|DraftCleaner]])';
let // editPage(titleWithNamespaceAndUnderscores, = getArticleName(wikicode);
// hardRefresh();
await goToShowChangesScreen(titleWithNamespaceAndUnderscores, wikicode, summary);
// else display "no changes needed", then reset
} else {
showMessage mw.notify('No changes needed.!');
 
setTimeout(function (){
// if changes to be made
function showClickableButton() {;
if ( wikicode != originalWikicode ) {
}, 2000);
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('No changes needed.');
setTimeout(function (){
showClickableButton();
}, 2000);
}
});