<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://splatoonfanon.org/w/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-multiupload.js</id>
	<title>MediaWiki:Gadget-multiupload.js - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://splatoonfanon.org/w/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-multiupload.js"/>
	<link rel="alternate" type="text/html" href="https://splatoonfanon.org/w/index.php?title=MediaWiki:Gadget-multiupload.js&amp;action=history"/>
	<updated>2026-04-30T23:01:34Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://splatoonfanon.org/w/index.php?title=MediaWiki:Gadget-multiupload.js&amp;diff=35&amp;oldid=prev</id>
		<title>Trig Jegman: Created page with &quot;// Author: pcj  mw.loader.using([&quot;site&quot;]).then(function() {     if (mw.config.get(&quot;wgCanonicalSpecialPageName&quot;) !== &quot;Upload&quot;)         return;       var l10nFactory = l10nFactory || function($lang, $data) {         return function ($key) {             // (null == undefined) is true, (null === undefined) is false             return ($data[$lang] &amp;&amp; $data[$lang][$key] != null) ? $data[$lang][$key] : $data.en[$key];         };     };       const l10n = l10nFactory(mw.config....&quot;</title>
		<link rel="alternate" type="text/html" href="https://splatoonfanon.org/w/index.php?title=MediaWiki:Gadget-multiupload.js&amp;diff=35&amp;oldid=prev"/>
		<updated>2025-04-17T21:16:22Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;// Author: pcj  mw.loader.using([&amp;quot;site&amp;quot;]).then(function() {     if (mw.config.get(&amp;quot;wgCanonicalSpecialPageName&amp;quot;) !== &amp;quot;Upload&amp;quot;)         return;       var l10nFactory = l10nFactory || function($lang, $data) {         return function ($key) {             // (null == undefined) is true, (null === undefined) is false             return ($data[$lang] &amp;amp;&amp;amp; $data[$lang][$key] != null) ? $data[$lang][$key] : $data.en[$key];         };     };       const l10n = l10nFactory(mw.config....&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;// Author: pcj&lt;br /&gt;
&lt;br /&gt;
mw.loader.using([&amp;quot;site&amp;quot;]).then(function() {&lt;br /&gt;
    if (mw.config.get(&amp;quot;wgCanonicalSpecialPageName&amp;quot;) !== &amp;quot;Upload&amp;quot;)&lt;br /&gt;
        return;&lt;br /&gt;
 &lt;br /&gt;
    var l10nFactory = l10nFactory || function($lang, $data) {&lt;br /&gt;
        return function ($key) {&lt;br /&gt;
            // (null == undefined) is true, (null === undefined) is false&lt;br /&gt;
            return ($data[$lang] &amp;amp;&amp;amp; $data[$lang][$key] != null) ? $data[$lang][$key] : $data.en[$key];&lt;br /&gt;
        };&lt;br /&gt;
    };&lt;br /&gt;
 &lt;br /&gt;
    const l10n = l10nFactory(mw.config.get(&amp;quot;wgUserLanguage&amp;quot;), {&lt;br /&gt;
        en: {&lt;br /&gt;
            multiupload: &amp;quot;Upload multiple files:&amp;quot;,&lt;br /&gt;
            yes: &amp;quot;Yes&amp;quot;,&lt;br /&gt;
            no: &amp;quot;No&amp;quot;,&lt;br /&gt;
            sourcefiles: &amp;quot;Source files:&amp;quot;,&lt;br /&gt;
            categoryname: &amp;quot;Category name:&amp;quot;,&lt;br /&gt;
            categorynamehint: &amp;quot;Page name of the category the files will automatically be added to, e.g. Item images&amp;quot;,&lt;br /&gt;
            categorynamespace: &amp;quot;Category&amp;quot;,&lt;br /&gt;
            uploadfiles: &amp;quot;Upload files&amp;quot;,&lt;br /&gt;
            nofiles: &amp;quot;Please select some files first.&amp;quot;,&lt;br /&gt;
            nolicense: &amp;quot;Please select a valid license first.&amp;quot;,&lt;br /&gt;
            summary: &amp;quot;Summary&amp;quot;,&lt;br /&gt;
            license: &amp;quot;Licensing&amp;quot;,&lt;br /&gt;
            categories: &amp;quot;Categories&amp;quot;,&lt;br /&gt;
            uploading: &amp;quot;Uploading files...&amp;quot;,&lt;br /&gt;
            uploaded: &amp;quot;Uploaded:&amp;quot;,&lt;br /&gt;
            failed: &amp;quot;Failed:&amp;quot;,&lt;br /&gt;
            done: &amp;quot;Done.&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    });&lt;br /&gt;
 &lt;br /&gt;
    const getUploadDescription = function() {&lt;br /&gt;
        var sections = [];&lt;br /&gt;
 &lt;br /&gt;
        var summary = $(&amp;quot;#wpUploadDescription&amp;quot;).val();&lt;br /&gt;
        var licenseDisplayName = $(&amp;quot;#wpLicense option:selected&amp;quot;).val();&lt;br /&gt;
        var categoryName = $(&amp;quot;#multiFileCategory&amp;quot;).val();&lt;br /&gt;
 &lt;br /&gt;
        if (summary !== &amp;quot;&amp;quot;)&lt;br /&gt;
            sections.push(&amp;quot;== &amp;quot; + l10n(&amp;quot;summary&amp;quot;) + &amp;quot; ==\n&amp;quot; + summary);&lt;br /&gt;
 &lt;br /&gt;
        if (licenseDisplayName !== &amp;quot;&amp;quot;) {&lt;br /&gt;
            var licenseTemplateText = $(&amp;quot;#wpLicense option:selected&amp;quot;).prop(&amp;quot;title&amp;quot;);&lt;br /&gt;
            sections.push(&amp;quot;== &amp;quot; + l10n(&amp;quot;license&amp;quot;) + &amp;quot; ==\n&amp;quot; + licenseTemplateText);&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        if (categoryName !== &amp;quot;&amp;quot;)&lt;br /&gt;
            sections.push(&amp;quot;[[&amp;quot; + l10n(&amp;quot;categorynamespace&amp;quot;) + &amp;quot;:&amp;quot; + categoryName + &amp;quot;]]&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
        return sections.join(&amp;quot;\n\n&amp;quot;);&lt;br /&gt;
    };&lt;br /&gt;
 &lt;br /&gt;
    const getWatchlistPreference = function() {&lt;br /&gt;
        if ($(&amp;quot;#wpWatchthis&amp;quot;).is(&amp;quot;:checked&amp;quot;)) {&lt;br /&gt;
            return &amp;quot;watch&amp;quot;;&lt;br /&gt;
        } else {&lt;br /&gt;
            return &amp;quot;nochange&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
    };&lt;br /&gt;
    &lt;br /&gt;
    $(function(){&lt;br /&gt;
        $(&amp;quot;#wpUploadFile&amp;quot;).parent().parent().addClass(&amp;quot;regularFileSelect&amp;quot;);&lt;br /&gt;
        $(&amp;quot;tr.regularFileSelect&amp;quot;).before(&amp;#039;&amp;lt;tr&amp;gt;&amp;lt;td class=&amp;quot;mw-label&amp;quot;&amp;gt;&amp;#039;+ l10n(&amp;quot;multiupload&amp;quot;) + &amp;#039;&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;mw-input&amp;quot;&amp;gt;&amp;lt;label&amp;gt;&amp;lt;input type=&amp;quot;radio&amp;quot; name=&amp;quot;multipleFiles&amp;quot; value=&amp;quot;&amp;#039;+ l10n(&amp;quot;yes&amp;quot;) + &amp;#039;&amp;quot; /&amp;gt; &amp;#039;+ l10n(&amp;quot;yes&amp;quot;) + &amp;#039;&amp;lt;/label&amp;gt; &amp;amp;nbsp; &amp;lt;label&amp;gt;&amp;lt;input type=&amp;quot;radio&amp;quot; name=&amp;quot;multipleFiles&amp;quot; value=&amp;quot;&amp;#039;+ l10n(&amp;quot;no&amp;quot;) + &amp;#039;&amp;quot; checked=&amp;quot;&amp;quot; /&amp;gt; &amp;#039;+ l10n(&amp;quot;no&amp;quot;) + &amp;#039;&amp;lt;/label&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;#039;);&lt;br /&gt;
        $(&amp;quot;tr.regularFileSelect&amp;quot;).after(&amp;#039;&amp;lt;tr class=&amp;quot;multipleFileSelect&amp;quot; style=&amp;quot;display:none;&amp;quot;&amp;gt;&amp;lt;td class=&amp;quot;mw-label&amp;quot;&amp;gt;&amp;#039; + l10n(&amp;quot;sourcefiles&amp;quot;) + &amp;#039;&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;mw-input&amp;quot;&amp;gt;&amp;lt;input type=&amp;quot;file&amp;quot; id=&amp;quot;multiupload&amp;quot; multiple /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;#039;);&lt;br /&gt;
        $(&amp;quot;input[name=&amp;#039;wpUpload&amp;#039;]&amp;quot;).addClass(&amp;quot;regularFileSelect&amp;quot;);&lt;br /&gt;
        $(&amp;quot;#wpDestFile&amp;quot;).parent().parent().addClass(&amp;quot;regularFileSelect&amp;quot;);&lt;br /&gt;
        $(&amp;quot;#wpIgnoreWarning&amp;quot;).parent().parent().addClass(&amp;quot;regularFileSelect&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
        // Append &amp;quot;category name&amp;quot; textbox to multiupload section&lt;br /&gt;
        $(&amp;quot;#mw-upload-form #mw-htmlform-description tbody&amp;quot;).append(&amp;#039;&amp;lt;tr class=&amp;quot;mw-htmlform-field-HTMLTextField multipleFileSelect&amp;quot; style=&amp;quot;display:none;&amp;quot;&amp;gt;&amp;lt;td class=&amp;quot;mw-label&amp;quot;&amp;gt;&amp;lt;label for=&amp;quot;multiFileCategory&amp;quot;&amp;gt;&amp;lt;abbr title=&amp;quot;&amp;#039; + l10n(&amp;quot;categorynamehint&amp;quot;) + &amp;#039;&amp;quot;&amp;gt;&amp;#039; + l10n(&amp;quot;categoryname&amp;quot;) + &amp;#039;&amp;lt;/abbr&amp;gt;&amp;lt;/label&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;mw-input&amp;quot;&amp;gt;&amp;lt;input id=&amp;quot;multiFileCategory&amp;quot; name=&amp;quot;multiFileCategory&amp;quot; size=&amp;quot;60&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;#039;);&lt;br /&gt;
 &lt;br /&gt;
        $(&amp;quot;input[name=&amp;#039;wpUpload&amp;#039;]&amp;quot;).after(&amp;#039;&amp;lt;input type=&amp;quot;button&amp;quot; value=&amp;quot;&amp;#039; + l10n(&amp;quot;uploadfiles&amp;quot;) + &amp;#039;&amp;quot; class=&amp;quot;multipleFileSelect&amp;quot; style=&amp;quot;display:none;&amp;quot; id=&amp;quot;multiFileSubmit&amp;quot; /&amp;gt;&amp;#039;);&lt;br /&gt;
        $(&amp;quot;input[name=&amp;#039;multipleFiles&amp;#039;]&amp;quot;).change(function() {&lt;br /&gt;
            if (this.value === l10n(&amp;quot;yes&amp;quot;)) {&lt;br /&gt;
                $(&amp;quot;.regularFileSelect&amp;quot;).hide();&lt;br /&gt;
                $(&amp;quot;.multipleFileSelect&amp;quot;).show();&lt;br /&gt;
            } else {&lt;br /&gt;
                $(&amp;quot;.regularFileSelect&amp;quot;).show();&lt;br /&gt;
                $(&amp;quot;.multipleFileSelect&amp;quot;).hide();&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
 &lt;br /&gt;
        $(&amp;quot;#multiFileSubmit&amp;quot;).click(function() {&lt;br /&gt;
            var files = $(&amp;quot;#multiupload&amp;quot;)[0].files;&lt;br /&gt;
 &lt;br /&gt;
            // Cancel upload if no files are selected&lt;br /&gt;
            if (files.length === 0) {&lt;br /&gt;
                alert(l10n(&amp;quot;nofiles&amp;quot;));&lt;br /&gt;
                return false;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            // Description is summary + license + category&lt;br /&gt;
            var description = getUploadDescription();&lt;br /&gt;
            var watch = getWatchlistPreference();&lt;br /&gt;
 &lt;br /&gt;
            $(&amp;quot;#firstHeading&amp;quot;).text(l10n(&amp;quot;uploading&amp;quot;));&lt;br /&gt;
            $(&amp;quot;#mw-content-text&amp;quot;).html(&amp;quot;&amp;lt;h3&amp;gt;&amp;quot; + l10n(&amp;quot;uploaded&amp;quot;)  + &amp;quot;&amp;lt;/h3&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;div style=&amp;#039;display:none;&amp;#039; id=&amp;#039;multiUploadFailed&amp;#039;&amp;gt;&amp;lt;h3&amp;gt;&amp;quot; + l10n(&amp;quot;failed&amp;quot;) + &amp;quot;&amp;lt;/h3&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;);&lt;br /&gt;
            &lt;br /&gt;
            var currentFileIdx = 0;&lt;br /&gt;
            var uploadCurrentFile;&lt;br /&gt;
            uploadCurrentFile = function() {&lt;br /&gt;
                if (currentFileIdx &amp;gt; files.length) {&lt;br /&gt;
                    $(&amp;quot;#mw-content-text&amp;quot;).append(&amp;quot;&amp;lt;h3&amp;gt;&amp;quot;+ l10n(&amp;quot;done&amp;quot;) + &amp;quot;&amp;lt;/h3&amp;gt;&amp;quot;);&lt;br /&gt;
                    return;&lt;br /&gt;
                }&lt;br /&gt;
 &lt;br /&gt;
                if (files[currentFileIdx] === undefined) {&lt;br /&gt;
                    currentFileIdx++;&lt;br /&gt;
                    uploadCurrentFile();&lt;br /&gt;
                    return;&lt;br /&gt;
                }&lt;br /&gt;
 &lt;br /&gt;
                fd = new FormData();&lt;br /&gt;
                fd.append(&amp;quot;action&amp;quot;, &amp;quot;upload&amp;quot;);&lt;br /&gt;
                fd.append(&amp;quot;token&amp;quot;, mw.user.tokens.get(&amp;quot;csrfToken&amp;quot;));&lt;br /&gt;
                fd.append(&amp;quot;filename&amp;quot;, files[currentFileIdx].name);&lt;br /&gt;
                fd.append(&amp;quot;file&amp;quot;, files[currentFileIdx]);&lt;br /&gt;
                fd.append(&amp;quot;text&amp;quot;, description);&lt;br /&gt;
                fd.append(&amp;quot;watchlist&amp;quot;, watch);&lt;br /&gt;
                fd.append(&amp;quot;ignorewarnings&amp;quot;, 1);&lt;br /&gt;
                fd.append(&amp;quot;format&amp;quot;, &amp;quot;json&amp;quot;);&lt;br /&gt;
                &lt;br /&gt;
                $.ajax({&lt;br /&gt;
                    url: mw.util.wikiScript(&amp;quot;api&amp;quot;),&lt;br /&gt;
                    method: &amp;quot;POST&amp;quot;,&lt;br /&gt;
                    data: fd,&lt;br /&gt;
                    cache: false,&lt;br /&gt;
                    contentType: false,&lt;br /&gt;
                    processData: false,&lt;br /&gt;
                    type: &amp;quot;POST&amp;quot;&lt;br /&gt;
                }).done(function(d) {&lt;br /&gt;
                    if (d.error == undefined) {&lt;br /&gt;
                        $(&amp;quot;#mw-content-text &amp;gt; ul&amp;quot;).append(&amp;#039;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;&amp;#039; + d.upload.imageinfo.descriptionurl + &amp;#039;&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;&amp;#039; + d.upload.filename + &amp;#039;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;#039;);&lt;br /&gt;
                    } else {&lt;br /&gt;
                        $(&amp;quot;#multiUploadFailed ul&amp;quot;).append(&amp;#039;&amp;lt;li&amp;gt;&amp;#039; + files[currentFileIdx].name + &amp;#039;&amp;lt;/li&amp;gt;&amp;#039;);&lt;br /&gt;
                        $(&amp;quot;#multiUploadFailed&amp;quot;).show();&lt;br /&gt;
                    }&lt;br /&gt;
                    currentFileIdx++;&lt;br /&gt;
                    uploadCurrentFile();&lt;br /&gt;
                }).fail(function() {&lt;br /&gt;
                    $(&amp;quot;#multiUploadFailed ul&amp;quot;).append(&amp;#039;&amp;lt;li&amp;gt;&amp;#039; + files[currentFileIdx].name + &amp;#039;&amp;lt;/li&amp;gt;&amp;#039;);&lt;br /&gt;
                    $(&amp;quot;#multiUploadFailed&amp;quot;).show();&lt;br /&gt;
                    currentFileIdx++;&lt;br /&gt;
                    uploadCurrentFile();&lt;br /&gt;
                });&lt;br /&gt;
            };&lt;br /&gt;
            uploadCurrentFile();&lt;br /&gt;
        });&lt;br /&gt;
    });&lt;br /&gt;
});&lt;/div&gt;</summary>
		<author><name>Trig Jegman</name></author>
	</entry>
</feed>