MediaWiki:DYK-nomination-wizard.js: Difference between revisions

Content deleted Content added
change dyk-helper to dyk-wizard in edit summary, api user agent and other places
per tper
 
(6 intermediate revisions by 4 users not shown)
Line 1:
/**
* DYK-nomination-wizard
*
* Wizard to easily create DYK nominations
*
* Loaded on [[Wikipedia:Did you know/Create new nomination]]
* using [[mw:Snippets/Load JS and CSS by URL]]
*
* Author: [[User:SD0001]]
*
Line 102:
dyk.callback = function dykMainCallback() {
 
var form = new Morebits.quickForm( dyk.evaluate );
 
form.append({
Line 136:
name: 'date',
tooltip: 'The date on which creation/expansion began. Must be within the past week. ',
value: new Date().toISOString().slice(0, 10), // YYYY-MM-DD format
event: dyk.dateCheck // for the benefit of browsers that don't support a datepicker for date fields
});
Line 308 ⟶ 307:
name: 'qpq',
label: 'Reviewed: ',
tooltip: 'DYK nomination(s) you reviewed. This is compulsorymandatory for editors with 5+ DYKprior creditsnominations (QPQ requirement). You can fill this after you make the nomination as well. When the unreviewed backlog mode is active, a 2nd QPQ is also required for editors with 20+ past nominations.',
size: '50px',
value: NOMPAGE_PREFIX
});
 
form.append({
type: 'div',
name: 'qpq-required',
label: 'Number of QPQs required: <span id=dyk-qpq-count>calculating ...</span>'
});
 
form.append({
type: 'button',
Line 337 ⟶ 343:
type: 'div',
style: 'float: right; font-size: smaller;', //text-decoration: italic;',
label: $('<ulspan>')
.addClass('hlist')
.append(
$('<li>').append(Morebits.createHtml([
'[[w:WP:DYKRULES|DYK rules]]')),
$('<li>').append(Morebits.createHtml( '[[w:Wikipedia talk:Did you know/Nomination wizard|Give feedback]]'))
].join(' &bull; '))
).get()
});
Line 383 ⟶ 390:
'form.quickform div textarea.dyk-source { font-size: 110%; height: 35px; }' +
'form.quickform div textarea.dyk-comments { font-size: 125%; height: 35px; }'
//'form.quickform div.dyk-source { display: table-row; }' +
//'form.quickform div.dyk-source label { display: table-cell; vertical-align: middle; }' +
//'div.dyk-source > textarea { font-size: 110%; height: 19px; }' +
//'html form.quickform div textarea.dyk-source { font-size: 110%; height: 35px; }'
);
 
Line 438 ⟶ 441:
 
$(Morebits.quickForm.getElementContainer(result.multiarticle)).css('margin-top', '10px');
 
// Show number of QPQs required
mw.loader.using('ext.gadget.libLua').then(function() {
return mw.libs.lua.call({
module: 'NewDYKnomination',
func: 'getRequiredQpqCount',
args: [mw.config.get('wgUserName')]
});
}).then(function(output) {
var [numQpqsNeeded, numPriorNoms] = output.split('\t').map(num => parseInt(num));
dyk.numQpqsRequiredPerArticle = numQpqsNeeded;
if (numQpqsNeeded === 2) {
$('#dyk-qpq-count').text('2, as DYK is currently in backlog mode and you have ' + numPriorNoms + ' past nominations');
} else if (numQpqsNeeded === 1) {
$('#dyk-qpq-count').text('1, as you have ' + numPriorNoms + ' past nominations');
} else if (numQpqsNeeded === 0) {
$('#dyk-qpq-count').text('0, as you have fewer than 5 past nominations');
} else {
$('#dyk-qpq-count').text('failed to calculate');
}
}).catch(function(err) {
$('#dyk-qpq-count').text('failed to calculate');
console.log(err);
});
 
};
Line 467 ⟶ 494:
 
if (type === 'source') {
// var width = txtarea.parentElement.previousElementSibling.offsetWidth - txtarea.previousElementSibling.offsetWidth;
// txtarea.style.width = width + 'px';
txtarea.previousElementSibling.style.borderTop = 'none';
txtarea.previousElementSibling.style.marginTop = '0';
Line 536 ⟶ 561:
 
addTemplateParam('status', params.status);
addTemplateParam('hook', params.hook + (params.source ? ('\n{{smalldiv|1= \n* <small>Source: ' + params.source + '</small>}}') : ''));
 
Object.keys(params).filter(function (field) {
Line 621 ⟶ 646:
 
var prosesizewarn = $('#dyk-prosesize').css('color') === "rgb(255, 0, 0)";
if (prosesizewarn && !confirm('This article has afewer readablethan prose1500 sizecharacters of lessreadable than 1500 charactersprose. \n\nWhile you may still nominate it for DYK, it may be rejected unless you expand it to more than 1500 characters after the nomination. \n\nClick OK to continue with the nomination.' )) {
return;
}
 
if (sourcewarning && !confirm('You have not specified the source for each hook. Are you sure you want to continue?')) {
return;
}
 
if (dyk.numQpqsRequiredPerArticle > 0 &&
!/Template:Did you know nominations\/\w+/.test(form.qpq.value) &&
!confirm('You have not specified a QPQ. The nomination may be rejected unless you provide a QPQ soon after the nomination. Are you sure you want to continue?')) {
return;
}