Skip to content

2.20.0

Compare
Choose a tag to compare
@laurenwalker laurenwalker released this 23 Mar 13:39
· 1177 commits to main since this release

New features 🎉

Support for downloading datasets with folder structures

The DataONE API, implemented by Metacat, now supports adding folders to datasets so that when users download a dataset via the Download All button, the data directory in the BagIt .zip file has user-defined folders to organize the data.

This is currently only supported for packages that add the folder structure by editing the resource map RDF XML. Support for displaying and adding folders with MetacatUI is in the works for the future.

By default, this option is turned off since it requires an upgrade to Metacat 2.17.0. This allows MetacatUI owners to upgrade MetacatUI before Metacat is upgraded. To use this new download BagIt format, set AppConfig#packageFormat to application%2Fbagit-1.0

Several Cesium improvements

Show notifications in Cesium layers

Add a notification to a Cesium layer to show visitors to a portal that a data alyer in Cesium is New, just a Preview, or whatever custom notification you'd like.

This adds a badge element next to the layer name in the layers list, and a longer message in the layer details panel:

Screen Shot 2022-03-18 at 13 43 29

Screen Shot 2022-03-18 at 13 43 07

Five styles of notifications are available:

Screen Shot 2022-03-18 at 13 29 34

See #1981

Made the zoom button in Cesium more obvious

Screen Shot 2022-03-23 at 9 37 37 AM

See #1976

Add option to have layer panel opened by default

Set the MapConfig#toolbarOpen option to true to have the layer panel opened by default when Cesium is first loaded onto the page.

See #1971

Misc. imporvements

  • The project field is now retrieved during searches from the DataCatalogViewWithFilters, which is used by the portal searches #1992

Bug fixes 🛠️

  • 'Cancel' button for filter editor was not working #1975
  • Handle empty EML individualName nodes #1958
  • Fix failing tests in EMLNonNumericDomain and EMLEntity suites. These tests were trying to test behavior of EML that isn't valid (adding an XML id to the EMLNonNumericDomain) or that isn't handled by MetacatUi at all, but now is (adding an XML id to entities when there isn't a connected DataONEObject) #1416
  • Fixed error in test suite where the global variable MetacatUI was not accessible, preventing much of the app from being covered by unit tests. #509

Developer notes

Important information that software developers who use MetacatUI for their repository should know

Possible breaking changes in deployments with a customized index.html or AppView

In order to support full-app unit tests (#509), MetacatUI needs to be intialized on the page without rendering the views and visual elements of the app. This requires the AppView.render() and AppView.initiliaze() methods to check that Appview.el exists on the page before rendering. If there is no AppView element on the page, the function will exit without rendering anything, causing the application to be a blank white page.

This does mean there may be a breaking change for MetacatUI owners who have changed their AppView.el to a different element (.e.g body or a different id. The default is #metacatui-app) OR have changed their index.html enough to remove the #metacatui-app element.

However this is only for advanced owners who have made significant changes to their MetacatUI deployments and should already be aware of that tech debt.

New configuration options

  • MapConfig#Notification - A notification displays a badge in the LayerListView and a message in the LayerDetailsView. This is useful for indicating some special status of the layer: "new", "under development", etc.
  • MapConfig#toolbarOpen - Whether or not the toolbar is open when the map is initialized. Set to false by default, so that the toolbar is hidden by default.

See the complete changelog: 2.19.0...2.20.0