User:Kiteretsu/EasyResolve.js
Jump to navigation
Jump to search
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
//<nowiki>
//Maintained by DannyS712
var EasyResolve = {};
window.EasyResolve = EasyResolve;
EasyResolve.config = {
name: '[[User:Aviram7/EasyResolve|EasyResolve]]',
version: '1.4',
debug: false
};
EasyResolve.summary = 'Mark a discussion as resolved (' + EasyResolve.config.name + ' v' + EasyResolve.config.version + ')';
EasyResolve.setup = function () {
$('span.mw-editsection-bracket:first-child').each( function() {
// console.log( this );
try {
var sectionNumber = this.parentElement.childNodes[1].href.match( /action=edit§ion=(\d+)/ )[1];
// console.log( sectionNumber );
this.after( ' | ' );
$(this).after( $( '<span class="EasyResolveClose" section=' + sectionNumber + '>Close this threads</span>') );
} catch ( e ) {
}
} );
$('span.EasyResolveClose').click( function() {
console.log( this );
EasyResolve.close( this );
} );
};
EasyResolve.close = function ( section ) {
console.log( section );
var sectionNumber = section.outerHTML.match( /section="(\d+)"/ )[1];
var pageTitle = mw.config.get( 'wgPageName' );
console.log( sectionNumber );
new mw.Api().get( {
action: 'parse',
page: pageTitle,
prop: 'wikitext',
section: sectionNumber
}).done( function( result ) {
console.log( result );
var wikitext = result.parse.wikitext['*'];
wikitext = wikitext + '\n{{section resolved|1=~~~~}}';
console.log( wikitext );
new mw.Api().postWithEditToken( {
action: 'edit',
title: pageTitle,
section: sectionNumber,
text: wikitext,
summary: EasyResolve.summary,
notminor: true,
nocreate: true
}).done( function( result ) {
console.log( result );
if ( result && result.edit && result.edit.result && result.edit.result === 'Success' ){
location.reload();
}
});
});
};
EasyResolve.extraPages = [
"Test Wiki:Community portal",
'Test Wiki:Request for permissions',
'User talk:',
];
mw.loader.using( 'mediawiki.api', function() {
$(document).ready( function () {
if ( mw.config.get( 'wgAction' ) !== 'view' ) {
return;
}
// General criteria: you can add a section and its a talk page or in
// the project namespace
if ( $('#ca-addsection').length > 0 &&
( mw.config.get('wgNamespaceNumber') % 2 === 1 ||
mw.config.get('wgNamespaceNumber') === 4 )
) {
EasyResolve.setup();
return;
}
// Custom criteria: specified in EasyResolve.extraPages or user has
// an override
const pageName = mw.config.get( 'wgPageName' );
if ( EasyResolve.extraPages.includes( pageName )
|| ( window.EasyResolveCustomPages &&
window.EasyResolveCustomPages.includes( pageName ) )
) {
EasyResolve.setup();
}
});
} );
//</nowiki>