Skip to content

GeoNetwork UI and microservices codesprint October 2020

François Prunayre edited this page Oct 12, 2020 · 16 revisions

When & Where?

  • 12th to 16th October (or a couple of days depending on your availability)
  • The sprint will be remote but some of us on Tuesday/Wednesday (Olivier, Florent, Christophe, Francois) join at the farm (https://latitferme.bio/), 321, Route de la Mollière, Saint-Pierre-de-Genebroz, Chambéry, Savoie, Auvergne-Rhône-Alpes, France

Who?

  • Francois - full week
  • Florent - Tuesday, Wednesday
  • Olivier - Tuesday, Wednesday
  • Christophe - Tuesday, Wednesday
  • Michel - Tuesday, Wednesday
  • Jose - Tuesday, Wednesday
  • ...

Sponsors

Agenda

The overall idea:

2 topics to make progress on

Microservices

The focus here is to design the organization of the infrastructure (gateway, config), make the project easy to work with (docker container?) and focus on some of the main components:

  • Infrastructure components & docker - Gabriel
  • Searching app (Elasticsearch endpoint + OGC API Record endpoint) - Jose, Christophe, Francois, Paul
  • Authorizing app - Christophe, Gabriel
  • Lower priority
    • Formatting app (relates to OGC API records)
    • Indexing app

The roadmap will be defined in: https://github.com/geonetwork/geonetwork-microservices/projects/1

GeoNetwork UI

Current objective here is to be able to embed easily GeoNetwork in third party application using WebComponents.

<script src=”gn-ui.min.js”/>
<gn-ui-records-list filter=”tag=COPERNICUS” sortBy=”changeDate” size=”10”/>

The work planned is:

  • Global requirements (i18n) - Olivier, Florent
  • Mockup of the following UC - Michel
  • UC - Olivier, Florent
    • UC 1 / Simple list of records
    • UC 2 / Search box
    • UC 3 / Category entry page (one facet/one icon/one number <> list of records)

Questions:

  • Can webcomponent create a popup over the entire page?
  • How to make 2 webcomponent interacts (eg. facet list/record list)

The roadmap is defined in: https://github.com/geonetwork/geonetwork-ui/wiki/Roadmap

Questions

UI templating & configuration

We want to share common layout aspects between application modules. In GN4, the "Theme" is defined by:

  • HTML base page created from XSLT (mainly to inject application UI config)
  • HTML templates used by the Angular application
  • HTML/XML/JSON/CSV produced by formatters used standalone or embedded in Angular
  • Admin > Settings > CSS - A file with variables
  • CSS/LESS files
  • JSON UI configuration

The application is working as:

  • client side only + JSON API (eg. Angular view),
  • client side + HTML API (eg. advanced view, Editor),
  • Server side only (eg. landing page).

In current requirements, we probably need the same cases:

  • Client side only + JSON API eg. simple webcomponent
  • Client side + HTML API eg. complete application
  • Server side only mode eg. OGC API Records - catalog presentation page, search page, search results, record view

How can we share the layout config for the different modes. The questions are:

  • How can we define a GeoNetwork theme?
    • CSS variables?
    • ...
  • How to define a UI configuration? Do we keep current JSON config?
  • Can we adopt a templating technology which can run/use on client and server side?
  • Can pure HTML page like OGC API Records can be nicely "augmented" by Angular when running in the browser? All informations displayed in both modes but more interactive eg. links to map viewer, map & data browser, ...
  • Global template for error pages 403, 404, 500

Technology options:

  • Embed Angular widgets in a server side rendered html page including header-footer
  • Server side Angular
  • xslt/jsp/freemarker
  • ...

Clone this wiki locally