Merge pull request #801 from goteguru/dev-namebases

Extend namebases instead of override on ctr+click
This commit is contained in:
Azgaar 2022-05-15 21:45:07 +03:00 committed by GitHub
commit b4aced98ea
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 6 deletions

View file

@ -3455,7 +3455,7 @@
<button id="namesbaseAdd" data-tip="Add new namesbase" class="icon-plus"></button> <button id="namesbaseAdd" data-tip="Add new namesbase" class="icon-plus"></button>
<button id="namesbaseDefault" data-tip="Restore default namesbase" class="icon-cancel"></button> <button id="namesbaseDefault" data-tip="Restore default namesbase" class="icon-cancel"></button>
<button id="namesbaseDownload" data-tip="Download namesbase to PC" class="icon-download"></button> <button id="namesbaseDownload" data-tip="Download namesbase to PC" class="icon-download"></button>
<button id="namesbaseUpload" data-tip="Upload a namesbase from PC" class="icon-upload"></button> <button id="namesbaseUpload" data-tip="Upload a namesbase from PC, click to override, ctrl+click to extend" class="icon-upload"></button>
<button id="namesbaseCA" data-tip="Find or share custom namesbase on Cartography Assets portal" class="icon-drafting-compass"></button> <button id="namesbaseCA" data-tip="Find or share custom namesbase on Cartography Assets portal" class="icon-drafting-compass"></button>
<button id="namesbaseAnalyze" data-tip="Analyze namesbase to get a validity and quality overview" class="icon-flask"></button> <button id="namesbaseAnalyze" data-tip="Analyze namesbase to get a validity and quality overview" class="icon-flask"></button>
<button id="namesbaseSpeak" data-tip="Speak the examples. You can change voice and language in options" class="icon-voice"></button> <button id="namesbaseSpeak" data-tip="Speak the examples. You can change voice and language in options" class="icon-voice"></button>

View file

@ -20,9 +20,13 @@ function editNamesbase() {
document.getElementById("namesbaseAnalyze").addEventListener("click", analyzeNamesbase); document.getElementById("namesbaseAnalyze").addEventListener("click", analyzeNamesbase);
document.getElementById("namesbaseDefault").addEventListener("click", namesbaseRestoreDefault); document.getElementById("namesbaseDefault").addEventListener("click", namesbaseRestoreDefault);
document.getElementById("namesbaseDownload").addEventListener("click", namesbaseDownload); document.getElementById("namesbaseDownload").addEventListener("click", namesbaseDownload);
document.getElementById("namesbaseUpload").addEventListener("click", () => document.getElementById("namesbaseToLoad").click()); document.getElementById("namesbaseUpload").addEventListener("click", () => {
document.getElementById("namesbaseToLoad").addEventListener("change", function () { const uploader = document.getElementById("namesbaseToLoad");
uploadFile(this, namesbaseUpload); uploader.dataset.override = event.ctrlKey ? "no" : "yes";
uploader.click();
});
document.getElementById("namesbaseToLoad").addEventListener("change", function (ev) {
uploadFile(this, d => namesbaseUpload(d, ev.target.dataset.override === "yes"));
}); });
document.getElementById("namesbaseCA").addEventListener("click", () => { document.getElementById("namesbaseCA").addEventListener("click", () => {
openURL("https://cartographyassets.com/asset-category/specific-assets/azgaars-generator/namebases/"); openURL("https://cartographyassets.com/asset-category/specific-assets/azgaars-generator/namebases/");
@ -221,7 +225,7 @@ function editNamesbase() {
downloadFile(data, name); downloadFile(data, name);
} }
function namesbaseUpload(dataLoaded) { function namesbaseUpload(dataLoaded, override=true) {
const data = dataLoaded.split("\r\n"); const data = dataLoaded.split("\r\n");
if (!data || !data[0]) { if (!data || !data[0]) {
tip("Cannot load a namesbase. Please check the data format", false, "error"); tip("Cannot load a namesbase. Please check the data format", false, "error");
@ -229,7 +233,7 @@ function editNamesbase() {
} }
Names.clearChains(); Names.clearChains();
nameBases = []; if (override) nameBases = [];
data.forEach(d => { data.forEach(d => {
const e = d.split("|"); const e = d.split("|");
nameBases.push({name: e[0], min: e[1], max: e[2], d: e[3], m: e[4], b: e[5]}); nameBases.push({name: e[0], min: e[1], max: e[2], d: e[3], m: e[4], b: e[5]});