-
-
Notifications
You must be signed in to change notification settings - Fork 503
GeoNetwork UI and microservices codesprint October 2020
- 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
- Francois - full week
- Florent - Tuesday, Wednesday
- Olivier - Tuesday, Wednesday
- Christophe - Tuesday, Wednesday
- Michel - Tuesday, Wednesday
- Jose - Tuesday, Wednesday
- ...
The overall idea:
2 topics to make progress on
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
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
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
- ...
If you have some comments, start a discussion, raise an issue or use one of our other communication channels to talk to us.