MediaWiki:Gadget-multiupload.js

/* https://dev.fandom.com/wiki/UploadMultipleFiles */ mw.loader.using(['site', 'mediawiki.util']).then(function {	i18n = {		multiupload: "Upload multiple files:",		yes: "Yes",		no: "No",		sourcefiles: "Source files:",		uploadfiles: "Upload files",		nofiles: "Please select some files first.",		nolicense: "Please select a valid license first.",		summary: "Summary",		license: "Licensing",		uploading: "Uploading files...",		uploaded: "Uploaded:",		failed: "Failed:",		done: "Done."	};	if (mw.config.get("wgCanonicalSpecialPageName")!=="Upload") return;		$("#wpUploadFile").parent.parent.addClass("regularFileSelect");	$("tr.regularFileSelect").before(' '+i18n.multiupload+'   '+i18n.yes+'   '+i18n.no+'  ');	$("tr.regularFileSelect").after(''+i18n.sourcefiles+'   '); $("input[name='wpUpload']").addClass("regularFileSelect"); $("#wpDestFile").parent.parent.addClass("regularFileSelect"); $("#wpIgnoreWarning").parent.parent.addClass("regularFileSelect"); $("input[name='wpUpload']").after(''); $("input[name='multipleFiles']").change(function{		if (this.value===i18n.yes) {			$(".regularFileSelect").hide;			$(".multipleFileSelect").show;		}		else {			$(".regularFileSelect").show;			$(".multipleFileSelect").hide;		}	}); $("#multiFileSubmit").click(function {		files = $("#multiupload")[0].files;		if (files.length === 0) {			alert(i18n.nofiles);			return false;		}		if ($("#wpLicense option:selected").val === "") {			alert(i18n.nolicense);			return false;		}		summary = $("#wpUploadDescription").val;		if (summary !== "") summary = "== "+i18n.summary+" ==\n"+summary;		license = "== "+i18n.license+" ==\n"+$("#wpLicense option:selected").prop("title");		text = summary + "\n" + license;		watch = "preferences";		if ($("#wpWatchthis").is(":checked")) watch = "watch";		else watch = "nochange";		curFile = 0;		$("#firstHeading").text(i18n.uploading);		$("#mw-content-text").html(" "+i18n.uploaded+"  "+i18n.failed+"  ");		function gNF {			if(curFile>files.length) {				$("#mw-content-text").append(" "+i18n.done+" ");				return;			}			if(files[curFile] === undefined) {				curFile++;				gNF;				return; }			fd = new FormData; fd.append("action","upload"); fd.append("token",mw.user.tokens.get('editToken')); fd.append("filename",files[curFile].name); fd.append("file",files[curFile]); fd.append("text",text); fd.append("watchlist",watch); fd.append("ignorewarnings",1); fd.append("format","json"); $.ajax({				url: mw.util.wikiScript('api'),				method:'POST',				data:fd,				cache:false,				contentType:false,				processData:false,				type:'POST'			}).done(function(d){				if (d.error === undefined) {					$("#mw-content-text > ul").append(''+d.upload.filename+'</li>');				}				else {					$("#multiUploadFailed ul").append('<li>'+files[curFile].name+'</li>');				$("#multiUploadFailed").show;				}				curFile++;				gNF;			}).fail(function(d) {				$("#multiUploadFailed ul").append('<li>'+files[curFile].name+'</li>');				$("#multiUploadFailed").show;				curFile++;				gNF;			}); }		gNF; }); });