stellasia / neomap

A Neo4j Desktop application to visualize nodes with geographic attributes on a map.
GNU General Public License v3.0
106 stars 13 forks source link

Enhanced master fix #89

Closed okjodom closed 3 years ago

okjodom commented 3 years ago
  1. Enhance neo4j driver fix. - Propose a targeted fix to singleton neo4j driver boot without re-introducing block to app boot
  2. New layer creation - Improve create new layer / update layer functionality flows. Autogenerate new layer title on create by generating random names when none is provided. Fix layer deletion
  3. Map rendering - Fix map rendering logic, especially on updates and refresh.

Note: Map rendering doesn't have sufficient unit tests and we should aim for an overall improvement on testing and dev loop experience.

okjodom commented 3 years ago

@stellasia, please review :)

okjodom commented 3 years ago

Also note that the added layer is still created using the data from the layer that has just been added - I was not able to understand why yet - but that's another issue.

The placeholder data we have in NEW_LAYER, has little to no association to actual layer data from the graph. Notice when you're creating the first layer from this seed data, you have to take care and fill in all fields appropriately including title, selecting from graph values to replace the placeholders. On the other hand, creating a layer (cloning) from another map-renderable layer is faster and much safer since a user changes just a subset of the fields, for example, just the render option from point to heatmap, or just the pop-up field from name to area.

Generally, it's not great practice to seed your interface with placeholder data like NEW_LAYER before you have user's data to present. In which case, I propose we move towards removing the use of NEW_LAYER and allow the following app behavior 1) creating layers from scratch, so long as we have a graph connection. 2) Allow independent updates of an existing layer. 3) Allow cloning of a layer into an exact copy of current layer, or into a variant