5 805
edições
Sem resumo de edição |
Sem resumo de edição |
||
Linha 15: | Linha 15: | ||
.maps__select, | .maps__select, | ||
.input-group input[type="text"] { | .input-group input[type="text"], | ||
.input-group button { | |||
width: 100%; | width: 100%; | ||
padding: 10px; | padding: 10px; | ||
Linha 60: | Linha 61: | ||
background-color: #15864e; | background-color: #15864e; | ||
color: #fff; | color: #fff; | ||
} | } | ||
Linha 134: | Linha 129: | ||
<label for="filterType">Filtrar Por</label> | <label for="filterType">Filtrar Por</label> | ||
<select id="filterType" class="maps__select"> | <select id="filterType" class="maps__select"> | ||
<option value="number">Filtrar por Número</option> | <option value="number">Filtrar por Número</option> | ||
</select> | </select> | ||
<input type="text" id="searchIds" placeholder="Digite os números separados por vírgula"> | <input type="text" id="searchIds" placeholder="Digite os números separados por vírgula"> | ||
<button id="filterButton" class="maps__select">Filtrar</button> | |||
</div> | </div> | ||
Linha 149: | Linha 144: | ||
<script> | <script> | ||
const specificOptions = { | const specificOptions = { | ||
1: { // Mapa Vermelho | 1: { // Mapa Vermelho | ||
Linha 183: | Linha 168: | ||
const enableFilter = document.getElementById('enableFilter'); | const enableFilter = document.getElementById('enableFilter'); | ||
const searchIdsInput = document.getElementById('searchIds'); | const searchIdsInput = document.getElementById('searchIds'); | ||
const filterButton = document.getElementById('filterButton'); | |||
function updateTags() { | function updateTags() { | ||
Linha 204: | Linha 190: | ||
button.classList.add('tag-button'); | button.classList.add('tag-button'); | ||
button.addEventListener('click', () => { | button.addEventListener('click', () => { | ||
button.classList.toggle('selected'); | |||
filterImages(); | |||
}); | }); | ||
tagButtons.appendChild(button); | tagButtons.appendChild(button); | ||
}); | }); | ||
tagButtons.classList.toggle('hidden', tags.length === 0); | tagButtons.classList.toggle('hidden', tags.length === 0); | ||
Linha 243: | Linha 214: | ||
if (selectedOption && options[selectedOption]) { | if (selectedOption && options[selectedOption]) { | ||
itemsToFilter = options[selectedOption]; | itemsToFilter = options[selectedOption]; | ||
} | |||
} | |||
} else { | |||
// If no map type is selected, gather items from all map types | |||
for (const mapType in specificOptions) { | |||
for (const local in specificOptions[mapType]) { | |||
itemsToFilter = itemsToFilter.concat(specificOptions[mapType][local]); | |||
} | } | ||
} | } | ||
Linha 256: | Linha 234: | ||
} | } | ||
itemsToFilter.forEach(item => { | |||
const imgItem = document.createElement('div'); | |||
imgItem.classList.add('image-item'); | |||
imgItem.innerHTML = ` | |||
<img src="${item.imageUrl}" alt="Mapa"> | |||
<div class="image-info"> | |||
<p><strong>Número:</strong> ${item.id}</p> | |||
<p><strong>Local:</strong> ${item.local}</p> | |||
<p><strong>Coordenada:</strong> ${item.coordinates}</p> | |||
<p><strong>Tag(s):</strong> ${item.tags.join(', ')}</p> | |||
</div> | |||
`; | |||
imageContainer.appendChild(imgItem); | |||
}); | |||
} | } | ||
function toggleFilter() { | |||
const isChecked = enableFilter.checked; | |||
filterOptions.classList.toggle('hidden', !isChecked); | |||
mapTypeSelect.disabled = isChecked; | |||
specificOptionSelect.disabled = isChecked; | |||
tagButtons.classList.toggle('hidden', !isChecked); | |||
searchIdsInput.value = ''; | |||
imageContainer.innerHTML = ''; // Clear images when filter is enabled | |||
} | |||
function resetFilter() { | |||
enableFilter.checked = false; | |||
toggleFilter(); | |||
mapTypeSelect.value = ''; | |||
specificOptionSelect.value = ''; | |||
searchIdsInput.value = ''; | |||
filterImages(); | |||
} | |||
enableFilter.addEventListener('change', toggleFilter); | |||
filterButton.addEventListener('click', () => { | |||
filterImages(); | |||
}); | }); | ||
// Initialize with the filter deactivated | |||
toggleFilter(); | |||
</script> | </script> | ||
</body> | </body> | ||
</html> | </html> |