2.20.0
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:
Five styles of notifications are available:
See #1981
Made the zoom button in Cesium more obvious
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 theDataCatalogViewWithFilters
, 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.