MediaWiki:MultiUpload.js
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
mw.config.set("UMFBypassLicenseCheck",!0),mw.loader.using(["site","mediawiki.util"]).then(function(){if(mw.config.get("wgCanonicalSpecialPageName")!=="Upload")return;var u=u||function(l,a){return function(n){return a[l]&&a[l][n]!=null?a[l][n]:a.en[n]}};const e=u(mw.config.get("wgUserLanguage"),{en:{multiupload:"Upload multiple files:",yes:"Yes",no:"No",sourcefiles:"Source files:",categoryname:"Category name:",categorynamehint:"Page name of the category the files will automatically be added to, e.g. Item images",categorynamespace:"Category",uploadfiles:"Upload files",nofiles:"Please select some files first.",nolicense:"Please select a valid license first.",summary:"Summary",license:"Licensing",categories:"Categories",uploading:"Uploading files...",uploaded:"Uploaded:",failed:"Failed:",done:"Done.",exists:"a file with this name already exists"}}),f=function(){var l=[],a=$("#wpUploadDescription").val(),n=$("#wpLicense option:selected").val(),i=$("#multiFileCategory").val();if(a!==""&&l.push("== "+e("summary")+` ==
`+a),n!==""){var r=$("#wpLicense option:selected").prop("title");l.push("== "+e("license")+` ==
`+r)}return i!==""&&l.push("[["+e("categorynamespace")+":"+i+"]]"),l.join(`
`)},g=function(l){if(l.error)return l.error.info;var a=l.upload&&l.upload.warnings||{},n={exists:"exists"};return Object.keys(a).map(function(i){return n[i]?e(n[i]):i}).join(", ")||"?"},w=function(){return $("#wpWatchthis").is(":checked")?"watch":"nochange"};$(function(){$("#wpUploadFile").parent().parent().addClass("regularFileSelect"),$("tr.regularFileSelect").before('<tr><td class="mw-label">'+e("multiupload")+'</td><td class="mw-input"><label><input type="radio" name="multipleFiles" value="'+e("yes")+'" /> '+e("yes")+'</label> <label><input type="radio" name="multipleFiles" value="'+e("no")+'" checked="" /> '+e("no")+"</label></td></tr>"),$("tr.regularFileSelect").after('<tr class="multipleFileSelect" style="display:none;"><td class="mw-label">'+e("sourcefiles")+'</td><td class="mw-input"><input type="file" id="multiupload" multiple /></td></tr>'),$("input[name='wpUpload']").addClass("regularFileSelect"),$("#wpDestFile").parent().parent().addClass("regularFileSelect"),$("#wpIgnoreWarning").parent().parent().addClass("regularFileSelect"),$("#mw-upload-form #mw-htmlform-description tbody").append('<tr class="mw-htmlform-field-HTMLTextField multipleFileSelect" style="display:none;"><td class="mw-label"><label for="multiFileCategory"><abbr title="'+e("categorynamehint")+'">'+e("categoryname")+'</abbr></label></td><td class="mw-input"><input id="multiFileCategory" name="multiFileCategory" size="60"></td></tr>'),$("input[name='wpUpload']").after('<input type="button" value="'+e("uploadfiles")+'" class="multipleFileSelect" style="display:none;" id="multiFileSubmit" />'),$("input[name='multipleFiles']").change(function(){this.value===e("yes")?($(".regularFileSelect").hide(),$(".multipleFileSelect").show()):($(".regularFileSelect").show(),$(".multipleFileSelect").hide())}),$("#multiFileSubmit").click(function(){var l=$("#multiupload")[0].files;if(l.length===0)return alert(e("nofiles")),!1;if($("#wpLicense option:selected").val()===""&&!mw.config.get("UMFBypassLicenseCheck"))return alert(e("nolicense")),!1;var a=f(),n=w();$("#firstHeading").text(e("uploading")),$("#mw-content-text").html("<h3>"+e("uploaded")+"</h3><ul></ul><div style='display:none;' id='multiUploadFailed'><h3>"+e("failed")+"</h3><ul></ul></div>");var i=0,r;r=function(){if(i>l.length){$("#mw-content-text").append("<h3>"+e("done")+"</h3>");return}if(l[i]===void 0){i++,r();return}var o=l[i],p=function(){i++,r()},c=function(s){$("#multiUploadFailed ul").append("<li>"+mw.html.escape(o.name+(s?" ("+s+")":""))+"</li>"),$("#multiUploadFailed").show(),p()},d=function(s){var t=new FormData;t.append("action","upload"),t.append("token",mw.user.tokens.get("csrfToken")),t.append("filename",o.name),t.append("text",a),t.append("watchlist",n),t.append("format","json"),Object.keys(s).forEach(function(m){t.append(m,s[m])}),$.ajax({url:mw.util.wikiScript("api"),method:"POST",data:t,cache:!1,contentType:!1,processData:!1,type:"POST"}).done(h).fail(function(){c()})},h=function(s){var t=s.upload||{};t.result==="Success"?($("#mw-content-text > ul").append('<li><a href="'+t.imageinfo.descriptionurl+'" target="_blank">'+mw.html.escape(t.filename)+"</a></li>"),p()):t.result==="Warning"&&t.filekey&&!t.warnings.exists?d({filekey:t.filekey,ignorewarnings:1}):c(g(s))};d({file:o})},r()})})});