-The Dream Cancel Wiki has successfully upgraded it's wiki software and editing has returned. Tables for data have returned.
MediaWiki:Gadget-multiupload.js: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
mw.loader.using(['site | mw.loader.using(['site']).then(function() { | ||
i18n = { | i18n = { | ||
multiupload: "Upload multiple files:", | multiupload: "Upload multiple files:", | ||
yes: "Yes", | yes: "Yes", | ||
no: "No", | no: "No", | ||
warning: "Note:", | |||
note: " Please ensure files are named properly. The multiple file upload will overwrite any files with the same name without warning.", | |||
sourcefiles: "Source files:", | sourcefiles: "Source files:", | ||
uploadfiles: "Upload files", | uploadfiles: "Upload files", | ||
Line 9: | Line 11: | ||
nolicense: "Please select a valid license first.", | nolicense: "Please select a valid license first.", | ||
summary: "Summary", | summary: "Summary", | ||
license: " | license: "License", | ||
uploading: "Uploading files...", | uploading: "Uploading files...", | ||
uploaded: "Uploaded:", | uploaded: "Uploaded:", | ||
Line 18: | Line 20: | ||
$("#wpUploadFile").parent().parent().addClass("regularFileSelect"); | $("#wpUploadFile").parent().parent().addClass("regularFileSelect"); | ||
$("tr.regularFileSelect").before('<tr><td class="mw-label">'+i18n.multiupload+'</td><td class="mw-input"><label><input type="radio" name="multipleFiles" value="'+i18n.yes+'" /> '+i18n.yes+'</label> <label><input type="radio" name="multipleFiles" value="'+i18n.no+'" checked="" /> '+i18n.no+'</label></td></tr>'); | $("tr.regularFileSelect").before('<tr><td class="mw-label">'+i18n.multiupload+'</td><td class="mw-input"><label><input type="radio" name="multipleFiles" value="'+i18n.yes+'" /> '+i18n.yes+'</label> <label><input type="radio" name="multipleFiles" value="'+i18n.no+'" checked="" /> '+i18n.no+'</label></td></tr>'); | ||
$("tr.regularFileSelect").before('<tr class="multipleFileSelect" style="display:none;"><td class="mw-label" style="font-weight:bold; color:red;">'+i18n.warning+'</td><td style="color:red;">'+i18n.note+'</td></tr>'); | |||
$("tr.regularFileSelect").after('<tr class="multipleFileSelect" style="display:none;"><td class="mw-label">'+i18n.sourcefiles+'</td><td class="mw-input"><input type="file" id="multiupload" multiple /></td></tr>'); | $("tr.regularFileSelect").after('<tr class="multipleFileSelect" style="display:none;"><td class="mw-label">'+i18n.sourcefiles+'</td><td class="mw-input"><input type="file" id="multiupload" multiple /></td></tr>'); | ||
$("input[name='wpUpload']").addClass("regularFileSelect"); | $("input[name='wpUpload']").addClass("regularFileSelect"); | ||
$("#wpDestFile").parent().parent().addClass("regularFileSelect"); | $("#wpDestFile").parent().parent().addClass("regularFileSelect"); | ||
$("#wpIgnoreWarning").parent().parent().addClass("regularFileSelect"); | $("#wpIgnoreWarning").parent().parent().addClass("regularFileSelect"); | ||
$(" | $("span.mw-htmlform-submit-buttons").append('<input type="button" value="'+i18n.uploadfiles+'" class="multipleFileSelect" style="display:none;" id="multiFileSubmit" />'); | ||
$("input[name='multipleFiles']").change(function(){ | $("input[name='multipleFiles']").change(function(){ | ||
if (this.value===i18n.yes) { | if (this.value===i18n.yes) { | ||
Line 58: | Line 61: | ||
return; | return; | ||
} | } | ||
if(files[curFile] === undefined) { | |||
curFile++; | |||
gNF(); | |||
return; | |||
} | } | ||
$.ajax({url:'/api.php',data:{action:'query',meta:'tokens',format:'json'},dataType:'json'}).done(function(data) { | |||
fd = new FormData(); | |||
fd.append("action","upload"); | |||
fd.append("token",data.query.tokens.csrftoken); | |||
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:'/api.php', | |||
method:'POST', | |||
data:fd, | |||
cache:false, | |||
contentType:false, | |||
processData:false, | |||
type:'POST' | |||
}).done(function(d){ | |||
if (d.error == undefined) { | |||
$("#mw-content-text > ul").append('<li><a href="'+d.upload.imageinfo.descriptionurl+'" target="_blank">'+d.upload.filename+'</a></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(); | gNF(); | ||
}); | }); | ||
}); | }); |
Latest revision as of 16:07, 18 April 2021
mw.loader.using(['site']).then(function() { i18n = { multiupload: "Upload multiple files:", yes: "Yes", no: "No", warning: "Note:", note: " Please ensure files are named properly. The multiple file upload will overwrite any files with the same name without warning.", sourcefiles: "Source files:", uploadfiles: "Upload files", nofiles: "Please select some files first.", nolicense: "Please select a valid license first.", summary: "Summary", license: "License", uploading: "Uploading files...", uploaded: "Uploaded:", failed: "Failed:", done: "Done." }; if (mw.config.get("wgCanonicalSpecialPageName")!=="Upload") return; $("#wpUploadFile").parent().parent().addClass("regularFileSelect"); $("tr.regularFileSelect").before('<tr><td class="mw-label">'+i18n.multiupload+'</td><td class="mw-input"><label><input type="radio" name="multipleFiles" value="'+i18n.yes+'" /> '+i18n.yes+'</label> <label><input type="radio" name="multipleFiles" value="'+i18n.no+'" checked="" /> '+i18n.no+'</label></td></tr>'); $("tr.regularFileSelect").before('<tr class="multipleFileSelect" style="display:none;"><td class="mw-label" style="font-weight:bold; color:red;">'+i18n.warning+'</td><td style="color:red;">'+i18n.note+'</td></tr>'); $("tr.regularFileSelect").after('<tr class="multipleFileSelect" style="display:none;"><td class="mw-label">'+i18n.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"); $("span.mw-htmlform-submit-buttons").append('<input type="button" value="'+i18n.uploadfiles+'" class="multipleFileSelect" style="display:none;" id="multiFileSubmit" />'); $("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("<h3>"+i18n.uploaded+"</h3><ul></ul><div style='display:none;' id='multiUploadFailed'><h3>"+i18n.failed+"</h3><ul></ul></div>"); function gNF() { if(curFile>files.length) { $("#mw-content-text").append("<h3>"+i18n.done+"</h3>"); return; } if(files[curFile] === undefined) { curFile++; gNF(); return; } $.ajax({url:'/api.php',data:{action:'query',meta:'tokens',format:'json'},dataType:'json'}).done(function(data) { fd = new FormData(); fd.append("action","upload"); fd.append("token",data.query.tokens.csrftoken); 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:'/api.php', method:'POST', data:fd, cache:false, contentType:false, processData:false, type:'POST' }).done(function(d){ if (d.error == undefined) { $("#mw-content-text > ul").append('<li><a href="'+d.upload.imageinfo.descriptionurl+'" target="_blank">'+d.upload.filename+'</a></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(); }); });