User:Awesome Aasim/newsection.js

// /** * This script is preserved for historical purposes today. * Instead, please use discussion tool's "new section" feature. **/ if (typeof NS == "undefined") { var NS = {}; NS.run = function { if (document.getElementById("ca-addsection") && mw.config.get("wgAction") == "view") { //run script only if page is editable mw.loader.using( 'oojs-ui-core', function {				NS.sectiontitle = new OO.ui.TextInputWidget({ autosize: true, placeholder: "Section title" });				NS.sectiontext = new OO.ui.MultilineTextInputWidget( { autosize: true, rows: 5, placeholder: "Add your comment..." } );				NS.buttons = [					new OO.ui.ButtonWidget( { label: 'Post', flags: ['primary', 'progressive'] } ),					new OO.ui.ButtonWidget( { label: 'Preview' } )				];				NS.preview = new OO.ui.LabelWidget;				NS.preview.toggle(false);				NS.error = new OO.ui.MessageWidget( { type: 'error' } );				NS.error.toggle(false);				NS.sectiontitle.setElementId("newsection-header");				NS.sectiontext.setElementId("newsection-body");				NS.buttons[0].setElementId("newsection-post");				NS.buttons[1].setElementId("newsection-preview");				NS.fieldset = new OO.ui.FieldsetLayout({label: "New section"});				NS.fieldset.addItems([ NS.sectiontitle, NS.sectiontext, NS.buttons[0], NS.buttons[1], new OO.ui.LabelWidget({						label: $(" Your comment will automatically be signed with four tildes (~). ")					}), new OO.ui.FieldLayout(NS.preview), new OO.ui.FieldLayout(NS.error) ]);				NS.form = new OO.ui.FormLayout({ autosize: true, items: [NS.fieldset] });				NS.form.setElementId("newsection-form");				$("  ").append(NS.form.$element).appendTo($("#mw-content-text").parent);				NS.buttons[0].$element.click(function(e) { e.preventDefault; if (NS.sectiontext.getValue.length != 0) { NS.sectiontitle.setDisabled(true); NS.sectiontext.setDisabled(true); NS.buttons[0].setDisabled(true); NS.buttons[1].setDisabled(true); $.get(mw.config.get("wgScriptPath") + "/api.php", {							"action": "query",							"meta": "tokens",							"type": "csrf",							"format": "json"						}).done(function(result) {							if (result.error) {								NS.error.toggle(true);								if (!NS.error) {									NS.error = new OO.ui.MessageWidget( { type: 'error', label: result.error.info } );									NS.form.addItems(NS.error);								} else {									NS.error.setLabel(result.error.info);								}								NS.sectiontitle.setDisabled(false);								NS.sectiontext.setDisabled(false);								NS.buttons[0].setDisabled(false);								NS.buttons[1].setDisabled(false);							} else {								$.post(mw.config.get("wgScriptPath") + "/api.php", { "action": "edit", "section": "new", "title": mw.config.get("wgPageName"), "sectiontitle": NS.sectiontitle.getValue, "text": NS.sectiontext.getValue + " ~", "format": "json", "token": result.query.tokens.csrftoken }).done(function(result) { if (result.error) { NS.error.toggle(true); console.log(result.error.code.substring(0, "abusefilter".length)); console.log(result.error.code); if (result.error.code.substring(0, "abusefilter".length) == "abusefilter") { var that = result; console.log(result.error.info.substring(1, result.error.info.length-1)); $.get(mw.config.get("wgScriptPath") + "/api.php", {												"action": "parse",												"prop": "wikitext",												"format": "json",												"page": "MediaWiki:" + result.error.info.substring(1, result.error.info.length-1)											}).done(function(result) {												if (result.error) {													NS.error.setLabel(that.error.info);												} else {													console.log(result.parse.wikitext["*"]);													$.get(mw.config.get("wgScriptPath") + "/api.php", { "action": "parse", "prop": "text", "format": "json", "title": mw.config.get("wgPageName"), "pst": true, "text": result.parse.wikitext["*"] }).done(function(result) { console.log(that.error.abusefilter.description); console.log(result.parse.text["*"]); NS.error.setLabel($(result.parse.text["*"].replace("$1", that.error.abusefilter.description))); }).fail(function(result) { NS.error.setLabel(that.error.info); })												}											}).fail(function(result) {												NS.error.setLabel(that.error.info);											}); NS.form.addItems(NS.error); } else { NS.error.setLabel(result.error.info); }										NS.sectiontitle.setDisabled(false); NS.sectiontext.setDisabled(false); NS.buttons[0].setDisabled(false); NS.buttons[1].setDisabled(false); } else { $.get(mw.config.get("wgScriptPath") + "/api.php", {											"action": "parse",											"prop": "text",											"format": "json",											"title": mw.config.get("wgPageName"),											"text": (NS.sectiontitle.getValue ? ('== ' + NS.sectiontitle.getValue + ' ==\n') : "\n") + NS.sectiontext.getValue + " ~",											"pst": true										}).done(function(result) {											if (result.error) {												location.reload;											} else {												$("#mw-content-text").append(result.parse.text["*"]);												NS.sectiontitle.setValue("");												NS.sectiontext.setValue("");											}										}); NS.preview.toggle(false); NS.error.toggle(false); }									NS.sectiontitle.setDisabled(false); NS.sectiontext.setDisabled(false); NS.buttons[0].setDisabled(false); NS.buttons[1].setDisabled(false); });							}						});					}				});				NS.buttons[1].$element.click(function(e) { e.preventDefault; if (NS.sectiontext.getValue.length != 0) { NS.sectiontitle.setDisabled(true); NS.sectiontext.setDisabled(true); NS.buttons[0].setDisabled(true); NS.buttons[1].setDisabled(true); $.get(mw.config.get("wgScriptPath") + "/api.php", {							"action": "parse",							"prop": "text",							"format": "json",							"title": mw.config.get("wgPageName"),							"text": (NS.sectiontitle.getValue ? ('== ' + NS.sectiontitle.getValue + ' ==\n') : "\n") + NS.sectiontext.getValue + " ~",							"pst": true						}).done(function(result) {							if (result.error) {								NS.error.toggle(true);								if (!NS.error) {									NS.error = new OO.ui.MessageWidget( { type: 'error', label: result.error.info } );									NS.form.addItems(NS.error);								} else {									NS.error.setLabel(result.error.info);								}							} else {								NS.preview.setLabel($(result.parse.text["*"]));								NS.preview.toggle(true);								NS.error.toggle(false);							}							NS.sectiontitle.setDisabled(false);							NS.sectiontext.setDisabled(false);							NS.buttons[0].setDisabled(false);							NS.buttons[1].setDisabled(false);						}).fail(function(result) {							NS.error.toggle(true);							if (!NS.error) {								NS.error = new OO.ui.MessageWidget( { type: 'error', label: "Preview error" } );								NS.form.addItems(NS.error);							} else {								NS.error.setLabel(result.error.info);							}						}); }				});				NS.sectiontext.$element.keyup(function(e) { if (NS.sectiontext.getValue) { NS.buttons[0].setDisabled(false); NS.buttons[1].setDisabled(false); } else { NS.buttons[0].setDisabled(true); NS.buttons[1].setDisabled(true); }				});				NS.buttons[0].setDisabled(true);				NS.buttons[1].setDisabled(true);				$("#ca-addsection").find("a").attr("href", "#newsection");			}); if (mw.config.get("wgContentLanguage") == "en" && mw.config.get("wgSiteName") == "Wikipedia") { //Wikipedia editnotice $(document).ready(function {					if (mw.config.get("wgNamespaceNumber") == 3) {						$.get(mw.config.get("wgScriptPath") + "/api.php", { "action": "parse", "format": "json", "prop": "wikitext", "page": mw.config.get("wgPageName") + "/Editnotice" }).done(function(wikitext) { if (!wikitext.error) { $.get(mw.config.get("wgScriptPath") + "/api.php", {									"action": "parse",									"format": "json",									"prop": "text",									"title": mw.config.get("wgPageName"),									"pst": true,									"text": wikitext.parse.wikitext["*"]								}).done(function(text) {									if (!text.error && wikitext.parse.wikitext["*"] != "") {										$(text.parse.text["*"]).prependTo("#newsection");										$("#newsection").find(".mw-collapsible").removeClass("mw-collapsible").removeClass("mw-collapsed");									}								}); }						});					}					$.get(mw.config.get("wgScriptPath") + "/api.php", { "action": "parse", "format": "json", "prop": "wikitext", "page": "Template:Editnotices/Page/" + mw.config.get("wgPageName") }).done(function(wikitext) { if (!wikitext.error) { $.get(mw.config.get("wgScriptPath") + "/api.php", {								"action": "parse",								"format": "json",								"prop": "text",								"title": mw.config.get("wgPageName"),								"pst": true,								"text": wikitext.parse.wikitext["*"]							}).done(function(text) {								if (!text.error && wikitext.parse.wikitext["*"] != "") {									$(text.parse.text["*"]).prependTo("#newsection");									$("#newsection").find(".mw-collapsible").removeClass("mw-collapsible").removeClass("mw-collapsed");								}							}); }					});					$.get(mw.config.get("wgScriptPath") + "/api.php", { "action": "parse", "format": "json", "prop": "wikitext", "page": "Template:Editnotices/Group/" + mw.config.get("wgPageName").split("/")[0] }).done(function(wikitext) { if (!wikitext.error) { $.get(mw.config.get("wgScriptPath") + "/api.php", {								"action": "parse",								"format": "json",								"prop": "text",								"title": mw.config.get("wgPageName"),								"pst": true,								"text": wikitext.parse.wikitext["*"]							}).done(function(text) {								if (!text.error && wikitext.parse.wikitext["*"] != "") {									$(text.parse.text["*"]).prependTo("#newsection");									$("#newsection").find(".mw-collapsible").removeClass("mw-collapsible").removeClass("mw-collapsed");								}							}); }					});				})			}		}	};	//NS.run; } //