MediaWiki:AFCHD-wizard.js

/** * Invoked via Snippets/Load JS and CSS by URL * on WikiProject Articles for creation/Help desk/New question * * Author: User:SD0001 */

// $.when($.ready, mw.loader.using(['mediawiki.api', 'mediawiki.util', 'mediawiki.widgets'])).then(function {   if (mw.config.get("wgPageName") !== "Wikipedia:WikiProject_Articles_for_creation/Help_desk/New_question") 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': 'Tell us why you are requesting assistance', 'required': true, 'rows': 5 });   var previewLayout = new OO.ui.HorizontalLayout;    var submitButton = new OO.ui.ButtonWidget({ 'label': 'Submit request', 'flags': ['progressive', 'primary'], 'accesskey': 's'   });    var fieldset = new OO.ui.FieldsetLayout;    fieldset.addItems([ new OO.ui.FieldLayout(titleInput, {           'label': 'Page title:',            align: 'top'        }), new OO.ui.FieldLayout(reasonInput, {           'label': 'Reason for requesting assistance:',            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('Select page and enter reason');        else if (!hasTitle) submitButton.setLabel('Select page');        else if (!hasReason) submitButton.setLabel('Enter reason');        else submitButton.setLabel('Submit');        if (formEnabled) {			previewApi.abort;			previewApi.parse(makeRequestText, { pst: true, title: 'Wikipedia:WikiProject_Articles_for_creation/Help_desk' }).then(function(text) { text = text.replace(/= 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 = "Are you sure you want to leave without submitting? (Click \"Submit\" to post)"; }   };    $(window).on('beforeunload', beforeUnloadHandler);

submitButton.on('click', function {       submitButton.setDisabled(true);        submitButton.setLabel('Submitting...');        $('.afchd-wizard-error').remove;        api.edit('Wikipedia:WikiProject_Articles_for_creation/Help_desk', function { return { appendtext: '\n\n' + makeRequestText, summary: 'Requesting assistance regarding ' + titleInput.getValue + '' };       }).then(function { $(window).off('beforeunload', beforeUnloadHandler); window.location.href = mw.util.getUrl('Wikipedia:WikiProject_Articles_for_creation/Help_desk#footer'); }).catch(function(e) { submitButton.setDisabled(false); submitButton.setLabel('Submit'); submitButton.$element.after(       		$(' ').css('color', 'red').text('An error occurred: ' + e).addClass('afchd-wizard-error')        	); });   }); }); //