NCEAS / metacatui

MetacatUI: A client-side web interface for DataONE data repositories
https://nceas.github.io/metacatui
Apache License 2.0
41 stars 27 forks source link

Update Pin Style #2378

Closed yvonnesjy closed 5 months ago

yvonnesjy commented 5 months ago

Because Cesium Billboard only accepts Image or Canvas, we have to do the javascript svg -> image conversion. No good way to use <i /> or style in map-view.css.

image -> image

Fixes: #2361

robyngit commented 5 months ago

I'm excited to see this! The pins aren't working on my end. In the production PDG portal, if I show the Permafrost Tunnel Tour layer, the pin doesn't show up and the console gives me:

Failed to update CesiumVectorData model styles. TypeError: pin is null

It's the same for the Local News Stories and Communities layers.

Sometimes on the first try the OLD pin in the wrong colour will show up! It's weirdly inconsistent:

Screenshot 2024-04-22 at 11 08 11 AM

I'm pleased that the error is caught and the entire map doesn't crash though! :)

yvonnesjy commented 5 months ago

Bizarrrre. I can't reproduce on my side. @robyngit Does the error come from this line? When the old pin shows up, do we get the same error?

I wonder if it's something with DOMParser.

robyngit commented 5 months ago

@yvonnesjy seems like it works for me on Chrome and not on Firefox!

The error is from just a few lines down.

Failed to update CesiumVectorData model styles. TypeError: pin is null   CesiumVectorData.js:389:19
    styleBillboard CesiumVectorData.js:613
    styleEntities CesiumVectorData.js:560
    styleEntities CesiumVectorData.js:551
    updateAppearance CesiumVectorData.js:377
    Backbone 5
    toggleVisibility LayerItemView.js:302
    jQuery 7
    Backbone 6
    layerItemViews LayerListView.js:144
    Underscore 2
    a Backbone
    render LayerListView.js:139
    render LayerCategoryItemView.js:110
    layerCategoryItemViews LayerCategoryListView.js:72
    forEach Underscore
    render LayerCategoryListView.js:71
    render LayersPanelView.js:73
    renderSectionContent ToolbarView.js:484
    render ToolbarView.js:284
    render ToolbarView.js:277
    renderToolbar MapView.js:200
    render MapView.js:141
    renderMap PortalVisualizationsView.js:117
    execCb require.js:1635

... and so on

I'm on FF 125.0.1 (64-bit), macOS Sonoma 14.4.1

yvonnesjy commented 5 months ago

Ahhh thanks for testing and catching it in FF🕵🏻‍♀️! Fixed!

robyngit commented 5 months ago

It works and looks great @yvonnesjy! Could your rebase like you did before so that this PR only shows the changes as compared to develop? Right now it's still got that issue with the Feature Info panel that you fixed in the other PR.

yvonnesjy commented 5 months ago

Rebased and pushed!