From 3cca7a070442ab9c33d68ba52edd0c55671553ad Mon Sep 17 00:00:00 2001 From: Devin Cowan Date: Thu, 22 Aug 2024 10:48:32 -0400 Subject: [PATCH 1/3] Persiste icons on filter --- frontend/src/stores/map.js | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/frontend/src/stores/map.js b/frontend/src/stores/map.js index 88aaa7c..08c4116 100644 --- a/frontend/src/stores/map.js +++ b/frontend/src/stores/map.js @@ -53,7 +53,14 @@ export const useMapStore = defineStore('map', () => { }) } - var textIcon = L.IconMaterial.icon({ + const pointToLayer = (feature, latlng) => { + if (feature.properties.model_type.name === 'Text model') { + return L.marker(latlng, { icon: textIcon }) + } + return L.marker(latlng, { icon: figureIcon }) + } + + let textIcon = L.IconMaterial.icon({ icon: 'article', // Name of Material icon iconColor: 'white', // Material icon color (could be rgba, hex, html name...) markerColor: 'grey', // Marker fill color @@ -79,12 +86,7 @@ export const useMapStore = defineStore('map', () => { onEachFeature: (feature, layer) => { onEachFeature(feature, layer) }, - pointToLayer: (feature, latlng) => { - if (feature.properties.model_type.name === 'Text model') { - return L.marker(latlng, { icon: textIcon }) - } - return L.marker(latlng, { icon: figureIcon }) - } + pointToLayer: pointToLayer }) layerGroup.value.addLayer(modelFeatures.value) } @@ -100,7 +102,8 @@ export const useMapStore = defineStore('map', () => { }, onEachFeature: (feature, layer) => { onEachFeature(feature, layer) - } + }, + pointToLayer: pointToLayer }) // add filtered features layerGroup.value.addLayer(modelFeatures.value) From 5630b4f4d58206b413a6be73541b6c891434c259 Mon Sep 17 00:00:00 2001 From: Devin Cowan Date: Thu, 22 Aug 2024 11:58:40 -0400 Subject: [PATCH 2/3] Add loading indicator --- frontend/src/components/FilterDrawer.vue | 18 +++++++++++++----- frontend/src/components/TheLeafletMap.vue | 9 +++++++-- frontend/src/stores/map.js | 4 +++- frontend/src/views/MapView.vue | 6 +++++- 4 files changed, 28 insertions(+), 9 deletions(-) diff --git a/frontend/src/components/FilterDrawer.vue b/frontend/src/components/FilterDrawer.vue index de01eb1..e0b27c3 100644 --- a/frontend/src/components/FilterDrawer.vue +++ b/frontend/src/components/FilterDrawer.vue @@ -8,11 +8,14 @@

Model Filters

+ label="Process Taxonomies" @update:modelValue="filter" clearable chips multiple + :loading="filtering"> + label="Spatial Zones" @update:modelValue="filter" clearable chips multiple + :loading="filtering"> + item-value="id" label="Temporal Zones" @update:modelValue="filter" clearable chips multiple + :loading="filtering"> Search Text Within: @@ -25,13 +28,14 @@ + From eba229ed0b1d23c97cde1040c46aa79b9cc1a74f Mon Sep 17 00:00:00 2001 From: Devin Cowan Date: Thu, 22 Aug 2024 12:04:26 -0400 Subject: [PATCH 3/3] Improve map popup content display --- frontend/src/stores/map.js | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/frontend/src/stores/map.js b/frontend/src/stores/map.js index 3485237..b230ddc 100644 --- a/frontend/src/stores/map.js +++ b/frontend/src/stores/map.js @@ -14,15 +14,14 @@ export const useMapStore = defineStore('map', () => { function onEachFeature(feature, layer) { let content = `

Perceptual model of ${feature.properties.location.long_name}

` content += `

${feature.properties.citation.citation}

` - content += '
' - content += `

${feature.properties.model_type.name}

` + content += '

' + content += `

${feature.properties.model_type.name}

` if (feature.properties.model_type.name === 'Text model') { content += `

${feature.properties.textmodel_snipped}

` } else { content += `` } - content += '
' - + content += '

' content += '

Processes:

' content += '
    ' feature.properties.process_taxonomies.forEach((process_taxonomy) => { @@ -33,7 +32,7 @@ export const useMapStore = defineStore('map', () => { feature.properties.spatial_zone_type?.spatial_property && feature.properties.spatial_zone_type.spatial_property != 'N' ) { - content += '
    ' + content += '

    ' content += '

    Spatial zone:

    ' content += `${feature.properties.spatial_zone_type.spatial_property}` } @@ -42,7 +41,7 @@ export const useMapStore = defineStore('map', () => { feature.properties.temporal_zone_type?.temporal_property && feature.properties.temporal_zone_type.temporal_property != 'N' ) { - content += '
    ' + content += '

    ' content += '

    Temporal zone:

    ' content += `${feature.properties.temporal_zone_type.temporal_property}` }