User:Abelmoschus Esculentus/DiscussionCloser.js

// //Credits to Equazcion and Evad37 //Date: 7 Feb 2019 function dc_init { if ((($('#ca-addsection').length > 0) || (mw.config.get('wgPageName') == 'Wikipedia:Administrators\'_noticeboard/Edit_warring') || (mw.config.get('wgPageName') == 'Wikipedia:In_the_news/Candidates')) && (mw.config.get('wgAction') == 'view')){ $('span.mw-headline').each(function(index, value){			var editSectionUrl = $(this).parent.find('.mw-editsection a:first').attr('href');			var sectionReg = /&section=(.*)/;			var sectionRaw = sectionReg.exec(editSectionUrl);			if ((sectionRaw !== null) && (sectionRaw[1].indexOf('T') < 0)){				var section = parseInt(sectionRaw[1]);				if ($(this).parent.prop("tagName") == 'H2') {					$(this).parent('h2').append(' | ' + 'Close' + ' ');					$(this).parent('h2').find('a.closeLink').click(function{ $('body').prepend(' '+					   ' '+					      ' '+					      ' '+					      ' '+					      ' '+					      ' '+					    ' '+					  ' '); $("#DC-modal").css({					   "position": "fixed",					    "z-index": "1",					    "left": "0",					    "top": "0",					    "width": "100%",					    "height": "100%",					    "overflow": "hidden",					    "background-color": "rgba(0,0,0,0.4)"					  }); $("#DC-interface").css({					   "background-color": "#d6d6d6",					    "margin": "10% auto",					    "padding": "2px 20px",					    "border": "1px solid #888",					    "width": "80%",					    "max-width": "60em",					    "font-size": "90%"					  }); $("#DC-interface-content").css({					   "min-height": "7em",					    "width" : "875px",					    "height" : "400px",					    "overflow-y": "scroll"					  }); $("#DC-interface-footor").css("min-height", "3em"); $("#DC-interface-header, #DC-interface-content, #DC-interface-footer").empty; $("#DC-interface-header").text("Discussion Closer"); $("#DC-interface-content").append(						 $(' ').css('margin-bottom','0.5em').append( $(' ').attr({'id':'DC-label'}).text('Options: '), $(' ').attr({'type':'radio', 'name':'DC-radio','id':'DC-radio1','value':'atop','checked':'true','onchange':'dc_radio(1)'}), $(' ').text('Generic (blue) '), $(' ').attr({'type':'radio', 'name':'DC-radio','id':'DC-radio2','value':'atopg','onchange':'dc_radio(1)'}), $(' ').text('Generic (green) '), $(' ').attr({'type':'radio', 'name':'DC-radio','id':'DC-radio3','value':'atopy','onchange':'dc_radio(1)'}), $(' ').text('Unsuccessful (yellow) '), $(' ').attr({'type':'radio', 'name':'DC-radio','id':'DC-radio4','value':'atopr','onchange':'dc_radio(1)'}), $(' ').text('Unsuccessful (red) '), $(' ').attr({'type':'radio', 'name':'DC-radio','id':'DC-radio5','value':'rfc','onchange':'dc_radio(2)'}), $(' ').text('RfC '), $(' ').attr({'type':'radio', 'name':'DC-radio','id':'DC-radio5','value':'hat','onchange':'dc_radio(2)'}), $(' ').text('Hidden archive ') ),						 $(' ').css('margin-bottom','0.5em').append( $(' ').text('Status (optional): '), $(' ').attr({'type':'text','name':'DC-e','id':'DC-e'}) ),						 $(' ').css('margin-bottom','0.5em').append( $(' ').text('Closing comment:'), $(' ').css({'resize':'none'}).attr({'name':'DC-com','id':'DC-com','rows':'17','cols':'30'}) ),						 $(' ').css('margin-bottom','0.5em').append( $(' ').text('Edit summary ("Closing discussion" if left blank): '), $(' ').attr({'type':'text','name':'DC-es','id':'DC-es'}) ),							$(' ').css('margin-bottom','0.5em').attr('id','DC-prevt'),							$(' ').css('margin-bottom','0.5em').attr('id','DC-prevdiv'),							$(' ').attr('id', 'DC-closeprev').text('Close preview').hide						); $("#DC-interface-footer").append(							$(' ').attr({'name':'DC-done', 'id':'DC-done'}).text('Close discussion'),							$(' ').attr({'name':'DC-prev', 'id':'DC-prev'}).text('Preview'),							$(' ').attr('id', 'DC-cancel').text('Cancel'),							$(' ').attr('id','DC-loading').text(' Loading preview...').hide						); document.getElementById("DC-modal").addEventListener( "keydown", function ( key ) {				       	if( key.ctrlKey && ( key.keyCode == 10 || key.keyCode == 13 ) ) {				            	document.getElementById("DC-done").click;				            }				            else if ( key.keyCode == 27 ){				            	document.getElementById("DC-cancel").click;				            }			        	}); $('#DC-cancel').click(function {						 $('#DC-modal').remove;						}); $('#DC-prev').click(function {							$('#DC-loading').show;							var template = $("input[name=DC-radio]:checked").val;							var status = $('#DC-e').val;							var comment = $('#DC-com').val;							var request = {								action:"query", 								titles: mw.config.get('wgPageName'), 								rvsection: section,								prop: "revisions|info", 								intoken: "edit", 								rvprop: "content",								indexpageids: 1,								dataType: "xml",								format: "xml"							};							var bottom;							if (template === 'atop' || template === 'atopr' || template === 'atopy' || template === 'atopg') {								bottom = "";							 }							  else if (template === 'hat') {								bottom = "";							  }							  else {								bottom = "";							  }								if (!Morebits.userIsInGroup('sysop')) {									comment += ' ';								}								$.get(mw.config.get("wgScriptPath")+"/api.php", request, function(response){ if (template === 'rfc') { template = "closed rfc top"; }								var contentSection = '\r\r' + $(response).find('rev').text; var discussiontext = contentSection.substring(contentSection.substring(3,contentSection.length).indexOf('\n')+3, contentSection.length); var title = contentSection.substring(2, contentSection.length - discussiontext.length); var wikitext = title + '\n'+discussiontext+'\n'+bottom; var sectiontitle = title.replace('==', ).replace('==', ).replace('\n', ).replace('/r',).trim; var sectiontitle2 = sectiontitle.replace(/ /g, '_'); if (template === "closed rfc top") { wikitext = wikitext.replace(/(\r|\n)?{{rfc[^\}]*}}/g, ).replace(/(\r|\n)?/g, ); }								jQuery.ajax({									url:mw.util.wikiScript('api'),									dataType:'json',									type:'POST',									data:{											format:'json',											action:'parse',											pst:1,											text:wikitext,											title:mw.config.get('wgPageName'),											prop:'text'									}								}).done(function(r) {									if(!r.parse || !r.parse.text || !r.parse.text['*']){										alert('Error previewing.');									}									$('#DC-loading').hide;									$('#DC-prevt').html(' Preview: ');									$('#DC-prevdiv').html(r.parse.text['*']+' ').css({'display':'block','background-color':'white'});									$('#DC-closeprev').show;									$('#DC-closeprev').click(function { $('#DC-prevt').empty; $('#DC-prevdiv').empty.css({'display':,'background-color':,'border-color':'',"border-width":"", "border-style":""}); $('#DC-closeprev').hide; });								});							});						});						$('#DC-done').click(function {							var template = $("input[name=DC-radio]:checked").val;							var status = $('#DC-e').val;							var editsummary = $('#DC-es').val;							if (editsummary === "") {								editsummary = "Closing discussion";							}							var comment = $('#DC-com').val;							$('#DC-done').remove;							$('#DC-prev').remove;							$('#DC-cancel').remove;           				$('#DC-interface-content').empty;            				$("#DC-interface-content").text('Retrieving information...');							var request = {								action:"query", 								titles: mw.config.get('wgPageName'), 								rvsection: section,								prop: "revisions|info", 								intoken: "edit", 								rvprop: "content",								indexpageids: 1,								dataType: "xml",								format: "xml"              };              $("#DC-interface-content").append('Done! Closing discussion...'); var bottom; if (template === 'atop' || template === 'atopr' || template === 'atopy' || template === 'atopg') { bottom = ""; }             else if (template === 'hat') { bottom = ""; }             else { bottom = ""; }           	if (!Morebits.userIsInGroup('sysop')) { comment += ' '; }				$.get(mw.config.get("wgScriptPath")+"/api.php", request, function(response){					if (template === 'rfc') {						template = "closed rfc top";					}               var contentSection = '\r\r' + $(response).find('rev').text;                var discussiontext = contentSection.substring(contentSection.substring(3,contentSection.length).indexOf('\n')+3, contentSection.length);                var title = contentSection.substring(2, contentSection.length - discussiontext.length);								var wikitext = title + '\n'+discussiontext+'\n'+bottom;								var sectiontitle = title.replace('==', ).replace('==', ).replace('\n', ).replace('/r',).trim;								var sectiontitle2 = sectiontitle.replace(/ /g, '_');								if (template === "closed rfc top") {									wikitext = wikitext.replace(/(\r|\n)?{{rfc[^\}]*}}/g, ).replace(/(\r|\n)?/g, );								}								var request2 = {									action:"edit", section: section, title: mw.config.get('wgPageName'), text: wikitext, summary: '/* '+sectiontitle+' */ '+editsummary+' (DiscussionCloser)', token: mw.user.tokens.get("editToken") };								if (contentSection.includes('{{atop')||contentSection.includes('{{atopr')||contentSection.includes('{{atopg')||contentSection.includes('{{atopy')||contentSection.includes('{{hat')||contentSection.includes('{{abot')||contentSection.includes('{{archive')||contentSection.includes('{{Rfctop')||contentSection.includes('{{rfctop')||contentSection.includes('{{Atop')||contentSection.includes('{{Atopr')||contentSection.includes('{{Atopy')||contentSection.includes('{{Atopg')||contentSection.includes('{{Abot')||contentSection.includes('{{Rfc bottom')||contentSection.includes('{{Archive bottom')||contentSection.includes('{{archive bottom')||contentSection.includes('{{hidden archive bottom')||contentSection.includes('{{Hidden archive bottom')) { var cont = confirm('The discussion may have already been closed. Continue?'); if (!cont) { $("#DC-interface-content").append('Aborted by user Finished!'); $('#DC-interface-footer').append(											$(' ').attr('id', 'DC-close').text('Close')										); $('#DC-close').click(function {										$('#DC-modal').remove;											window.location.href = 'https://en.wikipedia.org/wiki/'+mw.config.get('wgPageName')+'#'+sectiontitle2;											window.location.reload;										}); }									else { $.when(					                 $.post(mw.config.get("wgScriptPath")+"/api.php", request2, function(response2){ }).done(function { $("#DC-interface-content").append('Done! Finished!'); $('#DC-interface-footer').append(										$(' ').attr('id', 'DC-close').text('Close')									); $('#DC-close').click(function {										$('#DC-modal').remove;										window.location.href = 'https://en.wikipedia.org/wiki/'+mw.config.get('wgPageName')+'#'+sectiontitle2;										window.location.reload;									}); }));									}								}								else { $.when(                 $.post(mw.config.get("wgScriptPath")+"/api.php", request2, function(response2){ }).done(function { $("#DC-interface-content").append('Done! Finished!'); $('#DC-interface-footer').append(										$(' ').attr('id', 'DC-close').text('Close')									); $('#DC-close').click(function {										$('#DC-modal').remove;										window.location.href = 'https://en.wikipedia.org/wiki/'+mw.config.get('wgPageName')+'#'+sectiontitle2;										window.location.reload;									}); }));								}							});						});					});				}				if ($(this).parent.prop("tagName") == 'H3') {					$(this).parent('h3').append(' | ' + 'Close' + ' ');					$(this).parent('h3').find('a.closeLink').click(function{ $('body').prepend(' '+					   ' '+					      ' '+					      ' '+					      ' '+					      ' '+					      ' '+					    ' '+					  ' '); $("#DC-modal").css({					   "position": "fixed",					    "z-index": "1",					    "left": "0",					    "top": "0",					    "width": "100%",					    "height": "100%",					    "overflow": "hidden",					    "background-color": "rgba(0,0,0,0.4)"					  }); $("#DC-interface").css({					   "background-color": "#d6d6d6",					    "margin": "10% auto",					    "padding": "2px 20px",					    "border": "1px solid #888",					    "width": "80%",					    "max-width": "60em",					    "font-size": "90%"					  }); $("#DC-interface-content").css({					   "min-height": "7em",					    "width" : "875px",					    "height" : "400px",					    "overflow-y": "scroll"					  }); $("#DC-interface-footor").css("min-height", "3em"); $("#DC-interface-header, #DC-interface-content, #DC-interface-footer").empty; $("#DC-interface-header").text("Discussion Closer"); $("#DC-interface-content").append(						 $(' ').css('margin-bottom','0.5em').append( $(' ').attr({'id':'DC-label'}).text('Options: '), $(' ').attr({'type':'radio', 'name':'DC-radio','id':'DC-radio1','value':'atop','checked':'true','onchange':'dc_radio(1)'}), $(' ').text('Generic (blue) '), $(' ').attr({'type':'radio', 'name':'DC-radio','id':'DC-radio2','value':'atopg','onchange':'dc_radio(1)'}), $(' ').text('Generic (green) '), $(' ').attr({'type':'radio', 'name':'DC-radio','id':'DC-radio3','value':'atopy','onchange':'dc_radio(1)'}), $(' ').text('Unsuccessful (yellow) '), $(' ').attr({'type':'radio', 'name':'DC-radio','id':'DC-radio4','value':'atopr','onchange':'dc_radio(1)'}), $(' ').text('Unsuccessful (red) '), $(' ').attr({'type':'radio', 'name':'DC-radio','id':'DC-radio5','value':'rfc','onchange':'dc_radio(2)'}), $(' ').text('RfC '), $(' ').attr({'type':'radio', 'name':'DC-radio','id':'DC-radio5','value':'hat','onchange':'dc_radio(2)'}), $(' ').text('Hidden archive ') ),						 $(' ').css('margin-bottom','0.5em').append( $(' ').text('Status (optional): '), $(' ').attr({'type':'text','name':'DC-e','id':'DC-e'}) ),						 $(' ').css('margin-bottom','0.5em').append( $(' ').text('Closing comment:'), $(' ').css({'resize':'none'}).attr({'name':'DC-com','id':'DC-com','rows':'17','cols':'30'}) ),						 $(' ').css('margin-bottom','0.5em').append( $(' ').text('Edit summary ("Closing discussion" if left blank): '), $(' ').attr({'type':'text','name':'DC-es','id':'DC-es'}) ),							$(' ').css('margin-bottom','0.5em').attr('id','DC-prevt'),							$(' ').css('margin-bottom','0.5em').attr('id','DC-prevdiv'),							$(' ').attr('id', 'DC-closeprev').text('Close preview').hide						); $("#DC-interface-footer").append(							$(' ').attr({'name':'DC-done', 'id':'DC-done'}).text('Close discussion'),							$(' ').attr({'name':'DC-prev', 'id':'DC-prev'}).text('Preview'),							$(' ').attr('id', 'DC-cancel').text('Cancel'),							$(' ').attr('id','DC-loading').text(' Loading preview...').hide						); document.getElementById("DC-modal").addEventListener( "keydown", function ( key ) {				       	if( key.ctrlKey && ( key.keyCode == 10 || key.keyCode == 13 ) ) {				            	document.getElementById("DC-done").click;				            }				            else if ( key.keyCode == 27 ){				            	document.getElementById("DC-cancel").click;				            }			        	}); $('#DC-cancel').click(function {						 $('#DC-modal').remove;						}); $('#DC-prev').click(function {							$('#DC-loading').show;							var template = $("input[name=DC-radio]:checked").val;							var status = $('#DC-e').val;							var comment = $('#DC-com').val;							var request = {								action:"query", 								titles: mw.config.get('wgPageName'), 								rvsection: section,								prop: "revisions|info", 								intoken: "edit", 								rvprop: "content",								indexpageids: 1,								dataType: "xml",								format: "xml"							};							var bottom;							if (template === 'atop' || template === 'atopr' || template === 'atopy' || template === 'atopg') {								bottom = "";							 }							  else if (template === 'hat') {								bottom = "";							  }							  else {								bottom = "";							  }								if (!Morebits.userIsInGroup('sysop')) {									comment += ' ';								}								$.get(mw.config.get("wgScriptPath")+"/api.php", request, function(response){ if (template === 'rfc') { template = "closed rfc top"; }								var contentSection = '\r\r' + $(response).find('rev').text; var discussiontext = contentSection.substring(contentSection.substring(3,contentSection.length).indexOf('\n')+3, contentSection.length); var title = contentSection.substring(2, contentSection.length - discussiontext.length); var wikitext = title + '\n'+discussiontext+'\n'+bottom; var sectiontitle = title.replace('===', ).replace('===', ).replace('\n', ).replace('/r',).trim; var sectiontitle2 = sectiontitle.replace(/ /g, '_'); if (template === "closed rfc top") { wikitext = wikitext.replace(/(\r|\n)?{{rfc[^\}]*}}/g, ).replace(/(\r|\n)?/g, ); }								jQuery.ajax({									url:mw.util.wikiScript('api'),									dataType:'json',									type:'POST',									data:{											format:'json',											action:'parse',											pst:1,											text:wikitext,											title:mw.config.get('wgPageName'),											prop:'text'									}								}).done(function(r) {									if(!r.parse || !r.parse.text || !r.parse.text['*']){										alert('Error previewing.');									}									$('#DC-loading').hide;									$('#DC-prevt').html(' Preview: ');									$('#DC-prevdiv').html(r.parse.text['*']+' ').css({'display':'block','background-color':'white'});									$('#DC-closeprev').show;									$('#DC-closeprev').click(function { $('#DC-prevt').empty; $('#DC-prevdiv').empty.css({'display':,'background-color':,'border-color':'',"border-width":"", "border-style":""}); $('#DC-closeprev').hide; });								});							});						});						$('#DC-done').click(function {							var template = $("input[name=DC-radio]:checked").val;							var status = $('#DC-e').val;							var editsummary = $('#DC-es').val;							if (editsummary === "") {								editsummary = "Closing discussion";							}							var comment = $('#DC-com').val;							$('#DC-done').remove;							$('#DC-prev').remove;							$('#DC-cancel').remove;           				$('#DC-interface-content').empty;            				$("#DC-interface-content").text('Retrieving information...');							var request = {								action:"query", 								titles: mw.config.get('wgPageName'), 								rvsection: section,								prop: "revisions|info", 								intoken: "edit", 								rvprop: "content",								indexpageids: 1,								dataType: "xml",								format: "xml"              };              $("#DC-interface-content").append('Done! Closing discussion...'); var bottom; if (template === 'atop' || template === 'atopr' || template === 'atopy' || template === 'atopg') { bottom = ""; }             else if (template === 'hat') { bottom = ""; }             else { bottom = ""; }           	if (!Morebits.userIsInGroup('sysop')) { comment += ' '; }				$.get(mw.config.get("wgScriptPath")+"/api.php", request, function(response){					if (template === 'rfc') {						template = "closed rfc top";					}               var contentSection = '\r\r' + $(response).find('rev').text;                var discussiontext = contentSection.substring(contentSection.substring(3,contentSection.length).indexOf('\n')+3, contentSection.length);                var title = contentSection.substring(2, contentSection.length - discussiontext.length);								var wikitext = title + '\n'+discussiontext+'\n'+bottom;								var sectiontitle = title.replace('===', ).replace('===', ).replace('\n', ).replace('/r',).trim;								var sectiontitle2 = sectiontitle.replace(/ /g, '_');								if (template === "closed rfc top") {									wikitext = wikitext.replace(/(\r|\n)?{{rfc[^\}]*}}/g, ).replace(/(\r|\n)?/g, );								}								var request2 = {									action:"edit", section: section, title: mw.config.get('wgPageName'), text: wikitext, summary: '/* '+sectiontitle+' */ '+editsummary+' (DiscussionCloser)', token: mw.user.tokens.get("editToken") };								if (contentSection.includes('{{atop')||contentSection.includes('{{atopr')||contentSection.includes('{{atopg')||contentSection.includes('{{atopy')||contentSection.includes('{{hat')||contentSection.includes('{{abot')||contentSection.includes('{{archive')||contentSection.includes('{{Rfctop')||contentSection.includes('{{rfctop')||contentSection.includes('{{Atop')||contentSection.includes('{{Atopr')||contentSection.includes('{{Atopy')||contentSection.includes('{{Atopg')||contentSection.includes('{{Abot')||contentSection.includes('{{Rfc bottom')||contentSection.includes('{{Archive bottom')||contentSection.includes('{{archive bottom')||contentSection.includes('{{hidden archive bottom')||contentSection.includes('{{Hidden archive bottom')) { var cont = confirm('The discussion may have already been closed. Continue?'); if (!cont) { $("#DC-interface-content").append('Aborted by user Finished!'); $('#DC-interface-footer').append(											$(' ').attr('id', 'DC-close').text('Close')										); $('#DC-close').click(function {										$('#DC-modal').remove;											window.location.href = 'https://en.wikipedia.org/wiki/'+mw.config.get('wgPageName')+'#'+sectiontitle2;											window.location.reload;										}); }									else { $.when(					                 $.post(mw.config.get("wgScriptPath")+"/api.php", request2, function(response2){ }).done(function { $("#DC-interface-content").append('Done! Finished!'); $('#DC-interface-footer').append(										$(' ').attr('id', 'DC-close').text('Close')									); $('#DC-close').click(function {										$('#DC-modal').remove;										window.location.href = 'https://en.wikipedia.org/wiki/'+mw.config.get('wgPageName')+'#'+sectiontitle2;										window.location.reload;									}); }));									}								}								else { $.when(                 $.post(mw.config.get("wgScriptPath")+"/api.php", request2, function(response2){ }).done(function { $("#DC-interface-content").append('Done! Finished!'); $('#DC-interface-footer').append(										$(' ').attr('id', 'DC-close').text('Close')									); $('#DC-close').click(function {										$('#DC-modal').remove;										window.location.href = 'https://en.wikipedia.org/wiki/'+mw.config.get('wgPageName')+'#'+sectiontitle2;										window.location.reload;									}); }));								}							});						});					});				}				if ($(this).parent.prop("tagName") == 'H4') {					$(this).parent('h4').append(' | ' + 'Close' + ' ');					$(this).parent('h4').find('a.closeLink').click(function{ $('body').prepend(' '+					   ' '+					      ' '+					      ' '+					      ' '+					      ' '+					      ' '+					    ' '+					  ' '); $("#DC-modal").css({					   "position": "fixed",					    "z-index": "1",					    "left": "0",					    "top": "0",					    "width": "100%",					    "height": "100%",					    "overflow": "hidden",					    "background-color": "rgba(0,0,0,0.4)"					  }); $("#DC-interface").css({					   "background-color": "#d6d6d6",					    "margin": "10% auto",					    "padding": "2px 20px",					    "border": "1px solid #888",					    "width": "80%",					    "max-width": "60em",					    "font-size": "90%"					  }); $("#DC-interface-content").css({					   "min-height": "7em",					    "width" : "875px",					    "height" : "400px",					    "overflow-y": "scroll"					  }); $("#DC-interface-footor").css("min-height", "3em"); $("#DC-interface-header, #DC-interface-content, #DC-interface-footer").empty; $("#DC-interface-header").text("Discussion Closer"); $("#DC-interface-content").append(						 $(' ').css('margin-bottom','0.5em').append( $(' ').attr({'id':'DC-label'}).text('Options: '), $(' ').attr({'type':'radio', 'name':'DC-radio','id':'DC-radio1','value':'atop','checked':'true','onchange':'dc_radio(1)'}), $(' ').text('Generic (blue) '), $(' ').attr({'type':'radio', 'name':'DC-radio','id':'DC-radio2','value':'atopg','onchange':'dc_radio(1)'}), $(' ').text('Generic (green) '), $(' ').attr({'type':'radio', 'name':'DC-radio','id':'DC-radio3','value':'atopy','onchange':'dc_radio(1)'}), $(' ').text('Unsuccessful (yellow) '), $(' ').attr({'type':'radio', 'name':'DC-radio','id':'DC-radio4','value':'atopr','onchange':'dc_radio(1)'}), $(' ').text('Unsuccessful (red) '), $(' ').attr({'type':'radio', 'name':'DC-radio','id':'DC-radio5','value':'rfc','onchange':'dc_radio(2)'}), $(' ').text('RfC '), $(' ').attr({'type':'radio', 'name':'DC-radio','id':'DC-radio5','value':'hat','onchange':'dc_radio(2)'}), $(' ').text('Hidden archive ') ),						 $(' ').css('margin-bottom','0.5em').append( $(' ').text('Status (optional): '), $(' ').attr({'type':'text','name':'DC-e','id':'DC-e'}) ),						 $(' ').css('margin-bottom','0.5em').append( $(' ').text('Closing comment:'), $(' ').css({'resize':'none'}).attr({'name':'DC-com','id':'DC-com','rows':'17','cols':'30'}) ),						 $(' ').css('margin-bottom','0.5em').append( $(' ').text('Edit summary ("Closing discussion" if left blank): '), $(' ').attr({'type':'text','name':'DC-es','id':'DC-es'}) ),							$(' ').css('margin-bottom','0.5em').attr('id','DC-prevt'),							$(' ').css('margin-bottom','0.5em').attr('id','DC-prevdiv'),							$(' ').attr('id', 'DC-closeprev').text('Close preview').hide						); $("#DC-interface-footer").append(							$(' ').attr({'name':'DC-done', 'id':'DC-done'}).text('Close discussion'),							$(' ').attr({'name':'DC-prev', 'id':'DC-prev'}).text('Preview'),							$(' ').attr('id', 'DC-cancel').text('Cancel'),							$(' ').attr('id','DC-loading').text(' Loading preview...').hide						); document.getElementById("DC-modal").addEventListener( "keydown", function ( key ) {				       	if( key.ctrlKey && ( key.keyCode == 10 || key.keyCode == 13 ) ) {				            	document.getElementById("DC-done").click;				            }				            else if ( key.keyCode == 27 ){				            	document.getElementById("DC-cancel").click;				            }			        	}); $('#DC-cancel').click(function {						 $('#DC-modal').remove;						}); $('#DC-prev').click(function {							$('#DC-loading').show;							var template = $("input[name=DC-radio]:checked").val;							var status = $('#DC-e').val;							var comment = $('#DC-com').val;							var request = {								action:"query", 								titles: mw.config.get('wgPageName'), 								rvsection: section,								prop: "revisions|info", 								intoken: "edit", 								rvprop: "content",								indexpageids: 1,								dataType: "xml",								format: "xml"							};							var bottom;							if (template === 'atop' || template === 'atopr' || template === 'atopy' || template === 'atopg') {								bottom = "{{abot}}";							 }							  else if (template === 'hat') {								bottom = "{{hab}}";							  }							  else {								bottom = "{{closed rfc bottom}}";							  }								if (!Morebits.userIsInGroup('sysop')) {									comment += ' {{nac}}';								}								$.get(mw.config.get("wgScriptPath")+"/api.php", request, function(response){ if (template === 'rfc') { template = "closed rfc top"; }								var contentSection = '\r\r' + $(response).find('rev').text; var discussiontext = contentSection.substring(contentSection.substring(3,contentSection.length).indexOf('\n')+3, contentSection.length); var title = contentSection.substring(2, contentSection.length - discussiontext.length); var wikitext = title + '\n{{'+template+'\n| status = '+status+'\n| result = '+comment+'\n}}'+discussiontext+'\n'+bottom; var sectiontitle = title.replace('====', ).replace('====', ).replace('\n', ).replace('/r',).trim; var sectiontitle2 = sectiontitle.replace(/ /g, '_'); if (template === "closed rfc top") { wikitext = wikitext.replace(/(\r|\n)?{{rfc[^\}]*}}/g, ).replace(/(\r|\n)?{{[^C]+ClueBot\sIII\/DoNotArchiveUntil\|\d*}}/g, ); }								jQuery.ajax({									url:mw.util.wikiScript('api'),									dataType:'json',									type:'POST',									data:{											format:'json',											action:'parse',											pst:1,											text:wikitext,											title:mw.config.get('wgPageName'),											prop:'text'									}								}).done(function(r) {									if(!r.parse || !r.parse.text || !r.parse.text['*']){										alert('Error previewing.');									}									$('#DC-loading').hide;									$('#DC-prevt').html(' Preview: ');									$('#DC-prevdiv').html(r.parse.text['*']+' ').css({'display':'block','background-color':'white'});									$('#DC-closeprev').show;									$('#DC-closeprev').click(function { $('#DC-prevt').empty; $('#DC-prevdiv').empty.css({'display':,'background-color':,'border-color':'',"border-width":"", "border-style":""}); $('#DC-closeprev').hide; });								});							});						});						$('#DC-done').click(function {							var template = $("input[name=DC-radio]:checked").val;							var status = $('#DC-e').val;							var editsummary = $('#DC-es').val;							if (editsummary === "") {								editsummary = "Closing discussion";							}							var comment = $('#DC-com').val;							$('#DC-done').remove;							$('#DC-prev').remove;							$('#DC-cancel').remove;           				$('#DC-interface-content').empty;            				$("#DC-interface-content").text('Retrieving information...');							var request = {								action:"query", 								titles: mw.config.get('wgPageName'), 								rvsection: section,								prop: "revisions|info", 								intoken: "edit", 								rvprop: "content",								indexpageids: 1,								dataType: "xml",								format: "xml"              };              $("#DC-interface-content").append('Done! Closing discussion...'); var bottom; if (template === 'atop' || template === 'atopr' || template === 'atopy' || template === 'atopg') { bottom = "{{abot}}"; }             else if (template === 'hat') { bottom = "{{hab}}"; }             else { bottom = "{{closed rfc bottom}}"; }           	if (!Morebits.userIsInGroup('sysop')) { comment += ' {{nac}}'; }				$.get(mw.config.get("wgScriptPath")+"/api.php", request, function(response){					if (template === 'rfc') {						template = "closed rfc top";					}               var contentSection = '\r\r' + $(response).find('rev').text;                var discussiontext = contentSection.substring(contentSection.substring(3,contentSection.length).indexOf('\n')+3, contentSection.length);                var title = contentSection.substring(2, contentSection.length - discussiontext.length);								var wikitext = title + '\n{{'+template+'\n| status = '+status+'\n| result = '+comment+'\n}}'+discussiontext+'\n'+bottom;								var sectiontitle = title.replace('====', ).replace('====', ).replace('\n', ).replace('/r',).trim;								var sectiontitle2 = sectiontitle.replace(/ /g, '_');								if (template === "closed rfc top") {									wikitext = wikitext.replace(/(\r|\n)?{{rfc[^\}]*}}/g, ).replace(/(\r|\n)?{{[^C]+ClueBot\sIII\/DoNotArchiveUntil\|\d*}}/g, ); }								var request2 = { action:"edit", section: section, title: mw.config.get('wgPageName'), text: wikitext, summary: '/* '+sectiontitle+' */ '+editsummary+' (DiscussionCloser)', token: mw.user.tokens.get("editToken") };								if (contentSection.includes('{{atop')||contentSection.includes('{{atopr')||contentSection.includes('{{atopg')||contentSection.includes('{{atopy')||contentSection.includes('{{hat')||contentSection.includes('{{abot')||contentSection.includes('{{archive')||contentSection.includes('{{Rfctop')||contentSection.includes('{{rfctop')||contentSection.includes('{{Atop')||contentSection.includes('{{Atopr')||contentSection.includes('{{Atopy')||contentSection.includes('{{Atopg')||contentSection.includes('{{Abot')||contentSection.includes('{{Rfc bottom')||contentSection.includes('{{Archive bottom')||contentSection.includes('{{archive bottom')||contentSection.includes('{{hidden archive bottom')||contentSection.includes('{{Hidden archive bottom')) { var cont = confirm('The discussion may have already been closed. Continue?'); if (!cont) { $("#DC-interface-content").append('Aborted by user Finished!'); $('#DC-interface-footer').append(											$(' ').attr('id', 'DC-close').text('Close')										); $('#DC-close').click(function {										$('#DC-modal').remove;											window.location.href = 'https://en.wikipedia.org/wiki/'+mw.config.get('wgPageName')+'#'+sectiontitle2;											window.location.reload;										}); }									else { $.when(					                 $.post(mw.config.get("wgScriptPath")+"/api.php", request2, function(response2){ }).done(function { $("#DC-interface-content").append('Done! Finished!'); $('#DC-interface-footer').append(										$(' ').attr('id', 'DC-close').text('Close')									); $('#DC-close').click(function {										$('#DC-modal').remove;										window.location.href = 'https://en.wikipedia.org/wiki/'+mw.config.get('wgPageName')+'#'+sectiontitle2;										window.location.reload;									}); }));									}								}								else { $.when(                 $.post(mw.config.get("wgScriptPath")+"/api.php", request2, function(response2){ }).done(function { $("#DC-interface-content").append('Done! Finished!'); $('#DC-interface-footer').append(										$(' ').attr('id', 'DC-close').text('Close')									); $('#DC-close').click(function {										$('#DC-modal').remove;										window.location.href = 'https://en.wikipedia.org/wiki/'+mw.config.get('wgPageName')+'#'+sectiontitle2;										window.location.reload;									}); }));								}							});						});					});				}			}	}); } } function dc_radio(i) { if (i == 1) { $('#DC-e').prop('disabled', false); $('#DC-e').val(""); }	if (i == 2) { $('#DC-e').prop('disabled', true); $('#DC-e').val('Not available'); } } mw.loader.using(['ext.gadget.Twinkle', 'mediawiki.util', 'mediawiki.api', 'mediawiki.Title', 'mediawiki.RegExp'], function {	dc_init; }); //