Search filters interactions

This commit is contained in:
2026-06-15 10:18:18 +02:00
parent 9060ff07b5
commit 9b53921700
2 changed files with 35 additions and 3 deletions

View File

@@ -93,12 +93,33 @@
<div class="control is-full-width"> <div class="control is-full-width">
<input class="input" type="text" minlength="3" name="text" placeholder="Inserire parole chiave" /> <input class="input" type="text" minlength="3" name="text" placeholder="Inserire parole chiave" />
</div> </div>
</div>
<div class="field">
<label class="label">Categoria rinvenimento</label>
<div class="control">
<div class="select">
<select name="category"
data-search-target="category"
data-action="change->search#disableTechnique">
<option default value="">-- Scegliere categoria --</option>
<option>Arredo</option>
<option>Abbigliamento e ornamenti personali</option>
<option>Decorazione parietale</option>
<option>Epigrafe</option>
<option>Elemento architettonico</option>
<option>Pavimentazione</option>
<option>Scultura</option>
</select>
</div>
</div>
</div> </div>
<div class="field"> <div class="field">
<label class="label">Tecnica muraria</label> <label class="label">Tecnica muraria</label>
<div class="control"> <div class="control">
<div class="select"> <div class="select">
<select name="technique"> <select name="technique"
data-search-target="technique"
data-action="change->search#disableCategory">
<option default value="">-- Scegliere tecnica --</option> <option default value="">-- Scegliere tecnica --</option>
<option>Opera poligonale</option> <option>Opera poligonale</option>
<option>Opera incerta</option> <option>Opera incerta</option>

View File

@@ -11,14 +11,25 @@ export default class extends Controller {
'results', 'results',
'clear', 'clear',
'container', 'container',
'category',
'technique',
]; ];
disableTechnique() {
this.techniqueTarget.disabled = true;
}
disableCategory() {
this.categoryTarget.disabled = true;
}
/** /**
* *
* @param {Event} event * @param {Event} event
*/ */
async submitSearch(event) { async submitSearch(event) {
event.preventDefault(); event.preventDefault();
// Re-enable disabled filters, if any
this.categoryTarget.disabled = false;
this.techniqueTarget.disabled = false;
const data = new FormData(event.target); const data = new FormData(event.target);
const body = {}; const body = {};
const map = GisState.map; const map = GisState.map;
@@ -44,8 +55,6 @@ export default class extends Controller {
map.setZoom(INIT_ZOOM); map.setZoom(INIT_ZOOM);
this.#filterMap(results); this.#filterMap(results);
console.debug(results);
// Should technique always be shown after a search? // Should technique always be shown after a search?
for (const key of Object.keys(techsMarkers)) { for (const key of Object.keys(techsMarkers)) {
for (const record of results.sites) { for (const record of results.sites) {
@@ -59,6 +68,8 @@ export default class extends Controller {
} }
clearSearch() { clearSearch() {
this.categoryTarget.disabled = false;
this.techniqueTarget.disabled = false;
const map = GisState.map; const map = GisState.map;
// Restore layer groups in map // Restore layer groups in map