MediaWiki:Asset.js
Appearance
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.
$(document).ready(function () {
function field(name) {
return $("[name='Asset[" + name + "]']");
}
function generateIdentifier() {
const chapter = field("Chapter").val();
const place = field("Place").val();
const org = field("Organisation").val();
if (!chapter) return;
if (place && org) {
alert("Select either a Place OR an Organisation.");
return;
}
if (!place && !org) return;
new mw.Api().get({
action: "scribunto-console",
title: "Module:AssetID",
question:
"return require('Module:AssetID').generate{" +
"Chapter='" + chapter + "'," +
"Place='" + place + "'," +
"Organisation='" + org + "'}"
}).done(function (data) {
const result = JSON.parse(data.return);
if (result.error) {
alert(result.error);
return;
}
// Store hidden values
field("Label").val(result.identifier);
field("Sequence").val(result.sequence);
// Display values
$("#asset-identifier-display").text(result.identifier);
$("#asset-sequence-display").text(result.sequence);
// Override page name
$("input[name='pfFormPageName']").val(result.identifier);
});
}
field("Chapter").change(generateIdentifier);
field("Place").change(generateIdentifier);
field("Organisation").change(generateIdentifier);
$("input[type='file']").on("change", function () {
if (!this.files[0]) return;
const name = this.files[0].name;
field("OriginalFilename").val(name);
$("#asset-originalfilename-display").text(name);
});
});