Esri / geoportal-server

Geoportal Server is a standards-based, open source product that enables discovery and use of geospatial resources including data and services.
https://gptogc.esri.com/geoportal
Apache License 2.0
245 stars 149 forks source link

Esri Geoportal Server 2.6.1 - extending predefined metadata profiles and compatibility the INSPIRE profile in accordance with new version of Technical Guidance #316

Closed AnetaMer closed 4 years ago

AnetaMer commented 5 years ago

I have two issues that I would like to express.

During delivering Geoportal Server Catalog 2.6.1 for one of our most important clients we faced problems with extending predefined metadata profiles and with compatibility the INSPIRE profile for datasets and service in accordance with the new version of the Technical Guidance for the implementation of INSPIRE dataset and service metadata based on ISO/TS 19139:2007.

1) Problems with extending predefined metadata profiles

As a guideline we are using example published on github https://github.com/Esri/geoportal-server-catalog/tree/master/geoportal/src/main/webapp/app/gxe/types/myprofile/

but this example handles only situation of manipulating existing elements or attributes throughout inherited methods defined in MyProfileDocumentType.js i.e: • beforeInitializeElement •
• afterInitializeElement •
• beforeInitializeAttribute • afterInitializeAttribute

We need to fulfill requirement to add new element to xml other than defined in https://github.com/Esri/geoportal-server-catalog/blob/master/geoportal/src/main/webapp/app/gxe/types/myprofile/base/templates/DataRoot.html

our purpose is to add two additional elements into CI_OnlineRsource element

http://adres_do_uslugi_wms/?REQUEST=GetCapabilities&SERVICE=WMS WMS service WMS service details information What have we done to achieve this result: 1. copied standard iso 19115 definition of gmd/Distrubtion into C:\apache-tomcat-8.5.37\webapps\ 2. renamed files - adding prefix 'My' to distinguish from original implementation 3. updated references to js and html files 4. Add gmd:name and gml:description nodes to C:\apache-tomcat-8.5.37\webapps\geoportal\app\gxe\types\myprofile\gmd\distribution\templates\MyTransferOptions.html 5. Updated reference in C:\apache-tomcat-8.5.37\webapps\geoportal\app\gxe\types\myprofile\base\DataRoot.js and C:\apache-tomcat-8.5.37\webapps\geoportal\app\gxe\types\myprofile\base\templates\DataRoot.html 6. We modified dojoConfig to be sure that new files were loaded properly After all these steps we got an error: description"uniqName_15: parser returned unfilled promise (probably waiting for module auto-load), unsupported by _WidgetsInTemplateMixin. Must pre-load all supporting widgets before instantiation." We found a workaround for this situation by not referring our own classes but to original one by override implementation "on the fly" But then we are getting another error "multipuleDefine for "https://js.arcgis.com/3.22/esri/dijit/metadata/types/iso/gmd/distribution/Distribution.js" and it causes a situation when every Distribution node in all iso depended profiles in our catalog gets custom implementation. Can you provide us some instructions what we are doing wrong, some working example with adding/removing whole elements, or how to modify more sophisticated metadata profile i.e Inspire. We can provide live presentation of our problems 2) Problems with compatibility the INSPIRE profile for datasets and service in accordance with the new version of the Technical Guidance for the implementation of INSPIRE dataset and service metadata based on ISO/TS 19139:2007. For example: - in some cases, an INSPIRE metadata element is mapped to a free text element in ISO 19139, but these TGs recommend or require the use of code list value through an gmx:Anchor element TG Recommendation C.8: metadata/2.0/rec/common/use-anchors-for-cv-keywords If the keywords from controlled vocabularies are used and the individual keywords have a specified canonical URI within that controlled vocabulary, these keywords should be encoded using the gmd:keyword/gmx:Anchor element. The xlink:href attribute of the gmx:Anchor element should be used for referring to the canonical URI of the keyword. At the moment Esri Geoportal Server doesn’ t support this mechanism. - the following element is not correctly implemented: limitation on public access (other constraints) In accordance with TG the domain of this element shall be the following code list: http://inspire.ec.europa.eu/metadata-codelist/LimitationsOnPublicAccess see: TG Requirement C.18: metadata/2.0/req/common/conditions-for-access-and-use and C.2.22 Limitations on public access Are you planning to adapt this product to the new technical guidelines?
valentinedwv commented 5 years ago

Sounds like work that can be used by many. Can I suggest that you pull tree, create a branch do a local build, and then submit a patch skip the My, and just modify to the files to the spec, and submit changes.

Do in small steps, one change, one commit.

When I see something like: uniqName_15: parser returned unfilled promise

my experience says:

  1. did my change cause the javascript file to be invalid, or the template to be invalid
  2. did I add or take away from the declared modules, and did I add the object reference in the right place. Order is important.
  3. did I misspell a template name, or copy a file and not change the template.
mhogeweg commented 4 years ago

hi @AnetaMer, this issue applies to Geoportal 2.x, not 1.x. please refer to the separate GitHub repository. Support for the new INSPIRE metadata profile is actively being developed by our team with a plan to release a new version of 2.x this spring.