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

Content deleted Content added
comment
mw.loader.using( ['mediawiki.api'] ), and refactor
Line 6:
*/
 
// TODO: display whether the page is indexed or not. can do this by using JS to look for "noindex", or can do this by checking the first revision date.
$(async function() {
// TODO: display in all namespaces
async function isReviewed(pageID) {
// TODO: do I need to use different code to check if marked as patrolled? I think that uses recentchanges table... maybe?
 
class ReviewStatus {
async execute() {
if ( ! this.shouldRunOnThisPage(title) ) {
return;
}
 
let pageID = mw.config.get('wgArticleId');
let boolIsReviewed = await this.isReviewed(pageID);
let htmlToInsert = '';
 
if ( boolIsReviewed ) {
htmlToInsert = ` <img src="https://en.wikipedia.org/w/extensions/PageTriage/modules/ext.pageTriage.views.list/images/icon_reviewed.png" title="Reviewed" />`;
} else {
htmlToInsert = ` <img src="https://en.wikipedia.org/w/extensions/PageTriage/modules/ext.pageTriage.views.list/images/icon_not_reviewed.png" title="Not reviewed" />`;
}
 
if ( this.pageHasSections() ) {
$(`#firstHeading .mw-editsection`).before(htmlToInsert);
} else {
$(`#firstHeading`).append(htmlToInsert);
}
}
 
async function isReviewed(pageID) {
let api = new mw.Api();
let response = await api.get( {
Line 27 ⟶ 53:
}
 
function shouldRunOnThisPage(title) {
// don't run when not viewing articles
let action = mw.config.get('wgAction');
Line 55 ⟶ 81:
}
 
function pageHasSections() {
return $(`#firstHeading .mw-editsection`).length;
}
}
 
$(async function() {
let title = mw.config.get('wgPageName'); // includes namespace, underscores instead of spaces
await mw.loader.using(['mediawiki.api'], async () => {
if ( ! shouldRunOnThisPage(title) ) {
let rs = new ReviewStatus();
return;
await rs.execute();
}
});
 
let pageID = mw.config.get('wgArticleId');
let boolIsReviewed = await isReviewed(pageID);
let htmlToInsert = '';
 
if ( boolIsReviewed ) {
htmlToInsert = ` <img src="https://en.wikipedia.org/w/extensions/PageTriage/modules/ext.pageTriage.views.list/images/icon_reviewed.png" title="Reviewed" />`;
} else {
htmlToInsert = ` <img src="https://en.wikipedia.org/w/extensions/PageTriage/modules/ext.pageTriage.views.list/images/icon_not_reviewed.png" title="Not reviewed" />`;
}
 
if ( pageHasSections() ) {
$(`#firstHeading .mw-editsection`).before(htmlToInsert);
} else {
$(`#firstHeading`).append(htmlToInsert);
}
});