From 48927b21f7b55f00fcdf589b5c64c0e689367052 Mon Sep 17 00:00:00 2001 From: Fen Dweller Date: Wed, 25 Mar 2020 12:57:31 -0400 Subject: [PATCH] Add a dropdown box to select an entity --- macrovision.html | 8 ++++++++ macrovision.js | 24 ++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/macrovision.html b/macrovision.html index d023a8d5..099b1186 100644 --- a/macrovision.html +++ b/macrovision.html @@ -134,6 +134,14 @@ +
+ Selected Entity +
+
+ +

Entity options

diff --git a/macrovision.js b/macrovision.js index 04b33e23..cc2c281a 100644 --- a/macrovision.js +++ b/macrovision.js @@ -408,6 +408,8 @@ function deselect() { selected.classList.remove("selected"); } + document.getElementById("options-selected-entity-none").selected = "selected"; + clearAttribution(); selected = null; @@ -421,6 +423,8 @@ function select(target) { selected = target; selectedEntity = entities[target.dataset.key]; + document.getElementById("options-selected-entity-" + target.dataset.key).selected = "selected"; + selected.classList.add("selected"); displayAttribution(selectedEntity.views[selectedEntity.view].image.source); @@ -869,6 +873,10 @@ function removeEntity(element) { if (selected == element) { deselect(); } + + const option = document.querySelector("#options-selected-entity-" + element.dataset.key); + option.parentElement.removeChild(option); + delete entities[element.dataset.key]; const bottomName = document.querySelector("#bottom-name-" + element.dataset.key); bottomName.parentElement.removeChild(bottomName); @@ -959,6 +967,13 @@ function displayEntity(entity, view, x, y, selectEntity=false) { topName.addEventListener("click", () => select(box)); world.appendChild(topName); + + const entityOption = document.createElement("option"); + entityOption.id = "options-selected-entity-" + entityIndex; + entityOption.value = entityIndex; + entityOption.innerText = entity.name; + + document.getElementById("options-selected-entity").appendChild(entityOption); entityIndex += 1; if (config.autoFit) { fitWorld(); @@ -1156,6 +1171,15 @@ document.addEventListener("DOMContentLoaded", () => { prepareMenu(); prepareEntities(); + document.querySelector("#options-selected-entity").addEventListener("input", e => { + if (e.target.value == "none") { + deselect() + } else { + select(document.querySelector("#entity-" + e.target.value)); + } + + }); + document.querySelector("#menu-toggle-sidebar").addEventListener("click", e => { const sidebar = document.querySelector("#options"); if (sidebar.classList.contains("hidden")) {