MediaWiki:AFCHD-wizard.js
Videz
Opomba: Da bodo spremembe prišle do veljave, po objavi izpraznite predpomnilnik svojega brskalnika.
- Firefox/Safari: Držite Shift in kliknite Znova naloži (Reload) ali pritisnite Ctrl + Shift + R ali Ctrl + R (⌘ + R v sistemu Mac)
- Edge: Držite Ctrl + F5 in kliknite Osveži (Refresh) ali pritisnite Ctrl + F5
- Google Chrome: Pritisnite Ctrl + Shift + R (⌘ + Shift + R v sistemu Mac)
- Opera: Pritisnite Ctrl + F5.
/**
* Invoked via [[mw:Snippets/Load JS and CSS by URL]]
* on [[Wikipedia:WikiProject Articles for creation/Help desk/New question]]
*
* Author: [[User:SD0001]]
*/
// <nowiki>
$.when($.ready, mw.loader.using(['mediawiki.api', 'mediawiki.util', 'mediawiki.widgets'])).then(function() {
if (mw.config.get("wgPageName") !== "Wikipedija:Članki_za_ustvaritev/Forum_za_pomoč/Novo_vprašanje") return;
var api = new mw.Api();
var previewApi = new mw.Api();
var titleInput = new mw.widgets.TitleInputWidget({
'value': mw.util.getParamValue('page') || '',
'required': true
});
var reasonInput = new OO.ui.MultilineTextInputWidget({
'placeholder': 'Povejte nam zakaj potrebujete pomoč',
'required': true,
'rows': 5
});
var previewLayout = new OO.ui.HorizontalLayout();
var submitButton = new OO.ui.ButtonWidget({
'label': 'Oddaj',
'flags': ['progressive', 'primary'],
'accesskey': 's'
});
var fieldset = new OO.ui.FieldsetLayout();
fieldset.addItems([
new OO.ui.FieldLayout(titleInput, {
'label': 'Naslov strani:',
align: 'top'
}),
new OO.ui.FieldLayout(reasonInput, {
'label': 'Razlog za pomoč:',
align: 'top'
}),
previewLayout,
new OO.ui.FieldLayout(submitButton)
]);
$("#mw-content-text").empty().append(fieldset.$element);
function updateForm() {
var hasTitle = titleInput.getValue().trim().length > 0;
var hasReason = reasonInput.getValue().trim().length > 0;
var formEnabled = hasTitle && hasReason;
submitButton.setDisabled(!formEnabled);
if (!hasTitle && !hasReason) submitButton.setLabel('Izberite stran in vpišite razlog');
else if (!hasTitle) submitButton.setLabel('Izberite stran');
else if (!hasReason) submitButton.setLabel('Vpišite razlog');
else submitButton.setLabel('Oddaj');
if (formEnabled) {
previewApi.abort();
previewApi.parse(makeRequestText(), {
pst: true,
title: 'Wikipedija:Članki_za_ustvaritev/Forum_za_pomoč'
}).then(function(text) {
text = text.replace(/<script/g, '<script');
previewLayout.$element.html(text);
});
}
}
updateForm();
titleInput.on('change', updateForm);
reasonInput.on('change', updateForm);
function makeRequestText() {
var title = titleInput.getValue();
var text = '== Pregled predložitve uporabnika {{subst:REVISIONUSER}} z dne {{subst:#time:H:i, j. F Y}} ==' +
'\n{{Lafc|username={{subst:REVISIONUSER}}|ts={{subst:#time:H:i, j. F Y}}|' +
(mw.util.getParamValue('param') || 'draft') + '=' + title + '}}' +
'\n' + reasonInput.getValue() + (reasonInput.getValue().indexOf('~~~~') >= 0 ? '' : ' ~~~~');
return text;
}
var beforeUnloadHandler = function(e) {
var hasTitle = titleInput.getValue().trim().length > 0;
var hasReason = reasonInput.getValue().trim().length > 0;
if (hasTitle && hasReason) {
e.preventDefault();
return event.returnValue = "Sporočila niste oddali. Ste prepričani, da želite zapustiti stran? (Kliknite \"Oddaj\", da sporočilo oddate)";
}
};
$(window).on('beforeunload', beforeUnloadHandler);
submitButton.on('click', function() {
submitButton.setDisabled(true);
submitButton.setLabel('Oddajam...');
$('.afchd-wizard-error').remove();
api.edit('Wikipedija:Članki_za_ustvaritev/Forum_za_pomoč', function() {
return {
appendtext: '\n\n' + makeRequestText(),
summary: 'Potrebujem pomoč z [[' + titleInput.getValue() + ']]'
};
}).then(function() {
$(window).off('beforeunload', beforeUnloadHandler);
window.location.href = mw.util.getUrl('Wikipedija:Članki_za_ustvaritev/Forum_za_pomoč#footer');
}).catch(function(e) {
submitButton.setDisabled(false);
submitButton.setLabel('Submit');
submitButton.$element.after(
$('<div>').css('color', 'red').text('Prišlo je do napake: ' + e).addClass('afchd-wizard-error')
);
});
});
});
// </nowiki>