diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index cff43db21d2..8d473643803 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -37,7 +37,7 @@ jobs: - name: Set up Maven uses: stCarolas/setup-maven@v5 with: - maven-version: 3.6.3 + maven-version: 3.8.3 - name: Build with Maven run: | mvn -B -ntp -V install -DskipTests=true -Dmaven.javadoc.skip=true -Drelease -Pwith-doc @@ -63,7 +63,7 @@ jobs: - name: Set up Maven uses: stCarolas/setup-maven@v5 with: - maven-version: 3.6.3 + maven-version: 3.8.3 - name: Test with maven run: | mvn -B resources:resources@copy-index-schema-to-source -f web diff --git a/.gitignore b/.gitignore index 5bb1036a3a4..36df50f9368 100644 --- a/.gitignore +++ b/.gitignore @@ -37,6 +37,7 @@ out/ package-lock.json rebel.xml release/jetty/* +release-build.sh schemas/*/doc/*/*.rst schematrons/.build target/ diff --git a/cachingxslt/pom.xml b/cachingxslt/pom.xml index d654a3e9917..2c7d55b23c1 100644 --- a/cachingxslt/pom.xml +++ b/cachingxslt/pom.xml @@ -31,7 +31,7 @@ org.geonetwork-opensource geonetwork - 4.4.3-SNAPSHOT + 4.4.4-SNAPSHOT diff --git a/common/pom.xml b/common/pom.xml index 0dbdf0ab22d..275b1544a3b 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -31,7 +31,7 @@ org.geonetwork-opensource geonetwork - 4.4.3-SNAPSHOT + 4.4.4-SNAPSHOT diff --git a/core/pom.xml b/core/pom.xml index 62a22ed5308..4a58f62919a 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -27,7 +27,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.4-SNAPSHOT 4.0.0 diff --git a/csw-server/pom.xml b/csw-server/pom.xml index 5ba962cc2a5..cd7b317b79d 100644 --- a/csw-server/pom.xml +++ b/csw-server/pom.xml @@ -27,7 +27,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.4-SNAPSHOT 4.0.0 diff --git a/datastorages/cmis/pom.xml b/datastorages/cmis/pom.xml index 9ee1af76782..dd96c065dd8 100644 --- a/datastorages/cmis/pom.xml +++ b/datastorages/cmis/pom.xml @@ -28,7 +28,7 @@ gn-datastorages org.geonetwork-opensource.datastorage - 4.4.3-SNAPSHOT + 4.4.4-SNAPSHOT 4.0.0 diff --git a/datastorages/jcloud/pom.xml b/datastorages/jcloud/pom.xml index 01b948abb98..7d2dc8caeee 100644 --- a/datastorages/jcloud/pom.xml +++ b/datastorages/jcloud/pom.xml @@ -28,7 +28,7 @@ gn-datastorages org.geonetwork-opensource.datastorage - 4.4.3-SNAPSHOT + 4.4.4-SNAPSHOT 4.0.0 diff --git a/datastorages/pom.xml b/datastorages/pom.xml index 3a290e17019..790fa36bffd 100644 --- a/datastorages/pom.xml +++ b/datastorages/pom.xml @@ -28,7 +28,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.4-SNAPSHOT 4.0.0 diff --git a/datastorages/s3/pom.xml b/datastorages/s3/pom.xml index 26a0fcd7685..f93af3fd4f9 100644 --- a/datastorages/s3/pom.xml +++ b/datastorages/s3/pom.xml @@ -28,7 +28,7 @@ gn-datastorages org.geonetwork-opensource.datastorage - 4.4.3-SNAPSHOT + 4.4.4-SNAPSHOT 4.0.0 diff --git a/docs/changes/changes3.12.12-0.txt b/docs/changes/changes3.12.12-0.txt new file mode 100644 index 00000000000..43a4fce6aa0 --- /dev/null +++ b/docs/changes/changes3.12.12-0.txt @@ -0,0 +1,64 @@ +================================================================================ +=== +=== GeoNetwork 3.12.12: List of changes +=== +================================================================================ +- Documentation / GeoNetwork 3.12 doing a release fixes (#7852) +- [Backport 3.12.x] GeoNetwork harvester / Check if a resource exists to save it, instead of trying to retrieve the file details, to avoid confusing NoSuchFileException exception (#7846) +- Harvesters / Reset harvester history pagination when selecting a harvester (#7836) +- Follow up of #7279 to unify the button links in the metadata detail page as done for the analog change in main branch (#7391) +- Remove invalid empty migration added accidentally in https://github.com/geonetwork/core-geonetwork/commit/93377dd1866a5ee3f5b0098bcd1dd6188c009771 (#7821) +- Doc / Editor configuration improvements (#7826) +- [Backport 3.12.x] Bump actions/setup-java from 4.0.0 to 4.1.0 (#7816) +- [Backport 3.12.x] Fix alignment of user enabled checkbox (#7772) +- Remove handlebars.js v2.0.0 (#7762) +- update 3.12.x branch to recent sphinx-build and crank up warnings +- Addressing docs glitch #7666 creating-group and authentication-mode +- Addressing docs glitch #7666 tutorials/deployment/index +- addressing docs-glitch in install-guide/configuring-database +- addressing docs-glitch in search-ui/enrichview and search-ui/loadview +- addressing docs-glitch in install-guide/map-print-setup +- addressing docs-glitch in publishing/managing-privileges +- corrected minor typo in install-guide/map-print-setup +- Fix conversion errors after switching to MkDocs +- manual review of mkdocs glitches +- [Backport 3.12.x] Create a metadata / Add dynamic and download privileges to the users in the same group (#7748) +- Metadata detail page - don't display the resources description duplicated (#6798) +- Use the generated metadata UUID for resource links when importing metadata with the option 'Generate UUID' (#7734) +- Remove unused jslint-maven-plugin +- [Backport 3.12.x] Bump org.json:json from 20140107 to 20240205 (#7723) +- [Backport 3.12.x] Github Actions / Bump stCarolas/setup-maven from 4 to 5 (#7719) +- [Backport 3.12.x] Bump commons-fileupload from 1.3.3 to 1.5 (#7698) +- Fix pdf link issue +- Fix mimetypes on attachments as some were incorrect. (#7676) +- Docs / Update copyright year +- Fix the grid on the homepage of the documentation (#7559) +- troubleshoot release module order of execution and profile acivation and handling of jetty folder +- Remember to include -Drelease flag so that all modules (even optional modules) are compiled and tested during QA +- [BP] Bump actions/setup-java from 3.12.0 to 4.0.0 (#7522) +- [BP] Service context null pointer (#7593) +- [BP] Overview not shown in PDF export when the overview image is stored in GeoNetwork and requires authentication to access it. Fixes #7540 (#7556) +- [BP] Update iso19139 csw-full.xsl (#7558) +- [BP] Add ownerId to geonet:info (#7547) +- [BP] Don't display header menu and footer in single metadata PDF export (#7532) +- [BP] Bump actions/setup-python from 4 to 5 (#7543) +- [BP] Remote INSPIRE Atom Feeds harvester - Remove duplicates by dataset identifier (#7491) +- [BP] When getting locale message, default locale to LocaleContextHolder when locale is null (#7516) +- [BP] Fix some cases that were not considering both message and description when displaying errors. (#7517) +- [BP] Docs / Fix the mike version to 2.0.0 and change the parameter --no-redirect to --alias-type=copy (changed in mike 2.0.0) (#7507) +- [BP] Check http links in documentation (#7496) +- [BP] Update manual links to use https://docs.geonetwork-opensource.org/ (#7487) +- [BP] Change the structure of the MkDocs assets. Stylesheets and logos are moved to the `overrides` directory (#7429) +- Fix publish link (#7479) +- Fix url link in full view. bracket ") " could be included in link (#7483) +- [BP] Batch edit access level for editor role (#7464) +- [BP] Add node identifier parameter for xlst processing. Required in skin.xsl (#7454) +- Fix other exceptions in tests related to (#6977) +- [BP] Remove exception class name from the error message (#6977) +- [BP] Fix cookies path when deployed on root "/" context (#7446) +- [BP] Fix exception handling from schematron validation so that it flags the metadata as invalid if there is an exception (#6978) +- [BP] Remove old password field for admins (#7417) +- [backport 3.12.x] Add documentation to GitHub workflows (#7414) +- [BP] Change the url the icon in the homepage is linking to (#7422) +- Remove changelog for latest and stable +- Correct canonical_version to stable diff --git a/docs/changes/changes4.2.9-0.txt b/docs/changes/changes4.2.9-0.txt new file mode 100644 index 00000000000..28b376d7ba9 --- /dev/null +++ b/docs/changes/changes4.2.9-0.txt @@ -0,0 +1,70 @@ +================================================================================ +=== +=== GeoNetwork 4.2.9: List of changes +=== +================================================================================ +- Fix startup error. Follow up #7456 (#7859) +- Documentation / GeoNetwork 4.2 doing a release fixes (#7647) +- [Backport 4.2.x] Extend proxy to manage duplicated parameters (#7854) +- [Backport 4.2.x] Configuration to restrict the hosts and ports accessible by the http proxy servlet (#7326) +- [Backport 4.2.x] GeoNetwork harvester / Check if a resource exists to save it, instead of trying to retrieve the file details, to avoid confusing NoSuchFileException exception (#7845) +- Standards / Formatter / Citation / Pick latest date (#7835) +- [Backport 4.2.x] INSPIRE / Add testsuite for IACS (#7834) +- [Backport 4.2.x] Harvester / Localfilesystem / Log properly to harvester log file. (#7833) +- [Backport 4.2.x] Record view / ISO19139 / ISO19115-3.2008 display the unit part in @uom attribute, not the full url (#7832) +- Harvesters / Reset harvester history pagination when selecting a harvester (#7831) +- Trigger metadata unpublish event when removing the privileges to the ALL group in the privileges dialog (#7828) +- Doc / Editor configuration improvements (#7827) +- Update lodash to version 4.17.21 (#7825) +- [Backport 4.2.x] Bump actions/setup-java from 4.0.0 to 4.1.0 (#7814) +- Record view / Don't add the associated resources in the metadata static page, this page doesn't include JS libs (#7797) +- [Backport 4.2.x] Decouple metadata user feedback from metadata rating feature (#7796) +- [Backport 4.2.x] Fix wrong manual links (#7793) +- [Backport 4.2.x] Additional ISO19139 German translations (#7788) +- [Backport 4.2.x] Replace the 'unlock' icon with the 'lock open' icon (#7787) +- [Backport 4.2.x] Removed @RequestHeader for "Accept" headers as it is not supported by openAPI specification (#7785) +- Fix missing MetadataStatusResponse and MetadataWorkflowStatusResponse in open api spec (#7783) +- Fix SpringDoc duplicate Schema name (#7781) +- [Backport 4.2.x] Fix duplicate GET operation on /{portal}/api/sources and missing /subportal endpoint (#7780) +- Spit getRecordAs @RequestMapping into getRecordAsJson and getRecordAsXML in order to fix duplicate operation Id - By having multiple @RequestMapping was causing to create operation id as getRecordAs and getRecordAs_1 +- [Backport 4.2.x] Fix alignment of user enabled checkbox (#7773) +- [Backport 4.2.x] Fix ISO19139 German labels (#7763) +- Remove handlebars.js v2.0.0 +- Reports / Fix extract user groups for non-admin users (#7746) +- Addressing docs glitch #7666 creating-group and authentication-mode +- Addressing docs glitch #7666 in installing-from-war-file, version-4.0.2 and tutorials/deployment/index +- addressing docs-glitch in install-guide/configuring-database +- addressing docs-glitch in search-ui/enrichview and search-ui/loadview +- addressing docs-glitch in install-guide/map-print-setup +- addressing docs-glitch in publishing/managing-privileges +- corrected minor typo in install-guide/map-print-setup +- Fix conversion errors after switching to MkDocs +- manual review of mkdocs glitches +- [Backport 4.2.x] Create a metadata / Add dynamic and download privileges to the users in the same group (#7744) +- Index / Add danish language. (#7736) +- [Backport 4.2.x] Documentation / Elasticsearch query endpoint - query samples (#7732) +- [Backport 4.2.x] Separate docs for _search and _msearch (#7731) +- Map viewer / Remove Stamen background layers - no longer available (#7730) +- Use the generated metadata UUID for resource links when importing metadata with the option 'Generate UUID' (#7729) +- Remove unused jslint-maven-plugin (#7727) +- [Backport 4.2.x] Bump org.json:json from 20140107 to 20240205 (#7724) +- [Backport 4.2.x] Github Actions / Bump stCarolas/setup-maven from 4 to 5 (#7720) +- Enable preemptive for csw requests with credentials (#5497) (#7716) +- [Backport 4.2.x] Add a role and feature matrix to the GeoNetwork documentation (#7709) +- Addressing docs translation glitch #7687- fixes creating-custom-editor +- Addressing docs translation glitch #7687- fixes adding-static-pages and configuring-search-fields +- [Backport 4.2.x] Bump commons-fileupload from 1.3.3 to 1.5 (#7699) +- [Backport 4.2.x] Remove empty class SourcesLib and deprecated/unused methods in ResourceLib / Sonarlint improvements (#7694) +- Update Springdoc so that it supports Map objects in the request parameters. By default injectable parameters are excluded from request parameters. Map is one of those object however it does occur where map objects are supplied as parameters and they should be added to open api spec. There are currently no cases where a map is injected on purpose into the request parameters. This will fix issues with missing request parameters documentation which are based on Map objects. +- Fix spring doc for attachment and keyword to better identify files resources being returned. Update attachment api "Get a metadata resource" should indicate that gets a file resource Also "Create a new resource" should identify that it consumes any resources Update keywords api "Download a thesaurus by name" should indicate that gets a file resource +- Fix springdoc so that enums names are used instead of toString This fixes bug where some apis will not execute correctly from the swagger pager due to the wrong enum value being supplied. i.e. visibility should be using enum values PUBLIC/PRIVATE instead of public/private in formatters/zip api, the format should be SIMPLE/PARTIAL/FULL instead of simple/partial/full +- Editor / Fix add element attribute (#7685) +- [Backport 4.2.x] Metadata editor / Fix javascript error in the add thumbnail option when the metadata has 1 WMS layer (#7684) +- [BP] Search results / Configure related records type depending on template. (#7376) +- Metadata editor / Fix javascript error when editing a metadata, due to undefined property in gnLinkToMetadata directive (#7682) +- Fix pdf link issue (#7681) +- Fix mimetypes on attachments as some were incorrect. (#7675) +- accidental localhost link in docs +- Docs / Update copyright year +- Bump github/codeql-action from 2 to 3 (#7662) +- Bump advanced-security/maven-dependency-submission-action from 3 to 4 (#7661) diff --git a/docs/changes/changes4.4.3-0.txt b/docs/changes/changes4.4.3-0.txt new file mode 100644 index 00000000000..ce5661888d1 --- /dev/null +++ b/docs/changes/changes4.4.3-0.txt @@ -0,0 +1,117 @@ +================================================================================ +=== +=== GeoNetwork 4.4.3: List of changes +=== +================================================================================ +- Update linux workflow to maven 3.8.3 +- require maven 3.8.3 minimum for MNG-7214 fix +- Move version 3.12.x changelog to archive +- Release notes for GeoNetwork 4.4.3. +- Release notes for GeoNetwork 4.29 / 3.12.12 versions +- add necessary welsh language files for translating the application (#7851) +- Standard / ISO19115-3 / Batch edit may trigger error on creation date (#7712) +- Fix startup error. Follow up #7456 (#7858) +- i18n / Transifex update. (#7855) +- ISO19139 / Index online resources application profile element encoded as anchor (#7798) +- Extend proxy to manage duplicated parameters (#7456) +- Documentation / GeoNetwork 4.4 doing a release fixes (#7648) +- Indexing / ISO / Properly index all keywords even if in different thesaurus block +- Editor / Distribution / Properly refresh list link on last one (#7844) +- GeoNetwork harvester / Check if a resource exists to save it, instead of trying to retrieve the file details, to avoid confusing NoSuchFileException exception (#7577) +- Update README.md +- Update README.md +- Bump actions/upload-artifact from 3.1.0 to 4.3.1 +- Bump ossf/scorecard-action from 2.1.2 to 2.3.1 +- Harvesting / WFS Features / Do not skip attributes even if geom is invalid. +- Editor / Associated resource / Add button icon configuration. +- Editor / Distribution improvements - Update configuration for ISO19139 distributions as protocols are not categorized as ISO19115-3 protocols. (#7838) +- Standards / Formatter / Citation / Pick latest date +- INSPIRE / Add testsuite for IACS (#7756) +- Harvester / Localfilesystem / Log properly to harvester log file. (#7660) +- Harvester / WFS / No need to manually managed commit interval (#7737) +- Record view / ISO19139 / ISO19115-3.2008 display the unit part in @uom attribute, not the full url (#7791) +- Harvesters / Reset harvester history pagination when selecting a harvester +- Thesaurus / Improve support of EU publication office SKOS format (#7673) +- Create scorecard.yml +- Doc / Editor configuration improvements (#7776) +- Update lodash to version 4.17.21 +- Improve Elasticsearch manual installation to disable security for development +- Docker / Update docker compose in es module to Elasticsearch 8 (#7817) +- Trigger metadata unpublish event when removing the privileges to the ALL group in the privileges dialog +- Bump actions/setup-java from 4.0.0 to 4.1.0 (#7808) +- Translated the index warnings / errors. (#7531) +- minor typo fixes +- System setting for documentation url (#7782) +- Record view / Don't add the associated resources in the metadata static page, this page doesn't include JS libs +- Decouple metadata user feedback from metadata rating feature (#7770) +- Thesaurus / Add support for codelist described using SDMX +- Fix wrong manual links +- Standard / ISO19115-3 / Quality report / Index descriptive results +- Additional ISO19139 German translations (#7778) +- Update the `set privileges` popup with the new icon +- Replace the 'unlock' icon with the 'lock open' icon which is clearer. This new icon has more visual differences with the lock icon and it's therefore easier for a user to see the difference. +- Removed @RequestHeader for "Accept" headers as it is not supported by openAPI specification (#7572) +- Fix missing MetadataStatusResponse and MetadataWorkflowStatusResponse in open api spec (#7627) +- Fix SpringDoc duplicate Schema name Without this fix springdoc would randomly pick between 2 conflicting schemas and this could produce incorrect results in the open api spec. +- Merge getSubPortals into getSources so that there is only one GET api for the operation. This fixes the bug with 2 GET operation on /{portal}/api/sources +- Update services/src/main/java/org/fao/geonet/api/sources/SourcesApi.java +- Fix duplicate GET operation on /{portal}/api/sources Add missing /subportal endpoint. +- Spit getRecordAs @RequestMapping into getRecordAsJson and getRecordAsXML in order to fix duplicate operation Id - By having multiple @RequestMapping was causing to create operation id as getRecordAs and getRecordAs_1 +- Fix alignment of user enabled checkbox (#7764) +- Fix ISO19139 German labels (#7761) +- Remove handlebars.js v2.0.0 +- Fix query field name in OverviewIndexFieldUpdater to update the metadata overview in the index +- API / Category / Fix update fields +- Addressing docs glitch #7666 creating-group and authentication-mode +- Addressing docs glitch #7666 in installing-from-war-file, version-4.0.2 and tutorials/deployment/index +- addressing docs-glitch in install-guide/configuring-database +- addressing docs-glitch in search-ui/enrichview and search-ui/loadview +- addressing docs-glitch in install-guide/map-print-setup +- addressing docs-glitch in publishing/managing-privileges +- corrected minor typo in install-guide/map-print-setup +- Fix conversion errors after switching to MkDocs +- manual review of mkdocs glitches +- Reports / Fix extract user groups for non-admin users (#7742) +- Create a metadata / Add dynamic and download privileges to the users in the same group (#7679) +- Thesaurus / Add support for thesaurus described using OWL format +- Editor / Add view name class to facilitate custom styling +- Update SECURITY.md +- Index / Add danish language. (#7697) +- Standard / ISO19115-3 / Improve french translation for temporal extent (#7700) +- Standard / ISO19115-3 / Editor configuration / Improve date field configuration (#7702) +- Documentation / Elasticsearch query endpoint - query samples (#7722) +- remove mention of q query parameter +- Separate docs for _search and _msearch +- Map viewer / Remove Stamen background layers - no longer available +- Use the generated metadata UUID for resource links when importing metadata with the option 'Generate UUID' +- Elasticssearch 8 upgrade (#7599) +- Vertical extent label modification (#7604) +- Remove unused jslint-maven-plugin (#7725) +- Bump org.json:json from 20140107 to 20240205 (#7701) +- using gn- icon definitions for all types now +- Github Actions / Bump stCarolas/setup-maven from 4 to 5 (#7718) +- Enable preemptive for csw requests with credentials (#5497) (#7706) +- Add a role and feature matrix to the GeoNetwork documentation (#7686) +- Addressing docs translation glitch #7687- fixes adding-static-pages and configuring-search-fields (#7696) +- Automatic formatting +- Bump commons-fileupload from 1.3.3 to 1.5 (#6851) +- Remove empty class SourcesLib and deprecated/unused methods in ResourceLib / Sonarlint improvements (#7692) +- Fix spring doc for attachment and keyword to better identify files resources being returned. Update attachment api "Get a metadata resource" should indicate that gets a file resource Also "Create a new resource" should identify that it consumes any resources Update keywords api "Download a thesaurus by name" should indicate that gets a file resource +- Fix springdoc so that enums names are used instead of toString This fixes bug where some apis will not execute correctly from the swagger pager due to the wrong enum value being supplied. i.e. visibility should be using enum values PUBLIC/PRIVATE instead of public/private in formatters/zip api, the format should be SIMPLE/PARTIAL/FULL instead of simple/partial/full +- Update Springdoc so that it supports Map objects in the request parameters. By default injectable parameters are excluded from request parameters. Map is one of those object however it does occur where map objects are supplied as parameters and they should be added to open api spec. There are currently no cases where a map is injected on purpose into the request parameters. This will fix issues with missing request parameters documentation which are based on Map objects. +- Editor / Fix add element attribute (#7683) +- Metadata editor / Fix javascript error in the add thumbnail option when the metadata has 1 WMS layer (#7646) +- Add configuration to filter out Elasticsearch fields when download or dynamic privileges are not set +- Fix javascript error accessing the metadata detail page in gnMetadataSocialLink directive +- Metadata editor / Fix javascript error when editing a metadata, due to undefined property in gnLinkToMetadata directive +- Fix pdf link issue (#7667) +- Editor / Distribution improvements (#7468) +- Fix mimetypes on attachments as some were incorrect. (#7671) +- accidental localhost link in docs +- Docs / Update copyright year +- Bump github/codeql-action from 2 to 3 (#7552) +- Bump advanced-security/maven-dependency-submission-action from 3 to 4 (#7655) +- Formatter / Withheld element not always hidden. +- Change log for version 4.4.2 (#7654) +- Change log for version 4.2.8 +- Update version to 4.4.3-SNAPSHOT \ No newline at end of file diff --git a/docs/manual/docs/contributing/doing-a-release.md b/docs/manual/docs/contributing/doing-a-release.md index 8a5e2356f90..c69cddb6178 100644 --- a/docs/manual/docs/contributing/doing-a-release.md +++ b/docs/manual/docs/contributing/doing-a-release.md @@ -91,7 +91,7 @@ with the following utilities: ***sed***, ***xmlstarlet*** and ***sftp***. 3. Create change log page: `docs/manual/docs/overview/change-log/` ``` shell - cat < docs/manual/docs/overview/changes/version-$newversion.md + cat < docs/manual/docs/overview/change-log/version-$version.md # Version $version GeoNetwork $version is a minor release. @@ -110,9 +110,9 @@ with the following utilities: ***sed***, ***xmlstarlet*** and ***sftp***. EOF - git log --pretty='format:* %N' $previousversion.. | grep -v "^* $" >> docs/manual/docs/overview/changes/version-$newversion.md + git log --pretty='format:* %N' $previousversion.. | grep -v "^* $" >> docs/manual/docs/overview/change-log/version-$version.md - cat < docs/manual/docs/overview/changes/version-$newversion.md + cat < docs/manual/docs/overview/change-log/version-$version.md and more \... see [$version issues](https://github.com/geonetwork/core-geonetwork/issues?q=is%3Aissue+milestone%3A$version+is%3Aclosed) and [pull requests](https://github.com/geonetwork/core-geonetwork/pulls?page=3&q=is%3Apr+milestone%3A$version+is%3Aclosed) for full details. EOF @@ -164,7 +164,7 @@ with the following utilities: ***sed***, ***xmlstarlet*** and ***sftp***. # Download Jetty and create the installer cd ../release - mvn clean install -Djetty-download,bundle + mvn clean install -Pjetty-download,bundle # Deploy to osgeo repository (requires credentials in ~/.m2/settings.xml) cd .. @@ -186,10 +186,12 @@ with the following utilities: ***sed***, ***xmlstarlet*** and ***sftp***. # Set version number to SNAPSHOT ./update-version.sh $newversion $nextversion + nextversionnosnapshot=${nextversion//[-SNAPSHOT]/} + # Add SQL migration step for the next version - mkdir web/src/main/webapp/WEB-INF/classes/setup/sql/migrate/v442 - cat < web/src/main/webapp/WEB-INF/classes/setup/sql/migrate/v442/migrate-default.sql - UPDATE Settings SET value='4.4.2' WHERE name='system/platform/version'; + mkdir web/src/main/webapp/WEB-INF/classes/setup/sql/migrate/v${nextversionnosnapshot//[.]/} + cat < web/src/main/webapp/WEB-INF/classes/setup/sql/migrate/v${nextversionnosnapshot//[.]/}/migrate-default.sql + UPDATE Settings SET value='${nextversionnosnapshot}' WHERE name='system/platform/version'; UPDATE Settings SET value='SNAPSHOT' WHERE name='system/platform/subVersion'; EOF vi web/src/main/webResources/WEB-INF/config-db/database_migration.xml @@ -231,7 +233,7 @@ with the following utilities: ***sed***, ***xmlstarlet*** and ***sftp***. ``` shell md5 -r web/target/geonetwork.war > web/target/geonetwork.war.md5 - md5 -r release/target/GeoNetwork-$newversion/geonetwork-bundle-$newversion.zip > release/target/GeoNetwork-$newversion/geonetwork-bundle-$newversion.zip.md5 + md5 -r release/target/GeoNetwork-$version/geonetwork-bundle-$newversion.zip > release/target/GeoNetwork-$version/geonetwork-bundle-$newversion.zip.md5 ``` On sourceforge first: diff --git a/docs/manual/docs/overview/change-log/archive/index.md b/docs/manual/docs/overview/change-log/archive/index.md index 3c9dd91e5f5..824ca283152 100644 --- a/docs/manual/docs/overview/change-log/archive/index.md +++ b/docs/manual/docs/overview/change-log/archive/index.md @@ -18,6 +18,22 @@ Volunteers wishing to backport security fixes to older versions of GeoNetwork ar - [Version 4.0.0 Alpha.2](../version-4.0.0-alpha.2.md) - [Version 4.0.0 Alpha.1](../version-4.0.0-alpha.1.md) +## 3.12.x + +- [Version 3.12.12](../version-3.12.12.md) +- [Version 3.12.11](../version-3.12.11.md) +- [Version 3.12.10](../version-3.12.10.md) +- [Version 3.12.9](../version-3.12.9.md) +- [Version 3.12.8](../version-3.12.8.md) +- [Version 3.12.7](../version-3.12.7.md) +- [Version 3.12.6](../version-3.12.6.md) +- [Version 3.12.5](../version-3.12.5.md) +- [Version 3.12.4](../version-3.12.4.md) +- [Version 3.12.3](../version-3.12.3.md) +- [Version 3.12.3](../version-3.12.2.md) +- [Version 3.12.1](../version-3.12.1.md) +- [Version 3.12.0](../version-3.12.0.md) + ## 3.10.x - [Version 3.10.10](../version-3.10.10.md) diff --git a/docs/manual/docs/overview/change-log/latest/index.md b/docs/manual/docs/overview/change-log/latest/index.md index d4306639288..8560067a361 100644 --- a/docs/manual/docs/overview/change-log/latest/index.md +++ b/docs/manual/docs/overview/change-log/latest/index.md @@ -6,9 +6,10 @@ This series is under active development by our community, with new features, imp ## Latest -- [Version 4.4.2](../version-4.4.2.md) +- [Version 4.4.3](../version-4.4.3.md) ## History +- [Version 4.4.2](../version-4.4.2.md) - [Version 4.4.1](../version-4.4.1.md) - [Version 4.4.0](../version-4.4.0.md) diff --git a/docs/manual/docs/overview/change-log/maintenance/index.md b/docs/manual/docs/overview/change-log/maintenance/index.md index a7939f78428..bced56a1b6a 100644 --- a/docs/manual/docs/overview/change-log/maintenance/index.md +++ b/docs/manual/docs/overview/change-log/maintenance/index.md @@ -5,18 +5,4 @@ This series is under active use by our community, with regular improvements, doc ## Latest -* [Version 3.12.11](../version-3.12.11.md) - ## History - -* [Version 3.12.10](../version-3.12.10.md) -* [Version 3.12.9](../version-3.12.9.md) -* [Version 3.12.8](../version-3.12.8.md) -* [Version 3.12.7](../version-3.12.7.md) -* [Version 3.12.6](../version-3.12.6.md) -* [Version 3.12.5](../version-3.12.5.md) -* [Version 3.12.4](../version-3.12.4.md) -* [Version 3.12.3](../version-3.12.3.md) -* [Version 3.12.3](../version-3.12.2.md) -* [Version 3.12.1](../version-3.12.1.md) -* [Version 3.12.0](../version-3.12.0.md) diff --git a/docs/manual/docs/overview/change-log/stable/index.md b/docs/manual/docs/overview/change-log/stable/index.md index e1e8d081652..ad5d4b53c6f 100644 --- a/docs/manual/docs/overview/change-log/stable/index.md +++ b/docs/manual/docs/overview/change-log/stable/index.md @@ -5,11 +5,12 @@ This series is under active use by our community, with regular improvements, doc ## Latest -- [Version 4.2.8](../version-4.2.8.md) +- [Version 4.2.9](../version-4.2.9.md) ## History +- [Version 4.2.8](../version-4.2.8.md) - [Version 4.2.7](../version-4.2.7.md) - [Version 4.2.6](../version-4.2.6.md) - [Version 4.2.5](../version-4.2.5.md) diff --git a/docs/manual/docs/overview/change-log/version-3.12.12.md b/docs/manual/docs/overview/change-log/version-3.12.12.md new file mode 100644 index 00000000000..79c6d07c10f --- /dev/null +++ b/docs/manual/docs/overview/change-log/version-3.12.12.md @@ -0,0 +1,24 @@ +# Version 3.12.12 + +GeoNetwork 3.12.12 is a minor release. + +## List of changes + +- Metadata + - [BP] [Fix exception handling from schematron validation so that it flags the metadata as invalid if there is an exception](https://github.com/geonetwork/core-geonetwork/pull/6978) + - [BP] [Overview not shown in PDF export when the overview image is stored in GeoNetwork and requires authentication to access it](https://github.com/geonetwork/core-geonetwork/pull/7556) + +- Administration + - [BP] [Harvesters / Reset harvester history pagination when selecting a harvester](https://github.com/geonetwork/core-geonetwork/pull/7836) + - [BP] [GeoNetwork harvester / Check if a resource exists to save it, instead of trying to retrieve the file details, to avoid confusing NoSuchFileException exception](https://github.com/geonetwork/core-geonetwork/pull/7846) + +- Other + - [BP] [Fix cookies path when deployed on root "/" context](https://github.com/geonetwork/core-geonetwork/pull/7446) + - [BP] [Remove exception class name from the error message](https://github.com/geonetwork/core-geonetwork/pull/6977) + - Update `org.json:json` from version 20140107 to 20240205 + - Update `commons-fileupload` from version 1.3.3 to 1.5 + - Documentation / Manual improvements + +and more \... see [3.12.12 issues](https://github.com/geonetwork/core-geonetwork/issues?q=is%3Aissue+milestone%3A3.12.12+is%3Aclosed) and [pull requests](https://github.com/geonetwork/core-geonetwork/pulls?page=3&q=is%3Apr+milestone%3A3.12.12+is%3Aclosed) for full details. + +**Full Changelog**: [here](https://github.com/geonetwork/core-geonetwork/compare/3.12.11...3.12.12) diff --git a/docs/manual/docs/overview/change-log/version-4.2.9.md b/docs/manual/docs/overview/change-log/version-4.2.9.md new file mode 100644 index 00000000000..875c88c9d5e --- /dev/null +++ b/docs/manual/docs/overview/change-log/version-4.2.9.md @@ -0,0 +1,18 @@ +# Version 4.2.9 {#version-429} + +GeoNetwork 4.2.9 release is a minor release. + +## List of changes + +Major changes: + +- [Create a metadata / Add dynamic and download privileges to the users in the same group](https://github.com/geonetwork/core-geonetwork/pull/7744) +- [Decouple metadata user feedback from metadata rating feature](https://github.com/geonetwork/core-geonetwork/pull/7796) +- [Extend http proxy to manage duplicated parameters](https://github.com/geonetwork/core-geonetwork/pull/7854) +- [Fix MIME-types on attachments](https://github.com/geonetwork/core-geonetwork/pull/7675) +- [Fix pdf link to the application website](https://github.com/geonetwork/core-geonetwork/pull/7681) +- Update `org.json:json` from version 20140107 to 20240205 +- Documentation / Manual improvements +- Documentation / API SpringDoc fixes + +and more \... see [4.2.9 issues](https://github.com/geonetwork/core-geonetwork/issues?q=is%3Aissue+milestone%3A4.2.9+is%3Aclosed) and [pull requests](https://github.com/geonetwork/core-geonetwork/pulls?page=3&q=is%3Apr+milestone%3A4.2.9+is%3Aclosed) for full details. diff --git a/docs/manual/docs/overview/change-log/version-4.4.3.md b/docs/manual/docs/overview/change-log/version-4.4.3.md new file mode 100644 index 00000000000..25985a774f8 --- /dev/null +++ b/docs/manual/docs/overview/change-log/version-4.4.3.md @@ -0,0 +1,46 @@ +# Version 4.4.3 {#version-423} + +GeoNetwork 4.4.3 release is a minor release. + +## Migration notes + +### Java + +**Version 4.4 only works on Java 11.** + +### Index changes + +This version use Elasticsearch version 8 Java client, it is recommended to use an Elasticsearch version 8 server. +However version 7.15+ and 8+ have been tested. + +After update, don't forget to go to admin console --> tools --> Delete index and reindex. + +### Map + +[Stamen background layers are not available, update your maps](https://github.com/geonetwork/core-geonetwork/pull/7715). + + +## List of changes + +Major changes: + +- [Elasticssearch 8 upgrade](https://github.com/geonetwork/core-geonetwork/pull/7599) +- [Editor / Distribution panel improvements](https://github.com/geonetwork/core-geonetwork/pull/7468) +- [Thesaurus / Add support for codelist described using SDMX](https://github.com/geonetwork/core-geonetwork/pull/7790) +- [Thesaurus / Add support for thesaurus described using OWL format](https://github.com/geonetwork/core-geonetwork/pull/7674) +- [Thesaurus / Improve support of EU publication office SKOS format](https://github.com/geonetwork/core-geonetwork/pull/7673) +- [INSPIRE / Add testsuite for IACS](https://github.com/geonetwork/core-geonetwork/pull/7756) +- [Map viewer / Remove Stamen background layers - no longer available](https://github.com/geonetwork/core-geonetwork/pull/7715) +- [i18n / Add welsh language for user interface](https://github.com/geonetwork/core-geonetwork/pull/7851) +- [Index / Add danish language configuration](https://github.com/geonetwork/core-geonetwork/pull/7697) +- [Index / Translated the index warnings and errors](https://github.com/geonetwork/core-geonetwork/pull/7531) +- [Create a metadata / Add dynamic and download privileges to the users in the same group](https://github.com/geonetwork/core-geonetwork/pull/7744) +- [Decouple metadata user feedback from metadata rating feature](https://github.com/geonetwork/core-geonetwork/pull/7796) +- [Extend http proxy to manage duplicated parameters](https://github.com/geonetwork/core-geonetwork/pull/7854) +- [Fix MIME-types on attachments](https://github.com/geonetwork/core-geonetwork/pull/7675) +- [Fix pdf link to the application website](https://github.com/geonetwork/core-geonetwork/pull/7681) +- Update `org.json:json` from version 20140107 to 20240205 +- Documentation / Manual improvements +- Documentation / API SpringDoc fixes + +and more \... see [4.4.3 issues](https://github.com/geonetwork/core-geonetwork/issues?q=is%3Aissue+milestone%3A4.4.3+is%3Aclosed) and [pull requests](https://github.com/geonetwork/core-geonetwork/pulls?page=3&q=is%3Apr+milestone%3A4.4.3+is%3Aclosed) for full details. diff --git a/docs/manual/mkdocs.yml b/docs/manual/mkdocs.yml index 9bc8ec5332e..9c58d1c236b 100644 --- a/docs/manual/mkdocs.yml +++ b/docs/manual/mkdocs.yml @@ -149,11 +149,13 @@ nav: - overview/change-log/index.md - 'Latest': - overview/change-log/latest/index.md + - overview/change-log/version-4.4.3.md - overview/change-log/version-4.4.2.md - overview/change-log/version-4.4.1.md - overview/change-log/version-4.4.0.md - 'Stable': - overview/change-log/stable/index.md + - overview/change-log/version-4.2.9.md - overview/change-log/version-4.2.8.md - overview/change-log/version-4.2.7.md - overview/change-log/version-4.2.6.md @@ -165,6 +167,7 @@ nav: - overview/change-log/version-4.2.0.md - 'Maintenance': - overview/change-log/maintenance/index.md + - overview/change-log/version-3.12.12.md - overview/change-log/version-3.12.11.md - overview/change-log/version-3.12.10.md - overview/change-log/version-3.12.9.md diff --git a/docs/manual/pom.xml b/docs/manual/pom.xml index 68654e27401..ec2012561cc 100644 --- a/docs/manual/pom.xml +++ b/docs/manual/pom.xml @@ -27,7 +27,7 @@ gn-docs org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.4-SNAPSHOT 4.0.0 gn-guide diff --git a/docs/pom.xml b/docs/pom.xml index e1c5e3b5c5c..41fadf135f2 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -27,7 +27,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.4-SNAPSHOT 4.0.0 gn-docs diff --git a/doi/pom.xml b/doi/pom.xml index e0fb8dcbf9f..b18b6e06c3f 100644 --- a/doi/pom.xml +++ b/doi/pom.xml @@ -28,7 +28,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.4-SNAPSHOT 4.0.0 diff --git a/domain/pom.xml b/domain/pom.xml index 48d5cd34fa4..f715db3010e 100644 --- a/domain/pom.xml +++ b/domain/pom.xml @@ -27,7 +27,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.4-SNAPSHOT 4.0.0 diff --git a/es/es-dashboards/pom.xml b/es/es-dashboards/pom.xml index cc49025ac53..fd86d42981d 100644 --- a/es/es-dashboards/pom.xml +++ b/es/es-dashboards/pom.xml @@ -28,7 +28,7 @@ gn-es org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.4-SNAPSHOT diff --git a/es/pom.xml b/es/pom.xml index 5e6a40550da..d9338a9fc8f 100644 --- a/es/pom.xml +++ b/es/pom.xml @@ -5,7 +5,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.4-SNAPSHOT 4.0.0 gn-es diff --git a/estest/pom.xml b/estest/pom.xml index e9ba611bc41..588ce309374 100644 --- a/estest/pom.xml +++ b/estest/pom.xml @@ -5,7 +5,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.4-SNAPSHOT 4.0.0 diff --git a/events/pom.xml b/events/pom.xml index 8b8405f0b5e..329dd0c6ad5 100644 --- a/events/pom.xml +++ b/events/pom.xml @@ -28,7 +28,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.4-SNAPSHOT GeoNetwork Events diff --git a/harvesters/pom.xml b/harvesters/pom.xml index c830794b85b..07259922463 100644 --- a/harvesters/pom.xml +++ b/harvesters/pom.xml @@ -27,7 +27,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.4-SNAPSHOT 4.0.0 diff --git a/healthmonitor/pom.xml b/healthmonitor/pom.xml index 805dae47790..fd58de76ef6 100644 --- a/healthmonitor/pom.xml +++ b/healthmonitor/pom.xml @@ -27,7 +27,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.4-SNAPSHOT 4.0.0 diff --git a/index/pom.xml b/index/pom.xml index 9e82d3e9130..e4801d49c46 100644 --- a/index/pom.xml +++ b/index/pom.xml @@ -5,7 +5,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.4-SNAPSHOT 4.0.0 gn-index diff --git a/inspire-atom/pom.xml b/inspire-atom/pom.xml index 31849c58ccb..09424fda0c8 100644 --- a/inspire-atom/pom.xml +++ b/inspire-atom/pom.xml @@ -28,7 +28,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.4-SNAPSHOT 4.0.0 diff --git a/jmeter/pom.xml b/jmeter/pom.xml index bf6daf9d308..8e4d6b03860 100644 --- a/jmeter/pom.xml +++ b/jmeter/pom.xml @@ -29,7 +29,7 @@ org.geonetwork-opensource geonetwork - 4.4.3-SNAPSHOT + 4.4.4-SNAPSHOT diff --git a/listeners/pom.xml b/listeners/pom.xml index d46c1217e63..ed51f29c582 100644 --- a/listeners/pom.xml +++ b/listeners/pom.xml @@ -28,7 +28,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.4-SNAPSHOT GeoNetwork Events diff --git a/messaging/pom.xml b/messaging/pom.xml index 54eb690f6d2..72f32b8bdba 100644 --- a/messaging/pom.xml +++ b/messaging/pom.xml @@ -5,7 +5,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.4-SNAPSHOT 4.0.0 diff --git a/oaipmh/pom.xml b/oaipmh/pom.xml index efa7fe0facc..0e0f1055cf3 100644 --- a/oaipmh/pom.xml +++ b/oaipmh/pom.xml @@ -30,7 +30,7 @@ org.geonetwork-opensource geonetwork - 4.4.3-SNAPSHOT + 4.4.4-SNAPSHOT diff --git a/pom.xml b/pom.xml index b81edded29a..7553e209f0d 100644 --- a/pom.xml +++ b/pom.xml @@ -29,7 +29,7 @@ org.geonetwork-opensource geonetwork pom - 4.4.3-SNAPSHOT + 4.4.4-SNAPSHOT GeoNetwork opensource GeoNetwork opensource is a standards based, Free and Open Source catalog application to manage spatially referenced @@ -245,12 +245,36 @@ maven-toolchains-plugin 3.0.0 + + org.apache.maven.plugins + maven-enforcer-plugin + 3.4.1 + + org.apache.maven.plugins + maven-enforcer-plugin + + + enforce-maven + + enforce + + + + + 3.8.3 + + + + + + + maven-compiler-plugin 11 @@ -269,7 +293,6 @@ - org.apache.maven.plugins maven-resources-plugin UTF-8 @@ -295,7 +318,6 @@ - org.apache.maven.plugins maven-surefire-plugin org.fao.geonet.repository.AbstractSpringDataTest diff --git a/release/build.properties b/release/build.properties index e7183fe9410..bf6bc74a749 100644 --- a/release/build.properties +++ b/release/build.properties @@ -5,11 +5,11 @@ homepage=https://geonetwork-opensource.org supportEmail=geonetwork-users@lists.sourceforge.net # Application version properties -version=4.4.3 +version=4.4.4 subVersion=SNAPSHOT # Java runtime properties javaVersion=11 javaDisplayVersion=11 -jreUrl=https://adoptium.net/en-GB/temurin/releases/?version=4.4.3 +jreUrl=https://adoptium.net/en-GB/temurin/releases/?version=4.4.4 jreName=AdoptOpenJDK diff --git a/release/pom.xml b/release/pom.xml index 920336a32a0..44514cb837d 100644 --- a/release/pom.xml +++ b/release/pom.xml @@ -7,7 +7,7 @@ org.geonetwork-opensource geonetwork - 4.4.3-SNAPSHOT + 4.4.4-SNAPSHOT gn-release diff --git a/schemas-test/pom.xml b/schemas-test/pom.xml index 6df035d8937..4a5030a5f39 100644 --- a/schemas-test/pom.xml +++ b/schemas-test/pom.xml @@ -27,7 +27,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.4-SNAPSHOT 4.0.0 jar diff --git a/schemas/csw-record/pom.xml b/schemas/csw-record/pom.xml index e1330565f50..c687b740dab 100644 --- a/schemas/csw-record/pom.xml +++ b/schemas/csw-record/pom.xml @@ -5,7 +5,7 @@ gn-schemas org.geonetwork-opensource.schemas - 4.4.3-SNAPSHOT + 4.4.4-SNAPSHOT 4.0.0 gn-schema-csw-record diff --git a/schemas/dublin-core/pom.xml b/schemas/dublin-core/pom.xml index 3a4ca0be9a1..2ef0f9b6309 100644 --- a/schemas/dublin-core/pom.xml +++ b/schemas/dublin-core/pom.xml @@ -5,7 +5,7 @@ gn-schemas org.geonetwork-opensource.schemas - 4.4.3-SNAPSHOT + 4.4.4-SNAPSHOT 4.0.0 diff --git a/schemas/dublin-core/src/main/plugin/dublin-core/config/associated-panel/default.json b/schemas/dublin-core/src/main/plugin/dublin-core/config/associated-panel/default.json index d9b986c378c..abfae192cdc 100644 --- a/schemas/dublin-core/src/main/plugin/dublin-core/config/associated-panel/default.json +++ b/schemas/dublin-core/src/main/plugin/dublin-core/config/associated-panel/default.json @@ -12,6 +12,20 @@ "fields": { "url": {} } + }], + "associatedResourcesTypes": [{ + "type": "parent", + "label": "linkToParent", + "config": { + "sources": { + "metadataStore": { + "params": { + "isTemplate": "n" + } + }, + "remoteurl": {"multiple": true} + } + } }] } } diff --git a/schemas/dublin-core/src/main/plugin/dublin-core/layout/config-editor.xml b/schemas/dublin-core/src/main/plugin/dublin-core/layout/config-editor.xml index 70484726a72..ff7aa5b8ef2 100644 --- a/schemas/dublin-core/src/main/plugin/dublin-core/layout/config-editor.xml +++ b/schemas/dublin-core/src/main/plugin/dublin-core/layout/config-editor.xml @@ -67,8 +67,7 @@ editActions: ['addOnlinesrc'] }]"/> - +
@@ -94,8 +93,7 @@ editActions: ['addOnlinesrc'] }]"/> - +
@@ -118,8 +116,8 @@ editActions: ['addOnlinesrc'] }]"/> - + + diff --git a/schemas/iso19110/pom.xml b/schemas/iso19110/pom.xml index 45ed33c2e75..f529f2f67dc 100644 --- a/schemas/iso19110/pom.xml +++ b/schemas/iso19110/pom.xml @@ -28,7 +28,7 @@ gn-schemas org.geonetwork-opensource.schemas - 4.4.3-SNAPSHOT + 4.4.4-SNAPSHOT 4.0.0 diff --git a/schemas/iso19110/src/main/plugin/iso19110/config/associated-panel/default.json b/schemas/iso19110/src/main/plugin/iso19110/config/associated-panel/default.json index c4e7c09595a..53bfe374f1f 100644 --- a/schemas/iso19110/src/main/plugin/iso19110/config/associated-panel/default.json +++ b/schemas/iso19110/src/main/plugin/iso19110/config/associated-panel/default.json @@ -1,3 +1,8 @@ { - "config": {} + "config": { + "associatedResourcesTypes": [ { + "type": "hasfeaturecats", + "allowToAddRelation": false + }] + } } diff --git a/schemas/iso19110/src/main/plugin/iso19110/layout/config-editor.xml b/schemas/iso19110/src/main/plugin/iso19110/layout/config-editor.xml index 2ec78cc74f7..4b628b2ff22 100644 --- a/schemas/iso19110/src/main/plugin/iso19110/layout/config-editor.xml +++ b/schemas/iso19110/src/main/plugin/iso19110/layout/config-editor.xml @@ -68,8 +68,7 @@ - + diff --git a/schemas/iso19115-3.2018/pom.xml b/schemas/iso19115-3.2018/pom.xml index 695b783ee0b..2e047ce220e 100644 --- a/schemas/iso19115-3.2018/pom.xml +++ b/schemas/iso19115-3.2018/pom.xml @@ -6,7 +6,7 @@ gn-schemas org.geonetwork-opensource.schemas - 4.4.3-SNAPSHOT + 4.4.4-SNAPSHOT 4.0.0 diff --git a/schemas/iso19115-3.2018/src/main/plugin/iso19115-3.2018/config/associated-panel/default.json b/schemas/iso19115-3.2018/src/main/plugin/iso19115-3.2018/config/associated-panel/default.json index b23fa915667..b087ecb8ee4 100644 --- a/schemas/iso19115-3.2018/src/main/plugin/iso19115-3.2018/config/associated-panel/default.json +++ b/schemas/iso19115-3.2018/src/main/plugin/iso19115-3.2018/config/associated-panel/default.json @@ -991,6 +991,81 @@ } } } - ] + ], + "associatedResourcesTypes": [{ + "type": "siblings", + "label": "linkToSibling", + "config": { + "sources": { + "metadataStore": { + "params": { + "isTemplate": "n" + } + }, + "remoteurl": {"multiple": true} + } + } + }, { + "type": "service", + "label": "linkToService", + "condition": "!gnCurrentEdit.isService", + "config": { + "sources": { + "metadataStore": { + "label": "searchAservice", + "params": { + "resourceType": ["service"], + "isTemplate": "n" + } + }, + "remoteurl": {"multiple": false} + } + } + }, { + "type": "dataset", + "label": "linkToDataset", + "condition": "gnCurrentEdit.isService", + "config": { + "sources": { + "metadataStore": { + "params": { + "resourceType": ["dataset"], + "isTemplate": "n" + } + }, + "remoteurl": {"multiple": false} + } + } + }, { + "type": "source", + "label": "linkToSource", + "config": { + "sources": { + "metadataStore": { + "label": "linkToSource", + "params": { + "resourceType": ["dataset"], + "isTemplate": "n" + } + }, + "remoteurl": {"multiple": false} + } + } + }, { + "type": "fcats", + "label": "linkToFeatureCatalog", + "config": { + "sources": { + "metadataStore": { + "label": "linkToFeatureCatalog", + "params": { + "resourceType": ["featureCatalog"], + "isTemplate": "n" + } + }, + "remoteurl": {"multiple": false} + } + } + }] } } diff --git a/schemas/iso19115-3.2018/src/main/plugin/iso19115-3.2018/index-fields/index.xsl b/schemas/iso19115-3.2018/src/main/plugin/iso19115-3.2018/index-fields/index.xsl index 7bec6672ed7..9e63c1dc81e 100644 --- a/schemas/iso19115-3.2018/src/main/plugin/iso19115-3.2018/index-fields/index.xsl +++ b/schemas/iso19115-3.2018/src/main/plugin/iso19115-3.2018/index-fields/index.xsl @@ -1401,7 +1401,7 @@ "nilReason": "", "function":"", - "applicationProfile":"", + "applicationProfile":"", "group": } diff --git a/schemas/iso19115-3.2018/src/main/plugin/iso19115-3.2018/layout/config-editor.xml b/schemas/iso19115-3.2018/src/main/plugin/iso19115-3.2018/layout/config-editor.xml index fa835d2334b..4803c64f105 100644 --- a/schemas/iso19115-3.2018/src/main/plugin/iso19115-3.2018/layout/config-editor.xml +++ b/schemas/iso19115-3.2018/src/main/plugin/iso19115-3.2018/layout/config-editor.xml @@ -933,8 +933,7 @@ }]" /> - + - + - + - + - + diff --git a/schemas/iso19139/pom.xml b/schemas/iso19139/pom.xml index 5920df665c1..4d63ef8ffce 100644 --- a/schemas/iso19139/pom.xml +++ b/schemas/iso19139/pom.xml @@ -5,7 +5,7 @@ gn-schemas org.geonetwork-opensource.schemas - 4.4.3-SNAPSHOT + 4.4.4-SNAPSHOT 4.0.0 diff --git a/schemas/iso19139/src/main/plugin/iso19139/config/associated-panel/default.json b/schemas/iso19139/src/main/plugin/iso19139/config/associated-panel/default.json index 461ee01d5aa..c07bf8ead62 100644 --- a/schemas/iso19139/src/main/plugin/iso19139/config/associated-panel/default.json +++ b/schemas/iso19139/src/main/plugin/iso19139/config/associated-panel/default.json @@ -52,6 +52,97 @@ "multilingualFields": ["name", "desc"], "wmsResources": { "addLayerNamesMode": "resourcename" + }, + "associatedResourcesTypes": [{ + "type": "parent", + "label": "linkToParent", + "config": { + "sources": { + "metadataStore": { + "label": "linkToParent", + "params": { + "resourceType": ["series"], + "isTemplate": "n" + } + }, + "remoteurl": {"multiple": false} + } + } + }, { + "type": "service", + "label": "linkToService", + "condition": "!gnCurrentEdit.isService", + "config": { + "sources": { + "metadataStore": { + "label": "searchAservice", + "params": { + "resourceType": ["service"], + "isTemplate": "n" + } + }, + "remoteurl": {"multiple": false} + } + } + }, { + "type": "dataset", + "label": "linkToDataset", + "condition": "gnCurrentEdit.isService", + "config": { + "sources": { + "metadataStore": { + "params": { + "resourceType": ["dataset"], + "isTemplate": "n" + } + }, + "remoteurl": {"multiple": false} + } + } + }, { + "type": "source", + "label": "linkToSource", + "config": { + "sources": { + "metadataStore": { + "label": "linkToSource", + "params": { + "resourceType": ["dataset"], + "isTemplate": "n" + } + }, + "remoteurl": {"multiple": false} + } + } + }, { + "type": "fcats", + "label": "linkToFeatureCatalog", + "config": { + "sources": { + "metadataStore": { + "label": "linkToFeatureCatalog", + "params": { + "resourceType": ["featureCatalog"], + "isTemplate": "n" + } + }, + "remoteurl": {"multiple": false} + } + } + }, { + "type": "siblings", + "label": "linkToSibling", + "config": { + "sources": { + "metadataStore": { + "params": { + "isTemplate": "n" + } + }, + "remoteurl": {"multiple": true} + } + } } + ] } } diff --git a/schemas/iso19139/src/main/plugin/iso19139/index-fields/index.xsl b/schemas/iso19139/src/main/plugin/iso19139/index-fields/index.xsl index 2624e80b072..c8029f09819 100644 --- a/schemas/iso19139/src/main/plugin/iso19139/index-fields/index.xsl +++ b/schemas/iso19139/src/main/plugin/iso19139/index-fields/index.xsl @@ -1161,7 +1161,7 @@ "nilReason": "", "function":"", - "applicationProfile":"", + "applicationProfile":"", "group": } @@ -3225,8 +3229,7 @@ editActions: []}]" /> - + - + - + geonetwork org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.4-SNAPSHOT 4.0.0 diff --git a/schemas/schema-core/pom.xml b/schemas/schema-core/pom.xml index ac845103a79..560c937ac02 100644 --- a/schemas/schema-core/pom.xml +++ b/schemas/schema-core/pom.xml @@ -28,7 +28,7 @@ gn-schemas org.geonetwork-opensource.schemas - 4.4.3-SNAPSHOT + 4.4.4-SNAPSHOT 4.0.0 diff --git a/sde/pom.xml b/sde/pom.xml index 14d205fe976..cfe299ba538 100644 --- a/sde/pom.xml +++ b/sde/pom.xml @@ -30,7 +30,7 @@ org.geonetwork-opensource geonetwork - 4.4.3-SNAPSHOT + 4.4.4-SNAPSHOT diff --git a/services/pom.xml b/services/pom.xml index 71fc83878d9..cf74bb5b9ad 100644 --- a/services/pom.xml +++ b/services/pom.xml @@ -27,7 +27,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.4-SNAPSHOT 4.0.0 diff --git a/slave/pom.xml b/slave/pom.xml index 1c81b1b7f17..fcffaafd4fd 100644 --- a/slave/pom.xml +++ b/slave/pom.xml @@ -28,7 +28,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.4-SNAPSHOT GeoNetwork Slave diff --git a/web-ui/download-from-transifex.sh b/web-ui/download-from-transifex.sh index 6aadf404ce4..f3e72045e98 100755 --- a/web-ui/download-from-transifex.sh +++ b/web-ui/download-from-transifex.sh @@ -59,6 +59,7 @@ l=( 'nl::nl' 'cs::cs_CZ' 'ca::ca' + 'cy::cy' 'pt::pt_BR' 'fi::fi' 'is::is' diff --git a/web-ui/pom.xml b/web-ui/pom.xml index e00c3b5e635..c360922c8ac 100644 --- a/web-ui/pom.xml +++ b/web-ui/pom.xml @@ -30,7 +30,7 @@ org.geonetwork-opensource geonetwork - 4.4.3-SNAPSHOT + 4.4.4-SNAPSHOT org.geonetwork-opensource diff --git a/web-ui/src/main/resources/catalog/components/edit/onlinesrc/OnlineSrcDirective.js b/web-ui/src/main/resources/catalog/components/edit/onlinesrc/OnlineSrcDirective.js index df9cf883cbb..e164e0142e2 100644 --- a/web-ui/src/main/resources/catalog/components/edit/onlinesrc/OnlineSrcDirective.js +++ b/web-ui/src/main/resources/catalog/components/edit/onlinesrc/OnlineSrcDirective.js @@ -204,24 +204,52 @@ } else { scope.allowRemoteRecordLink = true; } - scope.remoteRecord = { - remoteUrl: "", - title: "", - uuid: "" + + scope.multipleSelection = false; + + scope.$watch("config.sources.remoteurl", function (newVal, oldVal) { + if (newVal != oldVal && newVal) { + scope.multipleSelection = newVal.multiple; + } + }); + + // Model for the multiple selection mode + scope.multipleSelectionModel = { + remoteLinksToCheck: 0, + checkingRemoteLinks: false, + invalidRemoteLinks: [], + remoteRecordsList: "" + }; + + // Model for the single selection mode + scope.singleSelectionModel = { + remoteRecord: { + remoteUrl: "", + title: "", + uuid: "" + }, + isRemoteRecordUrlOk: true, + isRemoteRecordPropertiesExtracted: false }; - scope.isRemoteRecordUrlOk = true; - scope.isRemoteRecordPropertiesExtracted = false; + scope.selectionList = undefined; // Get the parent div's ID scope.popupId = element.closest(".onlinesrc-popup").attr("id"); scope.$on("resetSearch", function (event, args) { - scope.remoteRecord = { + scope.singleSelectionModel.remoteRecord = { remoteUrl: "", title: "", uuid: "" }; + + scope.multipleSelectionModel = { + remoteLinksToCheck: 0, + checkingRemoteLinks: false, + invalidRemoteLinks: [], + remoteRecordsList: "" + }; }); function clearSelection() { @@ -235,8 +263,9 @@ return "application/xml"; } - function getProperties(doc) { - scope.isRemoteRecordPropertiesExtracted = true; + function getProperties(doc, url) { + var record = {}; + if (angular.isObject(doc)) { // JSON doc } else if (doc.startsWith("(.*)<\/title>(.|[\r\n])*/, "$3" ); - scope.remoteRecord.uuid = scope.remoteRecord.remoteUrl; + record.uuid = url; // Looking for schema.org tags or json+ld format could also be an option. } catch (e) { console.warn(e); - return false; + return {}; } } else { - return false; + return {}; } - return true; + + record.remoteUrl = url; + return record; } + scope.$watch( + "multipleSelectionModel.remoteLinksToCheck", + function (newVal, oldVal) { + if (newVal != oldVal) { + if (newVal == 0) { + scope.multipleSelectionModel.remoteRecordsList = ""; + scope.multipleSelectionModel.checkingRemoteLinks = false; + } + } + } + ); + + /** + * Checks if the button to add multiple links can be enabled: + * - There are links to add. + * - The processs to add the links is not on-going. + * - The association type field is selected. + * Used in the multiple mode selection. + * + * @returns {boolean} + */ + scope.canAddMultipleLinks = function () { + return ( + scope.multipleSelectionModel.remoteRecordsList !== "" && + !scope.multipleSelectionModel.checkingRemoteLinks && + scope.config && + scope.config.associationType != null + ); + }; + + /** + * Process the urls links to extract the record information: title, url. + * + * Used in the multiple mode selection. + */ + scope.addMultipleLinks = function () { + // Ignore in single selection mode + if (!scope.multipleSelection) return; + + var remoteUrls = scope.multipleSelectionModel.remoteRecordsList.split("\n"); + scope.multipleSelectionModel.invalidRemoteLinks = []; + scope.multipleSelectionModel.remoteLinksToCheck = remoteUrls.length; + scope.multipleSelectionModel.checkingRemoteLinks = true; + for (var i = 0; i < remoteUrls.length; i++) { + var url = remoteUrls[i]; + if (url.indexOf("http") === 0) { + $http + .get(url, { + headers: { Accept: guessContentType() } + }) + .then( + function (response) { + scope.multipleSelectionModel.remoteLinksToCheck--; + + var isRemoteRecordUrlOk = response.status === 200; + if (isRemoteRecordUrlOk) { + // Check we can retrieve title + var remoteRecordInfo = getProperties( + response.data, + response.config.url + ); + + if (!_.isEmpty(remoteRecordInfo)) { + remoteRecordInfo.resourceTitle = remoteRecordInfo.title; + scope.addToSelection( + remoteRecordInfo, + scope.config.associationType, + scope.config.initiativeType + ); + } else { + scope.multipleSelectionModel.invalidRemoteLinks.push( + response.config.url + ); + } + } + }, + function (response) { + scope.multipleSelectionModel.remoteLinksToCheck--; + scope.multipleSelectionModel.invalidRemoteLinks.push( + response.config.url + ); + } + ); + } else { + scope.multipleSelectionModel.remoteLinksToCheck--; + scope.multipleSelectionModel.invalidRemoteLinks.push(url); + } + } + }; + + /** + * Checks a link and adds it to the selection. + * + * Used in single mode selection. + * + * @returns {*} + */ scope.checkLink = function () { + // Ignore in multiple selection mode + if (scope.multipleSelection) return; + scope.resetLink(false); - if (scope.remoteRecord.remoteUrl.indexOf("http") === 0) { + if ( + scope.singleSelectionModel.remoteRecord.remoteUrl.indexOf("http") === 0 + ) { return $http - .get(scope.remoteRecord.remoteUrl, { + .get(scope.singleSelectionModel.remoteRecord.remoteUrl, { headers: { Accept: guessContentType() } }) .then( function (response) { - scope.isRemoteRecordUrlOk = response.status === 200; - if (scope.isRemoteRecordUrlOk) { + scope.singleSelectionModel.isRemoteRecordUrlOk = + response.status === 200; + if (scope.singleSelectionModel.isRemoteRecordUrlOk) { // Check we can retrieve title - scope.isRemoteRecordPropertiesExtracted = getProperties( - response.data + var remoteRecordInfo = getProperties( + response.data, + scope.singleSelectionModel.remoteRecord.remoteUrl ); - if (scope.isRemoteRecordPropertiesExtracted) { - scope.updateSelection(); + scope.singleSelectionModel.isRemoteRecordPropertiesExtracted = + !_.isEmpty(remoteRecordInfo); + if ( + scope.singleSelectionModel.isRemoteRecordPropertiesExtracted + ) { + scope.singleSelectionModel.remoteRecord = remoteRecordInfo; + scope.singleSelectionModel.resourceTitle = + remoteRecordInfo.title; } } }, function (response) { - scope.isRemoteRecordUrlOk = response.status === 500; + scope.singleSelectionModel.isRemoteRecordUrlOk = + response.status === 500; } ); } }; + scope.updateSelectionAndTriggerSearch = function () { + // Ignore in multiple selection mode + if (scope.multipleSelection) return; + + scope.updateSelection(); + scope.triggerSearch(); + }; + scope.updateSelection = function () { + // Ignore in multiple selection mode + if (scope.multipleSelection) return; + if (scope.selectionList) { - scope.selectionList.length = 0; - scope.selectionList.push(scope.remoteRecord); + if (!scope.multipleSelection) { + scope.selectionList.length = 0; + } + scope.selectionList.push(scope.singleSelectionModel.remoteRecord); } else if (angular.isFunction(scope.addToSelection)) { // sibling mode - scope.remoteRecord.resourceTitle = scope.remoteRecord.title; + scope.singleSelectionModel.remoteRecord.resourceTitle = + scope.singleSelectionModel.remoteRecord.title; scope.addToSelection( - scope.remoteRecord, + scope.singleSelectionModel.remoteRecord, scope.config.associationType, scope.config.initiativeType ); @@ -342,14 +498,18 @@ }; scope.resetLink = function (allProperties) { + // Ignore in multiple selection mode + if (scope.multipleSelection) return; + scope.selectionList = angular.isDefined(scope.stateObj) ? scope.stateObj.selectRecords : scope.selectRecords; - scope.isRemoteRecordUrlOk = true; - scope.remoteRecord.title = ""; - scope.remoteRecord.uuid = ""; + scope.singleSelectionModel.isRemoteRecordUrlOk = true; if (allProperties) { - scope.remoteRecord.remoteUrl = ""; + scope.singleSelectionModel.remoteRecord.remoteUrl = ""; + } else { + scope.singleSelectionModel.remoteRecord.title = ""; + scope.singleSelectionModel.remoteRecord.uuid = ""; } clearSelection(); }; @@ -1707,7 +1867,15 @@ scope.onlineSrcLink = ""; scope.addOnlineSrcInDataset = true; - gnOnlinesrc.register(scope.mode, function () { + gnOnlinesrc.register(scope.mode, function (config) { + if (config && !angular.isObject(config)) { + config = angular.fromJson(config); + } + + scope.config = { + sources: config && config.sources + }; + $(scope.popupid).modal("show"); // parameters of the online resource form @@ -1812,6 +1980,18 @@ } }; + scope.addToSelection = function (record) { + scope.stateObj.selectRecords.length = 0; + scope.stateObj.selectRecords.push(record); + }; + + scope.removeFromSelection = function (record) { + var index = scope.stateObj.selectRecords.indexOf(record); + if (index > -1) { + scope.stateObj.selectRecords.splice(index, 1); + } + }; + /** * Watch the result metadata selection change. * selectRecords is a value of the SearchFormController scope. @@ -1940,8 +2120,7 @@ return { restrict: "A", scope: {}, - templateUrl: - "../../catalog/components/edit/onlinesrc/" + "partials/linkToMd.html", + templateUrl: "../../catalog/components/edit/onlinesrc/partials/linkToMd.html", compile: function compile(tElement, tAttrs, transclude) { return { pre: function preLink(scope) { @@ -1980,39 +2159,39 @@ return true; }; + scope.addToSelection = function (record) { + scope.selectRecords.length = 0; + scope.selectRecords.push(record); + }; + + scope.removeFromSelection = function (record) { + var index = scope.selectRecords.indexOf(record); + if (index > -1) { + scope.selectRecords.splice(index, 1); + } + }; + /** * Register a method on popup open to reset * the search form and trigger a search. */ - gnOnlinesrc.register(scope.mode, function () { - $(scope.popupid).modal("show"); - var searchParams = {}; - if (scope.mode === "fcats") { - searchParams = { - resourceType: "featureCatalog", - isTemplate: "n" - }; - scope.btn = { - label: $translate.instant("linkToFeatureCatalog") - }; - } else if (scope.mode === "parent") { - searchParams = { - isTemplate: "n" - }; - scope.btn = { - label: $translate.instant("linkToParent") - }; - } else if (scope.mode === "source") { - searchParams = { - isTemplate: "n" - }; - scope.btn = { - label: $translate.instant("linkToSource") - }; + gnOnlinesrc.register(scope.mode, function (config) { + if (config && !angular.isObject(config)) { + config = angular.fromJson(config); } + + scope.config = { + sources: config && config.sources + }; + + $(scope.popupid).modal("show"); + var searchParams = + scope.config.sources && scope.config.sources.metadataStore + ? scope.config.sources.metadataStore.params || {} + : {}; scope.$broadcast("resetSearch", searchParams); + scope.selectRecords = []; }); - scope.gnOnlinesrc = gnOnlinesrc; } }; @@ -2089,20 +2268,23 @@ * Register a method on popup open to reset * the search form and trigger a search. */ - gnOnlinesrc.register("sibling", function (config) { + gnOnlinesrc.register("siblings", function (config) { if (config && !angular.isObject(config)) { config = angular.fromJson(config); } scope.config = { associationTypeForced: angular.isDefined( - config && config.associationType + config && config.fields && config.fields.associationType ), - associationType: (config && config.associationType) || null, + associationType: + (config && config.fields && config.fields.associationType) || null, initiativeTypeForced: angular.isDefined( - config && config.initiativeType + config && config.fields && config.fields.initiativeType ), - initiativeType: (config && config.initiativeType) || null + initiativeType: + (config && config.fields && config.fields.initiativeType) || null, + sources: config && config.sources }; $(scope.popupid).modal("show"); @@ -2176,7 +2358,7 @@ /** * Add the result metadata to the selection. * Add it only it associationType & initiativeType are set. - * If the metadata alreay exists, it override it with the new + * If the metadata already exists, it overrides it with the new * given associationType/initiativeType. */ scope.addToSelection = function (md, associationType, initiativeType) { @@ -2245,5 +2427,104 @@ } }; } + ]) + + /** + * @ngdoc directive + * @name gn_onlinesrc.directive:gnDoiSearchPanel + * @restrict A + * @requires gnOnlinesrc + * + * @description + * The `gnDoiSearchPanel` directive provides a form to search and link DOI resources + * to the current metadata. + */ + .directive("gnDoiSearchPanel", [ + "gnDoiSearchService", + function (gnDoiSearchService) { + return { + restrict: "A", + replace: true, + scope: { + doiUrl: "=?", + doiPrefix: "=?", + doiQueryPattern: "=?", + mode: "@", + addToSelectionCb: "&?", + removeFromSelectionCb: "&?" + }, + templateUrl: + "../../catalog/components/edit/onlinesrc/" + "partials/doisearchpanel.html", + link: function (scope, element, attrs) { + // select (single value) / add mode (used in siblings dialog) + scope.mode = scope.mode || "select"; + scope.updateSelection = angular.isFunction(scope.addToSelectionCb) + ? function (md) { + if (scope.isSelected(md)) { + scope.selectedMd = null; + if (angular.isFunction(scope.removeFromSelectionCb)) { + scope.removeFromSelectionCb({ record: md }); + } + } else { + scope.selectedMd = md; + scope.addToSelectionCb({ record: md }); + } + } + : undefined; + + scope.isSelected = function (md) { + return md == scope.selectedMd; + }; + + scope.queryValue = ""; + scope.isSearching = false; + + scope.clearSearch = function () { + scope.queryValue = ""; + scope.results = []; + }; + + scope.$on("resetSearch", scope.clearSearch); + + scope.search = function () { + var searchQuery = + scope.queryValue !== "" + ? scope.doiQueryPattern.replaceAll("{query}", scope.queryValue) + : ""; + scope.isSearching = true; + gnDoiSearchService.search(scope.doiUrl, scope.doiPrefix, searchQuery).then( + function (response) { + scope.isSearching = false; + var results = []; + + angular.forEach(response.data.data, function (r) { + results.push({ + uuid: r.id, + remoteUrl: r.attributes.url, + resourceTitle: + r.attributes.titles.length > 0 + ? r.attributes.titles[0].title + : r.url, + title: + r.attributes.titles.length > 0 + ? r.attributes.titles[0].title + : r.url, + description: + r.attributes.descriptions.length > 0 + ? r.attributes.descriptions[0].descriptions + : "" + }); + }); + + scope.results = results; + }, + function (response) { + scope.isSearching = false; + } + ); + }; + } + }; + } ]); })(); diff --git a/web-ui/src/main/resources/catalog/components/edit/onlinesrc/OnlineSrcService.js b/web-ui/src/main/resources/catalog/components/edit/onlinesrc/OnlineSrcService.js index 6d0003da1dd..c41fd2ee43a 100644 --- a/web-ui/src/main/resources/catalog/components/edit/onlinesrc/OnlineSrcService.js +++ b/web-ui/src/main/resources/catalog/components/edit/onlinesrc/OnlineSrcService.js @@ -261,32 +261,37 @@ relatedTypes = defaultRelatedTypes; } - linksAndRelatedPromises.push( - $http.get( - apiPrefix + - "/related?type=" + - relatedTypes.join("&type=") + - (!isApproved ? "&approved=false" : ""), - { - headers: { - Accept: "application/json" + if (relatedTypes.length > 0) { + linksAndRelatedPromises.push( + $http.get( + apiPrefix + + "/related?type=" + + relatedTypes.join("&type=") + + (!isApproved ? "&approved=false" : ""), + { + headers: { + Accept: "application/json" + } } - } - ) - ); - linksAndRelatedPromises.push( - $http.get( - apiPrefix + - "/associated?type=" + - associatedTypes.join("&type=") + - (!isApproved ? "&approved=false" : ""), - { - headers: { - Accept: "application/json" + ) + ); + } + + if (associatedTypes.length > 0) { + linksAndRelatedPromises.push( + $http.get( + apiPrefix + + "/associated?type=" + + associatedTypes.join(",") + + (!isApproved ? "&approved=false" : ""), + { + headers: { + Accept: "application/json" + } } - } - ) - ); + ) + ); + } var all = $q.all(linksAndRelatedPromises).then(function (result) { var relations = {}; @@ -903,4 +908,18 @@ }; } ]); + + /** + * Service to query a DOI service and return the results. + */ + module.service("gnDoiSearchService", [ + "$http", + function ($http) { + return { + search: function (url, prefix, query) { + return $http.get(url + "?prefix=" + prefix + "&query=" + query); + } + }; + } + ]); })(); diff --git a/web-ui/src/main/resources/catalog/components/edit/onlinesrc/partials/doisearchpanel.html b/web-ui/src/main/resources/catalog/components/edit/onlinesrc/partials/doisearchpanel.html new file mode 100644 index 00000000000..b6601e0701d --- /dev/null +++ b/web-ui/src/main/resources/catalog/components/edit/onlinesrc/partials/doisearchpanel.html @@ -0,0 +1,65 @@ +
+ + +
+
+
+ + + + + + + +
+ + +

+ zarooResult +

+ +
    +
  • +
    + + +
    +
    + {{md.resourceTitle}} +
    + +
    +
    +
  • +
+
+
+
diff --git a/web-ui/src/main/resources/catalog/components/edit/onlinesrc/partials/linkServiceToDataset.html b/web-ui/src/main/resources/catalog/components/edit/onlinesrc/partials/linkServiceToDataset.html index 8236d6a43c9..a8f6b467e55 100644 --- a/web-ui/src/main/resources/catalog/components/edit/onlinesrc/partials/linkServiceToDataset.html +++ b/web-ui/src/main/resources/catalog/components/edit/onlinesrc/partials/linkServiceToDataset.html @@ -2,8 +2,15 @@
-
-
+
+ + +
-
+ + +
+ +
+

{{alertMsg}}

diff --git a/web-ui/src/main/resources/catalog/components/edit/onlinesrc/partials/linkToMd.html b/web-ui/src/main/resources/catalog/components/edit/onlinesrc/partials/linkToMd.html index 3fbc27150ff..9d1cd9e388f 100644 --- a/web-ui/src/main/resources/catalog/components/edit/onlinesrc/partials/linkToMd.html +++ b/web-ui/src/main/resources/catalog/components/edit/onlinesrc/partials/linkToMd.html @@ -1,9 +1,16 @@
+
-
-
+
+ +
-
+ + +
+
+ +
diff --git a/web-ui/src/main/resources/catalog/components/edit/onlinesrc/partials/linktosibling.html b/web-ui/src/main/resources/catalog/components/edit/onlinesrc/partials/linktosibling.html index 8e108777894..ec3b600611a 100644 --- a/web-ui/src/main/resources/catalog/components/edit/onlinesrc/partials/linktosibling.html +++ b/web-ui/src/main/resources/catalog/components/edit/onlinesrc/partials/linktosibling.html @@ -13,6 +13,7 @@ data-allow-blank="false" data-selected-info="config.associationType" data-gn-schema-info="associationType" + data-ng-disabled="config.associationTypeForced" lang="lang" >
@@ -29,12 +30,19 @@ data-gn-schema-info="initiativeType" lang="lang" data-allow-blank="true" + data-ng-disabled="config.initiativeTypeForced" >
-
+
@@ -59,21 +67,48 @@
- - {{md.resourceTitle}} - - +
+ + +
+ {{md.resourceTitle}} +
+ +
+
+
-
+ +
+ +
+